Sistemas empotrados: qué son, cómo funcionan y ejemplos

  • Un sistema empotrado integra hardware y software específicos para controlar o monitorizar procesos concretos, a menudo con requisitos de tiempo real.
  • Su arquitectura se basa en procesadores (MCU, MPU, DSP, SoC), memorias, módulos de E/S, reloj, alimentación, sensores, actuadores y comunicaciones.
  • Aplican en sectores como automoción, industria, medicina, consumo, transporte y energía, aportando precisión, fiabilidad, bajo coste y alto grado de automatización.
  • El desarrollo de sistemas embebidos exige competencias en electrónica digital, programación en C/C++, RTOS o Linux embebido y diseño orientado a requisitos industriales.

sistemas empotrados

En nuestro día a día convivimos con decenas de sistemas embebidos sin darnos cuenta: desde el coche y la lavadora hasta el cajero automático, el router de casa o un marcapasos. Todos ellos esconden uno o varios microprocesadores diseñados para una tarea muy concreta, lejos de la idea clásica de “ordenador” que tenemos en mente.

Detrás de esa aparente sencillez hay un mundo técnico enorme: microcontroladores, DSP, FPGAs, sistemas operativos de tiempo real, buses, sensores, actuadores y pilas de comunicaciones. Entender cómo encaja todo esto es clave para cualquier ingeniero de sistemas, automatización, robótica o electrónica que quiera diseñar productos eficientes, fiables y competitivos.

Qué es un sistema empotrado o embebido

Cuando hablamos de sistema empotrado (o embebido, integrado, incrustado) nos referimos a un sistema de computación diseñado para realizar una o unas pocas funciones muy específicas, integrado dentro de un equipo mayor (un coche, una máquina industrial, un electrodoméstico, un dispositivo médico, etc.).

En vez de un PC generalista, un sistema embebido combina hardware electrónico a medida (microprocesadores, microcontroladores, memorias, interfaces, sensores, actuadores) y un software muy optimizado para controlar o monitorizar un proceso concreto, a menudo bajo restricciones de tiempo real, consumo y coste.

En muchos casos el usuario ni siquiera es consciente de que hay un ordenador dentro: el “cerebro” queda oculto en una placa o módulo integrado, sin teclado ni ratón, quizá sólo con unos pocos botones, una pequeña pantalla LCD, leds o una interfaz web para configuración y diagnóstico.

Una parte importante de estos sistemas debe reaccionar dentro de plazos temporales estrictos; por eso, muchos son sistemas de tiempo real, donde no basta con hacer las cosas bien: hay que hacerlas a tiempo. Aquí es donde entran conceptos como sistemas de tiempo real blandos y duros, o el uso de RTOS específicos.

Arquitectura básica de un sistema electrónico empotrado

En el corazón de todo sistema embebido encontramos un elemento de procesamiento: microprocesador, microcontrolador, DSP o SoC. Alrededor de él se organiza el resto de bloques: memoria, módulos de entrada/salida, comunicaciones, reloj, fuente de alimentación, sensores y actuadores.

En un esquema típico, el procesador se conecta al resto de elementos mediante buses de sistema: bus de datos, bus de direcciones y bus de control. Sobre estos buses se intercambian instrucciones, datos y señales de sincronización entre la CPU, las memorias y los periféricos de E/S.

El subsistema de memoria almacena tanto el programa como los datos: código residente (a menudo en memoria no volátil) y datos de entrada, resultados intermedios y salidas. La memoria puede estar integrada en el propio chip (como en muchos microcontroladores) o localizada en chips externos conectados al bus.

La entrada y salida se organiza en forma de periféricos de E/S especializados: temporizadores, convertidores analógico-digital (ADC), digital-analógico (DAC), puertos serie (UART, SPI, I²C, CAN), interfaces USB, Ethernet, GPIO digitales, etc. Estos bloques permiten que el sistema interactúe con sensores, actuadores, redes y usuarios.

Es importante entender que la estructura funcional (CPU, memoria, E/S) no coincide siempre con la división física en chips o placas: un mismo circuito integrado puede contener CPU, memoria y periféricos, o contener sólo una parte de la funcionalidad. Lo que el diseñador ve son “subsistemas funcionales” que luego se materializan de formas muy variadas.

