PROCESADORES DIGITALES DE SEÑALES

dsp-redrocks

¿Procesamiento Digital de Señales (Digital Signal Processing – DSP)?

SEÑAL es definida como cualquier cantidad física que varia en el tiempo y que lleva
información, generalmente acerca del estado o comportamiento de un sistema, como por
ejemplo: radar, música, voz, sonar, etc.
PROCESAR UNA SEÑAL es la operación o transformación sobre la señal.
PROCESAMIENTO DIGITAL DE SEÑAL (DSP) es una operación o transformación de
una señal en un hardware digital según reglas bien definidas las cuales son introducidas al
hardware a través de un software específico que puede o no manejar lenguajes tanto de alto
como de bajo nivel.
En estricto rigor, digital signal processing se refiere al procesamiento electrónico de señales
tales como sonido, radio y microondas usando técnicas matemáticas para realizar
transformaciones o extraer información. En la práctica, las características que hacen a los
DSP’s tan buenos en el manejo de señales los hacen adecuados para muchos otros
propósitos, tales como procesamiento de gráficos de alta calidad y simulaciones en
ingeniería.
Un Procesador Digital de Señales (DSP, sigla en inglés de Digital Signal Processor) es un
tipo de microprocesador, increíblemente rápido y poderoso. Un DSP es único porque
procesa señales en tiempo real. Esta capacidad de procesamiento en tiempo real hace a los
DSP ideales para aplicaciones que no toleran ningún retardo. Por ejemplo, no es fácil
conversar a través de un teléfono celular cuando existe un retardo en la línea. Esto lleva a
que la señal se corte o a confusión ya que ambos usuarios hablan a la vez. Con los teléfonos
celulares actuales, los cuales usan DSP’s, es posible hablar normalmente. El DSP dentro del
teléfono procesa el sonido (convirtiéndolo de una señal analógica a digital, filtrando,
comprimiendo y realizando otras tareas en forma digital) tan rápidamente que uno puede
hablar y escuchar sin problemas de retardo ni ninguna molestia que ello implica. O sea, se
procesa en tiempo real.
De Análogo a Digital
Las aplicaciones clásicas de los DSP’s trabajan señales del mundo real, tales como sonido y
ondas de radio que se originan en forma análoga. Como se sabe, una señal análoga es
continua en el tiempo; cambia suavemente desde un estado a otro. Los computadores
digitales, por otro lado, manejan la información discontinuamente, como una serie de
números binarios, por lo que se hace necesario como primera etapa en la mayoría de los
sistemas basados en DSP’s transformar las señales análogas en digitales. Esta
transformación la hacen los Conversores Análogo – Digital (ADC, en inglés).
Una vez terminada la etapa de conversión análoga – digital, los datos son entregados al
DSP el cual está ahora en condiciones de procesarla. Eventualmente el DSP deberá
devolver los datos ya procesados para lo cual es necesaria una etapa final que transforme el
formato digital a análogo. Por ejemplo, una señal de audio puede ser adquirida (ADC) y
filtrada para eliminar en gran medida ruido, crujidos de estática, amplificar ciertas
frecuencias de interés, eliminar otras, etc. Luego de esto, la información puede ser devuelta
a través de una conversión digital – análoga (DAC).
Ejemplos interesantes de aplicaciones de DSP’s son:
1. Eliminar el eco en las líneas de comunicaciones.
2. Lograr hacer más claras imágenes de órganos internos en los equipos de diagnóstico
médico.
3. Cifrar conversaciones en teléfonos celulares para mantener privacidad.
4. Analizar datos sísmicos para encontrar nuevas reservas de petróleo.
En su núcleo, un DSP es altamente numérico y repetitivo. A la vez que cada dato llega, éste
debe ser multiplicado, sumado y además de eso transformado de acuerdo a fórmulas
complejas. Lo que permite realizar todo ello es la velocidad del dispositivo. Los sistemas
basados en DSP’s deben trabajar en tiempo real, capturando y procesando información a la
vez que ocurre. Los conversores análogo – digital deben adquirir la información lo
suficientemente seguido como para captar todas las fluctuaciones relevantes de las señales.
Si el ADC es muy lento se perderá información. El DSP también debe trabajar rápido para
no perder información que le llega desde el ADC y además cumplir con el adecuado
procesamiento de las señales. Por ejemplo, un sistema stereo maneja sonidos de hasta 20
KHz, por lo tanto el DSP deberá ser capaz de procesar alrededor del centenar de millones
de operaciones por segundo. Otras señales, tales como transmisiones por satélite son del
orden de los Gigahertz por lo que requieren un procesamiento de mayor velocidad.
Un DSP para cada Aplicación
Una forma de clasificar los DSP’s y aplicaciones es a través de su rango dinámico. El rango
dinámico es un conjunto de números, desde pequeños a grandes, que deben ser procesados
en el curso de una aplicación. Por ejemplo, para representar una forma de onda entera de
una señal particular es necesario un cierto rango de números para manejar sus valores
mayores y menores. El DSP debe ser capaz de manejar los números generados tanto en la
transformación análoga – digital como durante los cálculos (multiplicaciones, sumas,
divisiones) con dicha señal. Si no es capaz de manejar todo el rango de números ocurrirá
“overflow” o “underflow”, lo cual producirá errores en los cálculos.
La capacidad del procesador es una función de su ancho de datos (el número de bits
manipulados) y el tipo de aritmética que posee (punto fijo o flotante). Un procesador de 32
bits tiene un ancho de datos mayor que uno de 24 bits, el cual a su vez tiene un rango
mayor que uno de 16 bits. DSP’s de punto flotante tienen rangos mayores que uno de punto
fijo. Cada tipo de procesador es ideal para un rango particular de aplicaciones. DSP’s de 16
bits son ideales para sistemas de voz tales como teléfonos ya que ellos trabajan con un
estrecho rango de frecuencias de audio. Stereos de alta fidelidad requieren ADCs de 16 bits
y un procesador de 24 bits de punto fijo. Los 16 bits del conversor permiten capturar todo el
rango de la señal de audio y los 24 bits del procesador permiten operar cómodamente los
grandes valores resultantes de la operación con los datos. Procesamiento de imágenes,
gráficos 3–D y simulaciones científicas necesitan un rango dinámico mucho mayor y por lo
tanto requieren procesadores de punto flotante de 32 bits y ADC’s de 24 bits
13

