Sistema embebido

Un sistema embebido es un ordenador que se ha construido para resolver sólo unos pocos problemas muy específicos y que no es fácil de cambiar. La palabra incrustado significa que está integrado en el sistema. Es una parte permanente en un sistema más grande. Por lo general, no tiene el aspecto de un ordenador, a menudo no tiene teclado ni monitor ni ratón. Pero, como cualquier ordenador, tiene un procesador y un software, entrada y salida.

Por ejemplo, el controlador integrado en un ascensor le dice al motor que mueva el ascensor a diferentes plantas, en función de los botones que se pulsen. Un decodificador está integrado en un decodificador de televisión por satélite (llamado STB) para leer una señal de la antena parabólica y enviar algo que un televisor entienda. A menudo, este tipo de sistema debe hacer su trabajo en un tiempo determinado. Esto se llama computación en tiempo real. Si un descodificador se interrumpe para hacer otra tarea, verás una mala imagen en el televisor, por ejemplo. Un ordenador de propósito general suele tener pequeñas pausas mientras hace otra cosa, no es tiempo real.

Los sistemas embebidos controlan muchos de los dispositivos comunes que se utilizan hoy en día, como los lectores de tarjetas en las cerraduras de las puertas de los hoteles o varias cosas en un coche. Pueden controlar cosas pequeñas, como un reproductor de MP3 o una cámara digital, y cosas grandes, como sistemas de semáforos, aviones o líneas de montaje en una fábrica.

Imagen del interior de un módem/router ADSL. Un ejemplo moderno de sistema integrado. Las partes etiquetadas incluyen un microprocesador (4), una memoria RAM (6) y una memoria flash (7)Zoom
Imagen del interior de un módem/router ADSL. Un ejemplo moderno de sistema integrado. Las partes etiquetadas incluyen un microprocesador (4), una memoria RAM (6) y una memoria flash (7)

Ejemplos de sistemas empotrados

Los sistemas empotrados se utilizan en muchos tipos de dispositivos eléctricos, entre ellos:

  • Los sistemas de telecomunicaciones los utilizan para los teléfonos, la red de telefonía móvil y los routers wi-fi.
  • La electrónica de consumo incluye receptores de radiodifusión, reproductores de MP3, teléfonos móviles, consolas de videojuegos, cámaras digitales, reproductores de DVD, receptores GPS, sistemas de seguridad para el hogar e impresoras.
  • Los electrodomésticos, como los hornos microondas, las lavadoras, los sistemas de alarma antirrobo y los lavavajillas tienen sistemas integrados.
  • El transporte utiliza sistemas empotrados para todo, desde locomotoras para trenes, aviones y automóviles.
  • La industria utiliza motores eléctricos con controladores electrónicos, lectores de tarjetas y máquinas CNC que fabrican automáticamente piezas metálicas.
  • Dispositivos médicos como desfibriladores, lectores automáticos de presión arterial y bombas automáticas de insulina.
  • Dispositivos militares, como los walkie-talkies, los satélites y los sistemas de guiado de los misiles.

Características comunes

  • Los sistemas integrados están diseñados para realizar una tarea específica, a diferencia de los ordenadores de uso general.
  • No parece un ordenador: puede que no haya un monitor completo o un teclado.
  • Muchos sistemas empotrados deben ser capaces de hacer cosas en tiempo real, es decir, en poco tiempo (casi instantáneamente desde el punto de vista humano).
  • Muchos sistemas embebidos deben ser muy seguros y fiables, sobre todo para los dispositivos médicos o la aviónica que controla los aviones.
  • Arranca muy rápidamente. La gente no quiere esperar uno o dos minutos para que su coche se ponga en marcha o el equipo de emergencia se ponga en marcha.
  • Puede utilizar un sistema operativo especial (o a veces un sistema operativo casero muy pequeño) que ayuda a cumplir estos requisitos, llamado sistema operativo en tiempo real, o RTOS.
  • Las instrucciones de los programas escritos para los sistemas embebidos se denominan firmware, y se almacenan en memoria de sólo lectura o en chips de memoria flash. Funcionan con recursos de hardware limitados: poca memoria, teclado y/o pantalla pequeños o inexistentes.

Los sistemas integrados no siempre son dispositivos independientes. A veces están construidos como un conjunto, como las distintas partes de un coche: la radio, el control del acelerador, el control de la contaminación, etc. A veces pueden comunicarse con Internet o una red de telefonía móvil y pueden tener un lector USB u otras conexiones.

