cap2 pds

21
2 El procesador de se˜ nales digitales Un modelo anal´ ıtico simple puede dar un enfoque f´ ısico adicional para la optimizaci´ on de los dispositivos electr´ onicos —Lee, Mayaram, y Hu Debido a que la realizaci´ on de tareas de procesamiento de se˜ nales digitales en tiempo real, el filtrado y el an´ alisis espectral, implican el conocimiento y la progra- maci´ on de un circuito programable, en este cap´ ıtulo se introduce un procesador digital de se˜ nales, el DSP56002 de Motorola que es un procesador de 24-bits. Se presenta su esquema de memoria, modos de operaci´ on y m ´ odulos perif´ ericos. As´ ı mismo, se introducen, en forma breve, dos ambientes de programaci´ on: el simulador GUI56000 y el ambiente de programaci´ on del DSP56002. 1 Con esto, se espera que el alumno pueda tener un acercamiento y experimentar con el ambiente de programaci´ on y la arquitectura del procesador introduciendo a trav´ es de ejemplos la instrucciones y las operaciones propias de este procesador. 2.1 DESARROLLO DE LOS PROCESADORES DE SE ˜ NALES DIGITALES Antes de introducir los detalles de la programaci´ on de alg´ un procesador de se˜ nales digitales en particular podr´ ıamos contestar a la pregunta ¿qu´ e es un procesador de se˜ nales digitales? Una respuesta se da a continuaci´ on: Es es un circuito integrado 1 Los ejercicios pr´ acticos se dejan para la 2da. Parte 15

Upload: fermin48

Post on 29-Jun-2015

765 views

Category:

Technology


0 download

DESCRIPTION

Apuntes de PDS

TRANSCRIPT

Page 1: Cap2 Pds

2El procesador de senales

digitales

Un modelo analıtico simple puede dar un enfoque fısico adicional para la optimizacion delos dispositivos electronicos

—Lee, Mayaram, y HuDebido a que la realizacion de tareas de procesamiento de senales digitales en

tiempo real, el filtrado y el analisis espectral, implican el conocimiento y la progra-macion de un circuito programable,en este capıtulo se introduce un procesadordigitalde senales, el DSP56002 de Motorola que es un procesador de 24-bits. Se presentasu esquema de memoria, modos de operacion y modulos perifericos. Ası mismo, seintroducen, en forma breve, dos ambientes de programacion: el simulador GUI56000y el ambiente de programacion del DSP56002.1 Con esto, se espera que el alumnopueda tener un acercamiento y experimentar con el ambiente de programacion y laarquitectura del procesador introduciendo a traves de ejemplos la instrucciones y lasoperaciones propias de este procesador.

2.1 DESARROLLO DE LOS PROCESADORES DE SE NALESDIGITALES

Antes de introducir los detalles de la programacion de algun procesador de senalesdigitales en particular podrıamos contestar a la pregunta ¿que es un procesador desenales digitales? Una respuesta se da a continuacion: Es es un circuito integrado

1Los ejercicios practicos se dejan para la 2da. Parte

15

Page 2: Cap2 Pds

16 EL PROCESADOR DE SENALES DIGITALES

programable muy parecido a un microprocesador pero con una arquitectura disenadaespecialmente para realizar operaciones de procesamientode senales. Las princi-pales diferencias entre un circuito integrado (CI) para el procesamiento de senalesdigitales, que abreviaremos como DSP,2 y un microprocesador son� Su arquitectura Harvard� Su instruccion MAC (multiplica y acumula)

En la arquitectura Harvard, el procesador emplea dos espacios de memoria. Un es-pacio deMemoria para Programay unespaciodeMemoria para Datos. El DSP56002tiene una arquitectura Harvard modificada con tres espaciosde memoria, un espaciode memoria para programa P, y dos espacios de memoria para datos X y Y. Por otrolado, la instruccion MAC es en realidad un circuito multiplicador y sumador.Estees uno de los elementos mas importantes de un DSP. En gran medida la instruccionMAC es la que hace posible el procesamiento en tiempo real.

Considerense los dos siguientes operaciones:y[n] = 1Xk=�1x[k]h[n� k]X [m] = N�1Xn=0 x[n]WmnNLa primera es la suma de convolucion, y la segunda es la transformada de Fouri-

er discreta (TFD). Ambas corresponden a dos de las operaciones mas comunes delprocesamiento digital de senales, es decir, el filtrado y el analisis espectral respec-tivamente. Es claro que las operaciones de multiplicacion y de suma son usadasextensivamente. Ası pues se puede ver la importancia de contar con una instruccionque realice la multiplicacion de dos operandos y la suma en un solo ciclo. Cabepreguntarse, ası como la instruccion MAC se ha incluido como parte del juego deinstrucciones del procesador de senales ¿es la instruccion FFT, el siguiente paso?Creemos, efectivamente, que ese podrıa ser el siguiente paso, pero, el tiempo lo dira.

