¿Qué hace un ingeniero de sistemas integrados?

Al igual que los ingenieros de software de escritorio, escriben código para resolver problemas e implementar sistemas.

A diferencia de los ingenieros de software de escritorio, a menudo necesitan:

– Trate con nuevo hardware / silicio, que puede tener errores. He trabajado en sistemas donde, debido a fallas de hardware, escribir un byte en la memoria y luego leerlo nuevamente me dio un valor diferente. Encuentra el problema, envíalo a los ingenieros de hardware y espera a que solucionen el problema.

– Haga rodar su propio sistema operativo, o al menos configure un sistema operativo para que se ajuste al diseño de hardware y al mapa de memoria de su sistema. Los ingenieros de software de escritorio esperan que se les proporcione un sistema operativo y no les preocupa cómo cobra vida ese sistema operativo o el mapa de memoria del hardware en el que se ejecuta. A menudo, estas son cosas que un ingeniero integrado debe atender, en algún nivel u otro. He tratado esto en diferentes niveles; una vez tuve la gran alegría de diseñar e implementar mi propio sistema operativo multitarea cooperativo para una placa personalizada para la que no existía ningún sistema operativo. Otras veces, solo se trata de configurar Linux embebido. En cualquier caso, necesitará conocer su hardware para hacer el trabajo correctamente.

– Preocuparse por los dispositivos. A veces, el hardware es nuevo o personalizado para el diseño. Otras veces, está listo para usar, pero no existe un controlador para su sistema operativo. En los sistemas de escritorio, el sistema operativo en sí proporciona el soporte necesario, pero es mucho más probable que necesite instalar el suyo en un sistema integrado, especialmente si el hardware es nuevo.

– Tratar con limitaciones de memoria / recursos. Los sistemas integrados pueden, y a menudo lo hacen, tener recursos limitados de memoria y CPU, debido a restricciones comerciales, o el entorno / empaque en el que deben implementarse. La fragmentación de la memoria puede ser un problema grave. Dependiendo del diseño / dispositivo, a veces se deben utilizar esquemas de asignación de memoria personalizados para reemplazar los proporcionados por el proveedor del compilador para hacer frente a estas restricciones.

– Preste mucha atención a los problemas de fiabilidad, seguridad y corrección. Los sistemas integrados utilizados en el sistema de frenos de su automóvil, o en los sistemas de aviónica Boeing 777, no pueden fallar, porque las vidas dependen de ello. Esto a menudo significa que los ingenieros integrados pasan por niveles de especificación, prueba / control de calidad, revisiones de código, etc., a los que normalmente no somete a los desarrolladores de aplicaciones de escritorio. Los sistemas pueden tener componentes redundantes que computan u obtienen resultados de forma independiente o leen sensores, y usan algunas heurísticas como votar para obtener un resultado final que se informa al resto del sistema.

– Observar las limitaciones en tiempo real. Los desarrolladores de sistemas integrados a menudo tienen restricciones más estrictas con respecto a la rapidez con que los sistemas que implementan responden a los eventos, o emiten comandos para activar los controles. A menudo, el comportamiento correcto y las vidas pueden depender de cumplir con estas limitaciones de tiempo. Mientras que la comunicación entre un cliente / servidor a través de TCP / IP se puede volver a intentar hasta que se complete con éxito con una latencia observada por parte del usuario, las aplicaciones integradas en tiempo real fallarían en circunstancias similares. Las comunicaciones no deben perderse y las latencias deben ser mínimas. Los comandos para hacer que los alerones de un Boeing 777 se muevan en respuesta al comando del piloto deben ser altamente sensibles a la entrada de los pilotos.

– Desarrollar una estrategia de depuración. En mi experiencia, el desarrollo y la depuración de sistemas embebidos pueden ser un desafío. En algunos casos, para mí, ha significado encender LED o voltear bits en la RAM de video para detectar que mi código ha alcanzado un cierto punto de ejecución. Muchas veces, lo primero que hará un desarrollador es hacer que funcione un controlador de puerto serie e implementar printf para que las declaraciones de registro / rastreo puedan emitirse a través del puerto serie. Más idealmente (y probablemente) un desarrollador integrado con uso de JTAG, emulación en circuito, Nexus u otro mecanismo proporcionado por el diseño de hardware / cadena de herramientas para depurar sistemas integrados.

Además del tradicional google y wikipedia, aquí está mi lista de los 10 mejores sitios web que debe visitar.