Elementos de hardware: CPU, memoria, E/S, reloj y energía

El bloque central es el procesador. Un microprocesador es una implementación en circuito integrado de la CPU de un ordenador: contiene la ALU, registros, unidad de control, cachés internas y, a menudo, otras funciones de soporte. Hoy solemos usar “procesador” y “microprocesador” casi como sinónimos.

Un microcontrolador (MCU) es un microprocesador con memoria y E/S integradas en el mismo chip. Suele incluir RAM, memoria de programa (Flash), temporizadores, ADC, DAC, interfaces de comunicación, PWM, etc. Por eso se le considera “un computador dedicado en un solo chip”, ideal para aplicaciones de control de bajo coste y recursos ajustados.

Entre ambos mundos están las soluciones tipo SoC y PC embebidos: fabricantes como STMicroelectronics (STPC), AMD (Geode), Motorola (ColdFire) o Intel integran CPU x86 u otras arquitecturas con controladores de memoria, gráficos básicos y E/S comunes para ofrecer plataformas compactas pensadas para sistemas embebidos.

La memoria se organiza típicamente en varios niveles: memoria principal (RAM) para código y datos en ejecución, memoria no volátil (Flash, ROM) para el firmware y, en el caso de PCs embebidos, cachés L1/L2 de alta velocidad, así como dispositivos de almacenamiento masivo (discos SSD, tarjetas Flash, etc.).

Un módulo clave es el generador de reloj, que suele partir de un oscilador principal (cristal de cuarzo o RC) y, mediante PLL, genera las distintas frecuencias necesarias. Los cristales de cuarzo destacan por su estabilidad y buen compromiso entre precisión y coste; los osciladores RC reducen consumo a costa de menor estabilidad.

Por último, el módulo de alimentación se encarga de obtener, a partir de una entrada de CA o CC, las tensiones y corrientes requeridas por cada parte del sistema. Aquí entran los convertidores AC/DC y DC/DC, reguladores lineales o conmutados, filtros y circuitos supervisores de tensión. En sistemas alimentados por batería, el consumo se convierte en un requisito de primer nivel.

Interfaces, sensores, actuadores y presentación

Para poder vigilar y controlar procesos físicos, un sistema embebido necesita entradas procedentes de sensores y salidas hacia actuadores. El módulo de E/S analógicas y digitales se encarga de digitalizar señales, leer estados lógicos y generar señales de mando.

Las entradas analógicas se capturan mediante convertidores ADC, que permiten medir temperatura, presión, tensión, corriente, posición, velocidad, etc. Las entradas digitales leen pulsadores, finales de carrera o señales de otros dispositivos. Las salidas digitales activan leds, relés o drivers de potencia.

Los actuadores pueden ser muy variados: motores eléctricos, relés, válvulas, elementos calefactores, etc. Una técnica muy habitual es usar salidas PWM (modulación por ancho de pulso) para controlar, por ejemplo, la velocidad de motores de corriente continua o la intensidad de una lámpara.

En cuanto a la interfaz con el usuario, el sistema puede contar con desde unos simples leds y botones hasta un subsistema de presentación más avanzado: pantallas gráficas, LCD alfanuméricas o pantallas táctiles para domótica. En otros casos, el “front-end” para el usuario es una interfaz web servida por el propio sistema embebido.

La conectividad juega un papel esencial: muchos sistemas necesitan comunicarse con otros equipos o con la red. Para ello se integran interfaces como RS-232, RS-485, SPI, I²C, CAN, USB, Ethernet/IP, Wi‑Fi, GSM/GPRS, DSRC, etc. Según la aplicación se optará por buses industriales, comunicaciones serie sencillas o redes IP completas.

Microprocesadores, microcontroladores, DSP, FPGA y SoC

Un microprocesador generalista se centra en ofrecer mucha potencia de cálculo, con cachés profundas, pipelines avanzados y posibilidad de ejecutar sistemas operativos complejos. Es la base de PCs embebidos, panel PCs y sistemas que requieren interfaces ricas o gran capacidad de proceso.