Figura 1: Diagrama de bloques conceptual de un sistema típico
ADC : Conversor Análogo Digital. – DSP : Digital Signal Processor.
DAC : Conversor Digital Análogo

Algunos ejemplos de los usos de DSP’s en la actualidad son:
1. Wireless LAN
2. Reconocimiento de Voz
3. Manejo de imágenes digitales
4. Reproductores digitales de audio
5. Teléfonos celulares
6. Modems inalámbricos
7. Cámaras digitales
8. Control de motores
9. Manejo de bombas, ventiladores, HVAC
10. Inversores industriales
11. Automatización de fábricas
12. Transporte
¿Qué hace a un DSP un DSP?
Una de las más importantes características de un DSP es su capacidad de realizar
operaciones de multiplicación y acumulación (MACs) en sólo un ciclo de reloj. No obstante
ello, es necesario que el dispositivo posea la característica de manejar aplicaciones críticas
en tiempo real. Esto requiere de una arquitectura que soporte un flujo de datos a alta
velocidad hacia y desde la unidad de cálculo y memoria. Esta ejecución a menudo requiere
el uso de unidades DMA (Direct Memory Acess) y generadores de direcciones duales
(DAG’s) que operan en paralelo con otras partes del chip. Los DGA’s realizan los cálculos
de direcciones, permitiendo al DSP buscar dos datos distintos para operar con ellos en un
solo ciclo de reloj, de tal forma que es posible ejecutar algoritmos complejos en tiempo
real.
Es importante para DSP’s tener un mecanismo efectivo de salto para la ejecución de loops
ya que el código generalmente programado es altamente repetitivo. La arquitectura permite
realizar estos loops sin instrucciones adicionales ni demoras, las que al ejecutarse millones
de veces empiezan a generar retardos significativos.
Los DSP’s deben manejar rangos dinámicos extendidos y de precisión para evitar overflow
y underflow y para minimizar los errores de redondeo. Para acomodarse a esta capacidad,
los DSP’s incluyen acumuladores dedicados con registros más anchos que el tamaño
nominal de los datos para así conservar la precisión (por ejemplo, DSP’s de 16 bits poseen
acumuladores de 32 bits para manejar el resultado de las multiplicaciones). También deben
soportar el manejo de buffers circulares para la ejecución de funciones algorítmicas, tales
como filtros. En estos tipos de buffers el puntero del buffer se actualiza en paralelo con
otras funciones del chip en cada ciclo de reloj. En cada ciclo el buffer circular realiza una
comprobación de “fin de buffer” para verificar si es necesario volver al inicio de éste sin
demorar así la ejecución del algoritmo a causa de la ejecución de instrucciones adicionales
de comparación y salto.
Por otro lado, los microcontroladores se utilizan sobre todo en aplicaciones donde existen
acontecimientos externos los que requieren de la detección y el control. El ambiente
externo es detectado por cualquiera de los dispositivos periféricos; puertos digitales I/O,
pines dedicados de interrupción, o las entradas análogas (de analógico a digital). La fuente
de las señales a estos pines viene de los interruptores, sensores análogos y/o digitales, y de
las señales de estado de otros sistemas. Cada entrada representa un pedazo de información
sobre el estado de un cierto acontecimiento exterior. Las salidas se envían a actuadores,
relays, motores o a otros dispositivos que controlen acontecimientos. Entre la detección y
actuación está el microcontrolador, analizando las entradas y el estado actual del sistema,
determinando cuándo y qué encender y/o apagar. El software es el que hace todo esto, toma
las decisiones, generalmente trabaja de una manera condicional; es decir, realiza saltos sólo
bajo ciertas condiciones y realiza manipulaciones a nivel de bits. Las interrupciones son
consideradas como condiciones externas que alteran el flujo principal del programa.
Arquitecturas Estándar en DSP
Las arquitecturas de los computadores actuales están comúnmente clasificadas como
RISC’s (Reduced Instruction Set Computers) y CISC’s (Complex Instruction Set
Computers). Estos últimos tienen un gran número de instrucciones sumamente poderosas,
mientras que la arquitectura RISC posee pocas instrucciones y realiza movimientos de
datos entre registros en un ciclo de máquina. Hoy en día los computadores RISC comienzan
a reemplazar a los CISC’s, porque se puede alcanzar un más alto rendimiento por medio del
uso de un eficiente compilador como a través de la ejecución de instrucciones simples en
forma ordenada.

