¿Qué conjunto de habilidades necesita un ingeniero de sistemas integrado?

A2A:

Supongo que desea desarrollar un producto integrado completo y no conseguir un trabajo en una gran empresa y escribir partes del código / corregir errores.

Déjame comenzar con las habilidades menos importantes

(1) Lenguaje C
(2) Arquitectura interna del microcontrolador

y las habilidades requeridas importantes son

(1) comprensión del producto: debe usar el producto, comprender el nivel de usuario y lo que se espera del producto.

(2) Buena capacidad de cálculo mental

(3) lógica deductiva.

(4) paciencia: el diseño nunca funciona. Lleva mucho tiempo y vuelve a intentar resolver los errores.

Esto se basa en mi experiencia. He desarrollado muchos diseños comercialmente exitosos y todavía lo hago. Cuando se trata de ‘C’ y la arquitectura interna del microcontrolador, leo libros / búsqueda en red cuando es necesario.

Sin embargo, paso tiempo usando el producto, observando a los usuarios reales y multiplico el tiempo estimado por 10 y calculo el tiempo requerido.

Estas son mis opiniones.

En base a mis casi 40 años de trabajo en el campo de los sistemas integrados, estos son, en mi humilde opinión, las habilidades / conocimientos mínimos “imprescindibles”:

  • Una buena comprensión de la electrónica analógica digital y de pequeña señal.
  • Capacidad para leer y comprender esquemas.
  • Posibilidad de utilizar eficazmente un medidor de voltios / ohmios y un osciloscopio.
  • Capacidad para realizar al menos la depuración / resolución de problemas electrónicos básicos.
  • Competencia en al menos un lenguaje ensamblador.
  • Competencia en el lenguaje de programación ‘C’.
  • Una buena comprensión de los componentes internos del microprocesador (principalmente los registros).
  • Una comprensión de las regiones de memoria y sus usos (montón, pila, IVT, código).
  • Trabajando con números hexadecimales y matemática hexadecimal.
  • Una muy buena comprensión de las matemáticas booleanas (lógica).
  • Un excelente conocimiento de qué son las interrupciones y cómo funcionan en código.
  • Una comprensión de los diferentes tipos de memoria (RAM, ROM, Flash), las diferencias entre ellos y cómo se leen, escriben y acceden.
  • Una comprensión de la multitarea (en el mundo incrustado usamos el término original “multitarea”. El término “multitarea” fue un término que alguien inventó más tarde para significar exactamente lo mismo. Lo que otros llaman “hilos” nosotros han llamado “tareas” desde la década de 1970).
  • Posibilidad de utilizar un depurador para realizar al menos operaciones simples, como establecer puntos de interrupción, pasos simples, examinar valores variables, examinar la memoria, examinar registros, y comprender cuándo habilitar y deshabilitar las interrupciones cuando se realiza un solo paso con un depurador.
  • Capacidad para depurar código multitarea.
  • La capacidad de leer y comprender hojas de datos y producir código de controlador para un dispositivo determinado en función de la información contenida en su hoja de datos.
  • Comprender las ventajas y desventajas de usar un bucle de primer plano con interrupciones frente a usar un núcleo multitarea.
  • Desarrollo de código para ejecutar bajo un RTOS (Sistema operativo en tiempo real), y cómo usar semáforos, mutexes, colas, comunicaciones entre tareas.
  • Cómo desarrollar y depurar código para periféricos como UART, convertidores A / D y D / A, temporizadores, generación PWM desde un temporizador, relojes en tiempo real, etc.
  • Cómo desarrollar y depurar código para comunicaciones utilizando RS-232 (y sus variantes), SPI, I2C y puertos de datos paralelos.
  • Cómo desarrollar y depurar código con pilas, colas, listas enlazadas y otras construcciones de datos comunes.
  • Una buena comprensión de DMA (Acceso directo a memoria) y cómo implementarlo para sistemas que tienen capacidad DMA.

Si desea aumentar su conocimiento en el dominio de la electrónica central, entonces debe aumentar su conocimiento en el sistema integrado. Ahora hablemos de los sistemas embebidos.

Para saber cómo funciona un sistema integrado, debe conocer ciertas cosas e ir paso a paso.

1) Aprenda la programación en C a fondo (Operador en bits / Llamada por valor / Llamada por referencia / Puntero / Matriz / Función / Estructura).

