Siemens brinda soluciones de software integrado de automoción y software integrado de ingeniería. Siemens ha dejado de ofrecer software integrado independiente para SoC. En noviembre de 2023, retiró los productos Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux y Sourcery CodeBench (incluidos los complementos asociados). Los contratos de asistencia en vigor de estos productos se siguen cumpliendo. Ponte en contacto con el Centro de Asistencia Técnica de Siemens para obtener más información.
¿Qué clases de software integrado hay y cuáles son sus propósitos?
- Sistema operativo: en el sentido más genérico, un sistema operativo (SO) es software que permite a un usuario ejecutar otras aplicaciones en un dispositivo informático. El sistema operativo gestiona los recursos de hardware de un procesador; por ejemplo, los dispositivos de entrada, como el teclado y el ratón, los dispositivos de salida, como las pantallas o las impresoras y las conexiones de red, y los dispositivos de almacenamiento, como los discos duros y la memoria. También proporciona servicios para facilitar la ejecución y gestión eficientes, así como la asignación de memoria para los programas de software.
- Firmware: tipo de software que se escribe directamente para hardware. Funciona sin pasar por las APIs, el sistema operativo ni los controladores de dispositivos. Proporciona las instrucciones y la orientación necesarias para comunicarse con otros dispositivos, o para ejecutar tareas y funciones básicas según lo previsto.
- Middleware: capa de software situada entre aplicaciones y sistemas operativos. Suele utilizarse en sistemas distribuidos, en los que simplifica el desarrollo de software al proporcionar lo siguiente:
- Oculta los entresijos de las aplicaciones distribuidas
- Enmascara la heterogeneidad del hardware, los sistemas operativos y los protocolos
- Brinda interfaces uniformes y de alto nivel que sirven para hacer aplicaciones interoperables, reutilizables y portables.
- Ofrece un conjunto de servicios comunes que minimicen la duplicación de esfuerzos y mejoren la colaboración entre aplicaciones
- Aplicación: el usuario desarrolla la aplicación de software que se ejecuta en el sistema operativo, utiliza o interactúa con el middleware y el firmware. Es el foco principal de la función objetivo de los sistemas integrados. Cada aplicación es única; por su parte, los sistemas operativos y el firmware pueden ser idénticos entre dispositivos.
Software integrado frente a sistemas integrados
Los componentes de hardware de un dispositivo que ejecuta software integrado se denominan sistemas integrados. Algunos ejemplos de componentes de hardware utilizados en los sistemas integrados son los circuitos de alimentación, las unidades centrales de procesamiento, los dispositivos de memoria flash, los temporizadores y los puertos de comunicación serie. En las primeras fases de diseño de un dispositivo, se decide el hardware que compondrá el sistema integrado y su configuración dentro del dispositivo. A continuación, el software integrado se desarrolla desde cero para que funcione exclusivamente en ese hardware con esa configuración precisa. Por eso, el diseño de software integrado es un ámbito especializado que requiere profundos conocimientos de funcionalidades de hardware y de programación.
Ejemplos de funciones basadas en software integrado
Casi todos los dispositivos con placas de circuitos y chips tienen estos componentes organizados en un sistema de software integrado. En consecuencia, los sistemas de software integrado son omnipresentes en la vida cotidiana. Se encuentran en la tecnología de consumo, industrial, automovilística, aeroespacial, médica, comercial, telecomunicaciones y militar.
Ejemplos habituales de funciones basadas en software integrado:
- Sistemas de procesamiento de imágenes en equipos médicos de diagnóstico por imagen
- Sistemas de control fly-by-wire en aeronaves
- Sistemas de detección de movimiento en cámaras de seguridad
- Sistemas de control del tráfico en semáforos
- Sistemas de temporización y automatización en dispositivos domésticos inteligentes
¿Qué clases de sistemas integrados hay?
Teniendo en cuenta requisitos funcionales y de rendimiento, existen cinco clases principales de sistemas integrados:
- Los sistemas integrados en tiempo real completan las tareas de forma determinista y repetible, lo que se ve afectado por la arquitectura subyacente y la programación de los sistemas operativos, así como por el rendimiento de los hilos, la ramificación y la latencia de interrupción. Los sistemas integrados de propósito general no contienen un requisito de tiempo real. Pueden gestionar interrupciones o bifurcaciones sin depender de un tiempo de finalización. Las pantallas gráficas y la gestión del teclado y el ratón son ejemplos válidos de sistemas generales.
- Los sistemas integrados autónomos pueden desempeñar tareas sin un sistema host ni recursos de procesamiento externos. Pueden generar o recibir datos de los dispositivos conectados, pero no dependen de ellos para completar su tarea.
- Los sistemas integrados autónomos pueden desempeñar su tarea sin un sistema host ni recursos de procesamiento externos. Pueden generar o recibir datos de los dispositivos conectados, pero no dependen de ellos para completar su tarea.
- Los sistemas integrados en red dependen de una red conectada para efectuar las tareas asignadas.
- Según la complejidad de la arquitectura hardware del sistema, hay tres tipos principales de sistemas integrados: Los sistemas integrados en red dependen de una red conectada para efectuar las tareas asignadas.
Cómo afectan los mercados a los sistemas integrados
Los requisitos y componentes de los sistemas integrados variarán según las exigencias de cada mercado. Estos son algunos ejemplos:
- Consumo: en aplicaciones como bienes de consumo, por ejemplo lavadoras, dispositivos de tecnología ponible y teléfonos móviles, los sistemas integrados hacen hincapié en el tamaño reducido del sistema en un chip, el bajo consumo, la operación de batería e interfaces gráficas
- Sistema en un chip, bajo consumo, operación de batería e interfaces gráficas. En estas aplicaciones, se valoran los sistemas operativos configurables y la capacidad de desconectar los dominios no operativos del diseño.
- Redes: aplicaciones que permiten la conectividad, la comunicación, las operaciones y la gestión de una red empresarial. Proporciona la vía de comunicación y los servicios entre usuarios, procesos, aplicaciones, servicios, redes externas e Internet. Las aplicaciones de red integradas se centran en la velocidad de respuesta, el procesamiento de paquetes y las rutas de hardware periférico.
- Industrial: para aplicaciones como la gestión de fábricas, motores y molinos de viento, se hace hincapié en la conectividad segura en la nube y el funcionamiento determinista en tiempo real, y puede centrarse mucho en middleware.
- Medicina, automoción y aeroespacial: estas industrias necesitan sistemas críticos de seguridad mixta en los que partes del diseño están aisladas entre sí para asegurar que solo entran o salen del sistema los datos necesarios (seguridad), al tiempo que se garantiza que no se perjudica al usuario final (seguridad). Por ejemplo, los sistemas de conducción autónoma en automóviles y dispositivos médicos. Estos sistemas integrados pueden presentar una combinación de sistemas operativos en tiempo real deterministas (RTOS) y de código abierto (Linux), y utilizar en gran medida middleware de solvencia contrastada.
¿Por qué es diferente el software integrado de automoción?
En la electrónica de la automoción, se producen complejas interacciones en tiempo real entre varios sistemas integrados que controlan funciones, como el frenado, la dirección, la suspensión, la motopropulsión, etc. La carcasa que contiene cada sistema integrado se denomina unidad de control electrónico (ECU). Cada ECU y su software integrado forman parte de una arquitectura eléctrica compleja conocida como sistema distribuido.
Al comunicarse entre sí, las ECUs que componen el sistema distribuido de un vehículo pueden ejecutar diversas funciones, como el frenado automático de emergencia, el control de crucero adaptativo, el control de estabilidad, los faros adaptativos y mucho más. Una sola función puede necesitar interacciones entre 20 o más aplicaciones de software integrado y distribuido en numerosas ECUs conectadas por diferentes protocolos de red. Los complejos algoritmos de control implementados con el software integrado garantizan la sincronización adecuada de las funciones, las entradas y salidas necesarias y la seguridad de los datos.
Ejemplos habituales de funciones basadas en aplicaciones de software para la industria de la automoción:
- Funciones de sistemas avanzados de asistencia al conductor (ADAS) como control de crucero adaptativo, frenado automático de emergencia, asistencia para mantenerse en el carril, asistencia de tráfico, avisos de cambio involuntario de carril
- Gestión de baterías
- Compensación del par de torsión
- Control de la tasa de inyección de combustible
Pila de software de ECU
La unidad de control electrónico o ECU se compone de una unidad de cálculo principal con hardware de chip y una pila de software integrado. Sin embargo, los fabricantes de automóviles tienden cada vez más a diseñar ECUs con complejos circuitos integrados que contienen varios núcleos de procesamiento en un solo chip o sistema en un chip (SoC). Estos SoCs pueden alojar muchas abstracciones de ECU para consolidar el hardware. La pila de software de una ECU suele incluir una serie de soluciones, desde firmware de bajo nivel hasta aplicaciones de software integrado de alto nivel.
Pila de ECU | Descripción |
Aplicación de software integrado | Algoritmos de control, procesamiento, servicios |
Marco de aplicación | Marcos de protección y seguridad |
Entorno operativo | AUTOSAR Classic, AUTOSAR Adaptive, canales de entradas/salidas |
Virtualizaciones integradas | SO en tiempo real, abstracciones de ECU |
Soporte lógico inalterable | Bootloaders, almacenamiento seguro, subprocesos seguros |
Hardware | Dispositivos basados en silicio, microcontroladores, placas de una o varias capas |