Red de conocimiento informático - Conocimiento informático - El concepto de sistemas integrados

El concepto de sistemas integrados

1. El concepto de sistema integrado

Céntrese en comprender el concepto de "integrado"

Entiéndalo principalmente desde tres aspectos.

1. En términos de hardware, integrar dispositivos periféricos basados ​​en CPU en el chip de la CPU. Por ejemplo, en las primeras computadoras basadas en la arquitectura X86, la CPU solo tenía las funciones de unidad aritmética y acumulador, y. todos los chips Para construir un puente externo para expandir la implementación, cosas como los puertos serie se implementan mediante el chip controlador de puerto serie externo 16C550/2. El chip controlador de puerto serie actual ya se ha integrado en la CPU y algunas PC tienen tarjetas gráficas. , y la mayoría de los procesadores integrados tienen controladores LCD, pero en cierto sentido son equivalentes a las tarjetas gráficas. La CPU del procesador de red IXP de gama relativamente alta bajo la arquitectura Intel Xscale similar a ARM integra un controlador PCI (se puede configurar para admitir 4 dispositivos esclavos PCI o configurarse como un dispositivo esclavo CPI; también integra 3 motores de procesador de red NPE); Dos de ellos corresponden a dos direcciones MAC y se pueden utilizar para la conmutación de puertas de enlace, mientras que el otro motor de procesador de red NPE admite DSL. Siempre que se agregue un chip PHY en el exterior, se puede realizar la función de Internet DSL. La serie IXP tiene una frecuencia principal máxima de 1,8G, admite memoria 2G, puerto Ethernet 1G×10 o 10G×1 o canal óptico Febre. La serie IXP debería ser el procesador más alto integrado por Intel en un núcleo Xscale basado en la arquitectura del sistema ARM.

2. A partir del software, selecciona la aplicación en el kernel del sistema operativo personalizado y descarga el kernel a la ROM después de la compilación. Los componentes de la aplicación seleccionados al personalizar el kernel del sistema operativo completan la "incrustación" del software. Por ejemplo, WinCE tendrá las opciones correspondientes al personalizar el kernel, incluidos Wordpad, PDF, MediaPlay, etc. Si elegimos, después de que se inicie CE. Puede encontrar estas cosas en la interfaz. Si es el sistema operativo Windows de la PC anterior, es necesario reinstalar la mayoría de las cosas.

3. Grabar el núcleo del software o el sistema de archivos de la aplicación y otras cosas en la ROM en la plataforma de hardware del sistema integrado logra una verdadera "incrustación".

La definición anterior es mi propia definición de sistemas integrados que se centra en la comprensión de hace 6 o 7 años. Hay muchas definiciones en los libros, pero nadie se atreve a hacerlo en este campo. Es muy preciso, incluidos los expertos y académicos, porque después de todo, los sistemas integrados son un tema completo en el campo de las computadoras

2. Capas y clasificación profesional de los sistemas integrados.

Los sistemas integrados se dividen en 4 capas, capa de hardware, capa de controladores, capa de sistema operativo y capa de aplicación.

1. La capa de hardware es la base de todo el sistema integrado. Si está familiarizado con el microcontrolador y la interfaz y puede programar en C y lenguaje ensamblador, comience desde la capa de hardware del sistema integrado. Es relativamente fácil. La capa de hardware también es la base de la capa de controlador. Un excelente ingeniero de controladores debe poder comprender el diagrama de circuito del hardware y completar el diseño lógico del CPLD por sí mismo. bastante familiarizado con el kernel del sistema operativo y su programación. Pero la plataforma de hardware es la base y el valor agregado depende del software.

La capa de hardware es más adecuada para personas con especialización en electrónica, comunicaciones, automatización, mecatrónica e ingeniería de la información. Los conocimientos profesionales básicos que deben dominar son: principios de microcomputadora de un solo chip y tecnología de interfaz, microcomputadora. Principios y tecnología de interfaz, lenguaje C.

