Introducción: Procesadores Digitales de Señales
Introducción: Procesadores Digitales de Señales
INTRODUCCIÓN
Los DSP son microprocesadores diseñados para procesamiento digital de señales (manipulación
matemática de señales representadas digitalmente). El procesamiento digital de señales es una tecnología
cuyas aplicaciones están creciendo rápidamente, como en el caso de comunicaciones sin hilo,
procesamiento de audio y vídeo y control industrial. A la vez que aumenta la popularidad de las
aplicaciones DSP la variedad de procesadores DSP ha aumentado espectacularmente desde la
introducción de los primeros chips comerciales a principios de los ochenta.
Los procesadores de hoy son dispositivos sofisticados con características impresionantes. En este
documento tratamos explicar las características comunes de los DSPs comerciales en la actualidad,
analizando algunas de las diferencias principales entre ellos, centrándonos en las características que el
diseñador del sistema debe examinar para encontrar el procesador que más se ajusta a su aplicación.
En este corto espacio de tiempo, debido a su bajo costo y gran rendimiento, los DSPs han reemplazado
casi por completo a la tecnología analógica tradicional en campos como telecomunicaciones, procesado
de audio y vídeo y control industrial. Según un estudio de mercado de la empresa Forward Conceps, la
estimación de venta de estos dispositivos solo en Estados Unidos para el presente año es de $2.5
billones. Se ha generalizado el diseño de soluciones en este campo por parte de empresas de primer
nivel, desarrolladores independientes y universidades.
Por todo lo anterior, al corto tiempo de vida de esta tecnología y a la escasa literatura disponible, ya que
su avance se ha realizado en gran medida en el campo profesional, nuestro estudio se ha centrado en
recopilar, analizar e interpretar todos los datos disponibles sobre esta tecnología a la que sus prestaciones
y posibilidad de desarrollo convierten en un elemento indispensable de los sistemas del futuro.
OPERACIONES BÁSICAS
Los DSP son microprocesadores que comparten una arquitectura base optimizada. El procesamiento
digital de la señal se basa en la manipulación matemática de las señales representadas en un formato
digital, este análisis matemático conlleva un volumen de operaciones numéricas muy elevado. Por esto,
la arquitectura de los DSP debe responder a las necesidades de las operaciones que soportan,
fundamentalmente: filtrado, convolución, análisis de espectros, correlación, etc.
Siendo y dos secuencias cuyas muestras varían en cada producto. Para optimizar esta operación la
mayoría de los DSP comparten las siguientes características:
Permiten realizar varios accesos a memoria en un solo ciclo de instrucción, de esta manera el
procesador puede buscar una instrucción mientras a la vez está, realizando la búsqueda de operandos y/o
almacenando el resultado de una instrucción anterior.
Para permitir múltiples accesos a memoria, los DSP incluyen memorias multipuerto e incluso
bancos de memoria independientes.
Poseen una o más unidades generadoras de direcciones independientes. Dichas unidades operan
en paralelo con la ejecución de instrucciones aritméticas.
La mayoría de los DSP disponen de un set de instrucciones que soportan la ejecución de bucles,
debido a que los algoritmos DSP implican cálculos repetitivos.
Todas estas características se ven reflejadas en la adopción de la arquitectura Harvard, por parte de los
procesadores digitales de señal frente a la clásica arquitectura Von Neumann utilizada por los
procesadores de propósito general.
En la arquitectura Von Neumann solo hay un bus de datos, entonces los operandos no pueden cargarse
mientras se buscan instrucciones provocando un cuello de botella. Por su parte en la arquitectura
Harvard el procesador puede acceder a varios bancos de memoria empleando grupos independientes de
buses, permitiendo cargar operandos mientras se buscan instrucciones.
En los esquemas de las figuras 1 y 2 se observan las bases de las arquitecturas, comprobándose las
diferencias anteriormente analizadas.
Memoria
Una segunda característica compartida por los DSP es poder realizar varios accesos a memoria en un
solo ciclo de instrucción. Esto permite que el procesador busque una instrucción mientras a la vez accede
a memoria en busca operandos y/o almacena el resultado de una operación anterior. La mayoría de los
DSP son capaces de ejecutar una operación MAC mientras simultáneamente carga los datos y
coeficientes para la siguiente instrucción MAC. En general los múltiples accesos a memoria en un solo
ciclo tienen varias limitaciones, solo uno de los accesos puede ser a una memoria externa, y los múltiples
accesos a memoria solo pueden tener lugar con determinadas instrucciones. Para permitir múltiples
accesos simultáneos a memoria, los DSP tienen varios grupos de buses y memorias multipuertos y en
algunos casos varios bancos de memoria diferentes.
Direccionamiento
Una tercera característica usada para aumentar la velocidad de procesamiento aritmético en los DSP es
una o más unidades generadoras de direcciones. Una vez configurados los registros de direccionamiento,
la unidad generadora de direcciones trabaja en paralelo con la ejecución de instrucciones aritméticas
construyendo las direcciones necesarias para los accesos a operandos.
Las unidades generadoras de direcciones de los DSP pueden implementar varios modos de
direccionamiento específicos para aplicaciones DSP:
Direccionamiento por registro indirecto con postincremento: se usa cuando un cálculo repetitivo se
ejecuta sobre series de datos almacenados secuencialmente en memoria.
Direccionamiento bit reverse: Se usa para el direccionamiento específico de la FFT. El orden en el que
se accede a los datos en una FFT corresponde, en binario, al número de dato dentro de la secuencia pero
invertido.
Set de instrucciones
Como la mayoría de algoritmos DSP implican el desarrollo de cálculos repetitivos, la mayor parte de los
DSP proporcionan un soporte especial para realizar bucles de forma eficaz. Normalmente, depende de
una instrucción loop y repeat que permiten al programador implementar un bucle for-next sin gastar
ningún ciclo de instrucción para actualizar y chequear el contador de bucle.
Entrada/salida
Para permitir transferencias de entrada/salida eficientes y a bajo costo la mayor parte de los DSP
incorporan uno o varios interfaces de entrada/salida series o paralelos y mecanismos generales de
entrada/salida para manejar interrupciones y accesos directos a memoria para permitir transferencias sin
intervención del procesador.
El DSP 56002
El corazón de la placa DSP56002EVM es el DSP 56002 a 40 Mhz., y 24 bits, en el que, por tanto, cada
instrucción tiene una longitud de 24 bits. Una de las características de la familia 56000 es que los datos e
instrucciones se guardan en direcciones de memoria separadas.
Las instrucciones se guardan en el espacio "P" ( de program space). Los datos se guardan en dos
espacios con direcciones separadas e independientes : "X" e "Y". Esta separación de datos e
instrucciones se llama arquitectura Harvard. Es diferente a la arquitectura Von Neumann usada, por
ejemplo en procesadores del tipo 80x86.
La arquitectura Harvard es típicamente usada en la tecnología DSP, sobre todo debido a que utiliza la
arquitectura en paralelo. La potencia de esta arquitectura en paralelo se hace evidente cuando
consideramos que la principal característica de los DSPs es su capacidad para realizar multiplicaciones y
sumar (MAC) rápidamente. El 56002 puede multiplicar dos operandos, acumular (sumar) el resultado,
tomar dos nuevos operandos de dos direcciones de datos independientes, realizar el ajuste de las
direcciones y tomar la próxima instrucción todo ello en ¡un ciclo de reloj!. El 56002 a 40 Mhz. puede
realizar 20 millones de instrucciones por segundo. Otros chips tienen características similares, pero no
tienen dos espacios de datos y una arquitectura de 24 bits, y esto es lo que realmente distingue a la
familia 56000.
La arquitectura de 24 bits del 56002 contiene una colección más potente de instrucciones que las de los
chips a 16 bits. Contiene también una variada colección de modos de dirección extendida. Estos modos
de dirección se obtienen en formatos de instrucciones de una palabra e instrucciones de dos palabras.
Otra diferencia es el rango dinámico adicional de los datos a 24 bits ( 144.5 dB) frente a los 96.3 dB con
los chips de 16 bits. El rango dinámico de 96 dB es suficiente para la calidad CD ( Compact Disc) ya
que está lo suficientemente cerca del rango dinámico del oído humano ( 100 dB.) y es la que
normalmente se utiliza en los productos comerciales. Pero esta diferencia de rango dinámico, es
fundamental en aplicaciones tales como el detectar señales débiles en ambientes ruidosos.
El 56002 contiene una gran potencia y flexibilidad para realizar interfaces de todas clases.
Los accesos al/del mundo exterior al DSP se pueden realizar a través de los pines I/O (Input/Output),
agrupados como puertos de propósito general y llamados "PA", "PB" y "PC", con 16 pines disponibles
en cada puerto. Dependiendo de la aplicación, algunos de estos pines I/O se pueden usar para doblar
algunas señales que existen ya en el chip, tales con el interface síncrono serie (SSI) ó el interface de
comunicaciones en serie (SCI). Por ejemplo, el port B, "PB", en el DSP56002EVM se obtiene como un
conector (J7) aparte y es el puerto usado para los interfaces realizados por los usuarios. Por ejemplo, los
radioaficionados utilizan este conector y sus direcciones asociadas para aplicar el PTT del transceptor,
realizar las pulsaciones UP/DOWN de corrección de frecuencia de los transceptores, encender leds que
indican las distintas funciones, enviar comandos CAT a las radios, etc.
La inicialización y uso de estos puertos esta documentada en la guía del 56002 que se adjunta al comprar
el EVM. Otros chips tienen también periféricos similares para poder accedes a CODECs de alta
velocidad, pero los periféricos SCI y OnCE (OnChip Emulator) son características únicas en DSPs de
punto fijo.
Otra de las características del 56002 es la capacidad de programar la frecuencia del reloj por medio de
un PLL incorporado. El PLL del 56002 determina la velocidad de reloj del DSP. Se utiliza un reloj de 4
Mhz para activar el PLL. Este reloj, también sirve como reloj del chip 6805 que realiza las funciones de
interface de las comunicaciones vía serie (OnCE) por uno de los dos conectores DB-9 que vienen con la
placa. Un reloj programable puede servir para muchas aplicaciones. Puede ayudar al diseñador a
conseguir una gran variedad de tiempos (timings). En un equipo portátil, un reloj variable se puede
utilizar para controlar su consumo.
Los DSPs consumen mucha más potencia a alta velocidad que a baja. Los consumos de potencia pueden
ser regulados seleccionando el valor más bajo de reloj que satisfaga los requerimientos de la aplicación
que estemos desarrollando.
Otra característica relevante del 56002 es la inclusión en el chip de una ROM que incluye las tablas del
algoritmo de la onda senoidal, función que es muy utilizada para aplicaciones en el campo de
aplicaciones de comunicaciones
DSP 56002:
Como hemos visto hasta ahora, el DSP adecuado para cada tarea depende enormemente de esa tarea. Por
ejemplo, un procesador que desarrolla bien ciertas tareas puede ser una pobre elección para otras.
Basándonos en esto podemos considerar ciertas características que varían de un DSP a otro a la hora de
elegir un procesador.
Una forma de clasificar los dispositivos DSP y sus aplicaciones es por su rango dinámico. Se denomina
rango dinámico al conjunto de valores, entre el menor y el mayor, que puede ser procesado en el curso
de una operación. Esto nos ha de proporcionar un conjunto de valores para describir por completo una
forma de onda señalada, desde el mínimo más profundo hasta el oscilación más alta. El rango ha de ser
más amplio que el requerido para los cálculos, ya que se irán generando valores mayores y menores a
partir de las multiplicaciones y divisiones.
El dispositivo DSP ha de tener la capacidad de manipular los valores que se generen, si no pudiera se
produciría un desbordamiento.
La capacidad del procesador en función de su anchura de datos (él numero de bits que manipula) y del
tipo de aritmética que permite (coma fija o flotante), nos permite asignarle un tipo correspondiente de
aplicaciones, así como determinar cual dispone de un mayor rango dinámico. Un DSP de 32 bits tiene un
rango dinámico mayor que uno de 24 bits, y este a su vez, mayor que uno de 16 bits. Los chips de coma
flotante tienen rangos dinámicos más amplios que los dispositivos de coma fija. Cada tipo de procesador
es ideal para un rango específico de aplicaciones. Los DSPs de 16 bits de coma fija, como por ejemplo la
familia de Motorola DSP 56100 son buenos para sistemas de voz, como teléfonos, ya que estos DSP
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, usando un ADC de 16 bits y un DSP de 24 bits
de coma fija como los DSP56002; el ADC es de 16 bits ya que es suficientemente amplio para obtener la
señal de alta fidelidad completa, el DSP ha de ser de 24 bits para poder manipular los valores que se
obtienen al procesar la señal. El procesamiento de imágenes, gráficas en 3D y simulaciones científicas
tiene un rango dinámico mucho más amplio y necesitan DSPs de 32 bits con aritmética de coma flotante
como por ejemplo el 96002 o el TMS320C30.
Formato aritmético
Una de las características más fundamentales de los procesadores digitales programables es el tipo de
aritmética utilizada por el procesador. La mayor parte de los DSP usan aritmética de coma fija, donde los
número se representan como enteros o como fracciones entre -1.0 y +1.0. Otros procesadores usan
aritmética de coma flotante, donde los valores se representan por una mantisa y un exponente como
mantisa x 2exp. La mantisa generalmente es una fracción con rango entre -1.0 y +1.0, mientras el
exponente es un entero que representa en binario el número de lugares a partir de la coma que se debe
desplazar a izquierda o derecha para obtener el valor representado.
La aritmética en coma flotante es mucho más flexible que la de coma fija. En coma flotante, los
diseñadores de sistemas tienen acceso a un rango dinámico más amplio ( la distancia entre mayor y el
menor valor que puede representar). Como resultado, los DSP de coma flotante son generalmente más
fáciles de programar que sus correspondientes de coma fija, pero normalmente más caros. El incremento
del costo se debe a la compleja circuitería necesaria para realizar los procesos en coma flotante. En coma
flotante el programador no necesita conocer en muchos casos ni el rango dinámico ni la precisión,
mientras que, en coma fija, los programadores han de ser cuidadosos asegurándose de que sus señales no
excedan el rango dinámico.
Los procesadores de coma fija, se usan en muchas aplicaciones debido a su bajo costo. En estas
aplicaciones son necesarios programas y algoritmos diseñados para determinar el rango dinámico y la
precisión. En las aplicaciones en las que el costo es poco importante o bien es necesario un amplio rango
dinámico o gran precisión, se utilizarán los procesadores en coma flotante.
En los procesadores de propósito general, la aritmética de coma flotante se suele simular mediante
software, es decir, generando rutinas que emulen el elemento de aritmética en coma flotante. Estas
rutinas tienen un alto costo en términos de ciclos de procesador. Una técnica más eficiente para
incrementar el rango numérico de procesadores de punto fijo es el punto flotante de bloque, donde un
grupo de números de mantisas diferentes y exponente común se procesan como un bloque de datos.
Estos bloques se suelen manejar por software, aunque algunos procesadores tiene circuitería hardware
para lograr su implementación.
Anchura de datos
Todos los DSP comunes de punto flotante usan una palabra de datos de 32 bits. Para DSP de punto fijo,
el tamaño de palabra más común es de 16 bits (Existen excepciones como la familia DSP56000 de
Motorola que usa un tamaño de palabra de 24 bits y la familia ZR38000 de Zoran, que emplea una de 20
bits). El tamaño del dato tiene una mayor repercusión en el costo, ya que influye notablemente en el
tamaño del chip y el número de pins que requiere, así como el tamaño de los dispositivos externos
conectados al DSP. Por todo esto, los diseñadores tratan de emplear anchuras de palabras lo más
pequeñas posibles de acuerdo a sus necesidades.
Como en el caso de la elección entre coma fija y coma flotante, hay que buscar el equilibrio entre el
tamaño de palabra y la complejidad de desarrollo. Por ejemplo, un procesador de 16 bits puede llevar a
cabo operaciones aritméticas de 32 bits en doble precisión a través de encadenar juntas una combinación
adecuada de instrucciones. Por supuesto la aritmética de doble precisión es mucho más lenta que la
precisión simple. Si el volumen de una aplicación puede manejarse con aritmética de precisión simple,
pero la aplicación necesita mas precisión para una sección pequeña del código, valdría la pena emplear
selectivamente la aritmética de doble precisión.
Aunque normalmente todos los DSP emplean un tamaño de palabra de instrucción igual al tamaño de
palabra de datos, aún así hay excepciones como el caso de la familia ADSP-2100 que trabaja con una
palabra de datos de 16 bits y una de instrucciones de 24 bits o el ZR38000 de 20 bits que emplea una
palabra de instrucción de 32 bits.
Velocidad
Se puede obtener una medida de cómo de adecuado es un procesador para una determinada tarea a través
de su velocidad de ejecución. Hay muchas formas de medir la velocidad de ejecución de los
procesadores. Quizá la fundamental sea el tiempo de ciclo de instrucción: la cantidad de tiempo
empleado en ejecutar la instrucción más rápida del procesador. El inverso de este tiempo dividido por un
millón es la velocidad de ejecución del procesador en millones de instrucciones por segundo o MIPS.
Un problema al comparar tiempos de ciclos de ejecución es que la cantidad de trabajo terminado por una
instrucción varía mucho de un procesador a otro. Por ejemplo, algunas de las características de
desplazamiento circular soportada por los DSP requieren que el dato sea desplazado con instrucciones de
desplazamiento de un bit repetidas. Asimismo, algunos DSP permiten movimientos en paralelo de datos
independientemente de la instrucción que ejecutemos en la ALU, mientras que otros solo soportan
movimientos en paralelo que estén relacionados con los operandos de la instrucción de la ALU.
Para resolver este problema, se toma una operación básica en lugar de una instrucción, y se usa como
punto de referencia al comparar. Una operación común es la operación MAC, aunque
desafortunadamente proporciona poca información para diferenciar procesadores, ya que en la mayor
parte de los DSP modernos una operación MAC se ejecuta en un solo ciclo de instrucción, y algunos
DSP son capaces de realizar mucho mas en una instrucción MAC que otros. Además los tiempos de
MAC no reflejan la implementación de otras operaciones importantes como los bucles.
Un acercamiento más general es definir un conjunto de benchmarks estándar y comparar sus velocidades
de ejecución en diferentes DSP. Estos benchmarks pueden ser simples algoritmos, funciones de kernel
como filtros FIR o IIR, o pueden ser aplicaciones enteras o partes de esas aplicaciones. Implementar
estos benchmarks de forma consistente en varios DSP y analizar sus resultados puede ser un objetivo
difícil, pero existen programas software que nos facilitan esta tarea, como BDT Benchmarks.
Como ejemplo de la utilidad comparativa de los benchmarks, incluimos a continuación dos ejemplos. El
primero es una comparación en la velocidad de ejecución de dos FFT, una de 256 y otra de 1024 puntos,
sobre las tres arquitecturas analizadas en capítulos anteriores y un procesador Pentium como
representante de las máquinas de propósito general. El tiempo está en microsegundos.
Multiprocesamiento
Aplicaciones con una gran carga aritmética (como radar o sonar) a menudo requieren varios DSPs. En
esos casos, facilidad de interconexión (en términos de tiempo de diseño de la circuitería de
comunicaciones y el costo de unir los procesadores) y su funcionamiento (en términos de velocidad de
comunicación y latencia) son los factores importantes. Algunas familias de DSPs (especialmente Texas
Instruments TMS320C4x y Analog Devices ADSP-2106x) proporcionan hardware especial para el
diseño de un sistema multiprocesador.
Potencia
Los DSPs cada vez se usan más en aplicaciones portátiles como teléfonos móviles donde el consumo se
convierte en una característica importante. Por esto, la mayoría de los fabricantes de DSPs han reducido
los voltajes de alimentación de los procesadores e incluyen algunas características que permiten al
programador reducir el consumo, algunas de estas características son las siguientes:
Reducción del voltaje: los fabricantes han introducido versiones de baja potencia (3'3 ó 3'0 V) de sus
DSPs. Estos procesadores consumen aproximadamente un 40% que sus equivalentes de 5 V a la misma
frecuencia de reloj.
Modos "sleep" o "Idle": estos modos permiten desconectar el reloj del procesador, excepto de ciertas
secciones del procesador, reduciendo el consumo. En algunos casos se sale de este estado mediante una
interrupción no enmascarable, en otros sólo se sale a través de alguna línea externa de interrupción.
Divisores de reloj programables: algunos DSPs actuales permiten variar la frecuencia del reloj por
software para usar la mínima frecuencia de reloj para cada tarea.
Control de periféricos: algunos DSPs permiten al programador deshabilitar los periféricos que no se
usan.
A pesar de estas características es difícil obtener el consumo de los DSPs porque este consumo varía,
hasta por un factor de 3, dependiendo de la instrucción que está ejecutando. Los vendedores suelen
publicar el consumo típico o máximo sin especificar lo que constituye un programa típico.
Después de analizar las arquitecturas de los dispositivos, se ha obtenido una visión general del abanico
de aplicaciones que soportan los DSPs. Por ejemplo:
En el campo militar se utilizan los DSPs para procesamiento de radar, sonar o guía de misiles.
Algunos de los avances de los DSPs en instrumentación médica son las imágenes ultrasónicas,
radiografías digitales y varias formas de tomografía (CAT, tomografía asistida por ordenador; PET,
tomografía por emisión de positrones; MRI, imágenes por resonancia magnética).
CONCLUSIONES
En este trabajo se ha buscado realizar un pequeño estudio, de una tecnología en pleno desarrollo.
Durante su ejecución, se ha procedido a la recopilación material tal como: manuales de usuario, textos y
fundamentalmente publicaciones obtenidas de los propios fabricantes a través de Internet, lo que
proporciona una alta seguridad acerca de la actualidad y validez de los datos aquí expuestos.
Fundamentalmente se ha realizado el estudio del tratamiento digital de la señal que explica la existencia
de estos procesadores, las arquitecturas fundamentales que éstos adoptan y las aplicaciones que soportan,
así también analizado qué dispositivo dentro de la gama de DSPs que existe en el mercado, se adapta de
mejor forma a tareas concretas, o cuales serian óptimos para la solución de problemas en campos que
van desde militar hasta el medico.
Siendo conscientes de que la investigación y el desarrollo con procesadores digitales de señal es, aunque
muy extendido, de relativamente corta aparición, la objetivo primordial de este informe, es poder mirar
los DSPs como herramientas que apoyan el constante desarrollo humano, y que de acuerdo al grado de
avance de estos en su estructura y diseño se han incorporado a nuestro diario vivir, tanto en
comunicaciones como el procesamiento de imágenes y sonido, es así como muchos artefactos
electrodomésticos contienen DSPs sin ni siquiera darnos cuenta de aquello.
BIBLIOGRAFIA
Gran parte de la información aquí presentada, fue una recopilación de la navegación efectuada a través
de Internet, y aquí se mencionan las paginas web que sirvieron de fuente de información para este
informe:
http://www.ti.com
http://www.mot.com
http://www.analog.com
http://www.bdti.com
http://www.eg3.com/dspxmix.htm
http://www.wavelet.org/wavelet/index.html
http://www.itu.ch
http://www.dsp.rice.edu
http://www.cera2.com/dsp.htm
http://www.geocities.com/Colosseum/Track/8462/
Además Texto Utilizado:
DSP56001
Motorola Inc.
DSP Division.
22
Procesador digital de señales
Un procesador digital de señales o DSP (sigla en inglés de digital signal processor) es un
sistema basado en un procesador o microprocesador que posee un conjunto de instrucciones,
un hardware y un software optimizados para aplicaciones que requieran operaciones
numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y
representación de señales analógicas en tiempo real: en un sistema que trabaje de esta forma
(tiempo real) se reciben muestras (samples en inglés), normalmente provenientes de
un conversor analógico/digital (ADC).
Historia[editar]
En 1978, INTEL lanzó el 2920 como un “procesador analógico de señales”. Este poseía un
chip ADC/DAC con un procesador de señales interno, pero no poseía un multiplicador de
hardware, el 2920 no tuvo éxito en el mercado.
En 1979, AMI lanza el S2811, fue diseñado como un microprocesador periférico, al igual que
el 2920 no tuvo gran éxito en el mercado. En el mismo año, Bell Labs introduce el primer chip
procesador digital de señales (DSP), The Mac 4 Microprocessor. Luego en 1980 fueron
presentados en el ISSCC’80 los primeros DSP completos: el PD7710 de NEC y el DSP1 de
AT&T, ambos procesadores fueron inspirados en las investigaciones de PSTN
Telecomunicaciones. En ese mismo año NEC comenzó la producción del PD7710, la primera
producción de DSP completos en el mundo.
El primer DSP producido por Texas Instruments, el TMS32010, probó ser un gran éxito.
Actualmente el TMS320C4X diseñado y producido por TEXAS INSTRUMENTS, surge con
ciertas ventajas frente al resto de los procesadores, ya que éste se diseña para ser escalable;
es decir, para que pueda trabajar en paralelo con otros dispositivos similares. Muchos de los
procesadores se engloban dentro de la filosofía CISC, (Complex Instruction Set Computers)
Aunque se pueden encontrar en el mercado algunos que operen bajo la filosofía RISC
(Reduced Instruction Set Computers); estos últimos dedicados para aplicaciones concretas
como la telefonía móvil.
Funcionamiento
Se ha dicho que puede trabajar con señales analógicas, pero el DSP es un sistema digital, por
lo tanto necesitará un conversor analógico/digital a su entrada y digital/analógico en la salida.
Como todo sistema basado en procesador programable necesita una memoria donde
almacenar los datos con los que trabajará y el programa que ejecuta.
Si se tiene en cuenta que un DSP puede trabajar con varios datos en paralelo y un diseño e
instrucciones específicas para el procesado digital, se puede dar una idea de su enorme
potencia para este tipo de aplicaciones. Estas características constituyen la principal
diferencia de un DSP y otros tipos de procesadores.
Para adentrar en su funcionamiento se pondrá el ejemplo de un filtro: el DSP recibirá valores
digitales o samples procedentes de la señal de entrada, calcula qué salida se obtendrá para
esos valores con el filtro que se le ha programado y saca esa salida. Un posible sistema
basado en un DSP puede ser el siguiente:
Arquitectura
Un DSP está diseñado teniendo en cuenta las tareas más habituales del procesado digital:
sumas, multiplicaciones y retrasos (almacenar en memoria).
Los DSP abandonan la arquitectura clásica de Von Neumann, en la que datos y programas
están en la misma zona de memoria, y apuestan por la denominada Arquitectura Harvard. En
una arquitectura Harvard existen bloques de memoria físicamente separados para datos y
programas. Cada uno de estos bloques de memoria se direcciona mediante buses separados
(tanto de direcciones como de datos), e incluso es posible que la memoria de datos tenga
distinta anchura de palabra que la memoria de programa (como ocurre en ciertos
microcontroladores).
Los elementos básicos que componen un DSP son:
Programación
Un DSP se puede programar tanto en ensamblador como en C. Cada familia de DSP tiene su
propio lenguaje ensamblador y sus propias herramientas suministradas por el fabricante.
Gracias a la colaboración entre fabricantes, existen lenguajes de más alto nivel (y por lo tanto,
más sencillos y rápidos de usar) que incorporan la capacidad de programar los DSP, en
general pasando por un precompilado automático en C. Son los casos de LabVIEW y Matlab.
Ejemplo de un filtro con script m compatible con LabVIEW MathScript y
con Matlab[editar]
En el siguiente ejemplo se presenta la programación de un filtro digital en script m. El
parámetro "entrada" es un valor que hay que darle al programa. Cabe destacar que los
coeficientes del filtro están en los arrays den y num. Nótese que todas las operaciones son
sumas (o restas), multiplicaciones y almacenamiento en memoria (variable w).
w=[0 0 0 0 0];
y=zeros(1,length(entrada));
for i=1:length(entrada)
w(5)=entrada(i)-den(2)*w(4)-den(3)*w(3)-den(4)*w(2)-den(5)*w(1);
y(i)= num(1)*w(5)+num(2)*w(4)+num(3)*w(3)+num(4)*w(2);
w(1)=w(2);
w(2)=w(3);
w(3)=w(4);
w(4)=w(5);
end;
Aplicaciones
Las aplicaciones más habituales en las que se emplean DSP son el procesado
de audio y vídeo; y cualquier otra aplicación que requiera el procesado en tiempo real. Con
estas aplicaciones se puede eliminar el eco en las líneas de comunicaciones, lograr hacer
más claras imágenes de órganos internos en los equipos de diagnóstico médico, cifrar
conversaciones en teléfonos celulares para mantener privacidad, analizar datos sísmicos para
encontrar nuevas reservas de petróleo, hace posible las comunicacioneswireless LAN, el
reconocimiento de voz, los reproductores digitales de audio, los modems inalámbricos,
las cámaras digitales, y una larga lista de elementos que pueden ser relacionados con el
proceso de señales.
Véase también[editar]
Procesamiento digital de señales
Filtro digital
FPGA
Fourier
FIR
Harry Nyquist
IIR
LabVIEW
Matlab
Octave
Enlaces externos[editar]
Fabricantes[editar]
Analog Devices
Texas Instruments
Motorola (Freescale)
Hewlet Packard
Cirrus
Creative
Forte Media
Philips
Yamaha
Airelog Device
ATT
SGS-Thomson
Programación rápida de DSP para NI SPEEDY-33 y TI DSKs con LabVIEW
Matemática con LabVIEW MathScript
Otros[editar]