Sistemas Empotrados 

Introducción y Evolución

Los sistemas empotrados son sistemas informaticos dedicados a aplicaciones de control. A menudo se piensa en ellos como sistemas cerrados, que carecen o tienen un interface con el usuario muy limitado, y su funcion exclusiva es controlar un proceso.

Esta definicion atendiendo al interface no es muy acertada, siendo preferible destacar la idea de que son computadores cuyo objetivo principal del diseño es ejecutar tareas de control.
 

Podemos tomar como ejemplo el control de un ascensor con un interface muy simple y limitado: los botones. Pero tambien podemos hablar de modernos controladores que disponen de un servidor Web para su gestion. Ambos son sistemas empotrados.
 

Además del control de procesos, también se utilizan en comunicaciones y monitorización. En comunicaciones, los sistemas empotrados se comienzan a utilizar a finales de los años 60 para controlar conmutadores electro-mecánicos. A estos sistemas se les llamaba "Sistemas de Control mediante Programa Almacenado"  ( Stored Program Control Systems ). Contenían:

  • Un programa almacenado en memoria.
  • Información de enrutado para conmutar las llamadas.
  • Almacenar la lógica en un programa en vez de cablearla en hardware fue un concepto realmente innovador.

    Inicalmente el diseño global de un sistema empotrado estaba muy ligado a la aplicación concreta que se queria dar, pero esto cambio con la aparición de los microprocesadores, elementos funcionales de bajo coste, que proporcionan una arquitectura hardware basada en:

    desembocando en un modelo de plataforma hardware y programación de proposito general que se utiliza hoy en dia.

    En el desarrollo de aquellos primeros sistemas, las herramientas de desarrollo disponibles eran extremadamente sencillas.  Habia una carencia de  compiladores adecuados para lenguajes de alto nivel, asi como de herramientas para la depuración. El software necesario para un proyecto era normalmente:


    Hasta finales de los años 70 no se consolido la idea de crear librerias estandarizadas de software reutilizable y de desarrollar herramientas para asistir a los diseñadores del software. Comenzaron así a aparecer sistemas operativos para sistemas empotrados, pero normalmente escritos en ensamblador y por tanto no portables.
    La principal pega de estos sistemas radica en que cuando un microprocesador queda obsoleto, también lo hace su sistema operativo y los programas desarrollados,y o bien se descartan o se reescriben completamente para la nueva plataforma.

    El panorama cambió con la aparición del lenguaje C apareció por fin la posibilidad de generar sistemas operativos eficientes, estables y a la vez portables, como lo es , hoy en dia, LINUX.
    Esto permite un gran avance, pues aunque la plataforma quede obsoleta, el software desarrollado sigue siendo reutilizable. Incluso hoy en dia los sistemas operativos siguen siendo desarrollados usando C.


    Es a partir de los años 80 cuando empiezan a aparecer una gran oferta de sistemas operativos para sistemas empotrados hasta llegar a la actualidad donde existen varias posibilidades, entre ellas emergiendo con fuerza VxWorks, pSOS , Neculeus , Windows CE y Linux, el cual veremos en mas profundidad, algunos derivados de sistemas anteriores y algunos creados desde cero como IOS de CISCO.

    Sin embargo, muchos sistemas empotrados no disponen de sistema operativo, simplemente el habitual bucle de control. Si bien esto es suficiente para aquellas aplicaciones simples, a medida que el sistema crece en complejidad un sistema operativo debe entrar en juego, para evitar que la complejidad del software lo haga intratable. Además de lo anterior, cada vez mas los sistemas empotrados necesitan incorporar interconexión mediante alguna clase de red y por tanto, la necesidad de implementar alguna pila de protocolos de red. Para un sistema sencillo basado simplemente en un bucle de control, el simple hecho de añadir una pila de red puede aumentar la complejidad del sistema.

    Siguiente