2.1.1 Los primeros dıas del procesamiento digital de se nales� El multiplicador: La operacion de multiplicacion es central para el proce-samiento digital de senales. Entonces podemos ver que era necesario contarcon un multiplicador que fuera rapido y de bajo costo. Por supuesto, actual-mente, podemos decir que una computadora de proposito general puede realizareficientemente esas operaciones. Sin embargo, a mediados delos anos 80 unacomputadora de proposito general o microcomputadora realizaban estas opera-ciones en unos cuantos milisegundos. Entonces, analizar unos pocos segundos

2Note que al termino Procesamiento Digital de Senales lo abreviamos comoPDS, mientras que al referirnosal circuito procesador digital de senales lo referiremos comoDSP

Page 3: Cap2 Pds

DESARROLLO DE LOS PROCESADORES DE SENALES DIGITALES 17

de voz podıa tomar horas. Por supuesto, que una computadora de propositogeneral presenta varias ventajas:

– Aritmetica de punto flotante de alta precision.

– Disponibilidad de programacion en lenguaje de alto nivel, lo que permitefacilmente especificar algoritmos.

– En un sentido positivo, la mayor parte de los detalles de la circuiterıaesta oculta al programador.

Tomando esto en cuenta, podemos decir que una computadora depropositogeneral representa una buena opcion para evaluar nuevos algoritmos. De he-cho, las computadoras personales se usan extensivamente para disenar y probarnuevos algoritmos ası como para implantarlos con propositos de simulacion,antes de la implantacion final en circuitos dedicados. Una excelente herramien-ta para probar y desarrollar algoritmos de PDS y aplicaciones, es el ambientede programacionMatlab c .� Procesamiento en tiempo real: Un avance importante, que permitio a la cir-cuiterıa digital igualar a su contraparte analogica, fue la construccion de multi-plicadores en un solo circuito integrado. La companıa TRW ofrecio dispositivosque realizaban multiplicacion entera de numeros de 8, 12, 16, o 24 bits en unapequena fraccion de un microsegundo. Un ejemplo es el TRW MPY16AJ.Cuando se introdujeron estos multiplicadores, los microprocesadores eran de-masiado lentos, comparados con los multiplicadores de TRW.� Dispositivos con diseno “bit-slice": En el siguiente paso encontramos proce-sadores de senales “bit-slice". Los dispositivos “bit-slice" fueron usados prin-cipalmente en el diseno de minicomputadoras de proposito general que fueronsuficientemente flexibles para desempenarse como maquinas de procesamien-to de senales de proposito especial. Un ejemplo fue el proyecto MARCH,mostrado esquematicamente en la Figura 2.2, cuyas principales caracterısticaseran:

– Un secuenciador.

– Programacion a nivel de microcodigo.

– La inclusion de un monitor facilitaba, relativamente, la programacion.

En realidad, la programacion seguıa siendo complicada, por ejemplo, la sigu-iente lınea muestra como serıa un mando tıpico del monitor:$3M1� F2ME � 87 C � 2434cuyo significado serıa:

Formato tipo 3 (se refiere a los tres mandos siguientes)Modulo n umero 1, mando con el octeto F2

Page 4: Cap2 Pds

18 EL PROCESADOR DE SENALES DIGITALES

Registro de

entrada X

Arreglo

multiplicador

asíncrono

Regis

trro

de

entr

ada Y

Regis

tro P

roducto

(p

art

e m

enos

sig

nific

ativa)

Registro Producto

(parte más significativa)

Reloj Habilitar salida

Canal de datos (16 bits)

Canal de datos (16 bits)

Reloj

(16 bits)

Figura 2.1 Diagrama a cuadros del multiplicador MPY16AJ.

Modulo n umero E, mando con el octeto 87Mando del controlador 2434

Puede verse que la programacion y la alteracion del programa era a nivel delenguaje de maquina. En conclusion, este tipo de sistemas eran demandantesdesde el punto de vista de ingenierıa, costosos y consumıan mucho tiempo,pues el desarrollo de proyectos como el MARCH tomaban entre 3a 4 anos.� El siguiente paso logico fue el incluir en un solo circuito integrado toda la logicadel procesador “bit-slice". Entonces se inicia la revolucion con la introducciondel procesador de senales:

– Intel 2920 en 1979 (aproximadamente). Algunas caracterısticas eran:Convertidor A/D y D/A incluidos en el CI. Programa residenteenmemoriade solo lectura borrable EPROM para instrucciones y una EPROM paraalmacenar datos fijos. Unidad aritmetica y logica (ALU) de 16 bits.Incluıa un circuito similar al MPY16AJ.

– NEC 7720.Este se distinguıa por una doble filosofıa: a) estaba disenadopara algoritmos especıficos y b) aun seguıa siendo un procesador desenales de proposito general. Incluıa instrucciones en memoria de solo