2. Capa del controlador, esta parte es más difícil. El ingeniero del controlador no solo debe poder comprender el diagrama del circuito sino también ser muy competente en el núcleo del sistema operativo, para que el controlador que escriba no lo haga. falla cuando se llama al sistema, ocupa exclusivamente el intervalo de tiempo del sistema operativo, hace que otras tareas no puedan funcionar, no comprende la arquitectura del núcleo del sistema operativo y la programación en tiempo real, y muchas personas no tienen un buen estilo de escritura de controladores. controladores de acuerdo con los métodos descritos en la mayoría de los libros. Se puede hacer, pero es posible que ni siquiera alcance el nivel de un ingeniero de controladores junior. Cuando la aplicación llama al controlador, será como cuando abrimos un programa en Windows y. luego abra otro programa, interrumpirá el programa anterior o esperará un momento antes de ejecutar un programa que se abre más tarde. Si quieres ser un buen conductor, no tienes tres o cuatro años de experiencia y no necesitas estudiar el núcleo del sistema operativo durante algunos años. No es fácil tener éxito, pero el salario es el más alto. entre las cuatro capas de sistemas integrados.

La capa de controlador es más adecuada para personas con especialización en electrónica, comunicaciones, automatización, mecatrónica e ingeniería de la información, especialmente aquellas con especialización en arquitectura de computadoras, además de las disciplinas básicas de la capa de hardware, también requiere. Debe ser muy competente en estructuras y algoritmos de datos, principios del sistema operativo y principios de compilación.

3. La capa del sistema operativo solo se puede decir que es un simple trasplante en la actualidad, y pocas personas provienen de sistemas operativos ya escritos o escriben sistemas operativos a los que les faltan brazos y piernas. La mayor parte del trabajo lo realizan los ingenieros de accionamiento. El sistema operativo es responsable de depurar las tareas del sistema y administrar discos y archivos, y la naturaleza en tiempo real de los sistemas integrados es muy importante. Se dice que Microsoft invirtió 300 personas y tardó dos años en completar el sistema operativo XP. El total de horas-hombre fue de 600 años-hombre. Se estima que el sistema operativo Nuwa Hopen del Instituto de Software de la Academia de Ciencias de China. También tomó cientos de años-hombre completarlo. Por tanto, esta parte del trabajo carece relativamente de sentido.

4. La capa de aplicación es relativamente fácil. Si sabe cómo llamar a las funciones de la interfaz de programación en Windows, solo el entorno de compilación y desarrollo cambiará en consecuencia en el sistema operativo. Lo mismo ocurre si se trata de programación Java. Los algoritmos involucrados en los sistemas integrados son manejados por personas que se especializan en algoritmos y no necesariamente caen dentro del alcance de los sistemas integrados. Sin embargo, si se trata de bases de datos integradas en sistemas integrados, programación de redes basadas en sistemas integrados y desarrollo de aplicaciones de protocolo basadas en ciertos niveles de aplicación (como SIP, H.323, Astrisk), es más complicado y difícil.

3. Objetivos y posicionamiento.

Primero ten un objetivo, luego ubícalo.

Aprender ARM, desde una perspectiva de hardware, significa aprender diseño de circuitos de interfaz, por un lado, y programación a nivel de placa en lenguaje ensamblador y C, por el otro. Desde una perspectiva de software, es necesario aprender los controladores a nivel del sistema operativo y el trasplante basados ​​en procesadores ARM. Estos deben ser claros para los principiantes, ya sea desde el hardware o desde la familiaridad del sistema operativo con la aplicación, pero no importa lo que aprenda, siempre y cuando no sea una programación de capa de aplicación puramente basada en API por encima del sistema operativo. A nivel, el hardware aún necesita poder comprender cosas como registros, y aún necesita conocer el ensamblaje a nivel de placa y la programación en C. Por lo tanto, para aquellos que estén interesados ​​en la capa de hardware y el controlador de sistemas integrados, aún deben dominar el diseño del circuito de interfaz de ARM, la programación en lenguaje ensamblador y el lenguaje C de ARM y el entorno de desarrollo de depuración.

Por lo tanto, los principiantes deben captar la dirección, cuáles son sus objetivos y a qué nivel quieren llegar. Luego comience a aprender las dos capas más prácticas de los sistemas integrados relacionados con ARM: la capa de hardware y la capa de controlador. No importa qué capa aprenda bien, tendrá un futuro brillante.