1) Intenta obtener acceso a la revista IEEE- Spectrum. Hazte miembro de IEEE.
http://spectrum.ieee.org/
2) Si quieres construir algo genial
http://www.instructables.com/ es uno de los mejores sitios web.
3) Una vez que empiezas a hacer algo,
http://stackoverflow.com/ se convertirá en tu mejor amigo.
4) Puedes encontrar algunas cosas interesantes aquí también
http://makezine.com/
5) https://hackaday.io/ Nuevamente para algunos proyectos geniales
6) https://www.edx.org/
https://www.coursera.org/
http://www.tutorialspoint.com/ Puede aprender algo nuevo dependiendo de su interés y obtener un certificado en caso de un curso universitario.
7) http://www.engineersgarage.com/ tiene muchos proyectos integrados de electrónica
8) https://www.sparkfun.com/ y http://www.arduino.cc/ Esto le ayuda con proyectos, componentes y un foro de ayuda.
9) http://www.circuitstoday.com/
10) http://www.mathworks.in Esto será de gran ayuda una vez que comience a trabajar en MATLAB. El foro de ayuda también es bastante bueno. También tiene muchas bibliotecas y ejemplos de código.

Como parte del equipo de Introducción de nuevos productos (NPI) en la industria, un ingeniero integrado participa en una de las siguientes actividades en cualquier momento:

Análisis de los requisitos del producto: esta es la fase en la que el equipo comprende exactamente qué producto nuevo se solicita. Cómo se diferencia del producto existente. Cuáles son el entorno operativo, las certificaciones, el cumplimiento normativo, el rendimiento, la confiabilidad, la vida útil del producto y los requisitos de costo.

Diseño conceptual: esta es la llamada “fase de planificación”. Aquí es donde los ingenieros hacen análisis y diseño en papel. Determine qué tecnología existente y qué componentes / subsistemas de los productos existentes pueden reutilizarse o ampliarse, y qué nueva tecnología, subsistemas y componentes son necesarios. Realice la validación de prueba de concepto del nuevo diseño. Por lo general, se esfuerza mucho para cumplir con los requisitos de costo / rendimiento / confiabilidad (a veces solicite y obtenga relajaciones en los requisitos). Al final de esta fase, ha surgido una comprensión justa del costo del programa y el cronograma.

Diseño detallado: Esta es la llamada “fase de implementación”. Aquí es donde el caucho se encuentra con el camino, y se implementa el diseño del papel. En general, pasamos de un diseño idealista a una implementación práctica con muchos compromisos y barriendo debajo de la alfombra. Los equipos utilizan, ágil, cascada, V u otros estilos de implementación y entrega de proyectos, pruebas unitarias, revisiones de código, análisis estático y dinámico, pruebas de banco, integración de sistemas, pruebas de integración, pruebas de subsistemas, etc. de acuerdo con la práctica prevaleciente en su organización

Validación: Esta es la llamada “fase de prueba final”. A menudo, este es un proceso excesivamente iterativo en el que el equipo de implementación entrega un sistema / subsistema totalmente realizado al equipo de ingeniería de prueba que debe certificar el cumplimiento del producto con los requisitos. Se descubren muchos errores, algunos fácilmente reproducidos y resueltos, algunos con bastante más dificultad. Algunos errores nunca se pueden reproducir, etc.

Pruebas de aceptación: a menudo los clientes exigen la realización de pruebas a gran escala con sus configuraciones para satisfacer el desempeño del producto / sistema de acuerdo con sus requisitos / satisfacción. Estos son ejercicios de ingeniería a gran escala que requieren la ejecución de cientos (si no miles) de intrincados casos de prueba y capturar / caracterizar el comportamiento / rendimiento del sistema. Esta es una actividad común que se realiza después del lanzamiento. A medida que pasa el tiempo y otras personas de la organización se familiarizan más con el sistema, esta tarea se descarga lentamente del equipo de NPI.

Soporte del ciclo de vida: esta es la etapa de soporte / extensión de la vida útil de un producto lanzado. Esto implica la depuración de problemas de campo, la confirmación de la resolución y el lanzamiento de hardware, firmware y software actualizados. Se realizan ejercicios de ingeniería (a veces grandes) para optimizar el costo, combatir la obsolescencia de las piezas o abordar las vulnerabilidades de ciberseguridad.

Los ingenieros de sistemas tienden a ser un especialista normal (eléctrico / mecánico, aeronáutico, etc.) con capacitación adicional.

Con los sistemas integrados, el rol es el mismo que el de la mayoría de los ingenieros de sistemas, usted es 20% arquitecto, 60% solucionador de problemas y 20% experto en la materia. En las cosas integradas, esto tiende a ser más acerca de alinear la visión de todos del sistema y determinar cuándo tiene que ocurrir un cambio.