Page 5: Cap2 Pds

DESARROLLO DE LOS PROCESADORES DE SENALES DIGITALES 19

Puertos E/S

Registros (apilados)

Control de memoria Secuenciador

Puertos E/S

Monitor sobre un 8085

ALU Multiplicador

MPY16AJ Interfase para

memoria

Unidades de memoria

Canal principal (datos de 16 bits)

Canal de control (40 bits)

Figura 2.2 Diagrama a cuadros de los componentes principales del proyecto MARCH.

lectura ROM, datos en ROM y datos en memoria de acceso aleatorioRAM.

– NEC 77P20 era la version EPROM del NEC7720.

– TMS 32010, TMs320M10 en Frebrero 1982, en San Francisco Californiapor la Texas Instruments.Este es un procesador de senales de propositogeneral con un amplio espectro de aplicaciones. Incluıa un circuito mul-tiplicador de 16x16 bits, un acumulador/sumador de 32 bits yhabilidadpara direccionar memoria externa sin penalizar su velocidad. Su filosofıade diseno era: Sera muy practico implementar un sistema que incluyamemoria RAM fuera del CI para almacenamiento de programa. Es-to permitira cambiar al programa durante el tiempo de ejecucion. ElTMS320C10 fue empleado en proyectos de reconocimiento de voz en1983.

Un hecho historico interesante es el siguiente: Despues de la introduccion del mi-croprocesador en los anos 70, la sıntesis de voz fue la primera aplicacion en alcanzarlos mercados en forma masiva. Se trataba de circuitos integrados disenados especıfi-camente para ese proposito, aunque no eran programables. El mejor ejemplo es eljuguete educativo “Speak and Spell" desarrollado por la Texas Instruments. La may-orıa de estos circuitos empleaban un conjunto de parametros para generar un numerolimitado de frases. Eran considerados como sistemas de grabacion de estado solido.

Page 6: Cap2 Pds

20 EL PROCESADOR DE SENALES DIGITALES

2.2 CARATERISTICAS DEL DSP56002

En esta seccion, se incluye una breve descripcion del procesador de senales digitalesDSP56002 de Motorolac . No se intenta substituir al manual de empleo, si no masbien brindar parte de la informacion acerca del procesador que se empleara en larealizacion de filtros digitales, para procesamiento en tiempo real. Para informa-cion detallada, se recomienda consultar el DSP56002 Digital Signal Processor User’sManual ref no. DSP56002UM/AD REV 1. y el DSP56000UM/AD REV 2.

El DSP56002 es un procesador de senales de 24 bits cuya arquitectura ha sidodisenada para maximizar su desempeno en aplicaciones de PDS con manejo intensi-vo de datos. Tiene una arquitectura que se puede expandir conperifericos sofisticadosincluidos en el CI y puertos de entrada y salida (E/S), de proposito general. La arqui-tectura, se dice, es de doble naturaleza ya que cuenta con dosespacios independientesy expandibles de memoria, dos unidades de generacion de direcciones (AGU) y unaunidad aritmetica y logica (ALU) que contiene dos acumuladores y dos circuitos derecorrimiento y limitacion.

Las caracterısticas principales se pueden resumir como sigue:Velocidad: 20 MIPS (millones de instrucciones por segundo)- un ciclo de instruc-ciones de 50 ns a 40MHz.Hasta 120 MOPS (millones de operaciones por segundo) a 40 MHz.Canales de datos de 24 bits con dos acumuladores de 56 bits cada uno.Ejecuta una transformadacompleja rapida de Fourier (FFT) de 1024 puntos en 59,898ciclos de reloj.Cuatro canales internos de datos de 24 bits y tres canales internos de direcciones de16 bits para acceso simultaneo de la memoria de programa y dosmemorias de datos.Paralelismo: Tres unidades de ejecucion incluidas, AGU unidad de generacion au-tomatica de direcciones, PC contador de programa, y la ALU unidad aritmetica ylogica.Una unidad en paralelo multiplicadora/acumuladora de 24�24 bits de un solo ciclo.Juego de instrucciones altamenteejecutables enparaleloconmodos dedireccionamien-to para aplicaciones de PDS.Instrucciones de ejecucion en ciclos anidados sin carga extra para el programador.Memoria RAM para programa 512�24.DOs memorias RAM para datos de 256�24.Dos tablas de datos en ROM de 256�24 (tablas seno y coseno, y tablas de ley-A, yley �).Tres puertos multifuncionales PTA, PTB, y PTC.Direccionamiento de memoria externa con un canal de direcciones de 16 bits y canalde datos de 24 bits.24 terminales de E/S de proposito general.Un contador de eventos/temporizador de 24 bits.Canales de datos: 4 bidireccionales de 24 bits XDB, YDB, PDB yGDB.Tres canales de direcciones: XAB, YAB, PAB.Interfase con soporte de acceso directo a memoria para comunicacion entre proce-sadores “Byte-wide Host Interface (HI)".

