Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion PDF
Introduccion PDF
En este tema vamos a tratar de introducir al alumno en los denominados sistemas empotrados. En este tema introduciremos una posible denicin de estos sistemas, as como una posible clasicacin, un ujo de diseo tpico, y una serie de aplicaciones reales de estos sistemas.
Tema I. Introduccin
Ejecucin software
Microcontrolador
Ejecucin hardware
ASIC
DSP 1
DSP 2
Esta heterogeneidad impone una de las principales partes del diseo de cualquier sistema empotrado: decidir qu funcionalidad se implementar va software y cul va hardware. De hecho esta decisin impondr la arquitectura del sistema completo, ya que nos indicar los diferentes componentes que son necesarios desarrollar. Veamos un ejemplo ms detallado, como el que se muestra en la gura 1.2. En este sistema podemos apreciar la CPU y la memoria, junto con una amplia variedad de interfaces que permite al sistema medir, manipular e interactuar con el entorno exterior. En esta gura podemos ver que existen dos tipos de comunicacin: una comunicacin en el interior del sistema (que se realizar a travs de un bus de sistema), y una comunicacin externa (del sistema con el exterior).
FPGA/ASIC MEMORIA PUERTO DE DIAGNSTICO
SENSOR
MEDIO EXTERIOR
SENSOR
Comunicacin exterior Bus de sistema Figura 1.2.- Arquitectura tpica de un sistema empotrado
Tema I. Introduccin
Algunas diferencias con un sistema computador pueden ser las siguientes: La interface humana (que en un sistema computador es generalmente la pantalla y el teclado) puede ser tan simple como un diodo led o tan compleja como el sistema de visin de un robot. El puerto de diagnstico ya no sirve nicamente para chequear el sistema computador (o, extrapolando, el sistema empotrado), sino que tambin puede chequear el entorno que hay que controlar. Se suelen utilizar dispositivos de aplicacin especca para aumentar las prestaciones del sistema completo, ya sean digitales o analgicos. Por lo general, el software tiene una misin ja y especca a la aplicacin. Por lo tanto, la mayora de estas diferencias vienen determinadas por las diferencias en los campos de aplicacin. Mientras que en el sistema computador, las principales tareas sern la ejecucin de hojas de clculo, procesadores de textos o anlisis mediante simulacin; en los sistemas empotrados se realizarn tareas de ejecucin de leyes de control, mquinas de estado nito y algoritmos de procesado de seal para poder realizar la manipulacin del entorno. Las principales caractersticas de un sistema empotrado son las siguientes: Estos sistemas emplearn una combinacin de recursos hardware y software para realizar una funcin especca. Estos sistemas realizan un nica funcin o un conjunto muy limitado de funciones (no suelen ser de propsito general) La potencia, el coste y la realizabilidad suelen ser los principales factores de coste. El diseo de procesadores de aplicacin especca suelen ser un componente signicativo de estos sistemas. Aunque todas las caractersticas anteriores son inherentes a cualquier sistema empotrado, para que el sistema sea til, tambin deber tener las siguientes: Concurrencia. Los componentes del sistema funcionan simultneamente, por lo que el sistema deber operar a la vez. Fiabilidad y seguridad. El sistema debe ser able y seguro frente a errores, ya que puede requerir un comportamiento autnomo. El manejo de estos errores puede ser va hardware o software; aunque la utilizacin software nos dar un sistema menos robusto. Interaccin con dispositivos fsicos. Los sistemas empotrados interaccionan con el entorno a travs de dispositivos E/S no usuales, por lo que suele ser necesario un acondicionamiento de las diferentes seales. Robustez. El sistema empotrado se le impondr la necesidad de la mxima robustez ya que las condiciones de uso no tienen porqu ser buenas, sino que pueden estar en el interior de un vehculo con diferentes condiciones de operacin. Bajo consumo. El hecho de poder utilizar el sistema en ambientes hostiles puede implicar la necesidad de operaciones sin cables. Por lo tanto, un menor consumo implica una mayor autonoma de operacin.
Precio reducido. Esta caracterstica es muy til cuando estamos hablando de caractersticas de mercado. Esta situacin no es nada inusual en el campo de los sistemas empotrados ya que tienen una gran cantidad de aplicaciones comerciales, tanto industriales como de consumo. Pequeas dimensiones. Las dimensiones de un sistema empotrado no dependen slo de s mismo sino tambin del espacio disponible en el cual dicho sistema va a ser ubicado. En este tipo de diseo son de particular importancia los parmetros de mercado, caracterizado en su mximo nivel por la caracterstica de precio reducido. Este hecho es debido a que los sistemas empotrados surgieron antes como un elemento de mercado (gracias al auge de los circuitos integrados) que como una disciplina acadmica. Prueba de ello es que existan en el mercado tantos sistemas empotrados en menos de veinte aos de disciplina. Como ejemplo, mostramos en la gura 1.3 los tipos de sistemas empotrados que podemos encontrarnos en un hogar medio. En ella podemos distinguir cuatro grandes grupos de elementos: los elementos basados en PC (como pueden ser el ordenador, un PDA o cualquier elemento de entrada/salida como una impresora); los elementos relativos a las comunicaciones (como pueden ser los telfonos o intercomunicadores); los elementos relativos al entretenimiento (como pueden ser los televisores, videos y DVD); y los elementos relativos al confort y comodidad (como pueden ser los electrodomsticos y climatizadores).
Comunicaciones
Telfono
Intercomunicador
Control de luz
Seguridad
Tema I. Introduccin
de este tipo de sistemas. Una de las principales se puede encontrar si consideramos su interaccin con el resto del entorno. Atendiendo a esta caracterstica, podemos encontrar los siguientes sistemas: Sistemas reactivos.- son aquellos sistemas que siempre interactan con el exterior, de tal forma que la velocidad de operacin del sistema deber ser la velocidad del entorno exterior. Sistemas interactivos.- son aquellos sistemas que siempre interactan con el exterior, de tal forma que la velocidad de operacin del sistema deber ser la velocidad del propio sistema empotrado. Sistemas transformacionales.- son aquellos sistemas que no interactan con el exterior, nicamente toma un bloque de datos de entrada y lo transforma en un bloque de datos de salida, que no es necesario en el entorno. Dentro de los sistemas reactivos podemos incluir el sistema de control area de un aeropuerto, ya que la velocidad del sistema depender de la velocidad con la que lleguen los datos de los diferentes aviones que se acerquen o salgan del mismo. En cuanto a los sistemas interactivos, podemos incluir a cualquier tipo de mquina de videojuegos, ya que la velocidad del sistema depende de l mismo, y el exterior (es decir el usuario del videojuego) se debe adecuar a su velocidad. Por ltimo, dentro de los sistemas transformacionales podemos incluir a los postes de publicidad electrnicos, en los que no existe ningn tipo de interactividad excepto la entrada de datos iniciales y la salida de datos nales. Aunque estos tres tipos de sistemas cumplen con la denicin de sistema empotrado, se suelen tomar como tal a los sistemas reactivos, ya que su auge surgi cuando se adapto estos diseos a este tipo de problemas. De hecho, los sistemas reactivos son ms comnmente conocidos como sistemas de tiempo real.
Nivel de abstraccin Nivel de sistema Nivel algortmico Nivel de transferencia de registros Nivel lgico Nivel de dispositivo
Comportamiento
Procesos Prestaciones Algoritmos Transferencia de registros
Estructura
Procesadores Memorias Unidades funcionales Unidades funcionales Registros
Fsico
Particiones bsicas Particiones bsicas Macroceldas
Un ujo de diseo bien establecido para los sistemas empotrados es el mostrado en la gura 1.4. Para ir pasando de etapa en etapa hay que realizar una serie de subtareas. En primer lugar se debe realizar un modelado del sistema completo. El modelo obtenido de esta subtarea servir para jar los diferentes algoritmos que estn involucrados en la operacin del sistema (ya sean algoritmos de control o de operacin con datos). Un modelo formal debera contar con los siguientes componentes: una descripcin funcional; un conjunto de propiedades; un conjunto de ndices de desarrollo; y un conjunto de restricciones. La siguiente subtarea es el particionado del sistema. Una vez que haya concluido, tendremos el comportamiento del sistema dividido en varias funciones de menor complejidad, con el propsito de abordar el problema completo como varios problemas desconectados entre s. Seguiremos con el particionado hardware/software, subtarea que determinar qu funciones se realizarn mediante dispositivos de aplicacin especca (hardware) o mediante programacin (software). Las funciones realizadas mediante programacin no implica que deba realizarse en la CPU, sino que lo har un dispositivo capaz de entender e interpretar un programa, como puede ser un DSP. Una vez que se ha realizado la separacin, se debe realizar la tarea de sntesis de cada una de las partes. Estos procesos de sntesis no deben realizarse de forma separada ni independiente, sino que hay que considerar una tarea de scheduling, en la cual se realizar una temporizacin de todos los dispositivos para que el ujo de datos est de acuerdo con la operacin a realizar. Finalmente habr que realizar una subtarea de mapeado que traducir la descripcin funcional en programas que pueden ser ejecutados en unos determinados procesadores o en una conexin de dispositivos hardware digitales y/o analgicos (dependiendo de la zona de particionado de la descripcin funcional). Aunque se ha tratado como un ujo secuencial de tareas, esta situacin no se adapta a la realidad. Realmente, todas las subtareas estn relacionadas entre s, y no nicamente las adyacentes. Por ejemplo, el hecho de tener un determinado procesador con sus propias funciones (estaramos hablando de la subtarea de mapeado), puede causar que el comportamiento global
Tema I. Introduccin
Especicaciones
Formato intermedio
Particin HW/SW
Cdigo
Implementacin HW
Integracin
Vericacin
sea particionado en una serie de funciones (subtarea de particionado), que podran cambiar si se dispusiese de otro tipo de procesador.
Por lo tanto, el codiseo hardware/software puede ser denido de la siguiente forma: El codiseo hardware/software es la tarea de disear el sistema hardware y la generacin de cdigo del sistema software de un sistema mixto, de tal forma que el comportamiento del sistema global est formado por la ejecucin del sistema hardware y software Es decir, es una de las tareas del ujo de diseo de sistemas empotrados mostrados en el apartado 1.3. No obstante, se le suele igualar al problema de diseo completo relegando las tareas de modelado y particionado a papeles secundarios.
1.3.1.1.
Cuando los sistemas empotrados entraron en el rango de disciplina acadmica, se vio que uno de los grandes problemas radica en el particionado hardware/software; y para dar solucin a este problema era necesario la creacin de modelos y algoritmos. Al principio de la dcada de los 90, se presentaron dos sistemas para dar solucin a este problema, denominados VULCAN y COSYMA, los cuales tomaron aproximaciones complementarias para realizar este particionado, es decir, para decidir qu funciones seran realizadas va software, y cules va hardware. Mientras que VUCLAN colocaba todas las funciones en los dispositivos hardware, e iba pasando algunas funciones a software para minimizar el coste; COSYMA colocaba todas las funciones va software e iba pasando funciones a los dispositivos hardware para obtener las prestaciones requeridas. Los diseadores de los sistemas hardware/software tenan que analizar las prestaciones en tres dimensiones: hardware, software y sistema: Las prestaciones hardware tenan como meta determinar la mxima frecuencia de reloj de la unidad hardware. Las prestaciones software tenan como meta determinar el tiempo de ejecucin del caso peor (en esencia, el mismo problema que en el caso hardware); no obstante su solucin es ms difcil de hallar debido a la menor investigacin desarrollada en este campo. Las prestaciones de sistema tambin son complicadas, ya que varios programas pueden ser ejecutados de forma concurrente (o varias partes de varios programas), que a su vez, pueden ser ejecutados concurrentemente con el procesado de aplicaciones especcas. Ambos sistemas (VULCAN y COSYMA) tratan de reducir la complejidad, evitando estas concurrencias, y por lo tanto, todas las operaciones (software y hardware) son consideradas como secuenciales. Para realizar estos anlisis de prestaciones se encontr en la cosimulacin un aliado muy importante, incorporndolo como elemento esencial a la metodologa de codiseo. El reto consiste en la realizacin de una cosimulacin en niveles de abstraccin mixtos para ejecutar los sucientes vectores de test para validar el diseo. Uno de los cosimuladores que primero surgieron fue PTOLEMY. Una vez que las prestaciones anteriores, tiempos de ejecucin y de procesado, iban siendo resueltas; otras prestaciones iban adquiriendo una importancia creciente. Entre estas prestaciones podemos encontrar la estimacin del coste hardware, el consumo de potencia, arquitecturas ms generales, protocolos.
10
Tema I. Introduccin
Actualmente, y gracias al auge de las FPGA, el particionado hardware/software es una tarea de diseo prctica. Varios fabricantes han desarrollado placas que combinan FPGA (en la que se implementara los dispositivos hardware) y CPUs (en la que se implementara el desarrollo software), conteniendo la arquitectura tpica de un sistema empotrado.