Los sistemas de control embebidos varían desde sistemas de control y adquisición de datos temporales a los cerebros de los productos de mercado para masas. Los sistemas de control embebidos también varían en complejidad desde los sistemas de conmutación en telecomunicaciones a las alarmas de relojes. Las diferentes aplicaciones tienen diferentes requerimientos, con varios factores que deben cumplirse. Saber que cumple cada necesidad depende no sólo del uso último uso, sino también del uso del sistema en todo el ciclo de la vida.
Tres formas de CPU están especialmente adaptadas para las aplicaciones embebidas: microcontroladores, las FPGAs (field programmable gate arrays), y circuitos integrados de aplicaciones específicas (ASICs).
La mayor ventaja de los microcontroladores es que son altamente adaptables para ser programados en lenguajes legibles por los humanos, como C y C++. Muchas aplicaciones con microcontroladores son complejas y requieren el uso de sistemas operativos, tales como Linux o Microsoft Windows Embedded.
La mayor desventaja de los microcontroladores es que son altamente adaptables, a menudo requiriendo programación de alto nivel y sistemas de operación intensivos en recursos. Para muchas aplicaciones, los microcontroladores son un exceso de proporciones monumentales.
Características de ASIC y FPGA
Dos tecnologías computerizadas destacan como alternativas de microcontrolador: Field programmable gate arrays (FPGAs) y circuitos integrados específicos de aplicación (ASICs). Ambos implementan algoritmos de lógica booleana en hardware. Ambos son altamente adaptables, son capaces de dirigir un amplio rango de funciones lógicas desde simples controles on-off a microprocesadores completos. Ambos son programados usando lenguajes de descripción de hardware standard, tales como VHDL y Verilog, más que software escrito en lenguajes de tercera generación y mayor programación.
Difieren en los niveles de costes de ingeniería no recurrente (NRE) y costes variables, así como en re-programabilidad, escalabilidad, y tiempo asociado con producción de volumen.
Las características de FPGA incluyen ser reprogramable para facilitar prototipos, ajustes de producción, y actualizaciones en campo, reduciendo así el tiempo de llegada al mercado de nuevas soluciones. Una plataforma FPGA puede soportar productos múltiples, equilibrar los costes de desarrollo y recursos que en otros casos son requeridos para un diseño ASIC o desarrollo MCU.
Los FPGAs son dispositivos semiconductores que contienen componentes lógicos programables llamados “bloques lógicos” e interconectores programables. Los bloques lógicos pueden programarse para realizar funciones lógicas, tales como AND, y XOR, o funciones combinacionales complejas tales como decodificadores o funciones matemáticas.
Los diseñadores de sistemas de control embebidos pueden depurar diseños de hardware usando FPGAs, luego, cuando lo permiten los volúmenes de producción, conectarlo como de costumbre a ASICs.
Un ASIC es un circuito integrado apropiado para un uso particular, antes que para uso de propósito general. Por ejemplo, un chip diseñado solamente para realizar una cierta operación en un teléfono celular es un ASIC.
Un diseño ASIC a medida del cliente define todas las capas fotolitográficas de un dispositivo.
Tanto FPGAs como ASICs comienzan con programas HDL. Antes de generar código HDL, sin embargo, es mejor concebir, ensayar, y depurar todos los algoritmos del sistema usando simulación de software y/o hardware.
Proceso de desarrollo de algoritmos
Los algoritmos comienzan, por supuesto, como una estrategia de ingeniería de sistemas basada en requerimientos de aplicación de usuario.
Un cortador de césped robotizado, por ejemplo, comenzaría con una simulación completa de silicio, donde el algoritmo bajo desarrollo (AUD) consistiría en un parche en módulos de programas C o C++ previamente desarrollado para otros proyectos y probablemente obtenido de una variedad de fuentes.
Estos módulos se denominan “custom supervisory program” y actúan como un envoltorio para el software del sistema embebido. Irían ligados a un sistema de desarrollo de desktop, que actúa simultáneamente con otros módulos C o C++ que simulan motores, transmisores, sensores, e interfaces de usuario gráfico.
Los desarrolladores de algoritmo deben asegurar que el algoritmo hará lo que se supone que haga, y siempre quedará bajo control. Es importante estar seguro que el algoritmo se comporte de forma correcta, para lo cual los ingenieros de desarrollo someterán al algoritmo a una ronda de ensayos antes de poner el sistema a cargo de hardware peligroso.
Una vez se consigue que el algoritmo se comporte bien, los desarrolladores del sistema pueden descargarlo en su prototipo de cortador de césped robotizado, y comenzarán una serie de pruebas para desarrollar la plataforma de hardware. El algoritmo actúa como una prueba piloto para el programa de desarrollo de hardware.
Los subsistemas de hardware probablemente se ensayarán usando un sistema de control y adquisición de datos basados en PC y un sistema de control cuyo programa de ensayo no se parece al AUD excepto en las especificaciones de interface de hardware compartido. Los subsistemas de hardware, sin embargo, probablemente no hayan operado juntos antes, así que la última etapa del desarrollo del sistema es integrar todos los subsistemas y depurarlos juntos.
La integración del sistema probablemente comience con el AUD funcionando en un ordenador single-board (SBC) y con el mismo programa escrito en el mismo programa de alto nivel y depurado con ensayos de simulación silico. Esta es la primera vez que el AUD tiene que controlar el hardware actual.
En esta etapa del desarrollo, muchos problemas de interacción de hardware/software ven la luz, así como problemas de hardware/hardware. Hardware y software son tan interdependiente en los sistemas de control embebidos que cualquier cambio en uno probablemente fuerce a cambiar el otro. La flexibilidad y reprogramabilidad del formato SBC son necesarias necesario para hacer factible depurar el sistema completo.
Implementación de hardware
Una vez resueltos los problemas con el hardware y software, es momento en el que el prototipo se parezca a algo que actúe exactamente como el sistema final. ASICs y FPGAs requieren zonas de recepción espaciales – ambos deben montarse en una placa base que también lleve los chips de soporte.
FPGAs no necesita un chip adicional en la placa base: un chip que cargará el FPGA interconecta el AUD en hardware.
Probablemente, los desarrolladores de sistemas en esta etapa implementarán el diseño como un FPGA porque el módulo del controlador tendrá una footprint similar a una versión ASIC, pero con la ventaja de ser reprogramable.
Incluso si el diseño es un producto standard con miles de unidades fabricadas, la economía todavía favorece a FPGA. Sólo cuando la producción alcanza a millones de unidades será posible amortizar las grandes inversiones NRE necesarias para transferir el AUD a un ASIC. Por supuesto, para diseños orientados al consumidor, esto puede ocurrir muy rápidamente.
Bibliografía: Picking a controller technology. Control Engineering, 12/1/2008
Palabras clave: Embedded control systems, telecommunications switching systems, field programmable gate arrays (FPGAs), high-level programming, application-specific integrated circuits (ASICs), standard hardware description language (HDL), non-recurring engineering (NRE), single-board computer (SBC).
0 comentarios:
Publicar un comentario