Page 7: Cap2 Pds

CARATERISTICAS DEL DSP56002 21

Interfase (de comunicacion) serie sıncrona (SSI) para comunicacion con CODECS ydispositivos de comunicacion serie sıncronos.Interfase de comunicacion serie (SCI) para comunicacion asıncrona “full-duplex".

En la ALU se tiene:� 4 registros de entrada de datos de 24 bits (x1,x0, y1,y0)� 1 MAC (multiplicador fraccional paralelo complemento de dos de 24x24bits)� 2 registros acumuladores de 56 bits, A y B (48 bits + 8 bits de extension)� 1 registro acumulador con recorrimiento� 2 circuitos de recorrimiento/limitacion para el canal de datos

Los registros de extension automatica de 8 bits ofrecen proteccion contra desborde.La extension automatica de signo se da cuando se escribe en el acumulador de 56bits, A o B, con un operando de 48 o 24 bits.

La limitacion ocurre automaticamente cuando se leen los operandos de 56 bits deA o B (no en forma individual a2, a1, a0, b2, b1, b0).

En la Figura 2.3 se muestra el diagrama de terminales del procesador de senalesDSP56002, con un total de 132 terminales, y en la Tabla 2.1 se agrupan las terminalesde acuerdo a su funcion.

Tabla 2.1 Grupos de terminales de acuerdo a su funcion.

Grupo funcional Numero de terminales

Canal de datos, puerto A 24Direcciones, puerto A 19Canal de control, puerto A 7Host interface, puerto B 15SCI, puerto C 3SSI, puerto C 6Interrupciones y control del modo de operacion 4PLL y reloj 7OnCE 4Alimentacion Vcc 16Tierra 24Temporizador 1Reservados 2

Total (para encapsulado PGA) 132

2.2.1 Modos de direccionamiento

El DSP56002 cuenta con modos de direccionamiento que permiten realizar opera-ciones propias para el PDS. Para esto cuenta con los siguientes registros de 16 bits:� Registros de direcciones R0 - R3, y R4 - R7

Page 8: Cap2 Pds

22 EL PROCESADOR DE SENALES DIGITALES

A0-A15

D0-D23

PSDS

RDWR

X/Y

BRBG

DGND(6)DVCC(3)

AGND(5)AVCC(3)

CGNDCVCC

WTBS

QGND(4)QVCC(4)

EXTALXTAL

RESETMODA/IRQAMODB/IRQBMODC/NMI

H0-H7HA0-HA2HR/WHENHREQHACKHGND(4)HVCC(2)

RXDTXDSCLK

SVCCSGND(2)

SC0-SC2SCKSRDSTD

DSCK/OS1DSI/OS0DSODR

OnCE

Port C

Port C

Port B

Port AData

Port AAddress

Port AControl

Interrupt/ModeControl

DSP56002

132 pins

HOST

SCI

SSI

PVCCPGNDPCAP

CKOUT

PLL

PLOCK

RESERVED (2)

PINIT

BN

CKP

CLVCCCLGND

TIO Timer

Figura 2.3 Diagrama de terminales del DSP56002.� Registro de compensacion (offset) N0 - N3, y N4 - N7� Registros modificadores M0 - M3, y M4 - M7Rn,Mn, yNn son registros que se emplean en trinomios. Solamente se puede usarN2 y M2 para modificar el contenido deR2. Los registros de direccionesR0 - R3 yR4 -R7 son registros de 16 bits que pueden contener direcciones o datos de propositogeneral. Estos registros se emplean para calcular la direccion efectiva de un operan-do. Cuando soportan movimientos en paralelo de datos de las memorias X y Y, losregistros de direcciones deben considerarse como grupos separados,R0 aR3, yR4 aR7. El contenido de un registroRn puede apuntar directamente, o con un desplaza-miento, a una localidad de memoria. Ademas, el contenido puede pre-modificarse opost-modificarse, de acuerdo al modo de direccionamiento seleccionado.

Los registros de compensacionNnpueden contener valores de compensacion paraincrementar o decrementar el contenido de los registros de direcciones, o la direccionapuntada porRn. Tambien, pueden contener valores de 16 bits de proposito general.

Page 9: Cap2 Pds

CARATERISTICAS DEL DSP56002 23

Los registros modificadoresMn definen el tipo de aritmetica que se utilizara parael calculo en los modos de direccionamiento, o tambien pueden usarse para almace-namiento de proposito general.

En la Tabla 2.2 se resumen los modos de direccionamiento cuando se emplean losregistrosRn, yNn.

Tabla 2.2 Modos de direccionamiento.

Modo de direccionamiento Modificador Codigo ensamblador