Si desea comenzar desde el nivel de aplicación de los sistemas integrados, puede estar muy lejos de ARM y otros sistemas. Debe centrarse en las aplicaciones ambientales y las cadenas de herramientas de desarrollo correspondientes basadas en sistemas operativos integrados, como. Como las operaciones de WinCe se desarrollan en el sistema (similar a VC en Windows), si desea lograr un gran avance, confíe en ciertos protocolos de audio y video, como el desarrollo de la capa de aplicación basado en los protocolos SIP o H.323 en VOIP. campo, o se basa en el desarrollo de bases de datos de red integradas, etc.

Para los principiantes, deben actuar de acuerdo con su capacidad. No piensen que el salario del conductor es alto y deben tomarlo como una dirección. Hay ventajas en todos. Hay cuatro niveles del sistema integrado y, por supuesto, las personas de alto nivel también reciben salarios altos. Yo trabajo en el nivel de hardware y solía deducirme casi 3.000 yuanes del impuesto sobre la renta personal de mi salario mensual. Por supuesto, actúo como ingeniero por un lado y supervisor por el otro. En cuanto a los roles de los personajes, puedo hacer ambas posiciones yo solo, pero esas son mis horas de trabajo. Puede que haya muy pocas personas compitiendo conmigo en términos de hardware, razón por la cual recibo tanto salario.

4. Selección del sistema de desarrollo.

Muchos principiantes de ARM esperan tener un sistema que puedan usar, pero a menudo tienen la idea errónea de que cuanto mayor sea la versión del procesador y mayor el rendimiento, mejor, al igual que mucha gente piensa que ARM9 y ARM7 son Mejor, creo que los principiantes deberían ser sensatos al comenzar con esto. La elección del sistema de desarrollo depende en última instancia de la dirección del sistema integrado, ya sea el desarrollo de controladores, aplicaciones o sistemas integrados. Si desea comenzar desde el nivel del sistema operativo o el nivel de la aplicación, ya sea un controlador o una aplicación, entonces, por supuesto, cuanto mayor sea el rendimiento del procesador, mejor. Sin embargo, es muy difícil aprender esto usted mismo. No se necesitan unos meses ni medio año ni un año. Algo que se puede hacer en dos años.

En cierto sentido, la diferencia entre ARM7 y 9 es que algunos conjuntos de instrucciones funcionales están enriquecidos y la frecuencia principal es mayor, como 286 y 386. Es posible que los usuarios no noten nada, solo pueden sentir que la velocidad es un poco rápida.

ARM7 es más adecuado para aquellos que quieren pasar del nivel de hardware, porque hay muy pocos procesadores de la serie ARM7 con MMU en su interior y es más fácil de controlar. Por ejemplo, S3C44B0 puede apagarlo fácilmente. Caché y los registros de la interfaz interna son fáciles de entender. Se pueden controlar varias interfaces mediante el control del programa de hardware o las instrucciones de línea de comando de un solo paso AXD. Basado en la idea de 51 microcontroladores, es fácil de entender. Trátelo como un microcontrolador de 32 bits, eliminando así la confusión de muchos 51 ingenieros que quieren cambiar a los ingenieros de desarrollo ARM de hardware de sistema integrado, para que una mala empresa en la industria que no los lleve al nivel del sistema operativo. No entienden realmente los sistemas integrados, lo que los intimida y deja que la industria tenga una escasez aún mayor de talentos en esta área.

Los sistemas integrados prestan gran atención a la interfaz en términos de diseño de hardware y controladores de software. Al elegir una plataforma, también es necesario considerar los recursos externos de un procesador. Cuanto más esté expuesto a recursos externos, cuanto más familiares sean, mayores serán sus posibilidades de éxito en el futuro laboral. Esto es lo que se llama "habilidades relevantes" a la hora de contratar, porque es imposible que una persona esté expuesta a todos los procesadores en tan solo unos años. procesadores utilizados por la unidad de reclutamiento Puede ser algo que nunca hayamos visto antes. Tomemos como ejemplo los procesadores ARM producidos por docenas de pequeñas empresas en Taiwán (con un precio de mercado de decenas de millones). También son muy fáciles de usar, pero estas cosas tienen poca versatilidad. Las empresas que utilizan estos procesadores solo pueden contratar personas con experiencia laboral relevante. Entonces, ¿qué es la experiencia laboral relevante en términos de hardware, se refiere al diseño de interfaces periféricas, y en términos de software, se refiere a controladores de interfaces relevantes y experiencia en desarrollo de aplicaciones? sistemas operativos. He estado trabajando en la industria durante casi diez años. Cuando apareció ARM en 2000, un día comencé a trabajar en ARM7 y luego fui directamente a Xscale (esta versión está entre ARM10-11 y trabajé allí durante cinco años). Se reclutó y entrevistó a cientos de personas. Todavía tengo un conocimiento profundo de estos aspectos.