DSP’s estándars tienen mucho rasgos de una arquitectura tipo RISC, pero ellos son
procesadores de propósitos específicos cuya arquitectura es especialmente diseñada para
operar en ambientes de alta necesidad de cálculo. Un DSP estándar ejecuta varias
operaciones en paralelo mientras que un RISC usa unidades funcionales altamente
eficientes que pueden iniciar y completar una instrucción simple en uno o dos ciclo de reloj.
DSP’s típicos son caracterizados generalmente por las siguientes cualidades en su
arquitectura:
1. Una unidad funcional rápida que puede multiplicar y acumular en un ciclo de
instrucción. Un ciclo de instrucción puede durar generalmente 1 ó 2 ciclos de reloj.
Disponibles en DSP’s de punto fijo y flotante.
2. Varias unidades funcionales que realizan operaciones en paralelo, incluyendo
accesos a memoria y cálculo de direcciones. La unidades poseen típicamente una
unidad principal (ALU) junto con dos o más unidades de generación de direcciones.
Estas unidades funcionales poseen su propio conjunto de registros y muchas
instrucciones se realizan en un solo ciclo de instrucción.
3. Varias unidades de memoria on–chip (generalmente 2 ó 3) usadas para almacenar
instrucciones, datos o tablas. Cada unidad de memoria puede ser accesada una vez
en cada ciclo de instrucción.
4. Varios buses para incrementar las tasas de transferencia hacia y desde memoria y
evitar conflictos de direcciones.
5. Soporte para tipos especiales de direccionamiento, especialmente modulo y bit–
reverse, requerido en el cálculo de la FFT. Direccionamiento módulo es muy
eficiente para la implementación de buffers circulares.
6. Soporte para manejo de loop con bajo costo en tiempo y manejo rápido de
interrupciones, especialmente aquellas que se deben a los puertos seriales.
Arquitectura Harvard
En la arquitectura clásica de Neumann la ALU y la unidad de control están conectadas a
una sólo unidad de memoria que almacena tanto instrucciones de programa como datos.
Durante la ejecución de un programa, una instrucción es leída desde la memoria y
decodificada, los operandos necesarios son obtenidos (fetched) desde la memoria, y,
finalmente, la instrucción es ejecutada. La principal desventaja es que la memoria se
transforma en el cuello de botella de esa arquitectura.
La instrucción que con más frecuencia realiza un DSP estándar es la multiplicación y
acumulación. Ésta debe ser realizada con eficiencia, y para ello debería ser completada en
un ciclo de instrucción. Esto implica que dos valores deben ser leídos desde memoria y
(dependiendo de la organización) un valor debe ser escrito, o dos o más registros de
direcciones deben ser actualizados, en ese ciclo. Por lo tanto, una longitud grande en la
memoria es tan importante como la operación de multiplicación–acumulación.
Varios buses y memorias incluidas en el chip son utilizadas de forma que lecturas y
escrituras a diferentes unidades de memoria pueden ser hechas a la vez. Dos memorias son
utilizadas en la arquitectura Harvard clásica. Una de ellas es utilizada exclusivamente para
datos, mientras que la otra es utilizada para instrucciones. Esta arquitectura alcanza un alto
grado de concurrencia (lecturas y escrituras simultáneas). Los DSP’s actuales usan varios
buses y unidades de ejecución para alcanzar niveles incluso más altos de concurrencia.
Chips con múltiples DSP y procesadores RISC existen hoy en día.
22
Figura 2: Tipos de arquitectura de memoria entre un Microcontrolador (arquitectura von Neumann) y
un DSP (arquitectura Harvard).
Diferencias entre Microcontroladores y DSP’s
Una de las diferencias más importante encontrada entre un DSP y un Microcontrolador es
la estructura de memoria que poseen. En un microcontrolador es posible encontrar una
memoria lineal, en la que se almacenan tanto datos como instrucciones de programa. Esto
obliga a generar programas que no sobrepasen límites de tamaño ya que podrían
sobrescribirse datos por instrucciones o viceversa. Un DSP posee dos bloques separados e
independientes de memoria, cada uno con su propio bus de acceso, permitiendo así al
procesador ir a buscar la siguiente instrucción y dato en el mismo ciclo de reloj (Fetch). En
la figura siguiente se muestra un diagrama de los tipos de memorias y su conexión con el
núcleo operaciones.
Otra diferencia importante entre un Microcontrolador y un DSP (y aún entre DSP’s) es la
cantidad de unidades de ejecución que poseen, las cuales son capaces de realizar
operaciones en paralelo. Por ejemplo, además de la típica ALU, un DSP posee bloques
MAC de multiplicación y acumulación, se encuentran también bloques sólo para
corrimientos, shifters. En la figura siguiente se observa un diagrama de bloques de un
microcontrolador PIC12C5XX, el cual sólo posee una unidad aritmética para todo tipo de
cálculo, desde cálculo de direcciones de salto, búsqueda de datos hasta operaciones lógicas.
31
Figura 3: Diagrama de bloques de la arquitectura del PIC-12C5XX
La siguiente figura muestra parte de un diagrama de bloques del DSP TMS320F241. En
ella se pueden ver 3 unidades de cálculo, CALU, ARAU, y una unidad de multiplicación la
cual permite además realizar corrimientos:
Figura 4:
41
Figura 4: Diagrama de bloques del DSP TMS320F241