Interfaces de usuario

Los sistemas embebidos van desde la ausencia de interfaz de usuario -sólo el envío y la recepción de señales eléctricas- hasta una interfaz gráfica de usuario completa, como la de un ordenador moderno. A menudo tienen unos cuantos botones, una pequeña pantalla y algunos LED. Un sistema más complejo puede tener una pantalla táctil que permita cambiar el significado de los botones con cada pantalla, como en los teléfonos inteligentes.

Un ejemplo de interfaz de usuario con botones y una simple pantalla LCD.Zoom
Un ejemplo de interfaz de usuario con botones y una simple pantalla LCD.

Hardware

El hardware incluye los chips, los cables, las placas de circuitos, los botones y las pantallas.

CPUs

El chip más importante es la unidad central de procesamiento o CPU. Ésta ejecuta las instrucciones del software. Puede ser un microprocesador estándar o un microcontrolador. Los microcontroladores incluyen el microprocesador y equipos periféricos sencillos para que el sistema sea más pequeño y barato. Tienen menos flexibilidad porque esas partes no se pueden cambiar. Por lo general, estas partes incluyen la memoria Flash y el soporte para puertos serie, USB, etc.

A diferencia de un microprocesador para un ordenador de uso general, más grande y más rápido no siempre es mejor. Muchos procesadores integrados son muy pequeños. A veces se hace para ocupar menos espacio o consumir menos energía, otras para ser más baratos. Los ordenadores de uso general utilizan microprocesadores que leen palabras de 32 o 64 bits y funcionan a velocidades que se miden en GHz, pero los procesadores integrados suelen ser de 4 a 32 bits y funcionan a velocidades que se miden normalmente en decenas de MHz (cien veces más lentos). (Pero los programas también son más pequeños y no comprueban las cosas que no se utilizan).

Placas de ordenador listas para usar

Existen placas informáticas "preparadas" que pueden utilizarse en algunos sistemas empotrados. Suelen utilizar Windows CE, Linux, NetBSD o un sistema operativo en tiempo real integrado.

A veces puede ser más fácil utilizar una placa de circuito que ya está hecha. Éstas suelen compartir muchos componentes con los ordenadores de propósito general, pero son más pequeñas que las de un ordenador de propósito general. Placas como la VIA EPIA pueden ejecutar Microsoft Windows. La ventaja es que se ahorra algo de tiempo de ingeniería eléctrica y se pueden utilizar las mismas herramientas de desarrollo de software que se emplean para el desarrollo de software de tipo PC. Ejemplos de estos dispositivos integrados son los cajeros automáticos o las pantallas de los casinos. Esto funciona bien si los requisitos de tiempo real no son realmente estrictos (no importa mucho si un trabajo tarda ocho segundos en lugar de cinco, por ejemplo).

Soluciones ASIC y FPGA

Si el dispositivo tiene que ser muy pequeño o se va a vender en grandes cantidades ("gran volumen"), tiene sentido fabricar un chip personalizado o especializado que haga exactamente lo que se necesita. Se trata de un sistema en un chip (SoC) que contiene un sistema completo: procesador, unidad de coma flotante, caché de memoria e interfaces en un único circuito integrado. Los SoC pueden fabricarse como un circuito integrado específico para una aplicación (ASIC) o utilizando una matriz de puertas programable en campo (FPGA) que es programada por las personas que construyen el sistema integrado.

Periféricos

Los sistemas embebidos se comunican con el mundo exterior o con otros componentes mediante periféricos como:

  • Puertos serie: RS-232, RS-422, RS-485. Esto solía ser bastante común, con los conectores de 9 pines (o más grandes).
  • Interfaz de comunicación serie síncrona: I²C Circuito Integrado, I²S Sonido Integrado, SPI, MIcrowire, ...
  • Bus serie universal (USB).
  • Redes: Ethernet, Controller Area Network, LonWorks, ...
  • Entrada/salida discreta: Entrada/salida de propósito general (GPIO). Puede ser un solo cable con una señal de encendido/apagado. Se puede utilizar para un pequeño teclado, o para encender un LED.
  • Convertidores de analógico a digital/digital a analógico (ADC/DAC). Esto mide algo que cambia de intensidad, como un sensor de luz o un control de motor.
  • Depuración: JTAG, puerto ICSP, para ingenieros de software.