2) Aprenda electrónica (dispositivos electrónicos y teoría de circuitos) (PDF que puede encontrar en la web) y electrónica digital.

3) Aprenda el microcontrolador de la versión básica a la superior (AT89c51 / Arduino / ARM / STM32F427).

4) Aprenda el protocolo de comunicación (I2C / SPI / UART / CAN).

5) Obtenga experiencia práctica en herramientas (KEIL uVision, AVR Studio, Arduino, STm32 Cube, Proteus), donde sabrá cómo escribir, depurar y descargar un código en un microcontrolador.

6) Construya algunos kits de bricolaje (Sensor Shield / GSM shield / Ultrasonic Sensor). Por favor, eche un vistazo a esto.

Para Sensor Shield: Adormi Sensor de temperatura y controlador electrónico Hobby Kit Precio en India – Compre Adormi Sensor de temperatura y controlador electrónico Hobby Kit en línea en Flipkart.com

Para GSM Shield: Adormi Educational Electronic Hobby Kit Precio en India – Compre Adormi Educational Electronic Hobby Kit en línea en Flipkart.com

Para MP3 Shield: Adormi Educational Electronic Hobby Kit Precio en India – Compre Adormi Educational Electronic Hobby Kit en línea en Flipkart.com. Algunos kits de bricolaje, presione el enlace a continuación.

Para el sensor de estacionamiento ultrasónico: precio del sensor de estacionamiento para automóviles Adormi Ultra Sonic en India – Compre en línea el sensor de estacionamiento para automóviles Adormi Ultra Sonic en Flipkart.com

Para el acelerador de motor de CC basado en gestos: precio del acelerador de motor de CC basado en gestos de Adormi en India – Compre en línea en Flipkart.com el acelerador de motor de CC basado en gestos Adormi

así, muchos más productos Build it yourself están ahí.

Para Flipkart: Adormi – Compre productos en línea al mejor precio en India – Todas las categorías | Flipkart.com

Para Amazon: Adormi: Industrial y Científico

Para el dominio VLSI:

Si quiere aumentar su conocimiento en VLSI (Very Large Scale – Integration), debe ir paso a paso:

1) VLSI es el proceso de crear un circuito integrado (IC) mediante la combinación de miles de transistores en un solo chip. VLSI comenzó en la década de 1970 cuando se desarrollaron tecnologías complejas de semiconductores y comunicación. El microprocesador es un dispositivo VLSI. Antes de la introducción de la tecnología VLSI, la mayoría de los circuitos integrados tenían un conjunto limitado de funciones que podían realizar. Un circuito electrónico puede consistir en una CPU, RAM, ROM y otra LÓGICA DE PEGAMENTO. VLSI permite a los diseñadores de IC agregar todo esto en un chip.

Desafíos:

  • Variación del proceso : a medida que las técnicas de fotolitografía se acercan a las leyes fundamentales de la óptica, lograr concentraciones de penetración de alta precisión y cables grabados se vuelve más difícil y propenso a errores debido a la variación. Los diseñadores ahora deben simular en múltiples esquinas del proceso de fabricación antes de que un chip esté certificado listo para la producción, o utilizar técnicas a nivel de sistema para lidiar con los efectos de la variación.
  • Reglas de diseño más estrictas : debido a los problemas de litografía y grabado con la escala, las reglas de diseño para el diseño se han vuelto cada vez más estrictas. Los diseñadores deben tener en cuenta cada vez más estas reglas al diseñar circuitos personalizados. La sobrecarga para el diseño personalizado ahora está llegando a un punto de inflexión, con muchas casas de diseño que optan por cambiar a herramientas de automatización de diseño electrónico (EDA) para automatizar su proceso de diseño.
  • Cierre de temporización / diseño: a medida que las frecuencias de reloj tienden a aumentar, los diseñadores encuentran cada vez más difícil distribuir y mantener un sesgo de reloj bajo entre estos relojes de alta frecuencia en todo el chip. Esto ha llevado a un creciente interés en arquitecturas multicolores y multiprocesador, ya que se puede obtener una aceleración general incluso con una frecuencia de reloj más baja utilizando la potencia de cálculo de todos los núcleos.
  • Éxito de primer paso : a medida que se reducen los tamaños de los troqueles (debido al escalado) y aumentan los tamaños de las obleas (debido a los menores costos de fabricación), aumenta el número de troqueles por oblea y la complejidad de hacer fotomascaras adecuadas aumenta rápidamente. Una máscara para una tecnología moderna puede costar varios millones de dólares. Este gasto no recurrente disuade la vieja filosofía iterativa que involucra varios “ciclos de centrifugado” para encontrar errores en el silicio, y fomenta el éxito del silicio de primer paso. Se han desarrollado varias filosofías de diseño para ayudar a este nuevo flujo de diseño, incluido el diseño para fabricación (DFM), el diseño para prueba (DFT) y el Diseño para X.

