[Actualizado el 1 de junio 17]
Por “sistema embebido” normalmente queremos decir (pero no necesariamente) “sistema informático digital”.
Primero, es muy importante saber acerca de un malentendido común del término “sistema integrado”. Existe el significado literal y el significado típico de “sistema integrado (computación)”. La distinción entre ellos tiene un impacto importante en el práctica de la informática integrada, como veremos en esta respuesta, por lo que necesitamos un tutorial muy breve.
- Cómo leer una hoja de datos de manera efectiva en poco tiempo para que pueda comenzar a codificar fácilmente en un sistema integrado
- ¿Cuándo puedo decir que he dominado el lenguaje C para sistemas integrados?
- ¿Qué curso es mejor, sistemas integrados o PLC y SCADA?
- ¿Cómo funciona un sistema en chip (soc)?
- ¿Cuáles son las perspectivas de los sistemas integrados con respecto a la tendencia de la Industria 4.0?
El significado literal es exactamente lo que dice el término: un sistema informático que está incrustado en un sistema de aplicación. Un sistema “incrustado” es esencialmente un cuadro negro invisible que realiza alguna funcionalidad para el sistema de aplicación. Los usuarios del sistema de aplicación pueden conocer el sistema informático incorporado, pero no tienen visibilidad directa o control sobre él; hasta donde saben, la funcionalidad de la computadora integrada podría ser realizada teóricamente por relés o monos entrenados o incluso por arte de magia. Los usuarios del sistema de aplicación ven y usan la interfaz humana que les proporciona el sistema de aplicación. El significado literal es el caso general.
Muy a menudo, la funcionalidad de un sistema integrado incluye tanto el cálculo como la reacción. Genéricamente, se puede pensar que la funcionalidad realiza una combinación de control de circuito cerrado y de circuito abierto de dispositivos que son parte o exógenos del sistema de aplicación. Para bucles cerrados, la computadora integrada recibe datos y señales del sistema de aplicación y del entorno del sistema de aplicación, realiza algunos cálculos y envía datos y señales al sistema de aplicación y al entorno del sistema de aplicación. El funcionamiento de los bucles abiertos sigue evidentemente. Esto es similar a la interacción familiar entre una computadora de escritorio o portátil y los dispositivos dentro de ella (p. Ej., Unidades) y externos (p. Ej., Escáner, cámara). Claramente, en algunos casos, el usuario de la PC está involucrado en algún comportamiento reactivo, y en otros casos el usuario no lo está. Sin embargo, las computadoras independientes generalmente se consideran principalmente computacionales o transformacionales en lugar de reactivas.
En Quora se le preguntó cómo se relacionan los sistemas integrados con los sistemas en tiempo real. Mi respuesta se publica en otro lugar, pero aquí es suficiente para decir que el “sistema en tiempo real” no es tan “todo o nada” o “duro” frente a “suave” como se imagina popularmente: los sistemas son en tiempo real de varias maneras y grados — cf. Introducción a los principios fundamentales de los sistemas dinámicos en tiempo real. Muchos sistemas de aplicaciones incluyen funcionalidades y dispositivos que se consideran en tiempo real en el sentido habitual de que la corrección requiere la satisfacción de las restricciones sobre la oportunidad y la previsibilidad de la aplicación y, por lo tanto, sobre las interacciones reactivas del sistema integrado. Otros sistemas de aplicación con sistemas integrados tienen el objetivo diferente de un rendimiento máximo (por ejemplo, rendimiento, no inanición).
Una distinción importante entre un sistema embebido y uno no embebido es que los desarrolladores de hardware y software de sistemas embebidos generalmente necesitan (potencialmente bastante) comprensión sobre la funcionalidad y el diseño del sistema de aplicación, y de los dispositivos en los que está interactuando. con. De hecho, a menudo el hardware y el software del sistema embebido deben ser codiseñados con un bajo nivel de detalle (por lo general, el hardware y el software del sistema de aplicación son un hecho), lo que exige la educación y la experiencia de la ingeniería informática y de la informática.
Habiendo dicho todo esto, ¿cuál es el malentendido generalizado sobre los sistemas integrados? Es lo que no se dijo.
El significado típico de “sistema integrado” es un caso especial del significado literal. Agrega muchas suposiciones explícitas e incluso implícitas: sobre la computadora integrada, y sobre el sistema de aplicación y sobre los dispositivos del sistema de aplicación. En particular, el uso del término “sistema integrado” casi siempre supone incorrectamente que la computadora integrada es muy pequeña en tamaño / peso / potencia, que el software integrado es de tamaño pequeño y que el sistema de aplicación también es relativamente pequeña. y simple Esos supuestos a menudo son correctos, y todos pueden pensar inmediatamente en muchos ejemplos.
(Como una digresión parcial: se puede argumentar (y se argumenta) que un teléfono inteligente es un sistema de aplicación que tiene un sistema integrado y, por el contrario, que no es sino una computadora de mano como una computadora de escritorio o portátil. Lo dejo como una discusión de quórum, si aún no se ha cubierto adecuadamente).
El significado típico de “sistema embebido” pasa por alto el hecho de que pueden ser, y son, no solo a pequeña escala, sino de varias escalas en capacidades y tamaño / peso / consumo de energía, hasta supercomputadoras en tiempo real y distribuidas Sistemas en tiempo real que tienen nodos de diversas complejidades. Están integrados en sistemas de aplicación de varias escalas, incluidas las complejas muy grandes, por ejemplo, portaaviones, aviones jumbo militares. Tales sistemas de aplicación casi siempre incluyen múltiples sistemas integrados de diferentes escalas. La mayoría de los desarrolladores de sistemas embebidos no han estado expuestos o incluso han oído hablar de sistemas embebidos y sistemas de aplicaciones grandes y complejos en tiempo real.
Ese fondo era necesario para dar mi respuesta a la pregunta, porque mi experiencia y pericia en sistemas embebidos es principalmente en sentido literal, especialmente incluyendo los grandes, complejos y dinámicos en tiempo real. Esos son principalmente para sistemas de aplicación militar, que son los más desafiantes debido a su participación en el combate y la “niebla de guerra”. Además, es poco probable que dichos sistemas se mencionen en otras respuestas (que usarán el significado típico del sistema integrado) a la pregunta.
Un ejemplo real pero simplificado de la experiencia personal son los modernos radares multimodales de AESA en grandes aviones de vigilancia y grandes buques de guerra. Se puede esperar que tales radares tengan computadoras multiprocesador / multinúcleo integradas en el rango de precios multimillonarios, ejecutando líneas de software multimillonarias para controlar el radar y realizar la cadena de eliminación (seguimiento, participación, etc.) y consuman vastas cantidades de poder. Los usuarios de radar (a bordo y en tierra) ciertamente saben que hay una computadora integrada en su sistema de radar, pero no la ven ni la controlan directamente, ven las interfaces de usuario del sistema de aplicación (radar).
Otro ejemplo que conozco es acerca de los sistemas de aplicación para defensa de misiles balísticos y de crucero. Algunos de estos tienen sistemas embebidos en tiempo real que son supercomputadores de más de US $ millones, con los cuales los usuarios no interactúan directamente.
Probablemente se sorprenderá al saber que algunas de las compañías que fabrican computadoras integradas en tiempo real a gran escala están familiarizadas solo en contextos no integrados en tiempo no real (por ejemplo, HP, IBM). Probablemente no haya oído hablar de la mayoría de los demás (por ejemplo, Mercurio).