Personalmente creo que el S3C44b0 de Samsung es más adecuado para principiantes. ¿Por qué dices esto? Debido a que los recursos de la interfaz son relativamente abundantes, la tecnología es madura y hay mucha información, debería ser muy adecuada para principiantes. Si tiene problemas, puede ser fácil encontrar a alguien que los ayude y los resuelva, porque la mayoría de la gente. Están familiarizados con ellos, al igual que el microcontrolador tipo 51, que tiene más de N bits. Los expertos pueden ayudarlo y las preguntas relacionadas pueden responderse rápidamente. Por lo tanto, la industria piensa que este ARM está mal utilizado, pero para los principiantes, lo es. algo bueno.

Por lo tanto, la elección del sistema de desarrollo depende de sus objetivos futuros, los recursos de la interfaz de la placa de desarrollo y la versatilidad de la industria.

5. Cómo ver el entrenamiento.

En primer lugar, permítanme hablar sobre mí. He estado en la industria durante casi diez años. Comencé al mismo tiempo que la industria de sistemas integrados nacionales. industria de sistemas integrados y ha diseñado muchas plataformas de sistemas integrados de alta gama. Se han proporcionado productos y soluciones para muchas empresas. Antes de dejar su trabajo, diseñó IP-PBX para una empresa de propiedad estadounidense dedicada a VOIP. , supervisor de proyectos, director técnico y director de departamento. Ha acumulado muchos contactos y muchos años de experiencia. Teniendo en cuenta a los estudiantes, el empleo no coincide con la contratación de la empresa. La empresa no puede contratar personas y no es fácil para los estudiantes. Ingenieros recién graduados para encontrar trabajo. Por lo tanto, se fundó Zhitianxing Technology Co., Ltd. para llevar a cabo capacitación en sistemas integrados.

Debido a que no hay contacto entre los investigadores científicos de primera línea y los profesores de primera línea, hay una escasez de talentos integrados en el país. La tecnología de las universidades extranjeras está por delante de las empresas de la industria, mientras que las nacionales. La situación es que los requisitos tecnológicos de sistemas integrados de las empresas industriales están muy por delante de los de las universidades. Para construir un puente de comunicación entre la industria y las universidades, brindar habilidades avanzadas a los estudiantes universitarios, crear una carta de triunfo para los estudiantes en la competencia laboral y crear oportunidades para que los ingenieros de la industria mejoren y se realicen rápidamente, renuncié a Una empresa extranjera con un salario anual de más de 200.000 yuanes. Puesto que realiza formación en sistemas integrados.

En la formación, se gasta dinero para ganar tiempo. A muchos ingenieros les gusta aprender por sí mismos y piensan que la formación no merece la pena. Por supuesto, la formación únicamente para ganar dinero no será demasiado valiosa. , pero para el entrenamiento de fuerza, es posible que hayan sufrido una gran pérdida. Me pregunto si han calculado esa cuenta. Si un entrenamiento de una semana puede brindarles conocimientos que solo pueden dominar después de dos años de autoestudio. Después de la formación, utilizarán tres. Le llevará de un mes a seis meses digerir el contenido de la formación. Esto le ahorrará al menos un año y medio para aprender otras cosas o trabajar desde un nivel diferente. nivel que tendrá en dos años a más tardar en un año El salario correspondiente significa que la relación entre salario y nivel es un año más corta que la del mismo grupo de personas. Se calcula al menos 1.000 por mes, y luego se deduce. Los gastos de formación son al menos 10.000 más. Al mismo tiempo, también me ahorro un año, ya sea de ocio o de ocio. No importa si sigo mejorando, estaré al frente del equipo.

