Lección 29: Aplicaciones de los Sistemas Embebidos
FPGA[93]
FPGA es el acrónimo de Field-programmable gate array (Matriz de puertas programable por un usuario en el 'campo' de una aplicación). Se trata de dispositivos electrónicos digitales programables de muy alta densidad.
Estructura
Internamente una FPGA es una serie de pequeños dispositivos lógicos, que algunos fabricantes llaman CLB, organizados por filas y columnas.
Entre los CLB hay un gran número de elementos de interconexión, líneas que pueden unir unos CLB con otros y con otras partes de la FPGA. Puede haber líneas de distintas velocidades.
También hay pequeños elementos en cada una de las patillas del chip para definir la forma en que ésta trabajará (entrada, salida, entrada-salida...). Se suelen llamar IOB.
Aparte de esta estructura, que es la básica, cada fabricante añade sus propias ideas, por ejemplo hay algunos que tienen varios planos con filas y columnas de CLB.
Los CLB contienen en su interior elementos hardware programable que permiten que su funcionalidad sea elevada. También es habitual que contengan dispositivos de memoria.
Programación
La tarea del programador es definir la función lógica que realizará cada uno de los CLB, seleccionar el modo de trabajo de cada IOB e interconectarlos todos.
El diseñador cuenta con la ayuda de herramientas de programación. Cada fabricante suele tener las suyas, aunque usan unos lenguajes de programación comunes. Estos lenguajes son los HDL o Hadware Description Language (lenguajes de descripción de hardware):
- VHDL
- Verilog
- ABEL
Aplicaciones típicas
Las características de las FPGA son su flexibilidad, capacidad de procesado en paralelo y velocidad. Esto les convierte en dispositivos idóneos para:
Simulación y depuración en el diseño de microprocesadores. Simulación y depuración en el diseño de ASICs. Procesamiento de señal digital, por ejemplo vídeo.
Sistemas aeronaúticos y militares.
En Internet hay disponible código fuente de sistemas como microprocesadores, microcontroladores, filtros, módulos de comunicaciones, memorias, etc. Estos códigos se llaman cores.
Fabricantes
Actel, Altera, Atmel, Cypress, Lattice, QuickLogic, Xilinx
Convertidores A/D[94]
Una conversión analógica digital consiste en la transcripción de señales analógicas en señales digitales, con el propósito de facilitar su procesamiento (encriptación, compresión, etc.) y hacer la señal resultante (la digital) más inmune al ruido y otras interferencias a las que son más sensibles las señales analógicas.
Señal analógica versus señal digital
Una señal analógica es aquella que puede tomar una infinidad de valores (frecuencia y amplitud) dentro de un límite superior e inferior. El término analógico proviene de análogo. Por ejemplo, si se observa en un osciloscopio, la forma de la señal eléctrica en que convierte un micrófono el sonido que capta, ésta sería similar a la onda sonora que la originó. En cambio, una señal digital es aquella señal cuyos valores (frecuencia y amplitud) no son continuos sino discretos, lo que significa que la señal necesariamente ha de tomar unos determinados valores fijos predeterminados. Estos valores fijos se toman del sistema binario, lo que significa que la señal va a quedar convertida en una combinación de ceros y unos, que ya no se parece en nada a la señal original. Precisamente, el término digital tiene su origen en esto, en que la señal se construye a partir de números (dígitos).
¿Por qué digitalizar? Ventajas de la señal digital
- La señal digital es más resistente al ruido. La señal digital es menos sensible que la analógica a las interferencias, etc.
- Ante la pérdida de cierta cantidad de información, la señal digital puede ser reconstruida gracias a los sistema de regeneración de señales (usados también para amplificarla, sin introducir distorsión). También cuenta, con sistemas de detección y corrección de errores que, por ejemplo, permiten introducir el valor de una muestra dañada, obteniendo el valor medio de las muestras adyacentes (interpolación).
- Facilidad el procesamiento de la señal. Cualquier operación está al alcance de un cliqueo.
- La señal digital permite la multigeneración infinita sin pérdidas de calidad. Esta ventaja sólo es aplicable a los formatos de disco óptico, la cinta magnética digital, aunque en menor medida que la analógica (que sólo soporta como mucho 4 o 5 generaciones), también va perdiendo información con la multigeneración.
Inconvenientes de la señal digital
- La señal digital requiere mayor ancho de banda para ser transmitida que la analógica.
- Se necesita una conversión analógica-digital previa y una decodificación posterior, en el momento de la recepción.
- La transmisión de señales digital requiere una sincronización precisa entre los tiempos del reloj de transmisor, con respecto a los del receptor. Un desfase, por mínimo que sea, cambia por completo la señal.
Digitalización
La digitalización o conversión analógica digital (conversión A/D) consiste básicamente en realizar de forma periódica medidas de la amplitud de la señal y traducirlas a un lenguaje numérico. La conversión A/D también es conocida por el acrónimo inglés ADC (analogic to digital conversion).
En esta definición están patentes los cuatro procesos que intervienen en la conversión analógica-digital:
- Muestreo: El muestreo (en inglés, sampling) consiste en tomar muestras periódicas de la amplitud de onda. La velocidad con que se toman esta muestra, es decir, el número de muestras por segundo, es lo que se conoce como frecuencia de muestreo.
- Retención (En inglés, Hold): Las muestras tomadas han de ser retenidas (retención) por un circuito de retención (Hold), el tiempo suficiente para permitir evaluar su nivel (cuantificación).
- Cuantificación: En el proceso de cuantificación se mide el nivel de voltaje de cada una de las muestras. Consiste en asignar un margen de valor de una señal analizada a un único nivel de salida.
- Codificación: La codificación consiste en traducir los valores obtenidos durante la cuantificación al código binario. Hay que tener presente que el código binario es el más utilizado, pero también existen otros tipos de códigos que también son utilizados.
Durante el muestreo y la retención, la señal aun es analógica puesto que aún puede tomar cualquier valor. No obstante, a partir de la cuantificación, cuando la señal ya toma valores finitos, la señal ya es digital.
Los cuatro procesos tienen lugar en un conversor analógico-digital.
Compresión
La compresión consiste en la reducción de la cantidad de datos a transmitir o grabar, pues hay que tener en cuenta que la capacidad de almacenamiento de los soportes es finita, de igual modo, que los equipos de transmisión pueden manejar sólo una determinada tasa de datos.
Para realizar la compresión de las señales, se usan complejos algoritmos de compresión (fórmulas matemáticas).
Hay dos tipos de compresión:
- Compresión sin pérdidas: En esencia se transmite toda la información, pero eliminando la información repetida, agrupándola para que ocupe menos...etc.
- Compresión con pérdidas: Se desprecia cierta información considerada irrelevante. Este tipo de compresión puede producir pérdida de calidad en el resultado final.