Cree algunos kits de bricolaje, que lo ayudarán a comprender cómo funciona y obtendrá una experiencia práctica práctica.

Espero que definitivamente ayude.

Si tiene alguna consulta, háganos saber

correo: [correo electrónico protegido]

Ofrecemos pasantías también

Programa de prácticas Adormi EEE / ECE

Qué tipo de oportunidades profesionales:
Bastante.
Unos pocos:
• Ingenieros de software embebido
–Ingeniero de software del sistema (Kernel y RTOS)
–Ingeniero de software de aplicación (controladores de dispositivo)
–Ingeniero de prueba de software
–Desarrollo del controlador – Linux
–GPS / AGPS Developer
–RF / WiFi / Ingeniero de Protocolo de Comunicaciones
• Ingenieros de hardware embebido
-Ingeniero en hardware
–Ingeniero de diseño de juntas
–Ingeniero de validación de tablero (hardware)
• Ingenieros de aplicaciones
–Soporte técnico de ingeniero de aplicaciones
–Ingeniero de soporte técnico
–Ingeniero de aplicación de producto (PAE)
•Marketing y ventas
Ejecutivo de marketing • Ejecutivo de ventas

¿Dónde son aplicables?
• Máquinas industriales, automóviles, equipos médicos, espacio, cámaras, electrodomésticos, agricultura, aviones, máquinas expendedoras, teléfonos celulares, PDA, juguetes.
• Automotriz integrado, incluida la robótica; Dispositivos sanitarios; Telecomunicaciones (móviles, 2G, 3G, 4G, LTE, comunicaciones de datos); Comunicaciones satelitales; Aviónica (aviones); Subdominios de prueba y medición
• En resumen, en todas partes

¿Qué tienes que aprender?
• Habilidades de software / programación
–Proficiente en C ad C ++, C incrustado
-Estructuras de datos
–C depurador
–Programación de Kernel
-Controladores de dispositivo
–Sistemas operativos en tiempo real (RTOS)
–Pensamiento creativo (para automatizar la solución)
• Habilidades de hardware
–Conceptos básicos de electrónica, electrónica.
–Micro-computadora / Microproc

arquitectura essor
–Medio ambiente de programación de microcontroladores
–Conocimiento de protocolo
–Sensores, actuadores y hardware periférico.
–Diseño de placa de circuito electrónico y solución de problemas

+

1> Capacidad para escribir máquina de estados

2> C ++ con OOAD

3> Patrón de diseño y patrones de diseño de sistemas integrados

4> Conocimiento práctico de RTOS y “aspectos internos” de RTOS

5> Eclipse IDE

6> GDB con depuración local y remota.

7> Capacidad para depurar más allá de la “hoja de datos”. Puede implementarse según la hoja de datos, pero aún así no funciona como se esperaba …, .. ¡Echa un vistazo a las erratas de silicio!

8> analizador lógico

9> programación de aplicaciones Linux

10> Python .., para el desarrollo del marco de pruebas de automatización.

11> LTTng -> marco de seguimiento de código abierto para Linux

12> Linker y cargadores

13> Conceptos de controladores de dispositivos Linux y componentes internos del kernel de Linux.

14> Junta de plantear.

15> Redes informáticas y protocolos.

16> Flujo desde el vector de reinicio hasta el arranque de RTOS y el inicio de la aplicación.

(No estoy escribiendo mi habilidad aquí. Tengo un total de más de 11 años de experiencia en este campo y esto es lo que he observado …, enumerar aquí no significa que lo sé todo … Todavía estoy aprendiendo # 11, # 14 y # 13)

Editar:

Echo de menos lo más importante:

17) Y la capacidad de realizar ingeniería inversa rápidamente y extraer el núcleo y el flujo del sistema con una base de código heredada “enorme” desarrollada por otros desarrolladores.