Un microcontrolador (MCU) sacrifica potencia bruta a cambio de integración y bajo consumo. Al incluir memoria, E/S, temporizadores, ADC, DAC y comunicaciones en un solo chip, simplifica enormemente el diseño de sistemas de control, sensores, pequeños robots, instrumentación y electrónica de consumo.

Los DSP (Digital Signal Processor) son procesadores optimizados para el tratamiento intensivo de señales digitales: audio, vídeo, radar, telecomunicaciones, etc. Su arquitectura está pensada para operaciones MAC (multiplicación-acumulación) rápidas, uso eficiente de memoria y pipelines muy ajustados a algoritmos de filtrado y transformada.

Las FPGAs representan otro enfoque: son matrices de bloques lógicos programables y recursos de interconexión que permiten implementar hardware “a medida” sin fabricar un chip específico. A través de lenguajes de descripción hardware (HDL) se definen los circuitos, y la FPGA se configura para emular procesadores, controladores, filtros digitales u otros bloques.

El término SoC (System-on-Chip) es amplio y suele usarse para describir chips que integran CPU (o varias), memoria, periféricos, controladores de comunicaciones, a veces bloques de FPGA o DSP, todo en un solo encapsulado. Muchos microcontroladores avanzados y procesadores de aplicaciones modernos podrían considerarse SoC, como algunas CPU RISC‑V comerciales.

Plataformas de desarrollo: Arduino, Raspberry Pi y kits

Para facilitar el diseño y la experimentación existen las placas de desarrollo o development kits. Se trata de placas que integran el microcontrolador, microprocesador o FPGA objetivo junto con los componentes necesarios para su funcionamiento y una serie de interfaces de prueba (conectores, leds, botones, sensores de ejemplo, etc.).

El ejemplo más popular de plataforma basada en microcontrolador es Arduino. A nivel hardware, una placa Arduino es básicamente un microcontrolador con todo lo necesario para funcionar: regulación de tensión, cristal u oscilador, pines accesibles y, en muchos modelos, interfaz USB integrada.

La gran fuerza de Arduino está en su ecosistema de software: proporciona un entorno de desarrollo (IDE) y una capa de abstracción que simplifica mucho el proceso de compilación, carga del firmware y acceso a periféricos. Esto ha hecho que miles de estudiantes, “makers” y profesionales lo adopten para prototipado rápido de sistemas embebidos.

Por otra parte, Raspberry Pi es un SBC (Single-Board Computer), es decir, un ordenador completo en una única placa: CPU potente, RAM, almacenamiento mediante tarjeta, conectividad de red, conectores USB, HDMI, etc. Suele ejecutar sistemas Linux (como Raspbian) y permite desarrollar aplicaciones que requieren más recursos de cómputo, interfaz gráfica o uso intensivo de redes.

En muchos proyectos se combinan ambos mundos: un microcontrolador sencillo para el control tiempo real de bajo nivel (lectura rápida de sensores, PWM para motores) y una Raspberry Pi u otro SBC para la capa de alto nivel (interfaz de usuario, comunicaciones IP, registro de datos, IA). FPGAs y otros kits de desarrollo completan el abanico de opciones según la complejidad de la aplicación.

Historia y evolución del software para sistemas empotrados

Los primeros sistemas empotrados, especialmente en comunicaciones (conmutadores electromecánicos en los años 60), ya introdujeron la idea de “sistemas de control mediante programa almacenado”: en lugar de cablear la lógica en hardware se trasladaba a un programa, lo que supuso un cambio radical en flexibilidad.

En aquella época las herramientas de desarrollo eran muy rudimentarias: escaseaban los compiladores de lenguajes de alto nivel y casi todo se hacía en ensamblador. Cada proyecto reescribía gran parte del software desde cero, con muy poca reutilización y prácticamente sin librerías estándar.

Hasta finales de los 70 no empezó a consolidarse la idea de crear librerías reutilizables y sistemas operativos específicos para embebidos. Sin embargo, muchos de esos sistemas OS estaban escritos en ensamblador y eran poco o nada portables: cuando cambiaba el microprocesador, había que reescribir el sistema operativo y las aplicaciones.