Direccionamiento indirectoSin modificar Si (Rn)Post-incremento por 1 Si (Rn)+Post-decremento por 1 Si (Rn)-Post-incremento con compensacion porNn Si (Rn) +NnPost-decremento con compensacion porNn Si (Rn)�NnPre-decremento por 1 Si �(Rn)Indexado con compensacion porNn Si (Rn +Nn)(Rn y Nn no cambian)

Los registro modificadores son muy importantes y, aunque no siempre aparecen enlas instrucciones de movimiento de datos,siempre deberan pre-cargarse o inicializarsecon algun valor, pues estos registros determinan el modo de direccionamiento. Sedistinguen pues tres importantes modos del empleo de los registros de direccionesRn, bajo la accion de los registros modificadoresMn.

Al primero lo llamamosdireccionamiento linealo modificacion lineal (linear mod-ifier). Cuando deseamos direccionamiento lineal, se carga al registroMn con el valor$FFFF , o tambien -1, entonces se realiza la modificacion empleando aritmeticanormal de 16 bits (modulo 65,536). Es decir,cuando se incrementa el contenido dealgun registro de direccionesRn , este incremento puede crecer en forma lineal hastael valor 65,536. Tambien se puede usar un incremento con compensacion por el valordeNn.

Al segundo lo llamamosdireccionamiento modulo M, o direccionamientocircular.El registro modificadorMn se carga con el valorMn = M � 1 y se realiza lamodificacion modulo M, en donde M puede tomar cualquier valor desde 2 hasta32768. La aritmetica modulo M hace que el registro de direcciones tenga un valorque permanece dentro de un intervalo de direcciones de tamano M, definiendo lımitesinferior y superior al direccionar a memoria. El lımite inferior debe tener ceros enlosk bits menos significativos, en donde2k �M y por lo tanto debe se un multiplode2k

