Los sistemas empotrados están por todas partes. ¡Nos rodean! Son sistemas informáticos que forman parte de otros sistemas electromecánicos mayores. Es por ello que normalmente no nos percatamos de que están ahí. No siempre es obvio que el dispositivo que tenemos al lado incluye un pequeño sistema informático en su interior. Hay sistemas empotrados incluidos en nuestra lavadora o el microondas, pasando por los sistemas médicos, así como la mayoría de sistemas industriales y medios de transporte (coches, trenes, aviones, etc).
Aunque en la actualidad nos puede parecer obvia su existencia, la presencia de los sistemas empotrados modernos data de principios de los ‘60 con su incorporación en los sistemas de guiado de misiles. Su auge ha estado fuertemente ligado al desarrollo de los microprocesadores y microcontroladores, hasta llegar a los potentes sistemas que hoy podemos llevar en un bolsillo o incluso en la muñeca. Sin embargo, aún sigo contando la cara que se me quedó a principios de siglo cuando mi lavadora le transmitió de forma inalámbrica a la PDA del técnico (no existían los teléfonos inteligentes y el bluetooth apenas estaba apareciendo) que había un bloqueo en el filtro. ¿Mi lavadora con sólo una rueda como interfaz está hablando con tu PDA?
Sin embargo, los sistemas empotrados no son sistemas de propósito general, como tampoco suelen disponer de las interfaces convencionales: teclado, ratón, pantalla… Los sistemas empotrados suelen tener una función específica relacionada, en mayor o menor medida, en controlar el sistema en el que se encuentran incluidos. Con tal fin, también disponen de interfaces específicas para llevar a cabo dicha labor, como son los sensores y actuadores que les permiten medir magnitudes del mundo físico e interactuar con él.
Es esta relación con el mundo físico lo que ha hecho popular el término Sistema Ciber-Físico o CPS (del inglés Cyber-Physical System). Este término se suele aplicar al sistema completo, realizando un gran énfasis en la interacción entre la parte cibernética y la física, y no sólo al sistema computacional, al que se sigue refiriendo en general como sistema empotrado. El término CPS, que emergió alrededor del 2006, también hace referencia a la alta relación del sistema con las redes de comunicaciones, considerándose en la mayor parte de los casos un CPS como una solución distribuida de elementos conectados interactuando mediante dispositivos de entrada/salida con el mundo físico.
La interacción con el mundo físico también le confiere a este tipo de sistemas de una serie de características o restricciones específicas que no suelen poseer los sistemas computacionales de propósito general. Entre estas características se encuentra las restricciones de tiempo real, término que no debe confundirse con el término “en tiempo real” que suele sólo referirse a que algo sucede aproximadamente “en directo” o “en vivo”. Las restricciones de tiempo real implican que las respuestas ofrecidas por los sistemas empotrados no sólo deben ser correctas desde el punto de vista funcional, v.g. presiono el pedal de freno y finalmente el actuador correspondiente presiona las pastillas de freno sobre los discos incorporados en las ruedas en vez de acelerar. En un sistema de tiempo real la respuesta debe además darse también en el instante adecuado, porque actuar demasiado tarde puede ser crítico. Nadie espera tener que necesitar el Airbag de su vehículo, pero si lo necesita, desde luego no espera que tarde más de lo necesario en activarse.
No todos los sistemas de tiempo real son críticos y viceversa. El sistema de entretenimiento de un vehículo reproduciendo un vídeo para los pasajeros no es un sistema crítico (aunque algunos padres no opinarán lo mismo), pero sí es un sistema de tiempo real, dado que la decodificación de cada una de las imágenes que compone el vídeo tiene un plazo bastante estricto (en Europa 25 fps, 40 ms/imagen). Sin embargo, nadie duda de la criticidad del control de ABS de un coche o del ya mencionado Airbag. Por otro lado, el sistema de TPVs de un supermercado no es un sistema de tiempo real estricto, pero desde luego se puede considerar también un sistema crítico. En definitiva, un sistema se puede considerar crítico (Safety-critical system) dependiendo de las consecuencias de que el sistema falle. Si estas consecuencias son inaceptables desde el punto de vista de pérdida de vidas humanas, perdidas económicas o de daño al medio ambiente, el sistema se puede considerar crítico.
La fiabilidad de un sistema crítico es tan importante que existe abundante regulación estándar al respecto, tanto general (IEC 61508) como específica de los diversos dominios de aplicación, v.g. sistemas de maquinaria (IEC 62061), procesos industriales (IEC 61511), centrales nucleares (IEC 61513) o sistemas de automoción (ISO 26262). En todos ellos, el objetivo es desarrollar el sistema asegurándose que está libre de fallos o al menos que los fallos críticos han sido mitigados adecuadamente. Para ello, además se suelen exigir evidencias que avalen en efecto que el sistema está libre de fallos. Como parte de dicho proceso se suele llevar a cabo alguna variante de los análisis FMECA (del inglés Failure-Mode Effects, and Criticality Analisys). En dichos análisis se evalúan los modos de fallos de los componentes del sistema, las causas, sus efectos, su probabilidad de aparición y la severidad de los mismos. Con dicha información se retroalimenta el proceso de diseño con el fin de abordar los medios para detectar los fallos, aislarlos y compensarlos en la medida de lo posible.
En el grupo de CPS de ITI se lleva algunos años trabajando en un entorno de desarrollo y análisis de sistemas de tiempo real y CPS denominado art2kitekt(c). Dicho entorno permite modelar la plataforma de ejecución del sistema empotrado (procesadores, sensores, actuadores, etc) así como la estructura de los procesos de control que conforman la aplicación. Una vez modelado el sistema y su despliegue, el entorno permite llevar a cabo análisis para asegurar la viabilidad del mismo, simulaciones comprender mejor su comportamiento funcional y temporal e incluso la monitorización del mismo una vez puesto en marcha.
En el proyecto CUSTOMER se ha trabajado en extender el entorno art2kitekt para tratar precisamente con el modelado, análisis y simulación de sistemas de tiempo real con capacidad de adaptación a fallos como una técnica necesaria para su mitigación. Las extensiones introducidas permiten al ingeniero modelar cómo el sistema debe reaccionar ante diversas condiciones de fallo, al igual que simular y evaluar los tiempos de detección de los mismos. Estas herramientas se pueden utilizar para llevar a cabo la citada realimentación en el proceso de diseño que permita la obtención de un sistema suficientemente seguro.
El webinar llevado a cabo por nuestro compañero Joan Josep Valls sobre el proyecto CUSTOMER, nos detalla algunas de las extensiones y resultados obtenidos durante la ejecución del proyecto, así como algunas de las posibles líneas de trabajo futuro.