Con la llegada y madurez del lenguaje C se abrió la puerta a sistemas operativos eficientes, estables y portables. Linux es el ejemplo más evidente, pero no el único. A partir de los años 80 surgió una gran oferta de sistemas operativos para sistemas empotrados, tanto propietarios como abiertos.

Hoy encontramos desde RTOS ligeros (VxWorks, pSOS, Nucleus, FreeRTOS, µC/OS-II) hasta versiones embebidas de sistemas más grandes (Windows CE, QNX, Linux embebido). Muchos sistemas sencillos, no obstante, siguen sin usar sistema operativo, funcionando con un bucle principal estructurado con interrupciones.

Sistemas de tiempo real y RTOS

Un sistema de tiempo real es aquel que debe responder a eventos externos dentro de plazos temporales bien definidos. No se trata únicamente de “ser rápido”, sino de garantizar que ciertas operaciones ocurran antes de un instante límite conocido.

Se distinguen tradicionalmente dos categorías: tiempo real blando y tiempo real duro. En un sistema blando, perder ocasionalmente una fecha límite puede degradar el rendimiento (por ejemplo, un pequeño retardo en el sonido de un ordenador). En un sistema duro, incumplir un plazo puede provocar un fallo crítico o consecuencias graves (como el control de vuelo de un avión o un sistema de frenado).

A medida que la complejidad del software crece, mantener esta temporalidad con un simple bucle de control se vuelve intratable. Por eso, en sistemas complejos se recurre a un sistema operativo de tiempo real (RTOS) que proporciona planificación de tareas, gestión de interrupciones, colas, semáforos, temporizadores y otros servicios.

Un RTOS facilita la ejecución concurrente de múltiples tareas (lectura de sensores, comunicaciones, interfaz de usuario, registro de datos, etc.) cumpliendo restricciones temporales estrictas. Además, muchos RTOS integran pilas de comunicaciones (TCP/IP, CANopen, Modbus, etc.) que simplifican la incorporación de redes.

Linux embebido ocupa un lugar especial: utiliza el mismo kernel de Linux pero ajustado, recortado y optimizado para ejecutarse en dispositivos con recursos limitados. Dependiendo del caso, puede complementarse con extensiones de tiempo real o utilizarse en aplicaciones donde la temporalidad no sea tan crítica.

Clasificación de los sistemas embebidos

Podemos clasificar los sistemas empotrados de varias maneras. Una de las más extendidas los agrupa en función de su desempeño y requisitos funcionales en:

Por un lado tenemos los sistemas embebidos en tiempo real, que ya hemos comentado, y que pueden ser blandos o duros según la importancia de cumplir exactamente los plazos. Ejemplo de sistema blando sería el sistema de audio de un PC; ejemplo de sistema duro, el control de vuelo de una aeronave.

También existen los sistemas embebidos independientes, que no necesitan un ordenador anfitrión para cumplir su función. Son autónomos y realizan su tarea con su propia CPU, memoria y E/S: un horno microondas, una lavadora o una consola de videojuegos son buenos ejemplos.

Los sistemas embebidos en red se conectan a una red cableada o inalámbrica (LAN, WAN, Wi‑Fi, redes móviles) para interactuar con otros equipos o servicios. Ejemplos típicos son cajeros automáticos, sistemas de seguridad doméstica conectados o máquinas expendedoras inteligentes.

Por último, están los sistemas embebidos móviles, pequeños, portátiles y pensados para acompañar al usuario: cámaras digitales, teléfonos móviles, relojes inteligentes, pulseras de actividad, etc. Suelen estar muy restringidos en memoria y consumo, pero deben ofrecer interfaces amigables y conectividad.

Ejemplos de aplicaciones reales

La lista de ejemplos reales es prácticamente interminable, pero conviene repasar algunos tipos representativos para ver cómo los sistemas embebidos impactan en tantas facetas de la vida moderna.

En el ámbito doméstico, sistemas de calefacción central utilizan controladores empotrados para regular temperatura mediante termostatos inteligentes, actuando sobre calderas, bombas o válvulas. Esto permite confort, ahorro energético y control remoto.