En otro nivel, la capacitación para los recién llegados equivale a que ellos mismos compren un seguro de desempleo por adelantado. Un maestro los guiará hacia el taoísmo. El estudiante más joven de mi clase este verano es un estudiante de segundo año. Este año solo está en su tercer año y acaba de aprender sobre microcontroladores este semestre, pero ahora ya está haciendo un gran trabajo en programación ARM. ¿Seguirá desempleado después de graduarse en más de un año?

Además, a través de la capacitación, puede saber muchas cosas que la gente común en la industria no sabe y también puede encontrar un maestro para usted mismo. Por ejemplo, dos ingenieros usan S3C2410 y PXA255 para fabricar dispositivos portátiles. dispositivos respectivamente, ambos han trabajado durante cuatro años y luego salen a buscar trabajo, la diferencia salarial entre los dos puede duplicarse como máximo. Esta es una regla desconocida para la gente común en la industria. 2410 es un producto civil y ha sido utilizado por la industria al fabricar productos, el costo es muy sensible y, por supuesto, también es sensible al costo del talento. Un producto Intel. Una CPU 255 puede comprar tres 2410, siempre ha sido definido como un producto aristocrático por la industria. Las empresas utilizadas son todas grandes empresas o empresas que sirven al ejército. las cosas se hacen bien, todo es fácil de decir, sin embargo, hay muy poca gente que hace esto porque desarrollar un sistema es costoso.

En cuanto a encontrar un buen maestro para usted, creo que sí, porque existe una cierta competencia potencial entre ingenieros del mismo nivel y muchas personas no están dispuestas a enseñar a otros lo que saben, lo que significa que. Él estará desempleado, el llamado discípulo de la iglesia, y el maestro morirá de hambre. Pero para aquellos de nosotros, no existe tal relación. Actualmente, he alcanzado un cierto nivel en el diseño de plataformas de sistemas integrados. En este país, la tecnología Block ya es difícil de superar, por lo que hay muchas cosas que estoy abierto a todos, como la interfaz de sincronización mencionada en la siguiente parte sobre el diseño de la interfaz. Creo que solo alrededor del 10% de los ingenieros de hardware senior saben esto.

6. Habilidades necesarias para convertirse en ingeniero senior de hardware de sistemas integrados.

En primer lugar, permítanme declarar que estoy diseñando en función del nivel de plataforma del sistema integrado. Tengo una opinión relativamente fuerte en la dirección del hardware, si se trata de las habilidades básicas requeridas en otros aspectos. debe compararse con otras habilidades básicas en nuestro centro de capacitación Comuníquese con profesores de nivel profesional o consulte el sitio web. Sólo puedo decir que sé un poco sobre ellos, pero no demasiado. También puedes hacerme preguntas básicas.

Hay varias direcciones para el hardware. Las señales puras se dividen en digitales y analógicas. La simulación es más difícil y generalmente requiere un largo período de acumulación de experiencia. La precisión de un solo valor de resistencia o capacitancia no es suficiente. La señal puede estar muy sesgada. Por lo tanto, hay menos jóvenes que lo hacen. Con el desarrollo de la tecnología, ha aparecido la digitalización de circuitos analógicos, por ejemplo, todos los módulos de radiofrecuencia de los módems de los teléfonos móviles utilizan chips maduros. En ese momento, solo dos empresas en el mundo tenían esto. Tecnología Autopercepción de funciones analógicas Las personas que no son muy fuertes no son aptas para este trabajo. Si realmente pueden conseguir el módulo de radiofrecuencia de un teléfono móvil, su salario mensual puede ser de más de 15K siempre que alcancen un promedio. nivel.