18) modelado UML.

Wow, qué gran pregunta ……
Hay muchos tipos de sistemas integrados, la clave es descubrir en qué tipos le gusta trabajar.
Los tipos que he experimentado (en general son)
1: Profundamente integrado: estamos hablando de pequeños microcontroladores donde todo RAM / FLASH / periféricos están todos en el mismo chip. Mayo o mayo no tienen un sistema operativo.
Habilidades necesarias: ensamblaje y / o C, uso de un sistema operativo en tiempo real (nano kernel) o implementación de un programador simple. Buen conocimiento de electrónica.
2. Nivel alto: estos a menudo ejecutan sistemas operativos completos (Windows, Linux, Integrity, VxWorks). Aquí se requieren C ++, Java y otras habilidades básicas de programación a nivel de PC.
3: FPGA: dispositivos lógicos programables que a menudo se usan para el coprocesamiento o para un procesamiento realmente rápido. Las habilidades necesarias aquí son VHDL o Verilog (parece que depende de la costa en VHDL en el este y Verilog en la costa oeste de los Estados Unidos).

Al final del día, una de las cosas clave que necesita un ingeniero de sistemas integrados es la capacidad de pensar de manera integral sobre un problema y su solución. Muchas veces, un cambio en un lugar tiene efectos de onda en todo el sistema. Esto es especialmente cierto en sistemas de tiempo real difíciles.

Si desea aprender sistemas embebidos, entonces necesita saber con qué todos los microcontroladores está interesado en trabajar. Decidir el tipo de microcontrolador decidirá los requisitos previos necesarios.

Por ejemplo, si desea aprender y trabajar con el tipo más básico de microcontrolador, es decir, 8051, debe ser lo suficientemente sólido al escribir códigos de ensamblaje. Aunque los códigos de ensamblaje no son fáciles de aprender y limitan su conocimiento a un tipo particular de controlador.

Sin embargo, si desea trabajar en la familia de microcontroladores avr, debe ser bueno en los conceptos básicos del lenguaje C. El microcontrolador se programará escribiendo código en lenguaje c incorporado. Esto es ligeramente diferente del lenguaje C convencional, pero la idea básica detrás de ambos es la misma.

Además, sobre todo esto, debe desarrollar comandos sobre softwares como avr studio, keil, proteus, etc. para escribir y verificar la viabilidad de su proyecto. Sin embargo, estos no son difíciles de aprender y estarán bajo su control cuando comience a nadar más y más en el océano de los sistemas integrados.

Yo mismo comencé a aprender controladores AVR solo con un conocimiento básico del lenguaje C.

Todo lo mejor..!!

El sistema integrado consiste principalmente en hardware y software. A veces, se integra con las partes mecánicas para completar el sistema. Para trabajar con el sistema integrado, uno debe tener las siguientes habilidades establecidas. Primero, debes tener el conocimiento de la electrónica. Sin embargo, el sistema integrado se enfoca en la electrónica digital, pero a veces, debe trabajar con la electrónica analógica para leer las cantidades físicas. Debe familiarizarse con las arquitecturas informáticas, los periféricos, etc. En segundo lugar, debe tener algunos conocimientos sobre el desarrollo de software (C es el más popular en el mundo integrado) para su sistema. Debe elegir el entorno de desarrollo adecuado, como editor de código, compiladores, depuradores. Finalmente, debe tener algún conocimiento sobre instrumentación eléctrica para solucionar problemas.

Hay muchas cosas que debes aprender para ser un buen ingeniero integrado. Embebido es hardware + software, a veces lo confundimos sin conocimiento de hardware, también podría ser un buen ingeniero incrustado, no es cierto.

Lea este artículo para saber qué aprender a convertirse en un buen ingeniero integrado.

Espero que esto ayude.

en mi punto de vista, las siguientes son las habilidades principales que se necesitan como ingeniero integrado
* programación (c / c ++ / java)
* arquitectura de varios microcontroladores de 8/16/32 bits
* Desarrollo del producto que se utiliza en la vida diaria.
* lo más importante es comprender lo que su cliente quiere de usted como ingeniero integrado

Vea las habilidades requeridas y las oportunidades profesionales en la industria de sistemas integrados aquí. Lea el artículo completo, es muy útil.