El posicionamiento GPS integra un receptor con un sistema embebido que procesa las señales de satélites, calcula posición, velocidad y tiempo, y presenta la información en navegadores de coche, móviles o dispositivos de mano.

Los dispositivos médicos son otro campo clave: marcapasos, desfibriladores implantables, bombas de insulina o monitores de constantes vitales utilizan sistemas embebidos para procesar datos de sensores, tomar decisiones críticas y, en muchos casos, enviar la información a la nube para supervisión remota.

En automoción, casi todo el vehículo está gobernado por controladores: unidad de gestión del motor, sistemas ABS, control de tracción, airbag, dirección asistida, sistemas de entretenimiento, navegación, ayuda a la conducción (ADAS), etc. Un coche moderno puede albergar decenas o incluso más de un centenar de microcontroladores.

En transporte público encontramos sistemas de cobro automático de tarifas (AFC) con máquinas expendedoras, validadores, tornos de acceso y tarjetas inteligentes. Cada elemento integra uno o varios sistemas embebidos que gestionan pagos, validaciones, comunicaciones con el backend y seguridad de datos.

Los cajeros automáticos (ATM) combinan un PC embebido conectado a la red del banco con módulos específicos de lectura de tarjetas, teclado seguro, dispensador y receptor de efectivo. El sistema embebido gestiona la interacción con el usuario y el hardware, mientras el servidor bancario valida y registra las operaciones.

En la industria, los robots de fábrica emplean controladores integrados que coordinan actuadores, sensores de posición, sistemas de visión y comunicaciones con otros elementos de la planta. Deben ser rápidos, precisos y seguros, y cada vez integran más algoritmos de IA y aprendizaje automático.

Otro ejemplo actual son las estaciones de recarga para vehículos eléctricos, que incorporan controladores para gestionar la carga, interactuar con el vehículo, mostrar información en pantallas, comunicarse con plataformas de gestión y reportar fallos o necesidades de mantenimiento.

Por último, los kioscos interactivos y máquinas de autoservicio (en aeropuertos, centros comerciales, hospitales, administraciones públicas, etc.) integran PCs embebidos o SoC avanzados que gestionan pantallas táctiles, sistemas de pago, impresoras de tickets y comunicaciones de red para ofrecer servicios 24/7.

Importancia industrial y ventajas de los sistemas embebidos

En el entorno industrial, los sistemas empotrados son la base de automatización, monitorización y control de procesos. Permiten gestionar líneas de producción, hornos, motores, robots, sistemas de empaquetado, logística interna y un largo etcétera.

Frente a soluciones más genéricas, un sistema embebido bien diseñado ofrece ejecución de tareas de control y automatización con gran precisión, tiempos de respuesta muy ajustados y una enorme fiabilidad, al centrarse en una función bien acotada.

Trabajar con hardware dedicado y software optimizado implica que se pueden resolver problemas mediante algoritmos específicos, explotando al máximo las capacidades del procesador, la arquitectura de memoria y los periféricos disponibles.

Además, estos sistemas suelen ser más económicos y compactos que montar un PC convencional y periféricos genéricos: al eliminar ranuras de expansión innecesarias y ajustar el hardware sólo a lo que la aplicación necesita, se reducen tamaño, coste y consumo.

El diseño modular y la alta conectividad permiten que una planta industrial interconecte múltiples dispositivos embebidos, creando redes de sensores, actuadores y controladores que facilitan la supervisión en tiempo real, la trazabilidad y el mantenimiento predictivo.

Formación y competencias en sistemas empotrados

Dado su peso en la industria y en la tecnología actual, numerosos másteres y asignaturas universitarias están dedicados a sistemas empotrados. Su objetivo es que el futuro ingeniero no sólo programe, sino que entienda de forma integral hardware, software, comunicaciones y criterios de diseño.

En estos programas se abordan bloques como: introducción a los sistemas empotrados, microcontroladores, procesadores digitales de señal (DSP) y SoC. Además se trabaja de manera práctica con simuladores, placas de desarrollo específicas (por ejemplo de Microchip), Arduino u otras plataformas.

