¿Cuánto conocimiento de electrónica es necesario para que un graduado de CS trabaje con sistemas embebidos?

Tener una sólida experiencia en hardware es una gran ventaja. He trabajado con muchos EE haciendo programación integrada que no tenía experiencia en CS, pero al revés es bastante raro: experiencia solo en CS sin experiencia en electrónica.

Tengo un título en BSEE y MSCS, lo que creo que es bastante óptimo para trabajar con sistemas integrados. No tiene que ser un EE, pero idealmente habrá tomado al menos algunos cursos en materias como circuitos digitales, circuitos analógicos y arquitectura de computadoras.

Como mínimo, debe poder leer esquemas, utilizar un osciloscopio, un multímetro y otros instrumentos, y comprender las hojas de datos del microcontrolador que pueden durar cientos de páginas. Aquí hay uno para un procesador ARM en el que estoy trabajando actualmente escribiendo un controlador de dispositivo para el que tiene casi dos mil páginas. Cuando navegue por la hoja de datos, observe todas las definiciones de registro y los diagramas de bloques de los circuitos.

Necesitará conocer todos los periféricos de microcontroladores comunes, como USB, I2C, SPI, UART, DMA, I2S, ADC, DAC y muchos otros.

A veces hay un marco disponible, como Microchip’s Harmony para sus procesadores de 32 bits. Esto le ahorra tener que escribir directamente en los registros del microcontrolador, por ejemplo, para configurar I2C para que pueda controlar un códec y, en su lugar, use una API que sea la misma en varios procesadores. Pero aún necesita saber cómo funciona I2C.

Soy un graduado de CS y he estado trabajando en sistemas integrados durante los últimos 18 años. Me he puesto muchos roles: Desarrollador, Probador, Integrador, Archcitect, Líder, Especialista Técnico. Inicialmente estaba restringido a la programación y las pruebas unitarias. Al aprender las complejidades del circuito electrónico, el microcontrolador, llegué a una posición en la que puedo revisar el diseño esquemático y proporcionar información al equipo de diseño de hardware sobre lo que se necesita para hacer el producto desde múltiples direcciones.

Si miro hacia atrás, si uno es exhaustivo en los conceptos básicos de electricidad y electrónica que se introducen en el primer o segundo año, es muy importante. Por encima de eso, se necesita una buena comprensión de la lógica digital con una comprensión práctica de registros, flip-flops, circuitos secuenciales y combinacionales. Junto con eso, se necesita la comprensión de la organización informática. Con este fondo, junto con un buen conocimiento del lenguaje C es el requisito previo. Combina todas estas habilidades al comenzar a programar en un kit de microcontrolador. Puede comenzar con arduino y luego pasar a cosas serias como TI MSP430 launchpad o STM32 Nucleo. Más tarde, según su interés, puede aprender el concepto de SO, trabajar en Linux e ingresar al campo de HMI, redes cableadas e inalámbricas.

He comenzado una academia en Hyderabad sobre sistemas integrados junto con pocos veteranos de la industria que proporcionan una plataforma de lanzamiento para que la generación más joven avance en la construcción de una carrera exitosa en sistemas integrados.

Todo lo mejor para perseguir tus aspiraciones.

Más allá de la creencia popular, la programación de sistemas integrados es muy difícil. Es necesario conocer esta área porque se relaciona con la electrónica. Un ingeniero profesional de software de sistemas embebidos requiere un conocimiento específico en una serie de áreas, junto con habilidades de resolución de problemas para aplicar este conocimiento como miembro del equipo en la construcción de sistemas seguros y confiables.

Los sistemas integrados comúnmente monitorean y / o controlan dispositivos externos, por lo que la confiabilidad (incluida la reunión de restricciones en tiempo real) es esencial o el equipo puede estar en riesgo. Dado que el mal funcionamiento del equipo podría poner en peligro la vida humana o los activos materiales, los sistemas integrados a menudo son críticos para la seguridad o de alta seguridad, y requieren certificación contra estándares específicos del dominio.

El proceso de desarrollo para el software integrado es mucho más complicado que para los sistemas nativos, ya que involucra entornos de compilación cruzada, emuladores y otras herramientas y hardware especializados (y a menudo costosos).

Finalmente y significativamente, muchos de los sistemas embebidos más críticos contienen una gran cantidad de software, tal vez millones de líneas de código, son desarrollados por equipos que pueden estar distribuidos geográficamente y deben evolucionar con el tiempo en respuesta a los cambios en los requisitos.

Por lo tanto, los sistemas integrados deben ser modulares, extensibles y adaptables, y los desarrolladores deben seguir rigurosamente los procesos de sonido para el control de versiones, la gestión de la configuración y el aseguramiento de la calidad.

No mucho. Si eres bueno en la programación en C y te interesa trabajar en el campo de los sistemas integrados, eso es suficiente. Una vez que comience a trabajar en el campo de sistemas integrados, aprenderá automáticamente los conocimientos de electrónica necesarios. Eso no es difícil. Pero si no eres bueno en la habilidad de programación en C, entonces no entres en el campo del sistema incrustado.

Todo lo mejor.

More Interesting

¿Alguien ha usado WalkMe para crear soporte de rendimiento integrado?

¿Alguien puede ayudarme a encontrar la dirección de Pc0-Pc5? La hoja de datos: http://www.pmt-fl.com/downloads/picocap/DB_PCap01Ax_0301_en.pdf

¿Es bueno usar Buck Converter para suministrar microcontrolador?

¿Qué debo elegir a continuación, análisis de big data, diseño de sistemas integrados o IoT?

Soy ingeniero eléctrico del lote 2016. ¿Qué curso es mejor para un EE? VLSI o incrustado?

¿Qué es mejor, TU Delft o la Universidad de Stuttgart para sistemas integrados?

¿Qué cosas se necesitan para desarrollar un sistema embebido?

En el 8051 microcontrolador, 2 ciclos de máquina significa ¿cuántos pulsos de reloj?

¿Cómo Embedded Processor gestiona simultáneamente varias interfaces como ZigBee, RF, Serial y USB junto con WLAN en el sondeo y la gestión de datos?

¿Los chips Xilinx tienen un modo de bajo consumo o hay alguna forma de eliminar el software o reducir significativamente su consumo de energía al reducir la velocidad del reloj?

Cómo usar _crc16_update (uint16_t crc, uint8_t a) para obtener el crc de mi programa en la memoria del programa

¿Cómo debo comenzar con la programación incrustada?

¿Existe material gratuito útil para el aprendizaje de sistemas integrados?

¿Existe una relación entre los sistemas integrados y el sistema de energía?

¿Cuáles son los mejores recursos (libros, cursos de video, etc.) para aprender la programación del Sistema Embebido? Ya conozco el desarrollo de escritorio (usando C ++ y C #).