La unidad CALU realiza las operaciones aritmético – lógicas, mientras que la unidad
ARAU permite realizar cálculos sobre registros auxiliares para direccionamientos
indirectos tanto a memoria de datos como de programa. Finalmente la unidad de
multiplicación y suma permite una rápida ejecución de operaciones iterativas tales como
algoritmos de filtros.
Cabe destacar que en la actualidad cada vez se empieza a desarrollar más la tecnología
mezclada entre microprocesadores y DSP’s. Diversas son las razones para que se produzca
esta integración, sin embargo a groso modo es posible identificar una en particular. Los
requerimientos de control en tiempo real bajo condiciones cada vez más exigentes en
cuanto a necesidad de cálculo han llevado a los fabricantes de microcontroladores
(microchip, ST, etc.) a integrar a sus microprocesadores características de DSP (unidades
de cálculo paralelas, pipeling, etc.) y por el otro lado los fabricantes de DSP’s (Texas,
Motorola, Analog Device, etc.) empiezan a utilizar las características de
Microcontroladores (Conversores A/D, puertos digitales I/O, bloques PWM) integrándolas
dentro del DSP.
VENTAJAS Y DESVENTAJAS DE LOS DSP’S
• La Tecnología VLSI (Very Large Scale Integration) da la posibilidad de diseñar
sistemas con la capacidad para ejecutar procesamiento en tiempo real de muchas de las
señales de interés para aplicaciones en comunicaciones, control, procesamiento de
imagen, multimedia, etc.
• Los sistemas digitales son más confiables que los correspondientes sistemas análogos.
• Los sistemas digitales ofrecen una mayor flexibilidad que los correspondientes sistemas
análogos.
• Mayor precisión y mayor exactitud pueden ser obtenidas con sistemas digitales,
comparado con los correspondientes sistemas análogos.
• Un sistema programable permite flexibilidad en la reconfiguración de aplicaciones
DSP.
• La tolerancia de los componentes en un sistema análogo hacen que esto sea una
dificultad para el diseñador al controlar la exactitud de la señal de salida análoga. Por
otro lado, la exactitud de la señal de salida para un sistema digital es predecible y
controlable por el tipo de aritmética usada y el número de bits usado en los cálculos.
• Las señales digitales pueden ser almacenadas en un disco flexible, Disco Duro o CD–
ROM, sin la pérdida de fidelidad más allá que el introducido por el conversor Análogo
Digital (ADC). Éste no es el caso para las señales análogas.