Se espera que el estudiante desarrolle competencias como seleccionar el microcontrolador o DSP más adecuado para una aplicación, interpretar hojas de datos de fabricantes de semiconductores, diseñar esquemas electrónicos de tarjetas, manejar conversión A/D y D/A o aplicar técnicas de procesado digital de señales.

Metodológicamente, estas asignaturas suelen apoyarse en plataformas virtuales de aprendizaje, donde se publican materiales teóricos, guías de prácticas, enunciados de actividades y foros de tutoría. La evaluación se basa a menudo en actividades prácticas (PEC) y proyectos de diseño de un sistema embebido completo.

Los contenidos se completan con bibliografía especializada, acceso a colecciones de libros electrónicos (O’Reilly, Springer, Elsevier) y documentación técnica de fabricantes como Microchip, Texas Instruments, Arduino, Raspberry Pi o herramientas como Proteus y Matlab/Simulink.

Linux embebido y otras opciones de sistema operativo

Cuando la aplicación lo requiere, un sistema embebido puede ejecutar un sistema operativo más o menos completo. En el mundo de los RTOS están VxWorks, QNX, Nucleus, pSOS, FreeRTOS y otros, pensados para control fino de tiempo real.

En otras situaciones interesa usar Linux embebido, que no es otra cosa que una instancia de Linux adaptada a recursos limitados: se recortan servicios, se ajusta el kernel y se incluyen sólo los componentes imprescindibles para el dispositivo objetivo.

Linux embebido mantiene el mismo núcleo que un Linux de escritorio, pero con tamaño reducido, menor consumo de CPU y memoria y un conjunto de funciones adaptado a la aplicación. Habitualmente se construyen imágenes personalizadas que incluyen exactamente los drivers, librerías y aplicaciones que se necesitan.

La ventaja principal es que el software es reutilizable entre plataformas: aunque cambie el hardware subyacente, gran parte del código puede portarse con cambios menores. Esto contrasta con los primeros sistemas basados en ensamblador, donde el fin de vida del micro suponía reescribirlo todo.

En paralelo, siguen existiendo sistemas sin OS dedicados, especialmente en microcontroladores pequeños, donde un lazo principal bien estructurado y algunas interrupciones controlan la totalidad del sistema con un coste y complejidad mínimos.

Desarrollo de software embebido y perfiles profesionales

Los desarrolladores de software para sistemas embebidos trabajan muy cerca del hardware: configuran registros de periféricos, optimizan rutinas críticas, gestionan interrupciones y, en muchos casos, se preocupan de consumos, gestión de energía y arranque de bajo nivel.

Históricamente el lenguaje rey ha sido C, complementado por ensamblador en las partes más críticas. Con el tiempo, C++ ha ganado presencia gracias a su capacidad de modularizar y reutilizar, siempre que se use de forma controlada para no disparar el consumo de recursos.

Curiosamente, incluso lenguajes más “altos” como Python o JavaScript han ido encontrando su hueco en determinados entornos embebidos, sobre todo cuando se ejecutan sobre Linux embebido o SBCs con más recursos, y cuando interesa acelerar el desarrollo por encima de la máxima optimización.

El trabajo habitual incluye desde drivers de dispositivos y capas de abstracción de hardware hasta protocolos de comunicación, algoritmos de control, interfaces de usuario y lógica de aplicación. La calidad del diseño marca la diferencia en robustez, mantenibilidad y capacidad de evolución del producto.

Muchas empresas optan por externalizar parte del desarrollo de software embebido a equipos especializados en C/C++, RTOS, Linux embebido y plataformas concretas, especialmente cuando no disponen de ese know-how internamente o cuando los plazos son muy ajustados.

A la vista de todo lo anterior, se entiende que los sistemas embebidos son la columna vertebral invisible de la tecnología moderna: combinan hardware específico, software optimizado, comunicaciones y control en tiempo real para dar vida a productos seguros, eficientes y accesibles, y representan un campo profesional con enorme proyección para quienes dominen tanto la electrónica como la programación de bajo nivel.

rtos pcb embebido
Artículo relacionado:
RTOS: qué es un sistema operativo de tiempo real