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

  1. 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.
  2. 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).
  3. Facilidad el procesamiento de la señal. Cualquier operación está al alcance de un cliqueo.
  4. 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

  1. La  señal  digital  requiere  mayor  ancho  de  banda  para  ser  transmitida  que  la analógica.
  2. Se   necesita   una   conversión   analógica-digital   previa   y   una   decodificación posterior, en el momento de la recepción.
  3. 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:

  1. 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.
  2. 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).
  3. 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.
  4. 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:

  1. 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.
  2. 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.