Download capítulo i - Laboratorio de DSP

Document related concepts
no text concepts found
Transcript
Página 1 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
CAPÍTULO I INTRODUCCIÓN Los rápidos avances en la electrónica, particularmente en las técnicas de fabricación de circuitos integrados, han tenido, y sin duda continuarán teniendo, un gran impacto en la industria y la sociedad. El rápido desarrollo de la tecnología de circuitos integrados, empezando con la integración a gran escala (LSI, Large Scale Integration), y ahora la integración a gran escala (VLSI, Very Large Scale Integration) de circuitos electrónicos ha estimulado el desarrollo de computadores digitales más potentes, pequeños, rápidos y económicos, utilizados en hardware digitales de propósito general. Estas características, han hecho posible construir sistemas digitales altamente sofisticados, capaces de realizar funciones y tareas del procesado de señales digitales que normalmente eran demasiado difíciles y/o caras con circuitería o sistemas de procesado de señales analógicas. De aquí, que muchas de las tareas del procesado de señales que convencionalmente se realizaban analógicamente, se realicen hoy mediante hardware digital, a un menor costo y a menudo más confiable. Los Sistemas DSP modernos son apropiados para su implementación bajo el criterio VLSI. Las grandes inversiones necesarias para diseñar un nuevo circuito integrado sólo pueden ser justificadas cuando el número de circuitos a fabricar es grande, o cuando los niveles necesarios de desempeño son tan altos que no pueden ser alcanzados con la tecnología existente. A menudo, ambos argumentos son válidos, particularmente en comunicaciones y aplicaciones dirigidas a los consumidores. Avances en la tecnología de fabricación de circuitos integrados también abren nuevas áreas de desarrollo basadas en DSP, tales como sensores inteligentes, visión de robots y automatización, mientras entrega las bases para continuar los avances en áreas tradicionales del procesamiento digital de señales, tales como música, voz, radar, sonar, video, audio y comunicaciones. El siguiente texto tiene como fin entregar una breve introducción a los sistemas DSP a través de la presentación de sus principales características, aplicaciones y algunos datos de interés en cuanto a fabricantes, modelos y formas de elegir la plataforma más adecuada. PROCESADORES DIGITALES DE SEÑALES De manera habitual se esta acostumbrado a escuchar acerca del Procesamiento Digital de Señales o DSP por sus siglas en ingles (Digital Signal Processing). Se entiende al procesamiento digital de señales, como la disciplina dentro del área de las matemáticas, que tienen como objeto operar o transformar señales digitales con el fin de entender o destacar la información implícita o explicita que estas poseen. Entendiendo como señal digital, a la evolución temporal discreta de alguna magnitud física sensada, como por ejemplo: señales de radar, música, voz, sonar, vibraciones, temperatura, etc. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 2 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
Con el avance de la tecnología, esta disciplina teórica, fue materializándose en diferentes circuitos electrónicos que permitieron desarrollar etapas de procesamiento digital de señal. Tal desarrollo llevó a contar con Procesadores Digitales de Señal o DSP por sus siglas en ingles (Digital Signal Processor). Un DSP es un microprocesador que permite realizar el procesamiento digital de señal a partir 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. Una de las características que hacen único a los DSP, es la posibilidad de realizar el procesamiento de las 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, como por ejemplo, las comunicaciones telefónicas por celular. Si esto no fuera posible de realizar, se tendría retardos que darían lugar cortes o a confusión al momento de entablar una comunicación. DE ANÁLOGO A DIGITAL Las aplicaciones clásicas de los DSP trabajan señales del mundo real, tales como sonido y ondas de radio que se originan en forma analógica. Como se sabe, una señal analógica 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, transformar las señales analógicas en digitales. Esta transformación la hacen los Conversores Analógicos – Digitales (ADC, en inglés). Una vez terminada la etapa de conversión analógica – digital, los datos son entregados al DSP, el cual está ahora en condiciones de procesarlas. Eventualmente el DSP deberá devolver los datos ya procesados para lo cual es necesaria una etapa final que transforme el formato digital a analógico. 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 – analógica (DAC). Ejemplos interesantes de aplicaciones en las cuales se utilizan DSP: ƒ
Eliminar el eco en las líneas de comunicaciones. ƒ
Lograr hacer más claras aquellas imágenes obtenidas de los equipos de diagnóstico médico por imágenes. ƒ
Cifrar conversaciones en teléfonos celulares para mantener privacidad. ƒ
Analizar datos sísmicos para determinar los estratos que subyacen en el subsuelo. En su núcleo, un DSP es altamente numérico y repetitivo. A la vez que cada dato esta disponible, éste debe ser multiplicado, sumado y además de eso transformado de acuerdo a fórmulas complejas. Lo que Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 3 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
permite realizar todo ello, es la velocidad del dispositivo. Los sistemas basados en DSP deben trabajar a tal velocidad, que sean capaces de realizar procesamiento en tiempo real, capturando y procesando información a la vez que el fenómeno transcurre o con una tasa de retardo de tiempo aceptable. Los conversores analógicos – digitales 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. Por otro lado el DSP también debe trabajar rápido para no perder la información que le llega desde el ADC y además cumplir con el adecuado procesamiento de las señales. Por ejemplo, un sistema estereo 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. En las Figura 1 y 2 se muestra un diagrama en bloques conceptual de un sistema de procesamiento digital de señal que utiliza un DSP. Interfaz de Usuario
Display
Sensores
PROCESADOR DIGITAL DE
Actuadores
Entradas Digitales
SEÑALES
Salidas Digitales
Entradas Analógicas
ADC
DAC
(DSP)
Salidas Analógicas
Figura 1: Diagrama de bloques conceptual de un sistema digital. ADC : Conversor Análogo Digital. DSP : Digital Signal Processor. DAC : Conversor Digital Análogo. Entrada Analógica
Filtro
Anti-aliasing
CAD
HOST
DSP
CDA
Filtro
Anti-imagen
Programador
Salida Analógica
Figura 2: Ejemplo de aplicación de un DSP. La señal entrante entra directamente en un filtro antialiasing para evitar frecuencias superiores a la de muestreo del conversor analógico‐digital. Después se lleva a cabo el procesado digital en el módulo DSP, para después volverse a convertir en analógico a la salida. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 4 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
UN DSP PARA CADA APLICACIÓN: FORMATO ARITMETICO Y ANCHO DE PALABRA Una de las características más importantes que determinan la idoneidad de un DSP para una aplicación dada es el tipo de formato y número de bits de los datos con que realiza los cálculos matemáticos. Con relación al tipo de formato de datos, los DSP pueden operar con números en coma fija o en coma flotante. Algunos DSP sólo son capaces de operar con números enteros, mientras que las aplicaciones es común manejar números fraccionarios como por ejemplo los coeficientes de un filtro. El formato de coma fija utiliza una representación similar a la de un número entero, salvo que se considera la existencia de un punto binario mediante el cual se escalan los valores enteros para de esta forma, obtener números fraccionarios. Este factor de escala es igual a 2‐bp donde “bp” es la posición del punto binario. El DSP realiza las operaciones de suma o multiplicación como si se tratase de números enteros, sin considerar este factor de escala. Es responsabilidad del programador interpretar la posición del punto binario. Al desplazar el punto decimal a la izquierda, utilizando más bits para la parte fraccionaria, la precisión aumenta, pero disminuye el margen de valores de la representación. Puesto que el tamaño de la palabra de datos es fijo, la situación del punto binario será una situación de compromiso entre la precisión a obtener y el margen de valores a cubrir. El programador debe utilizar el mayor número de bits para la parte fraccionaria (máxima precisión) que permiten representar todo el rango de valores que toma una variable. Si durante el procesamiento un número en coma fija aumenta demasiado para poder ser representado con el número de bits disponibles para la parte entera, el programador debe realizar un escalado descendente del número mediante un desplazamiento a derechas perdiendo los bits de menor peso y por tanto disminuyendo la precisión. Si por el contrario el número en coma fija disminuye demasiado el número de bits utilizados en la parte fraccionaria puede ser insuficiente. El programador debe realizar un desplazamiento a izquierdas para aumentar la precisión. En ambos casos el programador debe tomar en consideración como se ha ido desplazando el punto binario restaurando todos los números de coma fraccionaria a una misma escala en una etapa posterior. Esto convierte la programación de aplicaciones en una tarea muy tediosa. La utilización de rutinas en coma fija que emulan las operaciones en coma flotante (que permiten manejar cómodamente números fraccionarios) es muy costosa en cuanto tiempo de ejecución del código, lo que hace imposible su uso en aplicaciones de tiempo real. Otros procesadores disponen de una CPU capaz de operar directamente con números de coma flotante. La aritmética en coma flotante es un mecanismo más flexible que la aritmética en coma fija. Con la aritmética en coma flotante, los diseñadores de sistemas tienen acceso a un rango de valores mucho más amplio y a una mejor precisión. Esto facilita la programación ya que no es necesario preocuparse de Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 5 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
la realización del escalado. Un número de coma flotante se representa mediante una mantisa y un exponente siendo su valor: valor = mantisa ∙ 2 exponente (1) La mantisa es un número fraccionario mientras que el exponente determina la posición del punto binario. En estos procesadores es el propio hardware de la CPU el que realiza los escalados mencionados anteriormente, quedando reflejada la posición del punto binario en el exponente. Esto facilita enormemente la programación de las aplicaciones. En la Figura 3, se muestra un resumen, de las representaciones numéricas más comunes en los DSP. Bit de
Signo
b7 b6 b5 b4 b 3 b2 b 1 b0
0 1 0 1 0 0 1 1
27
26
25
24
64
+
16
23
22
21
+
20
Parte
fraccionaria
Parte
entera
b7 b6 b5 b4 b 3 b2 b1 b 0
•
0 1 0 1 0 0 1 1
24
2 + 1 = 83
23
22
21
8
+
2
20
•
2-1 2-2 2-3
+
bp = 3
0.25+0.125 = 10.375
(a) (b) exponente
mantisa
0
1 1 0 1 0 0 0 0
0 1 1 0
21
20
23
•
2 -1
2 -2
2 -3 2 -4
2 -5
2 -6
2 -7
Valor = mantisa . 2
22
21
20
exponente
(c) DSP
Co ma Fija
16 bit
20 bit
Co ma Flotante
24 bit
32 bit
IEEE - 754
Otros
Figura 3. Representaciones numéricas comunes en los DSP comerciales. a) Formato número entero, b) Formato número coma fija, c) Formato número coma flotante. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 6 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
Además de la clasificación que normalmente se realiza de un DSP en base al tipo de aritmética que utilizan para realizar los cálculos matemáticos (coma fija y coma flotante), dentro de cada grupo se clasifican, según la anchura de su palabra de datos. Los DSP de coma fija requieren un hardware más simple que la de los procesadores de coma flotante. Esto se traduce en una reducción del coste unitario del DSP haciéndolos idóneos para aplicaciones de gran consumo que no requieran unas prestaciones elevadas. Esta simplicidad en el DSP también reduce el consumo del dispositivo y su tamaño, un aspecto sumamente interesante para aplicaciones portátiles como por ejemplo teléfonos móviles. La utilización de un DSP poco sofisticada permite liberar área del chip para incluir bancos de internos de memoria RAM de mayor tamaño o incluso bancos de memoria EPROM o FLASH, donde grabar el código de la aplicación. Además, suelen disponer de un conjunto de periféricos más variado. De hecho los procesadores destinados a aplicaciones específicas como por ejemplo control de motores, sistemas de tratamiento de voz, etc., son procesadores de coma fija. La anchura de la palabra de datos puede ser según los casos de 16, 24 o 32 bits. Esto tiene una importante repercusión en el coste, porque influye poderosamente en el tamaño del circuito integrado y en el número de terminales del dispositivo, así como el tamaño de los dispositivos de memoria externa conectados al mismo. Por lo tanto, los diseñadores intentan utilizar el chip con el menor ancho de palabra que su aplicación puede tolerar. Los DSP de coma flotante son dispositivos de gama alta, cuya CPU dispone de hardware específico para operar con datos de coma flotante. La anchura de la palabra de datos suele ser de 32 bits si bien el uso de bits de guarda les permite operar en el interior de la CPU con datos de 40 bits. Esto no es impedimento para que puedan operar también con datos en coma fija. El área ocupada del CPU de este tipo de DSP es mayor que en el caso de los de coma fija. Por este motivo, la variedad de los periféricos que integran es menor, tratándose en la mayoría de los casos de periféricos (puertos serie y paralelo, DMA) utilizados en la comunicación con elementos externos (conversores A/D y D/A). Dentro de este grupo de DSP, los más sofisticados disponen de puertos de comunicación que permiten facilitan el montaje de redes de DSP para procesamiento en paralelo. Cada tipo de procesador es ideal para un rango específico de aplicaciones. Los procesadores de 16 bits de coma fija son adecuados para sistemas de voz, como teléfonos, ya que éstos trabajan con el rango relativamente estrecho de las frecuencias del sonido. Las aplicaciones estéreo de alta fidelidad tienen un rango de frecuencias más amplio, de forma general, los requerimientos mínimos para este tipo de aplicaciones serían un ADC de 16 bits y un procesador de 24 bits de coma fija, de esta forma se proporciona un rango suficientemente amplio para obtener la señal de alta fidelidad y para poder manipular los valores que se obtienen al procesar la señal. El procesamiento de imágenes, gráficos en 3D y simulaciones científicas tiene un rango dinámico mucho más amplio, por lo que precisa procesadores DSP de 32 bits con aritmética de coma flotante. . Los siguientes son ejemplos de los usos de DSP en la actualidad: Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 7 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
ƒ
Wireless LAN, ƒ
Reconocimiento de Voz, ƒ
Manejo de imágenes digitales, ƒ
Reproductores digitales de audio, ƒ
Teléfonos celulares, ƒ
Modems inalámbricos, ƒ
Cámaras digitales, ƒ
Control de motores, ƒ
Manejo de bombas, ventiladores, HVAC, ƒ
Inversores industriales, ƒ
Automatización y Control de sistemas, ƒ
Transporte, etc. RANGO DINAMICO El rango dinámico es un concepto propio de los procesadores. Se define como la relación existente entre el máximo y mínimo valor (distinto de cero) representables. En un formato de coma flotante éste viene determinado por el número de niveles del exponente. Si expresamos esta relación en dB: RD[dB] = 6 ∙ Niveles del exponente (2) Así para el caso típico de un exponente de 8 bits el rango dinámico es de 1530. En un formato en coma fija este depende del tamaño de palabra de datos según la relación: RD[dB] = 6 ∙ Tamaño de palabra (3) El rango dinámico del procesador debe ser superior al de la aplicación. Este último viene determinado por los conversores A/D y D/A utilizados. De esta forma se garantiza que los errores introducidos durante el procesamiento (debidos a truncamientos, redondeos, etc) quedan por debajo del error que introducen los propios conversores. En la Figura 4, se muestra un grafica de los valores típicos de rango dinámico. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 8 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
Rango
Dinámico
(dB)
1500 dB
1500
1000
500
192 dB
Coma
flotante de
32/40 bits.
Coma fija
de 32 bits.
144 dB
Coma fija
24 bits.
96 dB
Nº bits
Coma fija
16 bits.
Figura 4: Valores típicos de Rango Dinámico CARACTERÍSTICAS DE 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 o MAC (por sus siglas en ingles multiply‐accumulate unit) en pocos ciclos de reloj. No obstante para 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 unidades generadores de direcciones (AGU) que operan en paralelo con otras partes del chip. Los AGU realizan los cálculos de direcciones, permitiendo al DSP buscar dos datos distintos para operar con ellos en pocos ciclos de reloj, de tal forma que es posible ejecutar algoritmos complejos en tiempo real. Es importante para los DSP 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 significativas en comparación con otros tipos de procesadores. Los DSP 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 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 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 pocos ciclos de reloj. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 9 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
Por otro lado, los DSP al igual que todo microcontrolador, 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 a las interrupciones o las entradas analógicas. La fuente de señales para estos pines proviene de los interruptores, sensores analógicos 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 DSP, analizando las entradas y el estado actual del sistema, para luego realizar la acción que se les programó. Un DSP se puede programar tanto en lenguaje ensamblador como en lenguaje C. Cada familia de DSP tiene su propio lenguaje ensamblador y sus propias herramientas suministradas por el fabricante. En los últimos tiempos hay otros fabricantes que desarrollan plataformas especiales que permiten programar a los DSP en entornos de alto nivel como por ejemplo Matlab y Labview. La organización del subsistema de memoria de un DSP puede tener un gran impacto en sus prestaciones. Como se ha mencionado anteriormente, la instrucción MAC, así como otras, son fundamentales en muchos de los algoritmos de procesado de señal. Una ejecución rápida de la instrucción MAC requiere que la lectura en memoria del código de la instrucción y de sus dos operandos se haga en un ciclo de instrucción. Existe una variedad de formas de hacerlo, utilizando memorias multipuerto para permitir múltiples accesos a memoria en un ciclo de instrucción, mediante memorias de datos e instrucciones separadas (arquitectura Harvard), y memorias caches de instrucciones para permitir el acceso a la memoria para la obtención de datos mientras que las instrucciones se obtienen de la cache en lugar de la memoria. La Figura 5 muestra las diferencias entre la arquitectura Harvard y la Von Neumann, esta última utilizada en la mayoría de procesadores de propósito general. Memoria de
Programa y de Datos
Memoria
de Programa
Dir
D
Dir
D
Dir = Direcciones
D = Datos
PROCESADOR
GENÉRICO
PROCESADOR
DSP
Dir
D
Memoria
de Datos
Figura 5: Tipos de arquitectura de memoria entre un Microcontrolador (arquitectura von Neumann) y un DSP (arquitectura Harvard). Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 10 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
Otro punto importante a tener en cuenta es la cantidad de memoria que soporta el DSP, interna y externamente. Atendiendo a las características de la aplicación, la mayoría de los DSP de coma fija poseen memorias internas, en el propio chip, de tamaño pequeño medio, entre 256 y 32k palabras, y un bus externo de direcciones pequeño. Así por ejemplo, la mayoría de los DSP de coma fija de Analog Devices, Lucent Technologies, Freescale y Texas Instruments tienen buses de direcciones de 16 bits o menos, lo que limita la cantidad de memoria externa de acceso directo. Por el contrario, la mayoría de los DSP de coma flotante proporcionan poca o ninguna memoria interna, pero se caracterizan por tener buses de direcciones externos de gran tamaño, para soportar una gran cantidad de memoria externa. Por ejemplo, el ADSP‐21020 de Analog Devices no tiene memoria interna pero posee un bus externo de direcciones de 24 bits. De forma similar, el TMS320C30 de Texas Instruments posee 6k palabras de memoria interna y dos buses externos de direcciones, uno de 24 bits y el otro de 13 bits. Además, estos DSP poseen memorias cache para permitir un uso más eficiente de memorias externas lentas. Cabe destacar que en la actualidad cada vez se empieza a desarrollar más la tecnología mezclada entre microprocesadores y DSP. 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 (Texas, Freescale, Analog Device, etc.) a integrar características de microcontroladores (Conversores A/D, puertos digitales I/O, bloques PWM). Como resumen se puede enunciar que las características que hacen a un DSP son: ƒ
ƒ
Arquitectura del núcleo del DSP. o
Ejecución rápida de operaciones MAC. o
Modos de direccionamiento especializados para manejo de buffers a través de unidades AGU. Juego de instrucciones. o
ƒ
Arquitectura de memoria. o
Control eficiente de bucles para algoritmos DSP iterativos como lOOPS. Múltiples accesos simultáneos a memoria. ƒ
Periféricos integrados e interfaces de I/O. ƒ
Gran interacción con el mundo exterior. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 11 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
De lo expuesto, a continuación en la Tabla 1, se detallan algunas de las operaciones más comunes en el mundo del procesamiento digital de señales, los algoritmos utilizados y el hardware necesario en las arquitecturas DSP para llevar a cabo dichas operaciones. Tabla 1: Necesidades del procesamiento digital de señales, a partir de considera que ya se han adquirido las muestras por conversión analógico/digital y se han almacenado las muestras x(n) en un buffer de memoria. OPERACION ALGORITMO RESULTADO HARDWARE NECESARIO Análisis de la señal x(n) > x max
x(x) < x min
Valor pico y valle. Rango dinámico. Escalar la señal Comparador a) Valores máx. y mín. b) Igualdad x(n) = x ref Detección de cero Comparador c) Valor medio x m = [x(1) + x(2) + ... + x(N)] / N Valor medio. Ajuste rango dinámico Acumulador. Divisor. Acceso secuencial de buffer en memoria d) Potencia Px = [x(1) + x(2) + ... + x(N) ] Potencia de la señal Multiplicación y acumulación. e) Valor absoluto x(a) ‐ x(b)
Diferencia entre valores. Rango dinámico Extraer valor absoluto 2
2
;
2
x(a) ‐ x(b) Tratamiento de la señal a)Escaleo y(n) = a x(n) Amplificación. Atenuación Multiplicador. Acceso secuencial de 2 buffers. b) Decimación y(n) = x(an) ; a = 2, 3, 4, ... Disminución del nro. de muestras Acceso a buffers salteando a lugares c) Interpolación y(n) = x(an) ; a = 2 , 3 , 4
Aumento del nro. de muestras Intercalar valores en un buffer if x(n) > x sat then x(n) = x sat
if x(n) < ‐ x sat then x(n) = ‐ x sat
Mantener señal en el rango dinámico Limite en acumulador. d) Saturación e) Aumento Precisión x 32 (n) = x 16 (n) Mas bits para el dato Agregar ceros. Extensión de signo. f) Redondeo x 16 (n) = x 32 (n) ± 0.5 LSB Menos bits para el dato Redondeo de acumulador g) Truncado x 16 (n) = x 32 (n) ‐ LSB Menos bits para el dato Truncado de acumulador h) Multiplicación z(n) = x(n).y(n) Multiplicación de vectores Acceso simultáneo a 3 buffers secuenciales. Filtros digitales h)Convolución z(n) =
MAC. Acceso simultáneo a 2 buffers secuenciales. →f Transformada t ←⎯
Acceso bit‐inverso. Multiplicar Acumular. −1
−1
N
∑ x(m)y(m ‐ T) −1
, ... m= 0
i) FFT e IFFT x(2n), x(2n + 1) , butterfly Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 12 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
VELOCIDAD DE LOS DSP La medida clave para saber si un DSP es o no apropiado para una aplicación es su velocidad de ejecución. Existen varias formas para medir la velocidad de un procesador, aunque quizás el parámetro más usual es el tiempo de ciclo de instrucción: tiempo necesario para ejecutar la instrucción más rápida del procesador. Su inverso dividido por un millón da lugar a la velocidad del procesador en millones de instrucciones por segundo o MIPS. En la actualidad todos los DSP ejecutan una instrucción por ciclo de instrucción. Un problema que se presenta cuando se compararan los tiempos de ejecución de instrucciones de varios procesadores es que la cantidad de trabajo realizado por una instrucción varía significativamente de un procesador a otro. Por ejemplo, algunos DSP disponen de desplazadotes combinatorios (“barrel shifters”) que permiten hacer desplazamientos de múltiples bits en los datos con sólo una instrucción, mientras que otros DSP requieren que el dato sea desplazado con repetidas instrucciones de desplazamiento de un solo bit. De forma similar, algunos DSP permiten el movimiento de datos en paralelo (carga simultánea de datos mientras se ejecuta una instrucción) que no están relacionados con la instrucción que la ALU está ejecutando, pero otros DSP sólo soportan movimientos en paralelo que estén relacionados con los operandos de la instrucción que esté ejecutando la ALU. El parámetro MIPS, al igual que MFLOPS, MOPS, MBPS y otros, se miden de forma muy precisa aunque su valor no necesariamente dice mucho de lo que un determinado DSP es capaz de hacer. Dichos valores sirven para ubicar cada DSP en una categoría amplia en cuanto a prestaciones pero uno se debería preguntar si se trata de valores de pico o sostenidos. Además, también nos deberíamos preguntar cómo se ven afectadas las prestaciones del DSP cuando muchos de los datos se encuentran fuera del chip, en la memoria externa. Una solución a estos problemas consiste en decidir una operación básica y utilizarla como referencia al comparar distintos DSP. La operación que suele tomarse como referencia es la MAC. Desafortunadamente, los tiempos de ejecución de la MAC proporcionan, a veces, poca información para poder diferenciar entre distintos DSP, ya que en la mayoría de ellos esta instrucción se ejecuta en un solo ciclo de instrucción, y como se ha mencionado anteriormente, algunos DSP pueden hacer mucho más que otros en una simple instrucción MAC. Además, los tiempos de ejecución de la MAC no suele reflejar las prestaciones de otro tipo importante de operaciones como los bucles que están presentes en todas las aplicaciones. Un enfoque mucho más general consiste en definir un conjunto algoritmos o funciones, como un filtro FIR o IIR, e implementarlo en distintos DSP y de esta forma ver cuál de ellos proporciona unas mejores prestaciones. Sin embargo, la implementación de estos algoritmos para distintos DSP puede resultar una tarea ardua. En este sentido, una buena referencia pueden ser los tests que efectúa la Berkeley Design Technology, Inc., pionera en utilizar distintas porciones de algoritmos y funciones para medir las prestaciones de los diferentes DSP. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 13 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
VENTAJAS Y DESVENTAJAS DE LOS DSP Las siguientes son algunas ventajas inherentes a la utilización de sistemas digitales con DSP: • 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 analógicos. • Los sistemas digitales ofrecen una mayor flexibilidad que los correspondientes sistemas analógicos. • Mayor precisión y mayor exactitud pueden ser obtenidas con sistemas digitales, comparado con los correspondientes sistemas analógicos. • Un sistema programable permite flexibilidad en la reconfiguración de aplicaciones DSP. • La tolerancia de los componentes en un sistema analógico 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 Analógico ‐ Digital (ADC). Éste no es el caso para las señales analógicas. 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 en su “real totalidad” 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. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 14 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
FABRICANTES DE DSP Actualmente el mercado se ha ampliado enormemente en cuanto a la oferta de DSP. Existen diversos fabricantes, cada uno con un tipo especial y particular de arquitectura, uso y/o aplicación. Entre los más conocidos se destacan: Texas Instruments, Freescale, Analog Devices, Hewlet Packard, Cirrus, Creative, Microchip, Philips, Yamaha, Airelog Device, AT&T , SGS‐Thomson. De todos ellos cabe mencionar las siguientes familias de DSP: ƒ
ƒ
TEXAS INSTRUMENTS: o
Familia DaVinci: Familia de DSP orientados al video digital, a la codificación y decodificación de video. o
Familia OMAP: Familia de DSP alto rendimiento para aplicaciones de procesamiento de gran cantidad de datos, aplicaciones de multimedia, aplicaciones para computadoras de sistemas operativo Linux o Windows. o
Familia TMS320C2000: Familia de DSP orientada al control digital. o
Familia TMS320C5000: Familia de DSP orientados a la industria de bajo consume, productos portatiles, reproductores de música, telefonía VoIP, equipos de libre mantenimiento, GPS y equipos de medicina. o
Familia TMS320C6000 : DSP de alto rendimiento TMS320C6414T/15T/16T y TMS320C645x: Familia de DSP de punto fijo orientados a la industria y a la optimización, transmisión, decodificación de voz y video. ƒ
DSP de bajo costo TMS320C6410/12/13/18, TMS320C642x y TMS320C62x: Familia de DSP de alto rendimiento y bajo costo, utilizado en telecomunicaciones y sistemas inalámbricos. ƒ
DSP de punto flotante TMS320C67x y TMS320C672x: Familia de DSP con un poderoso compilador de C y assembler, para la optimización de aplicaciones de audio de alta fidelidad. FREESCALE: o
ƒ
Familia StarCore (SC3400, MSC81xx, MSC711x): DSP de altas velocidades y múltiples núcleos, orientados a la telefonía y telecomunicaciones. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 15 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
ƒ
o
Familia Symphony™ Audio (DSP563XX, DSP567XX): Familia de DSP de 24 bits, de simple y doble núcleo, orientados al procesamiento de audio. o
Familias DSP56300: Familia de DSP de 24 bits, orientados a las transmisiones inalámbricas, telecomunicaciones y productos multimedia o
Familias 56800/E (DSP568XX, DSP56F8XX, DSP56F8XXX): Familia de DSP de 16 bits, que combinan la potencia de procesamiento de un DSP con la funcionalidad y la facilidad de uso de un microcontrolador en un único chip. Ideal para el control. ANALOG DEVICES: o
Familias Blackfin: Familia de DSP embebidos 16/32‐bits, ideal para aplicaciones de multi‐
formato de audio, vídeo, voz y procesamiento de imágenes. o
Familias Sharc: Familia de DSP de punto flotante, originales por sus prestaciones de memoria y rendimiento de I/O. Presenta velocidades de 319 MFLOPS / dólar, ideal para aplicaciones de elevado rango dinámico. o
Familias TigerSharc: Familia de DSP de alto rendimiento, aplicados en la industria y en aplicaciones de multiprocesamiento, con rendimiento por encima de mil millones de operaciones por segundo de punto flotante. o
Familias ADSP‐21xx: Familia de DSP de alta velocidad (160MHz) y bajo consumo (184 micro‐Amper). Ideales para el procesamiento de voz, reconocimiento de voz y aplicaciones de control en tiempo real. CONCLUSIÓN Los algoritmos de tratamiento digital de señal han sido los motivadores en el desarrollo de nuevas tecnologías que permitan implementarlos. Dicha evolución tecnológica dio lugar a los DSP como procesadores específicamente diseñados para tales aplicaciones. El diseño específico de un DSP determina algunos aspectos o características como son: La arquitectura del núcleo del DSP y la memoria, su juego de instrucciones, la integración de periféricos que le permitan interactuar con el exterior, el formato de representación aritmética utilizado y la anchura de la palabra de datos. De algunos de los temas expuestos, surgen los siguientes puntos de vistas a la hora de hacer la selección del DSP para nuestra aplicación: ƒ
Tipo de aritmética utilizada y ancho de palabra de datos. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 16 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
ƒ
Rango dinámico. ƒ
Velocidad. o
o
Valores de pico: ƒ
Coma fija: MIPS. ƒ
Coma flotante: MFLOPS. Test de pruebas (benchmarks). ƒ
Memoria interna. ƒ
Soporte multiprocesador. ƒ
Consumo. ƒ
Coste. BIBLIOGRAFÍA Jennifer Eyre and Jeff Bier, 2000. Choosing a DSP Processor. Berkeley Design Technology, Inc. Jennifer Eyre and Jeff Bier, 2000. Evaluating DSP Processor Performance. Berkeley Design Technology, Inc. Jennifer Eyre and Jeff Bier, 2000. The Evolution of DSP Processors. Berkeley Design Technology, Inc. Jordi Salazar, 2001. Procesadores Digitales De Señal (Dsp): Arquitecturas Y Criterios De Selección. Dpto. Ingeniería Electrónica. Centro De Sistemas Y Sensores Electrónicos, Universidad Politécnica De Cataluña. Rodrigo Huerta Cortés, 2004. Laboratorio De Procesamiento Digital De Señales. Universidad Técnica Federico Santa María Departamento De Electrónica. Steven W. Smith, 1997.The Scientist and Engineer's Guide to Digital Signal Processing. ISBN 0‐9660176‐
3‐3. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 17 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
GLOSARIO DE TÉRMINOS DSP: (Digital Signal Processor). Procesador digital de señal. AGU: (Address Generation Unit). Unidad de Generación de Direcciones. ALU: (Arithmetic/Logic Unit). Unidad aritmético‐lógica. Unidad de ejecución en un procesador responsable de la aritmética (sumar, restar, desplazar, etc.) y de la lógica (y, o, no, o‐exclusiva, etc.), entre registros específicos. MAC: (multiply‐accumulate unit). Unidad de ejecución en un DSP responsable de la realización de multiplicaciones y acumulaciones, entre registros específicos. MIPS: (Million instructions per second). Número de instrucciones que el procesador puede ejecutar por segundo. La clave está en cuánto puede hacer cada instrucción. El parámetro MFLOPS es normalmente una medida más fiable de las prestaciones del procesador. MOPS: (Million operation per second). Número total de operaciones que el procesador puede realizar por segundo. Se incluye accesos DMA, transferencias de datos, operaciones de entrada salida. Este parámetro proporciona una idea aproximada de la capacidad de procesado y de entrada salida del procesador. MFLOPS: (Million floating‐point operations per second). Número de multiplicaciones, sumas, restas, etc. en coma flotante que el procesador puede realizar. Algunas veces este parámetro hace referencia a valores de pico en lugar de valores sostenidos. MBPS: (Mega‐bytes per second). Proporciona una medida del rendimiento total de procesamiento de datos. MMACS: (Million multiply‐accumulate per second). Número de multiplicaciones y acumulaciones que el procesador puede realizar por segundo. VLIW: (Very long instruction word). Formato muy largo de palabra de instrucción. FFT: (Fast Fourier Transform). Transformada de Fourier rápida. Método computacional eficiente para estimar el espectro frecuencial de una señal. FIR: (Finite impulse response). Respuesta impulsional finita. Una categoría de filtros digitales. IIR: (Infinite impulse response). Respuesta impulsional infinita. Una categoría de filtros digitales. PGA: (Pin grid array). Un tipo de encapsulado para circuitos integrados. Las conexiones externas se realizan con terminales de conexión dispuestos en forma de cuadrícula. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP Página 18 de 18
FCEFyN
Universidad Nacional de Cordoba
INTRODUCCIÒN A LOS DSP
PQFP: (Plastic quad flat pack). Un tipo de encapsulado para circuitos integrados. QFP: (Quad flat pack). Un tipo de encapsulado para circuitos integrados. Los circuitos integrados con este encapsulado son típicamente más baratos que el mismo circuito con encapsulado PGA. TQFP: (Thin quad flat pack). Tipo de encapsulado similar, pero más delgado, al PQFP. El encapsulado TQFP normalmente se utiliza en sistemas portátiles pequeños. Procesamiento Digital de Señales – FCEFyN – UNC INTRODUCCIÒN A LOS DSP