Saltar la navegación

2. Sistemas embebidos

 

Un sistema embebido (empotrado o embarcado) es un hardware (con su software asociado) diseñado específicamente para llevar a cabo una o varias funciones concretas, y que incluye los elementos básicos de cualquier computador (entrada, salida, procesador y memoria), aunque externamente este sistema pase desapercibido. Una lavadora automática de ropa incluye internamente un sistema embebido, pero externamente no apreciamos que contenga un computador o sistema electrónico que monitoriza y controla todas sus funciones: el sistema embebido está oculto. 

Los ordenadores convencionales, como un computador personal o de sobremesa, están diseñados para poder ejecutar programas de aplicación muy diversos (crear y editar documentos, realizar una contabilidad, cálculo científico, editar fotografías, etc.) con el mismo hardware y sin más que cambiar el programa (la aplicación) a ejecutar. Un sistema embebido, sin embargo, es un computador de uso específico ya que está diseñado para realizar tareas concretas, por lo general en tiempo real.

Los sistemas embebidos controlan productos de electrónica de consumo o electrodomésticos u objetos tales como: televisores, videos, lavadoras, alarmas, apertura automática de la barrera de un parking, teléfonos inalámbricos, etc. Incluso un computador personal (PC) tiene sistemas embebidos en el monitor, impresora, y periféricos en general, adicionales al procesador del propio computador. Un automóvil puede tener hasta un centenar de sistemas embebidos que controlan el funcionamiento de la transmisión, tracción, ignición, dirección asistida, frenos antibloqueo (ABS), navegador, climatización, etc.

La denominación de “embebido” es motivada porque externamente no hay ninguna apariencia de que exista un computador: éste se encuentra incrustado o integrado en el sistema.

La mayoría de sistemas embebidos se utilizan para funciones de control, y con frecuencia se diseñan con objeto de interactúa continuamente con el entorno para monitorizar (vigilar) o controlar algún proceso del que captan información por medio de un conjunto de sensores.

Muchos sistemas embebidos son sistemas de tiempo real; es decir, deben responder, dentro de un intervalo preestablecido de tiempo, a eventos (sucesos) externos por medio de la ejecución de la tarea asociada con cada evento. Por ejemplo, en el sistema embebido de una lavadora de ropa hay un sensor de temperatura del agua, cuando ésta alcanza una determinada temperatura (evento) el sistema empotrado debe reaccionar dentro de un tiempo preestablecido dando la orden de desconexión de la resistencia de calentamiento del agua. 

Los sistemas embebidos se caracterizan por la necesidad de dispositivos de E/S especiales. Cuando se opta por diseñar el sistema embebidos partiendo de una placa con microcomputador también es necesario comprar o diseñar placas de E/S adicionales para cumplir con los requisitos de la aplicación concreta.

Como se ha comentado anteriormente el sistema embebido contiene todos los elementos constitutivos de un computador y tienen las siguientes peculiaridades:

Procesador

El procesador o CPU (Central Procesing Unit) es el elemento que posibilita la realización de computo del sistema. Son los circuitos integrados que efectúan las operaciones aritmético-lógicas de los algoritmos (Unidad Aritmético-Lógica, ALU) junto con los circuitos que controlan el funcionamiento de todo el sistema (ALU, memoria y E/S) y que constituyen la Unidad de Control (CU). Debido a la miniaturización de los circuitos, los procesadores actuales se integran completamente en un circuito integrado (chip) o en parte de él. Los procesadores integrados en un chip, debido a su reducido tamaño, se denominan microprocesadores. También hay circuitos integrados con una arquitectura especifica ideada para monitorización y control de procesos, que además del procesador incluyen memoria, temporizadores, gestión de E/S para datos tanto analógicos como digitales y canales para conexión a redes de comunicaciones o a otros dispositivos (conexiones que se denominan buses de campo). Este tipo de circuitos se denominan microcontroladores. Otros circuitos integrados de gran interés usado en IoT son los procesadores digitales de señales (DSP, Digital Processing Unit) que implementan electrónicamente algoritmos básicos del ámbito de procesamiento de señales.do...

Memoria