Ejemplos serían el presupuesto de poder. Su sistema está por encima de su presupuesto de energía debido a que un chip ya no está disponible al costo correcto. Debe determinar si A) reduce un poco la energía en todas partes y se acerca a la tolerancia de algunos componentes. B) elimine una función para liberar parte de la asignación. C) Vuelva a trabajar todo el sistema alrededor de un chip diferente, D) cambie el presupuesto de energía o E) cambie el costo de la Lista de materiales.

Ninguna de estas son respuestas correctas o incorrectas, pero habrá una que sea más adecuada para la situación en cuestión. Los ingenieros de sistemas a menudo estarán involucrados ya que tienen una visión general

El objetivo principal de un ingeniero integrado es resolver problemas utilizando la electrónica integrada como una vía.

Por lo general, el trabajo de un ingeniero integrado depende del campo de aplicación. Los ingenieros integrados trabajan en una gran cantidad de verticales que van desde electrónica comercial de bajo rango hasta electrónica industrial de alto valor. Por lo general, su trabajo se enfoca en usar el conocimiento de Electrónica para implementar circuitos y escribir código en la mayoría de los casos. El objetivo final es lograr los resultados deseados utilizando las entradas requeridas / disponibles y manteniendo una utilización óptima de los recursos.

En términos de industria, su trabajo comienza con la conceptualización de la solución y la arquitectura del documento para probar el producto final. Entre varios pasos, como diseñar hardware, realizar pruebas con varias herramientas de simulación, ensamblar hardware para pruebas reales, escribir código para la plataforma, etc.

Después de haber trabajado en una gran cantidad de proyectos en este dominio, no existe una descripción particular del tipo de trabajo que debe realizar. Todo depende del subdominio o foco de interés donde decidas impulsar tu trabajo.

El ingeniero de sistemas integrados desarrolló los proyectos integrados en Chennai. Embedded System es un sistema de microcontrolador y microprocesador diseñado para realizar la tarea específica.

Embedded Engineer aclara las necesidades del cliente. Entiende la arquitectura de desarrollo de software. El ingeniero integrado trabaja los proyectos Emedded para todos los estudiantes y empresas. Proyectos integrados desarrollados con microcontrolador. Es uno de los mejores centros de proyectos integrados en Chennai. Sistema integrado que utiliza componentes de hardware y software de aplicación.

Los proyectos integrados en Chennai se desarrollan para estudiantes de ECE de último año en proyectos en tiempo real. El ingeniero calificado trabaja en un microcontrolador.

1. Muy bien Conocimiento en el Programa C.

2. Siempre escuchan el tamaño, el poder.

3. Son los mejores en interfaz de microprocesador.

Por encima de las habilidades, el ingeniero integrado trabaja en el microcontrolador. También hay diferentes tipos de ingenieros integrados. Son ingeniero de aplicaciones integradas, ingeniero de redes integradas.

Gracias por el A2A.

Tomaría la respuesta de Ajay Koliwad y también creo que la respuesta de Ben Gamble tiene un buen punto. Solo quiero agregar un punto más aquí. ” Sistema ” en el título de ingeniero de sistemas integrados, para mí, es como lo que decimos “Sistema” en SoC (System-on-Chip) que es utilizado por casi todos los sistemas integrados. Eso significa que tanto el hardware como el software son esenciales y críticos en el sistema embebido. La responsabilidad de los ingenieros de sistemas integrados debe cubrir tanto el software como el hardware, aunque un ingeniero de sistemas en particular puede centrarse más en el software o el hardware, pero no rara vez puede ser un verdadero experto en ambos. Mi 2c.

Agregaría a lo siguiente que existe una necesidad emergente de ingenieros integrados que puedan hacer codiseño y verificación conjunta de hardware / software. Dichos ingenieros necesitan tener habilidades que abarquen la pila de hardware / software.

Además, existe una gran necesidad de automatización del diseño de sistemas integrados, gracias al paradigma “Más que a Moore” y la creciente realización de la “Internet de las cosas”.

Conocer cosas como el particionamiento de hardware / software, la automatización del diseño de los procesadores de conjuntos de instrucciones (ASIP) específicos de la aplicación, la síntesis de conjuntos de instrucciones (ISS) y similares serán útiles.

Además, modelando sistemas embebidos a nivel de sistema (nivel de sistema electrónico, ESL), típicamente con SystemC-TLM (TLM basado en SystemC). Aquí, TLM se refiere al modelado a nivel de transacción.

La parte central es la programación en C a nivel profesional. No es que escribas tantas líneas de código malo que de alguna manera logra la funcionalidad. Si haces esto, fracasarás a largo plazo.