A pesar de ellas existen algunos inconvenientes que deberán ser tomados en cuenta al
momento de escoger una plataforma para el procesamiento de señales analógicas por medio
digitales:
• La conversión de una señal analógica en digital, obtenida muestreando la señal y
cuantificando las muestras, produce una distorsión que nos impide la reconstrucción de
la señal analógica original a partir de muestras cuantificadas.
• Existen efectos debidos a la precisión finita que deben ser considerados en el procesado
digital de las muestras cuantificadas.
• Para muchas señales de gran ancho de banda, se requiere procesado en tiempo real. Para
tales señales, el procesado analógico, o incluso óptico, son las únicas soluciones
válidas. Sin embargo, cuando los circuitos digitales existen y son de suficiente
velocidad se hacen preferibles.
Fabricantes de DSP’s
Actualmente el mercado se ha ampliado enormemente en cuanto a la oferta de DSP’s.
Existen diversos fabricantes, cada uno con un tipo especial y particular de arquitectura, uso
y/o aplicación. Entre los más conocidos destacan:
1. Texas Instruments (http://dspvillage.ti.com/docs/dspproducthome.jhtml)
Familias TMS320C6000 TMS320C5000 TMS320C2000
2. Motorola (http://www.motorola.com/semiconductors)
Familias 56300 56800 56800E MSC8100
(StarCore)
3. Analog Devices (http://www.analog.com/technology/dsp/index.html)
Familias Blackfin Familia Sharc TigerSharc ADSP-21xx
Una de las principales ventajas de los fabricantes antes mencionados es que a esta altura de
su desarrollo han acumulado un gran nivel de conocimiento, sus procesadores se han
utilizado para resolver problemas reales y han dado resultados positivos. Ellos reúnen en
sus páginas web documentos y aplicaciones de utilidad para quienes trabajan en nuevos
desarrollos y/o para quienes recién empiezan a trabajar con microprocesadores.
En particular, la familia TMS320C6000 está formada por una serie de procesadores que
poseen características distintas unos de otros. En la tabla siguiente es posible observar las
diferencias entre procesadores. Estas están fundamentalmente formadas por la cantidad de
memoria disponible dentro del chip y la velocidad de procesamiento de cada instrucción. Es
posible encontrar en los sitios web de cada empresa tablas similares a la mostrada en la
figura 5, indicando las principales características de los DSP’s.
51
Hardware de Laboratorio
Durante el curso del laboratorio de DSP’s se trabajará con las plataformas TMS320C6711 y
posteriormente, según preferencia de cada grupo, se podrá optar por trabajar con el DSP
TMS320F241 o continuar el desarrollo con el C6711. El F241 es un DSP especialmente
dedicado a aplicaciones de control ya que está conformado por periféricos tales como
conversores A/D, puertos PWM, puertos digitales I/O, etc.
El trabajo con el procesador C6711 se llevará a cabo con una tarjeta DSK (Development
Starter Kit) la cual es explicada en detalle en la guía de trabajo del primer laboratorio.
A grandes rasgos se puede decir que el DSK es una tarjeta en la cual se han integrado junto
al DSP algunos elementos importantes para poder utilizarlo; memorias RAM para manejo
de datos, algunos leds para conocer estados, un puerto paralelo para comunicación con el
PC, etc. Se han integrado elementos necesarios para el funcionamiento no aislado del
procesador y su interacción con el medio y los usuarios.
61
Figura 6: Tarjeta DSK TI TMS320C6711.
En cada experiencia se recomienda pedir en pañol un osciloscopio y una fuente generadora
de señales.

Software de Laboratorio
Para poder realizar la programación del DSP es necesario contar con las herramientas
apropiadas. El DSK es vendido junto al programa Code Composer Studio el cual es un
ambiente de trabajo que pemite escribir, compilar, simular y realizar debug de los códigos
que se crean. En sí, Code Composer Studio es una interfaz estándar tipo windows que
posee menús, barras de herramientas que ayudan a construir, revisar (debug) y testear
aplicaciones en tiempo real.
Figura 7:
71
Figura 7: Code Composer Studio
La figura 7 muestra una vista general del Code Composer Studio. En ella se observa a la
izquierda una ventana en la que se ha declarado el proyecto en el que actualmente se está
trabajando y los diferentes módulos que éste posee. Los módulos están formados por el o
los archivos en C, C++ o Assembler, librerías de funciones, archivos “include” y otros más
específicos a la aplicación que se esté realizando.
La ventana principal puede mostrar el editor de texto que se utiliza para escribir el código,
además puede mostrar gráficos de variables utilizadas en el DSP, un mapa de la memoria
de programa y/o datos, etc. En el desarrollo de los laboratorios se deberá adquirir el manejo
apropiado de este software para así acelerar el proceso de programación.

Para las aplicaciones de filtros digitales se utilizará MATLAB como herramienta de diseño.
Los programas necesarios para el trabajo serán entregados en forma de base para que luego
sean modificados apropiadamente.

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

One Response to PROCESADORES DIGITALES DE SEÑALES

  1. eliecer on 14/07/2010 at 10:51

    les agradeceria muchisimo si pudieran colaborarme,tengo una gran inquietud que em carcome el cerebro y es que aparato de poco tamaño existe en el mercado o si hay que fabricarlo para instalarlo en la entrada usb que tiene un transmisor de frecuencia modulada para poder hablar a travez del transmisor de frecuencia modulada que como ustedes saben ese aparatico hace que se reprodusca los archivos mp3 que esten en una memoria usb o en una sd pero lo que yo quiero saber si se puede hacer es conectarle un microfono que tenga surespectivo circuito dps y que una vez transformada la señal de analoga a digital se convierta en formato mp3 para que asi pueda escuchar la voz atraves de el equipo de sonido..muchisimas gracias….

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

casas galicia psoe galicia
Content Protected Using Blog Protector By: PcDrome.