Al tercer modo le llamamosdireccionamiento con acarreo inverso(reverse carrymodifier). En este caso, se carga al registroMn con $0000. La modificacion, ocambio de la direccion, se realiza en el circuito (por “hardware") propagando elbitde acarreo en la direccion inversa. Este modo es muyutil en los algoritmos de la FFT.Para que funcione bien, para una FFT de2k puntos se debe seguir el procedimientosiguiente:

1. Mn = 0

Page 10: Cap2 Pds

24 EL PROCESADOR DE SENALES DIGITALES

2. Nn = 2k�13. CargarRn con un valor que este entre los lımites superior e inferior. El lımite

inferior es Lx2k, en donde L es un numero entero cualesquiera. Este lımiteentregara un numero binario de 16 bits “x x: : :x x 0 0: : :x x", en donde x x: : :xx = L y 0 0: : :0 0 es igual ak ceros. El lımite superior es Lx(2k) + (2k � 1).Esto dara un numero binario “x x: : :x x 1 1: : :1 1", en donde x x: : :x x + L, y1 1: : :1 1 =k unos

4. Usar el metodo de direccionamiento(Rn) +NnEn resumen,� El direccionamiento con acarreo inverso esutil para FFTs de2k puntos.� El direccionamiento modulo M esutil para crear pilas circulares como colas

(FIFOs “first in first out"), lıneas de retardo y pilas de muestras de hasta 32,768palabras largas (“long words").� El direccionamiento lineal esutil para direccionamiento de proposito general.

Para mas detalles, se recomienda consultarel manual deusuario (DSP56000/DSP56001Digital Signal processor user’s manual) DSP56000UM/AD.

2.2.2 Modulos de memoria y modos de operaci on

El procesador de senales DSP56002 ha sido disenado con una arquitectura Harvardmodificada, es decir, tiene tres espacios de memoria: un espacio de memoria paraprograma P, y dos espacios de memoria paradatos X yY. Es posible teneracceso aestostres espacios de memoria independientes, en forma simultanea, gracias al paralelismoque presenta dicha arquitectura. Los espacios de memoria son configurados por losbits de control en elRegistro de Modo de Operacion(OMR). Los bits de controlde modo de operacion, en el OMR, controlan el mapa de memoria de programa yseleccionan las direcciones de los vectores de interrupcion. Un bit adicional (DE)controla los mapas de memoria X y Y y habilita o inhibe los datos contenidos enROM.

2.2.3 La memoria de programa P

El DSP56002 tiene 512 palabras (o direcciones) de memoria RAM para programa,64 palabras de memoria ROM programada en fabrica para “arranque" (bootstrap).

La memoria ROM de arranque es programada para realizar la operacion de “ar-ranque" desde el puerto de memoria expandida (puerto A), desde la interfase de Host(HI), o desde el puerto SCI. Esto ofrece un metodo conveniente y de bajo costo paracargar la memoria de programa RAM con un programa dado por el usuario al salir delestado de re-inicio (“reset") o de encendido (“power-on").La actividad de la ROMde arranque es controlada por los bits MA, MB, y MC en el OMR.

Page 11: Cap2 Pds

CARATERISTICAS DEL DSP56002 25

Los vectores de interrupcion estan localizados en las 128 direcciones mas bajas dela memoria P ($0000 - $00FF). La memoria P se puede expandir hasta 64k fuera delCI.

2.2.4 La memoria de datos X

Esta memoria cuenta con varias caracterısticas muy importantes ya que incluye 256localidades de 24 bits de memoria RAM interna (incluida en elCI) ocupando lasdirecciones bajas de memoria (0-255). Los datos en memoria interna ROM ocupanlas direcciones 256-511 y son controlados por el bit DE (“data enable") en el OMR.En esta memoria X, se encuentran tambien los registros perifericos incluidos (“on-chip peripheral registers") ocupando las direcciones altas de la memoria de datos X($FFC0 - $FFFF). La memoria X se puede expandir a 64k en memoria externa (fueradel CI).

2.2.5 La memoria de datos Y

La memoria RAM interna es una memoria estatica interna de 24 bits de ancho queocupa loas direcciones mas bajas en el espacio de memoria Y (0-255). Los datos enmemoria interna ROM ocupan las direcciones 256-511 y son controlados por los bitsDE y YD en el OMR. La memoria Y se puede expandir a 64k en memoriaexterna(fuera del CI).

2.2.6 El registro de modo de operaci on OMR

El OMR es un registro de 24 bits, en donde solo estan definidos seis bits, que controlael modo de operacion del procesador. Esta localizado en la Unidad de Control dePrograma. Los bits del OMR son afectados al re-iniciar, y porlas instrucciones ANDI,ORI, MOVEC, BSET,BCLR, y BCHG. El formato del OMR se muestra Figura 2.4,

23 8 7 6 5 4 3 2 1 0

* * SD * MC YD DE MB MA

en donde,MB,MA l ıneas A y B de modo de operacion .

DE bit de habilitado de datos en ROM (“Data ROM enable") .YD inhabilitado de la memoria interna Y .MC lınea C de modo de operacion .? reservado .SD detiene retardo (“Stop delay") .

Figura 2.4 Formato del registro OMR.

Las Tablas 2.3 y 2.4 muestran,en resumen,el funcionamientode los bits contenidosen el OMR.

Page 12: Cap2 Pds

26 EL PROCESADOR DE SENALES DIGITALES

Tabla 2.3 Bits DE y YD del OMR

DE YD Memoria de Datos0 0 ROMs internas inhabilitadas y sus direcciones

son parte de la memoria externa0 1 ROM interna X, RAM y ROM internas de Y

inhabilitadas pasan a memoria externa1 0 ROMs de datos X y Y habilitadas1 1 RAM y ROM internas de Y inhabilitadas y son parte

de la memoria externa. ROM interna de X habilitada

Tabla 2.4 Resumen de los modos de operacion

Modo MC MB MA Descripcion del Modo

0 0 0 0 CIunico, P:RAM habilitada, re-inicio $00001 0 0 1 Arranque(bootsatrap) desde EPROM, sale en Modo 02 0 1 0 Expandido, P:RAM habilitada, re-inicio $E0003 0 1 1 Desarrollo P:RAM inhabilitada, re-inicio $00004 1 0 0 Reservado paraArranque5 1 0 1 Arranquedesde “Host", sale en Modo 06 1 1 0 Arranquedesde SCI (reloj externo), sale en Modo 07 1 1 1 Reservado paraArranque

El mapa de memoria,es decir las direcciones de inicio, tantopara espacio de memo-ria P como para los espacios de memoria X y Y, depende de los modos de operaciony de los bits DE y YD del OMR. Como se tienen tres modos de operacion validos, setendran tres mapas de memoria para el espacio de memoria P. Esto se muestra en laTabla 2.4 y en forma mas clara en la Figura 2.5. Para los espacios de memoria X y Y,comoestos dependen de dos bits, DE y YD, se tienen cuatro combinaciones posibles.En las Figura 2.6 a 2.9, se muestran estas cuatro posibilidades.

Notese que en cualquier caso, las direcciones $FFC0-$FFFF enel espacio dememoria de datos X no estan disponibles externamente ya que estan reservadas paralos perifericos incluidos en el CI. La Figura 2.10 muestra el mapa paralos vectoresde interrupcion ası como el mapa para los perifericos incluidos en el CI.

Page 13: Cap2 Pds

CARATERISTICAS DEL DSP56002 27

externa externa

interrupcion

$0re-inicio

interrupcion

re-inicio

externa

interrupcion

re-inicio

$FFFF $FFFF $FFFF

$E000

$01FF $01FF $01FF

$003F $003F $003F

$0 $0

Modo 0 Modo 2 Modo 3

RAM P internare-inicio interno

RAM P internare-inicioexterno

RAM P externare-inicioexterno

RAM RAM

interna interna

Figura 2.5 Mapa de Memoria P.

Page 14: Cap2 Pds

28 EL PROCESADOR DE SENALES DIGITALES

ROM Xinterna

perifericos

en el CI

perifericos

externos

Memoria de

datos X

externa

Memoria de

datos Y

externa

ROM Xinterna

+ ley A/Lin

+ley mu/Lin

RAM Xinterna

RAM Yinterna

$FFFF

$FFC0$FFBF

$01FF

... . . . . . . . . . . . . . . . . . .$017F

$00FF

$0

ROMs de datoshabilitadas

ROM Yinterna

onda seno

completa

YD = 0DE = 1

Figura 2.6 Mapa de Memoria XY, DE = 1; YD = 0.

Page 15: Cap2 Pds

CARATERISTICAS DEL DSP56002 29

inhibidos

perifericos

en el CI

perifericos

externos

Memoria de

datos X

externa

Memoria de

datos Y

externa

RAM Xinterna

RAM Yinterna

$FFFF

$FFC0

$00FF

$0

ROMs de datos

YD = 0

DE = 0

Figura 2.7 Mapa de Memoria XY, DE = 0; YD = 0.

Page 16: Cap2 Pds

30 EL PROCESADOR DE SENALES DIGITALES

ROM Xinterna

perifericos

en el CI

perifericos

externos

Memoria de

datos X

externa

Memoria de

datos Y

externa

ROM Xinterna

+ ley A/Lin

+ley mu/Lin

RAM Xinterna

$FFFF

$FFC0$FFBF

$01FF

... . . . . . . . . . . . . . . . . . .$017F

$00FF

$0

ROMs de datoshabilitadas

YD = 1DE = 1

Figura 2.8 Mapa de Memoria XY, DE = 1; YD = 1.

Page 17: Cap2 Pds

CARATERISTICAS DEL DSP56002 31

inhibidos

perifericos

en el CI

perifericos

externos

Memoria de

datos X

externa

Memoria de

datos Y

externa

RAM Xinterna

$FFFF

$FFC0

$00FF

$0

ROMs de datos

YD = 0

DE = 0

Figura 2.9 Mapa de Memoria XY, DE = 0; YD = 1.

Page 18: Cap2 Pds

32 EL PROCESADOR DE SENALES DIGITALES

Mandos del “host"

$003E$0040$007F

$003C$003A$0024

Instr. ilegalInt. del temporizador

Mandos del “host"

Ints. del SCIInts. del SSIInts. externasInts. por programa

Ints. “trace"Int. por error

de pilaRe-inicio$0000

Mapa deinterrupciones

$FFFF Prioridad de ints.Control de canal (bus)

Interfase SCIInterfase SSI

Interfase del “host"Interfase de E/Sparalelo

Temporizador

Reservado

$FFDE

$FFC0

Mapa de perifericosincluidos en el CI

Figura 2.10 Mapa de interrupciones y perifericos.

Page 19: Cap2 Pds

CARATERISTICAS DEL DSP56002 33

2.2.7 Descripci on de los modos de operaci on� Modo 0 “Single chip" o Modo CI: En este modo, todas las memorias internas,la de programa y las de datos, estan habilitadas. Un re-inicio por el circuito(“hardware reset") hace que el DSP brinque a la localidad $0000 de la memoriade programa interna y realice la ejecucion. El mapa de memoria para el modo0 y el modo 2 son identicos, solo que el vector de re-inicio se encuentra en lalocalidad $0000 en el modo 0 y en $E000 en el modo 2.� Modo 1 Arranque desde EPROM: El modo de arranque permite al DSP cargarun programa desde una economica memoria ROM de 8 bits en la memoria deprograma interna durante un re-inicio por encendido. Al encender el generadorde estados de espera agrega 15 estados de espera a todo el acceso de la memoriaexterna de modo que se pueda usar una memoria lenta. El programa de arranqueemplea los octetos en tres localidades consecutivas de memoria de la ROMexterna para construir una sola palabra en la memoria interna.

