Descargar

Sistemas embebidos


  1. Abstract
  2. Introducción
  3. Sistemas micro controlados
  4. Sistemas micro procesados
  5. Sistemas FPGA
  6. All Programmable Systems
  7. Conclusiones
  8. Referencias

Abstract

In this document we will talk about the actual state of technology of embedded systems such as micro-controlled, micro processed, FPGA systems, all programmable system or System on Chip.

Index TermsTérminos índice— embebidos, microcontroladores, microprocesadores, FPGA, SOC

Introducción

En el mundo en el que vivimos, prácticamente todo es un sistema embebido, todo skeyistema electrónico que no sea un computador de propósito general, es un sistema embebido [12]. Estos están compuestos por diversas partes y dependiendo de la función que vayan a desempeñar y qué tanta precisión o rendimiento se requiera, se emplean distintos elementos que cumplan con estas exigencias [12,2. Este documento tiene la intención de dar a conocer al lector los componentes que se pueden utilizar para crear un sistema embebido y sus características para que, si se piensa construir o crear alguno, se tome en consideración las exigencias que debe cumplir el mismo para escoger un tipo de sistema, sea este microcontrolado, microprocesado, FPGA o All Programmable System por medio de un SoC.

Sistemas micro controlados

Un sistema micro controlado es una disposición de dispositivos en interacción con un integrado que se encuentra en un encapsulado de muy pequeño tamaño [1]. Estos circuitos tienen un protocolo de funcionamiento que es similar al de la figura 1.

El centro principal de un sistema microcontrolado es el microcontrolador, este es un dispositivo, ya mencionado, muy pequeño que posee una memoria interna programable y es capaz de ejecutar órdenes de manera secuencial e interconectarse con diferentes módulos internos que pueden ser programados para ser usados como el usuario lo requiera. Comunmente entre estos módulos mencionados están: módulos de PWM , contadores, timers, módulos comparadores analógicos, convertidores analógico a digital o digital analógico, y puertos de entrada y salida digitales[2,3].

edu.red

Figura 4: Arquitectura de un sistema micro controlado

II.I TARJETAS DE DESARROLLO

Las tarjetas de desarrollo son placas que poseen un microntrolador y un hardware diseñado e implementado por los fabricantes de dicha tarjeta para facilitar la creación y el abaratamiento de circuitos tanto para principiantes como para expertos [4].

  • Arduino: Esta es una tarjeta de desarrollo de software libre diseñada por la empresa Italiana Arduino. Se basa en los microcontroladores Atmel AVR: 328 para el ARDUINO UNO, 32u4 para el ARDUINO LEONARDO, 1280 para el RDUINO MEGA, por citar a los más conocidos [5]. El éxito de esta marca radica en el software de programación que posee diversas librerías que facilitan la programación, permitiendo a los usuarios con pocos conocimientos en programación, crear proyectos muy poderosos y funcionales. Operan a 5 voltios y poseen una conexión serial hacia la computadora que permite registrar el actividad del microntrolador a tiempo real [5].

  • Tessel: Esta es una tarjeta de desarrollo que posee un software de programación libre muy amigable como el de arduino, pero está enfocada al manejo con internet. Su entorno es compatible con Java script por lo que resultaría sencillo trabajar con ellos para quienes no conocen de electrónica pero si de programación en java. Su hardware se basa en un microntrolador de muy bajo consumo y costo llamado ARM Cortex-M y diferentes periféricos y módulos como GSM, sensores de presión, temperatura, módulos de audio o acelerómetros etc. Por esto es que se parece tanto al ya mencionado Arduino pero con enfoque diferente [6].

  • Launchpad MSP430: Esta es una alternativa de la NATIONAL INSTRUMENT de menor costo al Arduino, posee menos pines (6 pines menos que el Arduino UNO) y menos memoria de programa (la mitad 16K), pero para quienes poseen mayor experiencia programando, es suficiente para crear proyectos o testeos de proyectos más grandes en su software de desarrollo Energia. Esta tarjeta se basa en un microntrolador NATIONAL INSTRUMENT MSP430G2553. El costo en comparación con un arduino puede llegar a ser de un tercio[7].

  • PICAXE contraataca: Esta es otra tarjeta muy similar a ARDUINO pero que al no poseer un software de desarrollo tan sencillo, no fue comecializado así que se enfocó en ser compatible con los módulos extras que posee ARDUINO[4].

  • TinyDuino: una versión más pequeña del ARDUINO UNO pero del tamaño de una moneda de 25 centavos, las características son las mismas que las mencionadas en el ARDUINO[4].

Sistemas micro procesados.

Estos son un sistema con arquitectura diferente a la de un micro controlado, como en la figura 2 se observa, esta estructura se basa en 4 componentes, una unidad lógica aritmética, un bloque de registros temporales, una serie de bloques de control y un circuito que funciona como reloj.

edu.red

Figura 2: Estructura de un sistema micro procesado

III.I TARJETAS INDUSTRIALES

  • RASPBERRY PI: Esta es una tarjeta de desarrollo con aplicaciones industriales básicas. Raspberry pi posee 5 modelos diferentes que poseen características muy similares pero difieren en la cantidad de puertos USB y velocidades de internet. Esta tarjeta usa un SOC Broadcom BCM2835 y un microprocesador ARM11 con posibilidad de alcanzar hasta el 1 GHZ de velocidad [8].

  • Placas madre ATX / industrial. existen diversas de este tipo y sus características principalmente varían entre velocidad de procesamiento (desde el 1GHz hasta los 16 GHz) y los módulos procesadores de imágenes [9].

  • NVIDIA-TESLA: se trata de una GPU que es capaz de procesar datos matriciales a altas velocidades, diseñada inicialmente para el procesamiento de imágenes de alta calidad, se convirtió en una tarjeta industrial para cálculos científicos y de probabilidades que estudian los sistemas cuánticos [10].

Sistemas FPGA

Intel introduce una FPGA en el Atom Processor en el 2010 que es un procesador de 45 nm diseñado para el ahorro de energía, es aquí en donde comienza la idea del FPGA.

Un FPGA es lógica organizada programable (del inglés Field Programmable Gate Array), esto quiere decir que se puede diseñar un circuito de compuertas lógicas, pero programándolo y luego insertarlo en un chip que cumplirá las funciones para las que se programó anteriormente. La ventaja de utilizar estos dispositivos es que son ISP (In System Prgramable), quiere decir que pueden ser reprogramados ya montados en el sistema embebido. Usan un procesador Z10, Z20 o incluso Z40. También existen algunas FPGA que solo se pueden programar una vez [11].

La estructura de un FPGA en realidad se basa en dos componentes principales, los bloques de lógica programable y los interconectores programables, como se muestra en la figura 3.

edu.red

Figura 3: Estructura de un sistema FPGA

IV.I MÓDULOS RECONFIGURABLES

Los módulos FPGA que son reconfigurables poseen dos modos de realizar este proceso, el modo estático y el modo dinámico [12].

El modo estático consiste en detener la operación de FPGA y configurar todo el dispositivo para cambiar sus configuraciones [12].

El modo dinámico consiste en no detener el funcionamiento del FPGA y reprogramar o reconfigurar solo una sección o parte del FPGA [12].

  • LA NI myRIO: Según la página de la National Instrument la NI my Rio es un dispositivo embebido diseñado específicamente para que los estudiantes desarrollen sistemas complejos y reales de manera más rápida y económica que antes. Esta tarjeta es configurable desde el mismo potente sofware de NATIONAL INSTRUMENT: Labview [13].

  • Stratix 10 Es el FPGA de más alta gama de ALTERA que es reprogramable y mide entre 28 nm [14].

  • Spartan-6 de XILINX Es un FPGA reconfigurable de alto rendimiento y bajo consumo de 40 pines de entrada y salida [15].

Nota adicional sobre os FPGA:

HIGH-END RECONFIGURABLE COMPUTER [16].

Se trata de una súper computadora armada a base de FPGAs pero con propósitos más específicos que las computadoras de casa. Se enfocan en 4 aplicaciones de alto rendimiento que demandan altas velocidades cálculos complejos en las mismas. Estas son:

  • Emulación y el diseño de las comunicaciones inalámbricas y nuevos sistemas.

  • Procesamiento digital de señales en tiempo real y de alto rendimiento.

  • Computación científica y simulación a tiempo real.

  • Aceleración de herramientas transformadoras analógico digitales.

All Programmable Systems

Caracterizados por poseer el SoC, System on Chip, es un dispositivo que reúne la inercia de la tecnología de crear dispositivos pequeños que posean todos los módulos programables en su interior. Son pequeños encapsulados que internamente poseen no solo los módulos PWM , timers, ADCs, I/O, o comparadores analógicos como en el microcontrolador son que ya posee incorporado módulos como acelerómetros, antenas RF y módulos WI-FI, todo esto enfocado a la creación de sistemas embebidos cada vez más poderosos ´pues este bordea los 100 KBytes de RAM, notable diferencia con un microcontrolador [17].

V.I ARQUITECTURA

El arquitectura interna de un SoC se ve mostrada en la figura 4.

edu.red

Figura 4: Estructura de un SoC [17]

V.II APLICACIONES

Actualmente se encuentran en proceso de implementación en tabletas o TV inteligentes para ejecutar aplicaciones multimedia que van desde smartphones y dispositivos de computación móvil hasta las televisiones en alta definición (HDTV) [18].

Debido a la complejidad de su capacidad aritmética y procesamiento los SoC pueden acelerar las aplicaciones multimedia y la señal de procesamiento de los algoritmos, como la codificación/decodificación de vídeo, los gráficos 2D/3D, juegos, audio y procesamiento de voz, procesamiento de imágenes, telefonía, y la síntesis de sonido en por lo menos 3 veces el rendimiento de ARMv5 y al menos 2 veces el rendimiento de ARMv6 con el motor SIMD [18].

Conclusiones

Como se puede observar, ningún sistema tiene en realidad un propósito general y es deber del implementador el buscar el que cumpla mejor con las características del diseño que se quiere crear.

Los sistemas micro controlados son fácilmente programables y podrían servir para en el caso en el que no se necesite realizar operaciones demasiado complejas y muy repetitivas y secuenciales.

Los sistemas micro procesados son más robustos en cuanto al tema de velocidad de procesamiento así que puede ser implementado en el control de matrices o imágenes que necesiten ser analizadas a altas velocidades.

Si se vuelve necesario el crear un sistema de alta velocidad y que realice operaciones secuenciales que el micro controlado no soporte por la velocidad, es factible un sistema FPGA aunque el costo incrementaría.

Si resulta más factible un sistema dinámico expuesto a cambios constantes y que requiera de la misma manera un complejo conjunto de sistemas o módulos, es probable que resulte más barato programar un SoC para cumplir con este propósito.

Referencias

[1] Ero Pic, de Luis Rueda. Recurso disponible en: http://perso.wanadoo.es/luis_ju/pic/pic01.html

[2] INTRODUCCIÓN AL MICROCONTROLADOR, Paul Aguayo S. Recurso disponible en: http://www.olimex.cl/tutorial/tutorial1.pdf

[3] Arquitectura y Organización de un microcontrolador genérico, Universidad Nacional del centro de la provincia de buenos aires UNICEN.

[4] Hacedores maker comunity 2015. Recurso disponible en: http://hacedores.com/que-tarjeta-de-desarrollo-elegir-parte-1/

[5] ARDUINO. Recurso disponible en: http://www.arduino.cc/en/Main/

[6] Página principal de TESSEL. Reurso disponible en: https://www.dragoninnovation.com/projects/22-tessel

[7] MSP430 LaunchPad Value Line Development kit, TI. Recurso disponible en: http://www.ti.com/tool/msp-exp430g2

[8] Raspberry pi. Recurso disponible en: https://www.raspberrypi.org/

[9] Direct Industry. Recurso disponible en: http://www.directindustry.es/prod/bcm-advanced-research/placas-madre-atx-industriales-50603-833749.html

[10] WHAT IS GPU ACCELERATED COMPUTING?, NVIDIA. Recurso disponible en: http://www.nvidia.com/object/what-is-gpu-computing.html

[11] Diseño de Sistemas con FPGA, Recurso disponible en: http://www.dc.uba.ar/materias/disfpga/2012/c1/descargas/Introduccion.pdf

[12] Introducción a los FPGAs y el Cómputo Reconfigurable Miguel Morales Sandoval INAOE, 2006. Recurso disponible en: http://www.tamps.cinvestav.mx/~mmorales/documents/FPGAsyReconfig.pdf

[13] Página de NATIONAL INSTRUMENT. Recurso disponible en: http://www.ni.com/myrio/esa/

14FPGAs de Altera. Recurso disponible en: https://www.altera.com/products/fpga/stratix-series.html

[15] Spartan-6 Familia FPGA. Recurso disponible en: http://www.xilinx.com/products/silicon-devices/fpga/spartan-6.html

[16] BEE2: A High-End Reconfigurable Computing System. Chen Chang, John Wawrzynek, and Robert W. Brodersen University of California, Berkeley. Recurso disponible en: http://www.cs.berkeley.edu/~johnw/papers/BEE2-IEEE-DT.pdf

[17] SoC Wikipedia. Recurso disponible en: http://es.wikipedia.org/wiki/System_on_a_chip#Fabricaci.C3.B3n

[18] ¿Qué es un SoC?. Recurso disponible en: http://www.mibqyyo.com/articulos/2013/10/02/que-es-un-soc/#/vanilla/discussion/embed/?vanilla_discussion_id=0

 

 

 

Autor:

David Isaac Pinos Méndez