Almacena, además de datos, las instrucciones que componen los programas y que cuando se ejecutan controlan el funcionamiento del sistema. Muchos de estos programas se encuentran en una parte permanente de la memoria que mantiene la información incluso cuando se desconecta el sistema. En la memoria también se guardan los datos, unos son permanentes y otros corresponden a valores captados de las entradas (sensores) pendientes de ser procesados, o a resultados parciales o finales pendientes de darse al exterior (órdenes para los actuadores, o información para el usuario a dar a través de la pantalla de salida).

Dispositivos de Entrada/Salida (E/S)

Aparte de poder utilizar dispositivos de E/S tradicionales (pantalla táctil, teclado, pantalla gráfica, etc.) suelen disponer de dispositivos más especializados, como los siguientes:

  • Sensores. Son dispositivos de entrada que detectan señales físicas y las transforman en señales eléctricas. Existen sensores que captan sonido, vibración, desplazamientos, proximidad de personas u objetos, velocidad, aceleración, flujo de un fluido, presión, etc.
  • Actuadores. Son dispositivos que transforman una señal eléctrica en una acción como conectar o desconectar eléctricamente un sistema (relé), producir un movimiento lineal o angular de un elemento (motor), generar una señal acústica (altavoz), abrir o cerrar una electroválvula (grifo que se abre o cierra de acuerdo con una señal eléctrica), etc.

Comunicaciones

Son fundamentales en los sistemas embebidos ya que permiten la interconexión con otros dispositivos cercanos (a través de cables, como buses de campo) o lejanos (inalámbricamente). Para lograr la mayor conectividad posible entre dispositivos de distinto tipo y fabricantes los puertos de comunicación que se suelen incluir pertenecen a algún estándar (RS-232, RS-485, SPI, I²C, CAN, USB, IP, Wi-Fi, GSM, GPRS, DSRC, etc.).

Fuente de alimentación

Los distintos circuitos del sistema embebido necesitan energía eléctrica para funcionar, y ésta se da en forma de tensión eléctrica continua (DC) o alterna (AC). La fuente de alimentación (o módulo de energía) tiene como objetivo generar los diferentes niveles de tensión que requieren los distintos elementos del sistema. En el diseño de algunos sistemas embebidos es fundamental que el consumo de energía sea reducido sobre todo cuando se alimentan con baterías, ya que cuando se gastan el sistema deja de funcionar y deben reemplazarse a tiempo.

Figura 2.5. Placa de desarrollo Arduino Leonardo para conexión de dispositivos IoT. La placa contiene un microcontrolador ATmega32U4, 20 terminales para entradas/salidas digitales y una conexión USB para comunicación con otros equipos informáticos. Fuente: [ ]
Figura 5. Placa de desarrollo Arduino Leonardo para conexión de dispositivos IoT. La placa contiene un microcontrolador ATmega32U4, 20 terminales para entradas/salidas digitales y una conexión USB para comunicación con otros equipos informáticos. Fuente: [7]


Los procesadores sólo pueden ejecutar directamente programas escritos en lenguaje máquina. Éste es extremadamente rudimentario y complejo de utilizar (entre otras cosas porque las instrucciones se dan con ceros y unos {0,1}, son “códigos máquina”), por lo que se han ideado otros lenguajes de programación más sencillos y que tienen en cuenta el tipo de algoritmos a programar. Para ejecutar un programa en uno de estos últimos lenguajes es necesario utilizar otro programa que se denomina traductor, que, como su nombre indica, traduce el programa realizado por el especialista en informática a lenguaje máquina. Una vez realizado el proceso de traducción, ya el procesador puede ejecutar directamente el programa en código máquina. Los sistemas embebidos (como cualquier otro sistema digital) puede programarse directamente en el lenguaje ensamblador (que es como el lenguaje máquina, pero que utiliza símbolos alfanuméricos en lugar de tan sólo ceros y unos) del microcontrolador o microprocesador incorporado sobre el mismo, o también, utilizando lenguajes como C o C++.

Un factor determinante del desarrollo explosivo de IoT ha sido el abaratamiento espectacular de los componentes electrónicos y del desarrollo de los sistemas embebidos, que pueden fabricarse en series de millones de unidades.

Para facilitar el desarrollo de prototipos de sistemas embebidos aplicables a muy distintos contextos, diferentes empresas han comercializado aplicaciones, tarjetas con los circuitos básicos que configuran el sistema embebido, etc. Entre estas plataformas de desarrollo se encuentran, por ejemplo: Arduino, Mbed, Raspberry Pi, y BeagleBone.