Soekris net4801, un sistema embebido destinado a aplicaciones de red.Zoom
Soekris net4801, un sistema embebido destinado a aplicaciones de red.

Software

Sistemas operativos

Los sistemas integrados no suelen necesitar un sistema operativo completo. Algunos utilizan sistemas operativos pequeños y sencillos especialmente construidos que se inician muy rápidamente, otros no necesitan ninguno. Los sistemas embebidos no se adaptan tan fácilmente, pero están construidos para realizar sus tareas de forma mucho más fiable. Como el hardware es más sencillo, también suele ser más barato de construir y funciona más rápido.

En cambio, un ordenador de uso general debe estar preparado para recibir nuevos controladores de dispositivos y software para ejecutar hardware que aún no conoce, como nuevas impresoras o discos duros. Necesita ejecutar diferentes programas de aplicación.

A medida que los sistemas embebidos se hacen más grandes, cosas que antes sólo estaban en los ordenadores de uso general o incluso en los mainframes se están convirtiendo en algo común en los sistemas embebidos. Esto incluye espacio de memoria protegido y entornos de programación abiertos como Linux, NetBSD, etc.

Algunos ejemplos de sistemas operativos, desde los más sencillos hasta los más complejos:

  • Bucle de control simple - Se utiliza un temporizador y un bucle para llamar repetidamente a diferentes subrutinas. Suele ser realizado por una sola persona para sistemas más pequeños.
  • controlado por interrupción - Las tareas se inician por diferentes tipos de eventos. El evento puede ser algo temporizado (cada diez segundos, por ejemplo) o por la pulsación de un botón o la recepción de datos.
  • multitarea no preventiva - Cada tarea tiene su turno para ejecutarse, y cuando termina llama a un planificador en el SO para ejecutar la siguiente tarea.
  • Multitarea preventiva o multihilo - Una tarea puede detenerse después de cierto tiempo para dejar que otra tarea se ejecute durante un tiempo. Ninguna tarea puede acaparar el sistema. En este nivel se considera que el sistema tiene un núcleo de "sistema operativo" y puede ejecutar tareas en paralelo. Este tipo de sistema operativo suele comprarse a una empresa que sólo trabaja con sistemas operativos integrados.

Los sistemas operativos en tiempo real incluyen productos como MicroC/OS-II, Green Hills INTEGRITY, QNX o VxWorks. A diferencia de MacOS o Windows 7, estos sistemas operativos no son muy conocidos por la mayoría de la gente. Pero se utilizan en muchos lugares donde el tiempo y la seguridad son muy importantes. La gente los utiliza a diario y no se da cuenta.

Ejemplos comunes de kernels más grandes son Embedded Linux y Windows CE. Aunque estos no tienen los límites de tiempo necesarios para un sistema de tiempo real estricto, son cada vez más comunes, especialmente para dispositivos más potentes como routers inalámbricos y GPS. Permiten la reutilización de código de dominio público para controladores de dispositivos, servidores web, cortafuegos y otros códigos. Los desarrolladores de software que se sientan más cómodos escribiendo aplicaciones para PC también encontrarán esto más familiar. Si es necesario, se puede utilizar una FPGA u otro hardware especial para cosas que necesitan límites de tiempo ajustados.

Herramientas

Al igual que el resto del software, los diseñadores de sistemas embebidos utilizan compiladores, ensambladores y depuradores para desarrollar software de sistemas embebidos. Sin embargo, también pueden utilizar algunas herramientas más específicas:

  • Para los sistemas que utilizan el procesamiento digital de señales, los desarrolladores pueden utilizar herramientas matemáticas como MATLAB, MathCad o Mathematica.
  • Se pueden utilizar compiladores y enlazadores personalizados para mejorar la optimización para el hardware concreto.
  • Un sistema empotrado puede tener su propio lenguaje o herramienta de diseño especial, o añadir mejoras a un lenguaje ya existente, como el que utiliza Basic Stamp.

Herramientas de depuración:

  • Un depurador en circuito (ICD), un dispositivo de hardware que se conecta al microprocesador a través de una interfaz JTAG. Esto inicia y detiene el microprocesador desde el exterior mientras se ejecuta el software. También permite leer la memoria y los registros, y almacenar el programa de software en la memoria.
  • Depuración externa mediante el registro o la salida del puerto serie para rastrear el funcionamiento mediante un monitor intermitente (printfs).
  • Depuración interactiva residente: si el sistema operativo lo admite, se trata de un intérprete de comandos en el procesador integrado que ejecuta los comandos tecleados por el desarrollador (Linux, por ejemplo).
  • Un emulador en circuito sustituye al microprocesador en la placa, proporcionando un control total sobre todo lo que el microprocesador podría hacer.
  • Un emulador completo simula todas las características del hardware, permitiendo controlar y modificar todo. El hardware no existe realmente, pero una versión ficticia del mismo (una máquina "virtual") está en un PC normal.
  • Comprobación de las líneas externas con un analizador lógico o un multímetro.

