Siemens ofrece ambos software integrado para automoción y ingeniería de software embebido soluciones. Siemens ha dejado de ofrecer software integrado independiente para SoC con la retirada en noviembre de 2023 de los productos Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux y Sourcery CodeBench (incluidos los complementos asociados). Los contratos de soporte existentes para estos productos aún se están cumpliendo. Póngase en contacto con Siemens Centro de soporte para más información.
¿Cuáles son los diferentes tipos de software embebido y sus propósitos?
- Sistema operativo: un sistema operativo (OS), en su sentido más general, es un software que permite al usuario ejecutar otras aplicaciones en un dispositivo informático. El sistema operativo administra los recursos de hardware de un procesador, incluidos los dispositivos de entrada como un teclado y un mouse, dispositivos de salida como pantallas o impresoras, conexiones de red y dispositivos de almacenamiento como discos duros y memoria. El sistema operativo también proporciona servicios para facilitar la ejecución y administración eficientes y las asignaciones de memoria para programas de aplicaciones de software.
- Firmware: el firmware es un tipo de software que se escribe directamente para una pieza de hardware. Funciona sin pasar por las APIs, el sistema operativo o los controladores de dispositivos, proporcionando las instrucciones y orientación necesarias para comunicarse con otros dispositivos o realizar tareas y funciones básicas según lo previsto.
- Middleware — Middleware es una capa de software situada entre las aplicaciones y los sistemas operativos. El middleware se usa a menudo en sistemas distribuidos donde simplifica el desarrollo de software al proporcionar lo siguiente:
- Ocultar las complejidades de las aplicaciones distribuidas
- Enmascarar la heterogeneidad de hardware, sistemas operativos y protocolos
- Proporcionar interfaces uniformes y de alto nivel utilizadas para hacer aplicaciones interoperables, reutilizables y portátiles.
- Brindar un conjunto de servicios comunes que minimiza la duplicación de esfuerzos y mejora la colaboración entre aplicaciones
- Aplicación: el usuario final desarrolla la aplicación de software final que se ejecuta en el sistema operativo, utiliza o interactúa con el middleware y el firmware, y es el foco principal de la función de destino de los sistemas integrados. Cada aplicación final es única, mientras que los sistemas operativos y el firmware pueden ser idénticos de un dispositivo a otro.
Software embebido frente a sistemas embebidos
Los componentes de hardware dentro de un dispositivo que ejecuta software integrado se denominan “sistema integrado”. Algunos ejemplos de componentes de hardware utilizados en sistemas integrados son circuitos de suministro de energía, unidades centrales de procesamiento, dispositivos de memoria flash, temporizadores y puertos de comunicación serie. Durante las primeras fases de diseño de un dispositivo, se decide el hardware que conformará el sistema integrado y su configuración dentro del dispositivo. Entonces, el software integrado se desarrolla desde cero para ejecutarse exclusivamente en ese hardware en esa configuración precisa. Esto hace que el diseño de software integrado sea un campo especializado que requiere un profundo conocimiento de las capacidades de hardware y programación de computadoras.
Ejemplos de funciones integradas basadas en software
Casi todos los dispositivos con placas de circuito y chips de computadora tienen estos componentes dispuestos en un sistema de software integrado. Como resultado, los sistemas de software integrados son omnipresentes en la vida cotidiana y se encuentran en toda la tecnología de consumo, industrial, automotriz, aeroespacial, médica, comercial, de telecomunicaciones y militar.
Los ejemplos comunes de características integradas basadas en software incluyen:
- Sistemas de procesamiento de imágenes encontrados en equipos de imágenes médicas
- Sistemas de control fly-by-wire encontrados en aeronaves
- Sistemas de detección de movimiento en cámaras de seguridad
- Sistemas de control de tráfico encontrados en los semáforos
- Sistemas de temporización y automatización encontrados en dispositivos domésticos inteligentes
¿Cuáles son los diferentes tipos de sistemas embebidos?
Cuando se basa en el rendimiento y los requisitos funcionales, hay cinco clases principales de sistemas integrados:
- Los sistemas integrados en tiempo real completan las tareas de manera determinista y repetible, lo que se ve afectado por la arquitectura y programación subyacentes de los sistemas operativos, así como por el rendimiento de los subprocesos, la ramificación y la latencia de interrupción. Los sistemas integrados de propósito general no contienen un requisito en tiempo real y pueden administrar interrupciones o ramificaciones sin depender de un tiempo de finalización. Las pantallas gráficas y la administración del teclado y el ratón son buenos ejemplos de sistemas generales.
- Los sistemas integrados independientes pueden completar tareas sin un sistema host o recursos de procesamiento externos. Pueden generar o recibir datos de dispositivos conectados, pero no dependen de ellos para completar su tarea.
- Los sistemas integrados independientes pueden completar su tarea sin un sistema host o recursos de procesamiento externos. Pueden generar o recibir datos de dispositivos conectados, pero no dependen de ellos para completar su tarea.
- Los sistemas embebidos en red dependen de una red conectada para realizar las tareas asignadas.
- Según la complejidad de la arquitectura de hardware del sistema, existen tres tipos principales de sistemas embebidos: Los sistemas embebidos en red dependen de una red conectada para realizar las tareas asignadas.
Cómo afectan los mercados finales a los sistemas embebidos
Los requisitos y componentes del sistema integrado diferirán según las demandas del mercado objetivo. Algunos ejemplos incluyen:
- Consumidor: en aplicaciones como bienes de consumo como lavadoras, dispositivos portátiles y teléfonos móviles, los sistemas integrados enfatizan el tamaño reducido del
- Sistema en chip, bajo consumo de energía o funcionamiento con batería e interfaces gráficas. En estas aplicaciones, se valoran los sistemas operativos configurables y la capacidad de cerrar “dominios” no operativos del diseño.
- Redes: aplicaciones que permiten la conectividad, la comunicación, las operaciones y la administración de una red empresarial. Proporciona la ruta de comunicación y los servicios entre usuarios, procesos, aplicaciones, servicios y redes externas/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 administración de planta de fábrica, motores y molinos de viento, el énfasis tiende a asegurar la conectividad en la nube y la operación determinista “en tiempo real” y puede centrarse en gran medida en el middleware.
- Medicina, automotriz y aeroespacial: estas industrias necesitan sistemas críticos de seguridad mixta, donde partes del diseño estén aisladas entre sí para garantizar que solo los datos necesarios entren o abandonen el sistema (seguridad), al tiempo que no se garantiza ningún daño al usuario final (seguridad). Algunos ejemplos son los sistemas de conducción autónoma en automóviles y dispositivos médicos. Estos sistemas integrados pueden incluir una combinación de código abierto (Linux) y sistemas operativos deterministas en tiempo real (RTOS) y utilizar ampliamente middleware probado.
¿Por qué el software integrado automotriz es diferente?
En la electrónica automotriz, se producen interacciones complejas en tiempo real a través de múltiples sistemas integrados en los que cada control funciona como frenado, dirección, suspensión, tren motriz, etc. La carcasa física que contiene cada sistema integrado se conoce como una unidad de control electrónico (ECU). Cada ECU y su software integrado son parte de una compleja arquitectura eléctrica conocida como sistema distribuido.
Al comunicarse entre sí, las ECU que componen el sistema distribuido de un vehículo pueden ejecutar una variedad de funciones, como frenado automático de emergencia, control de crucero adaptativo, control de estabilidad, faros adaptativos y mucho más. Una sola función podría necesitar interacciones a través de 20 o más aplicaciones de software integradas distribuidas en numerosas ECU conectadas por múltiples protocolos de red. Los algoritmos de control complejos 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 comunes de características basadas en aplicaciones de software automotriz incluyen:
- Características ADAS (Advanced Driver Assist Systems) como control de crucero adaptativo, frenado automático de emergencia, asistencia de mantenimiento de carriles, asistencia de tráfico, advertencias de salida de carriles
- Administración de la batería
- Compensación de par
- Control de velocidad de inyección de combustible
Pila de software de ECU
La unidad de control electrónico o ECU se compone de una unidad informática principal con hardware a nivel de chip y una pila de software integrado. Sin embargo, existe una tendencia creciente entre los fabricantes de automóviles a diseñar ECU con circuitos integrados complejos que contengan múltiples núcleos informáticos en un solo chip, lo que se conoce como un sistema en un chip (SoC). Estos SoC pueden alojar una multitud de abstracciones de ECU para consolidar el hardware. La pila de software para una ECU generalmente incluye una variedad de soluciones, desde firmware de bajo nivel hasta aplicaciones de software integradas de alto nivel.
Pila de ECU | Descripción |
Aplicación de software integrada | Algoritmos de control, procesamiento, servicios |
Marco de aplicación | Marcos de Security y protección |
Entorno operativo | AUTOSAR classic, AUTOSAR Adaptativo, Canales de entrada/salida |
Virtualizaciones integradas | Sistema operativo en tiempo real, abstracciones ECU |
Firmware | Cargadores de arranque, almacenamiento seguro, subprocesos seguro |
Hardware | Dispositivos basados en silicio, microcontroladores, placas de una o varias capas |