La otra categoría es la parte digital. En general, se puede dividir en la categoría de microcontrolador 51/ARM, categoría DSP y categoría FPGA. La mayoría de los ingenieros de FPGA nacionales se dedican al núcleo IP en empresas de diseño de circuitos integrados. Verificación de front-end, si esta parte no se logra a nivel de puerta, el futuro no está claro. Incluso si se convierte en ingeniero de verificación de front-end de IC, le llevará varios años ser competente. La interfaz de hardware DSP está relativamente estereotipada. Si no se acerca al controlador o al algoritmo, el futuro no será bueno. La categoría de microcontroladores ARM tiene mucho contenido. Los productos en la industria ocupan una gran cantidad y son ampliamente utilizados por una amplia gama de personas, por lo que existe un gran espacio de empleo que refleja mejor el nivel y el estándar. El diseño de hardware es donde los ingenieros de hardware senior compiten entre sí. La base para juzgar el nivel. El aspecto más crítico del diseño de la interfaz es el tiempo, no la simple conexión. Por ejemplo, el procesador I2C PXA255 requiere una velocidad de 100 Kbps. Si se le conecta un dispositivo periférico I2C que no puede alcanzar hasta 100 kbps, inevitablemente conducirá al diseño. falla. Hay muchas situaciones de este tipo, por ejemplo, el microcontrolador 51 se puede conectar a una pantalla LCD en el bus, pero ¿por qué esta pantalla LCD no se puede colgar en el bus ARM? También hay un controlador de tarjeta SD Winband que se puede conectar al bus. Bus ARM7, pero ¿por qué este controlador no se puede conectar a procesadores ARM9 o Xscale? Todos estos son problemas. Por tanto, la interfaz no es una simple conexión, depende de tiempos y parámetros. Un excelente ingeniero de hardware debería poder diseñar un producto con mejor costo y rendimiento sin una solución de referencia. Confiando en la solución existente, se debe realizar una adaptación de viabilidad adecuada, pero no indiscriminadamente. Cuando un ingeniero convierte el chip de 5 V CC. el plan en un chip de 1,8 V CC y lo reemplaza directamente con un LDO, a veces la CPU se quemará. Hace unos días, alguien me pidió ayuda para optimizar el programa de su dispositivo GPS portátil anterior basado en la plataforma PXA255. Le pregunté sobre la situación. El mapa está almacenado en la tarjeta SD y el SPI utilizado entre la tarjeta SD y la. El controlador PXA255 MMC es una interfaz, lo que resulta en una velocidad de lectura de mapas muy lenta. Esta situación es una falla grave en el diseño, no un problema con el programa. Por lo tanto, hice algunas sugerencias y les pedí que lo actualizaran y lo probaran. Por lo tanto, si desea ser un excelente ingeniero, debe comprender la integridad del sistema y comprender los circuitos existentes. En otras palabras, si le dan un conjunto de diagramas de circuitos, ¿cuánto puede comprender si no puede comprenderlos? más del 80%, significa que estás lejos de ser excelente. Los ingenieros todavía están muy por detrás. La segunda es la capacidad de depuración de circuitos y la capacidad de revisión de dibujos, pero la capacidad más básica es el diseño esquemático, el dibujo de PCB y el diseño lógico. Esto se refiere a los ingenieros de diseño de hardware. De los ingenieros de diseño de hardware anteriores, también podemos distinguir a los ingenieros de ECAD, que son ingenieros profesionales que dibujan placas PCB, y a los ingenieros de diseño de EMC, que ayudan a las personas a resolver problemas de EMC. El siguiente nivel del ingeniero de hardware es el ingeniero de pruebas a nivel de placa, que es un ingeniero de hardware con buenas habilidades en lenguaje C. Durante el proceso de depuración de la placa de circuito, puede verificar las funciones del hardware a través de programas de prueba escritos por él mismo. Luego se entrega a los desarrolladores de controladores a nivel del sistema operativo.

En resumen, el contenido del hardware es muy complicado. Cualquiera que domine el hardware se convertirá en un maestro. A menudo evalúo las soluciones para otros. Muchas cosas diseñadas por ingenieros de hardware senior a menudo son negativas. si un ingeniero alcanza mi nivel, ofenderá a algunas personas, pero de hecho hay muchas cosas desconocidas sobre el hardware que confunden a muchos ingenieros de hardware senior.

Entonces, ¿qué habilidades técnicas deben poseer los ingenieros de hardware senior? En primer lugar, deben dominar las herramientas auxiliares para el diseño EDA, como Protel\ORCAD\PowperPCB\Maplux2\ISE y los lenguajes VDHL, y ser capaces. Utilice estas herramientas para el diseño lógico, la capacidad de revisión del diseño de la interfaz y la capacidad de depuración. Si puede llegar al diseño general de la solución, básicamente se convertirá en un ingeniero senior.

El hardware depende de la experiencia y la acumulación. Se necesitan diez años para afilar una espada y cien años para afilar una aguja.