El trabajo varía según la empresa que elija para trabajar. Pocas tareas comunes incluyen,

  • Diseño de software
  • Codificación en scripts de shell C, C ++, Python, Linux Bash
  • Desarrollando controladores de dispositivos
  • Programación de software de aplicación
  • Cambios en el código del kernel de Linux
  • RTOS personalización y portabilidad
  • Construcción cruzada e implementación de paquetes
  • Nivel de módulo y pruebas de integración
  • Lectura de hojas de datos de SoC o cualquier otro equipo electrónico destinado a ser utilizado en el proyecto
  • Documentación de diseño de software
  • Participación en el lanzamiento del software

Los ingenieros de sistemas integrados desarrollan software específico para una aplicación de hardware. Mientras que algunos cruzan la línea para desarrollar el hardware, la mayoría toma el hardware como está configurado y construye una pila de software sobre él tan alto como el usuario lo necesita. Normalmente se espera que optimicen para una baja latencia y fiabilidad. A menudo trabajan en industrias donde enviar un parche de software es mucho más difícil o no es una opción en absoluto. Se espera que otros (particularmente si tocan el diseño de hardware) se optimicen para requisitos de baja potencia, recursos mínimos de procesamiento / almacenamiento y costos de fabricación mínimos.

La ingeniería de sistemas integrados puede ser muy divertida si tienes mucha paciencia y habilidades para resolver problemas, también si eres una persona muy meticulosa.
En general, este tipo de ingenieros a veces trabajan a nivel de máquina desnuda en microcontroladores o en un nivel bajo (casi siempre en C o C ++) sobre un RTOS o un sistema operativo incorporado (Linux, Android) pero para fines específicos (servicios, controladores, componentes de funciones específicas).
Además, un ingeniero integrado podría trabajar con hojas de datos, interpretación y diseño de hardware (HW) e incluso pruebas y retrabajo de HW.

A medida que los sistemas integrados se hicieron más grandes y complejos, millones de líneas de código ahora se entregan con dispositivos, los conjuntos de habilidades integradas se dividieron por disciplina: desarrollador de hardware, desarrollador de firmware, desarrollador de software.

Para obtener más información sobre Embedded System, puede visitar i3indya Technologies

Culpar al diseño del hardware por la mayoría de los problemas, y si manejó el hardware y el firmware, intentar y no encontrar un problema con el hardware o el firmware, y culpar al usuario / cliente por el problema en voz baja.

He escrito sobre las diferencias entre el Ingeniero de software incorporado y el Desarrollador de software aquí en este enlace: https://www.linkedin.com/pulse/5… . Espero que esto ayude.

A menudo inventan el diseño del hardware, alguien tiene que … lo mejor si puedes hacer eso también … y es simplemente muy divertido y el logro se siente genial. Necesitamos más de tí…

A menudo solucionamos problemas que los ingenieros de hardware no sabían, que no pueden solucionar o que es demasiado costoso hacer girar la placa.

More Interesting

¿Cuáles son algunos viejos trabajos olvidados que han perdido su importancia en el mundo de hoy?

¿Cómo son las perspectivas laborales para los estudiantes indios que han estudiado una maestría en Alemania?

¿La programación o las redes son mejores en el mercado ahora?

Cómo buscar un trabajo como especialista en gestión de riesgos

¿Es posible renunciar a TCS después de 1 año durante un LWP de dos años (con fines educativos) y aún así obtener un certificado de experiencia por toda mi experiencia laboral previa (he trabajado dos años en TCS)?

¿Qué tipo de trabajos solo requieren hombres o solo mujeres?

¿Cuáles son sus comentarios sobre UrbanClap en Pune?

¿Cuáles son las mejores prácticas para probar los trabajos de Apache Spark?

¿Vale la pena obtener una maestría en derecho corporativo y un doctorado en derecho?

¿Cuál es la diferencia entre trabajar en un rol de back-end (tecnología versus operaciones) versus front-end para un banco de inversión y que tiene mejores oportunidades de desarrollo profesional?

Admisiones a la escuela de posgrado: ¿Cómo es el Certificado de Gestión de la Construcción en la UCLA? ¿Vale la pena el precio? ¿Cómo se ve en el mercado laboral?

¿Es difícil conseguir un trabajo como programador de Java sin un título de CS?

¿Por qué las empresas de TI no contratan graduados de BSC?

¿Cuáles son las habilidades necesarias para conseguir un trabajo en IBM?

Estoy persiguiendo mi último año en ingeniería de TI. He recibido ofertas de trabajo de Infosys y HSBC GLT. ¿Qué opto por la seguridad laboral y el crecimiento profesional?