A menos que se restrinja a la depuración externa, el programador suele poder cargar y ejecutar el software a través de las herramientas, ver el código que se ejecuta en el procesador e iniciar o detener su funcionamiento. La vista del código puede ser como código ensamblador o código fuente. Algunos sistemas integrados (como VxWorks o Green Hills) tienen características especiales, como el seguimiento de cuánto espacio ocupa el software mientras se ejecuta, qué tareas se están ejecutando y cuándo suceden las cosas.

Dependiendo del tipo de sistema embebido que se haga, afectará a la forma en que se pueda depurar. Por ejemplo, depurar un sistema con un solo microprocesador es diferente a depurar un sistema en el que el procesamiento se realiza también en un periférico (DSP, FPGA, coprocesador).

Seguridad y fiabilidad

Los sistemas integrados suelen estar en máquinas de las que se espera que funcionen durante años sin errores y, en algunos casos, que se recuperen por sí solas si se produce un error. Esto significa que el software suele desarrollarse y probarse con más cuidado que el de los ordenadores personales, y se evitan las piezas mecánicas móviles poco fiables, como las unidades de disco y los ventiladores.

Lugares donde la seguridad y la fiabilidad son importantes:

  • Algunos sistemas no se pueden apagar de forma segura para repararlos, o es demasiado difícil hacerlo. Algunos ejemplos son los sistemas espaciales (satélites, rovers), los cables submarinos y los controles de las centrales nucleares.
  • El sistema podría matar a personas si falla, como los controles de los aviones, los controles de las fábricas de productos químicos, las señales de los trenes y los desfibriladores cardíacos.
  • El sistema perderá grandes cantidades de dinero si se apaga o si se comete un error: Interruptores telefónicos, controles de fábrica, cajas registradoras, cajeros automáticos.

Formas de recuperarse de los errores: tanto de los fallos de software, como las fugas de memoria, como de los errores blandos del hardware:

  • Temporizador de vigilancia que reinicia el sistema integrado si algo deja de funcionar.
  • Partes duplicadas, donde un sistema puede tomar el relevo si otro deja de funcionar.
  • Modos "limpios" de software que proporcionan una función parcial.
  • Programación consciente de la inmunidad

Páginas relacionadas

Preguntas y respuestas

P: ¿Qué es un sistema empotrado?


R: Un sistema empotrado es un ordenador construido para resolver problemas específicos y que no es fácil de modificar.

P: ¿En qué se diferencia un sistema integrado de un ordenador de uso general?


R: Un sistema integrado no suele tener teclado, monitor ni ratón y tiene funciones especializadas. Un ordenador de propósito general puede realizar una amplia gama de tareas.

P: ¿Cuáles son algunos ejemplos de sistemas integrados?


R: Algunos ejemplos de sistemas empotrados son los controladores de ascensores, los descodificadores, los lectores de tarjetas de las cerraduras de las puertas de los hoteles, los sistemas de semáforos, los aviones y las cadenas de montaje de las fábricas.

P: ¿Qué es la informática en tiempo real?


R: La informática en tiempo real es aquella en la que un sistema integrado debe completar su trabajo en un tiempo determinado. Si se interrumpe, puede causar problemas como una mala calidad de imagen en un televisor.

P: ¿Cuáles son los componentes de un sistema integrado?


R: Como cualquier ordenador, un sistema integrado tiene un procesador, un software, una entrada y una salida.

P: ¿Cuáles son algunas de las tareas que puede controlar un sistema integrado?


R: Un sistema integrado puede controlar dispositivos pequeños, como reproductores MP3 o cámaras digitales, o sistemas más grandes, como semáforos o aviones.

P: ¿Qué significa el término "empotrado" en relación con los sistemas empotrados?


R: El término "empotrado" significa que el ordenador está integrado en un sistema mayor y que no es fácil modificarlo.

AlegsaOnline.com - 2020 / 2023 - License CC3