En el modo de arranque, el CI habilita la ROM de arranque y ejecuta el pro-grama de arranque. La memoria ROM de arranque contiene el programa dearranque alambrado (en “firmware") que realiza el cargado inicial de la RAMde programa del DSP56002. Escrito en lenguaje ensamblador,el programainicializa la RAM de programa cargando desde una memoria EPROM externade 8 bits que comienza en la localidad P:$C000.

La EPROM tıpicamente esta conectada a esa direccion a traves de los canalesde datos y direcciones. El contenido de la EPROM debe organizarse como semuestra en la Tabla 2.5

Tabla 2.5 Organizacion del contenido de la memoria EPROM

Direccion de Contenido cargadola memoria a la P:RAM interna

P:$C000 P:$0000 con el octeto bajoP:$C001 P:$0000 con el octeto medioP:$C002 P:$0000 con el octeto superior� �� �� �P:$C5FD P:$01FF con el octeto bajoP:$C5FE P:$01FF con el octeto medioP:$C5FF P:$01FF con el octeto superior

Despues de que se carga la memoria interna, el DSP se cambia a modo 0 ycomienza la ejecucion del programa en el CI desde la memoria de programaen la localidad $0000.

Si el usuario selecciona el modo 1, a traves de un circuito (en las terminalesMODA, MODB, MODC), ocurren las siguientes acciones una vez que el proce-sador sale del estado de re-inicio.

Page 20: Cap2 Pds

34 EL PROCESADOR DE SENALES DIGITALES

1. La logica de control mapea la ROM de arranque en la memoria internadel DSP en el espacio de memoria de programa con inicio en la localidad$0000.

2. La logica de control hace que el programa que lea desde la ROM dearranque (solo los bits 5-0 de direcciones son significativos) y toda laescritura va a la RAM de programa (todos los bits de direcciones sonsignificativos). Esta condicion permite al programa de arranque cargar elprograma del usuario desde $0000-$01FF.

3. Comienza la ejecucion del programa en la localidad $0000 en la ROM dearranque. El programade arranquede la ROM carga la RAM de programadesde la memoria externa EPROM de 8 bits comenzando en P:$C000

4. El programa de arranque de ROM termina la operacion de arranque ycomienza la ejecucion del programa del usuario. El procesador entra enmodo 0 escribiendo en el registro OMR. Esta accion es temporizada pararetirar la ROM de arranque del mapa de memoria de programa y vuelvea habilitar los accesos de lectura/escritura a la RAM de programa. Elcambio al modo 0 es temporizado para permitir al programa de arranqueejecutar una sola instruccion (borrar el registro de estado), luego ejecutauna instruccion JMP #<00, y comienza la ejecucion del programa delusuario en la localidad $0000.� Modo 2 Normal expandido: En este modo, es habilitada la RAM de programa

interna y los vectores de re-inicio por circuito a la localidad $E000. (Los mapasde memoria para el modo 0 y el modo 2 son identicos. La diferencia para elmodo 2 es que, despues del re-inicio, es ejecutada la instruccion en la localidad$E000 en lugar de la instruccion en $0000.� Modo 3 Modo de desarrollo: En este modo, la RAM de programa interna esinhabilitada y los vectores de re-inicio por circuito estan en la localidad $0000.Todas las referencias al espacio de memoria de programa son dirigidas a lamemoria de programa externa. El vector de re-inicio apunta ala localidad$0000.� Modo 4 Reservado: Este modo esta reservado para definicion futura.� Modo 5 Arranque desde “Host": En este modo, la ROM de arranque es habil-itada y ejecutado el programa de arranque. Este es similar almodo 1 exceptoque el programa de arranque carga la P:RAM interna desde el puerto “Host".� Modo 6 Arranque desde SCI: En este modo, es habilitada la ROM de arranquey ejecutado el programa de arranque. La RAM de programa interna y/o externaes cargada desde la interfase serie SCI. Debe especificarse el numero de pal-abras a cargar y la la direccion inicio. El codigo de arranque SCI espera recibirtres octetos especificando el numero de palabras de programa, tres octetos es-pecificando la direccion desde la cual comienza a cargar el programa y tresoctetos para cada palabra de programa a ser cargada. El numero de palabras, la

Page 21: Cap2 Pds

CARATERISTICAS DEL DSP56002 35

direccion de inicio y las palabras de programa se reciben con el octeto menossignificativo primero, seguido del octeto medio, y luego el octeto mas significa-tivo. Despues de recibir las palabras de programa, comienza la ejecucion delprograma en la direccion en donde se cargo la primera instruccion. La SCI seprograma para trabajar en modo asıncrona, 8 bits de datos, un bit de paro, y sinparidad. La fuente de la senal de reloj es externa y la frecuencia de reloj debeser 16x la razon de transmision (“baud rate"). Despues de que se ha recibidocada octeto,este es retransmitido a traves del transmisor SCI.� Modo 7 Reservado: Este modo esta reservado para definicion futura. Si seselecciona, el procesador cambia por omision a modo 6.

En la practica del Capıtulo ?? se introduce el ambiente de programacion delDSP56002 en su version para Windowsc . Posteriormente se trabaja con el simula-dor GUI56000 de Motorola, el cual permitira ejecutar instruccion del DSP56002 sintener que contar con la tarjeta de evaluacion.

BIBLIOGRAF IA

1. Allen, J. “Computer Architecture for Signal Processing", Proceedings of theIEEE,Vol. 63, No.4, pp. 624-633, Abril, 1975.

2. Bowen, B. A., Brown, W. R.,VLSI Systems Design for Digital Signal Processing,Vol. 1: Signal Processing andf Signal Processors, Prentice Hall, 1982.

3. El-Sharkawy M.,Digital Signal Processing Applications with the Motorola’sDSP56002 Processor, Prentice Hall PTR, 1996.