La Electricidad Y La Electrónica Trabajo Tecnología.pdf
Cap2 Pds
1. 2
El procesador de se˜ ales
n
digitales
Un modelo anal´tico simple puede dar un enfoque f´sico adicional para la optimizaci´ n de
ı ı o
los dispositivos electr´ nicos
o
—Lee, Mayaram, y Hu
Debido a que la realizaci´ n de tareas de procesamiento de se˜ ales digitales en
o n
tiempo real, el filtrado y el an´ lisis espectral, implican el conocimiento y la progra-
a
maci´ n de un circuito programable, en este cap´tulo se introduce un procesador digital
o ı
de se˜ ales, el DSP56002 de Motorola que es un procesador de 24-bits. Se presenta
n
su esquema de memoria, modos de operaci´ n y m´ dulos perif´ ricos. As´ mismo, se
o o e ı
introducen, en forma breve, dos ambientes de programaci´ n: el simulador GUI56000
o
y el ambiente de programaci´ n del DSP56002.1 Con esto, se espera que el alumno
o
pueda tener un acercamiento y experimentar con el ambiente de programaci´ n y lao
arquitectura del procesador introduciendo a trav´ s de ejemplos la instrucciones y las
e
operaciones propias de este procesador.
˜
2.1 DESARROLLO DE LOS PROCESADORES DE SENALES
DIGITALES
Antes de introducir los detalles de la programaci´ n de alg´ n procesador de se˜ ales
o u n
digitales en particular podr´amos contestar a la pregunta ¿qu´ es un procesador de
ı e
se˜ ales digitales? Una respuesta se da a continuaci´ n: Es es un circuito integrado
n o
1 Los ejercicios pr´ cticos se dejan para la 2da. Parte
a
15
2. 16 ˜
EL PROCESADOR DE SENALES DIGITALES
programable muy parecido a un microprocesador pero con una arquitectura dise˜ ada
n
especialmente para realizar operaciones de procesamiento de se˜ ales. Las princi-
n
pales diferencias entre un circuito integrado (CI) para el procesamiento de se˜ ales
n
digitales, que abreviaremos como DSP,2 y un microprocesador son
¯ Su arquitectura Harvard
¯ Su instrucci´ n MAC (multiplica y acumula)
o
En la arquitectura Harvard, el procesador emplea dos espacios de memoria. Un es-
pacio de Memoria para Programa y un espacio de Memoria para Datos. El DSP56002
tiene una arquitectura Harvard modificada con tres espacios de memoria, un espacio
de memoria para programa P, y dos espacios de memoria para datos X y Y. Por otro
´
lado, la instrucci´ n MAC es en realidad un circuito multiplicador y sumador. Este
o
es uno de los elementos m´ s importantes de un DSP. En gran medida la instrucci´ n
a o
MAC es la que hace posible el procesamiento en tiempo real.
Consid´ rense los dos siguientes operaciones:
e
½
ÝÒ Ü Ò
½
Æ ½
Ñ ÑÒ
Ü Ò ÏÆ
Ò ¼
La primera es la suma de convoluci´ n, y la segunda es la transformada de Fouri-
o
er discreta (TFD). Ambas corresponden a dos de las operaciones m´ s comunes del
a
procesamiento digital de se˜ ales, es decir, el filtrado y el an´ lisis espectral respec-
n a
tivamente. Es claro que las operaciones de multiplicaci´ n y de suma son usadas
o
extensivamente. As´ pues se puede ver la importancia de contar con una instrucci´ n
ı o
que realice la multiplicaci´ n de dos operandos y la suma en un solo ciclo. Cabe
o
preguntarse, as´ como la instrucci´ n MAC se ha incluido como parte del juego de
ı o
instrucciones del procesador de se˜ ales ¿es la instrucci´ n FFT, el siguiente paso?
n o
Creemos, efectivamente, que ese podr´a ser el siguiente paso, pero, el tiempo lo dir´ .
ı a
2.1.1 ˜
Los primeros d´as del procesamiento digital de senales
ı
¯ El multiplicador: La operaci´ n de multiplicaci´ n es central para el proce-
o o
samiento digital de se˜ ales. Entonces podemos ver que era necesario contar
n
con un multiplicador que fuera r´ pido y de bajo costo. Por supuesto, actual-
a
mente, podemos decir que una computadora de prop´ sito general puede realizar
o
eficientemente esas operaciones. Sin embargo, a mediados de los a˜ os 80 una
n
computadora de prop´ sito general o microcomputadora realizaban estas opera-
o
ciones en unos cuantos milisegundos. Entonces, analizar unos pocos segundos
2 Note que al t´ rmino Procesamiento Digital de Se˜ ales lo abreviamos como PDS, mientras que al referirnos
e n
al circuito procesador digital de se˜ ales lo referiremos como DSP
n
3. ˜
DESARROLLO DE LOS PROCESADORES DE SENALES DIGITALES 17
de voz pod´a tomar horas. Por supuesto, que una computadora de prop´ sito
ı o
general presenta varias ventajas:
– Aritm´ tica de punto flotante de alta precisi´ n.
e o
– Disponibilidad de programaci´ n en lenguaje de alto nivel, lo que permite
o
f´ cilmente especificar algoritmos.
a
– En un sentido positivo, la mayor parte de los detalles de la circuiter´a
ı
est´ oculta al programador.
a
Tomando esto en cuenta, podemos decir que una computadora de prop´ sito o
general representa una buena opci´ n para evaluar nuevos algoritmos. De he-
o
cho, las computadoras personales se usan extensivamente para dise˜ ar y probar
n
nuevos algoritmos as´ como para implantarlos con prop´ sitos de simulaci´ n,
ı o o
antes de la implantaci´ n final en circuitos dedicados. Una excelente herramien-
o
Å ØÐ
ta para probar y desarrollar algoritmos de PDS y aplicaciones, es el ambiente
de programaci´ n
o .
c
¯ Procesamiento en tiempo real: Un avance importante, que permiti´ a la cir-o
cuiter´a digital igualar a su contraparte anal´ gica, fue la construcci´ n de multi-
ı o o
plicadores en un solo circuito integrado. La compa˜ ´a TRW ofreci´ dispositivos
nı o
que realizaban multiplicaci´ n entera de n´ meros de 8, 12, 16, o 24 bits en una
o u
peque˜ a fracci´ n de un microsegundo. Un ejemplo es el TRW MPY16AJ.
n o
Cuando se introdujeron estos multiplicadores, los microprocesadores eran de-
masiado lentos, comparados con los multiplicadores de TRW.
¯ Dispositivos con dise˜ o “bit-slice": En el siguiente paso encontramos proce-
n
sadores de se˜ ales “bit-slice". Los dispositivos “bit-slice" fueron usados prin-
n
cipalmente en el dise˜ o de minicomputadoras de prop´ sito general que fueron
n o
suficientemente flexibles para desempe˜ arse como m´ quinas de procesamien-
n a
to de se˜ ales de prop´ sito especial. Un ejemplo fue el proyecto MARCH,
n o
mostrado esquem´ ticamente en la Figura 2.2, cuyas principales caracter´sticas
a ı
eran:
– Un secuenciador.
– Programaci´ n a nivel de microc´ digo.
o o
– La inclusi´ n de un monitor facilitaba, relativamente, la programaci´ n.
o o
En realidad, la programaci´ n segu´a siendo complicada, por ejemplo, la sigu-
o ı
iente l´nea muestra c´ mo ser´a un mando t´pico del monitor:
ı o ı ı
°¿ Å ½ ¾ Å ¾ ¿
cuyo significado ser´a:
ı
Formato tipo 3 (se refiere a los tres mandos siguientes)
M´dulo n´mero 1, mando con el octeto F2
o u
4. 18 ˜
EL PROCESADOR DE SENALES DIGITALES
(16 bits)
Reloj
Registro de
entrada X
Registro Producto
Registrro de
(parte menos
significativa)
entrada Y
Arreglo
multiplicador
asíncrono
Canal de datos
(16 bits)
Registro Producto
(parte más
significativa)
Habilitar salida
Reloj
Canal de datos
(16 bits)
Figura 2.1 Diagrama a cuadros del multiplicador MPY16AJ.
M´dulo n´mero E, mando con el octeto 87
o u
Mando del controlador 2434
Puede verse que la programaci´ n y la alteraci´ n del programa era a nivel de
o o
lenguaje de m´ quina. En conclusi´ n, este tipo de sistemas eran demandantes
a o
desde el punto de vista de ingenier´a, costosos y consum´an mucho tiempo,
ı ı
pues el desarrollo de proyectos como el MARCH tomaban entre 3 a 4 a˜ os.
n
¯ El siguiente paso l´ gico fue el incluir en un solo circuito integrado toda la l´ gica
o o
del procesador “bit-slice". Entonces se inicia la revoluci´ n con la introducci´ n
o o
del procesador de se˜ ales:
n
– Intel 2920 en 1979 (aproximadamente). Algunas caracter´sticas eran:
ı
Convertidor A/D y D/A incluidos en el CI. Programa residente en memoria
de s´ lo lectura borrable EPROM para instrucciones y una EPROM para
o
almacenar datos fijos. Unidad aritm´ tica y l´ gica (ALU) de 16 bits.
e o
Inclu´a un circuito similar al MPY16AJ.
ı
´
– NEC 7720. Este se distingu´a por una doble filosof´a: a) estaba dise˜ ado
ı ı n
para algoritmos espec´ficos y b) aun segu´a siendo un procesador de
ı ı
se˜ ales de prop´ sito general. Inclu´a instrucciones en memoria de s´ lo
n o ı o
5. ˜
DESARROLLO DE LOS PROCESADORES DE SENALES DIGITALES 19
Puertos Registros
Canal de control (40 bits)
E/S (apilados)
Multiplicador Interfase para Unidades
Control de memoria Secuenciador ALU de memoria
MPY16AJ memoria
Canal principal
(datos de 16 bits)
Puertos
E/S
Monitor sobre un 8085
Figura 2.2 Diagrama a cuadros de los componentes principales del proyecto MARCH.
lectura ROM, datos en ROM y datos en memoria de acceso aleatorio
RAM.
– NEC 77P20 era la versi´ n EPROM del NEC7720.
o
– TMS 32010, TMs320M10 en Frebrero 1982, en San Francisco California
´
por la Texas Instruments. Este es un procesador de se˜ ales de prop´ sito
n o
general con un amplio espectro de aplicaciones. Inclu´a un circuito mul-
ı
tiplicador de 16x16 bits, un acumulador/sumador de 32 bits y habilidad
para direccionar memoria externa sin penalizar su velocidad. Su filosof´a
ı
de dise˜ o era: Ser´ muy pr´ ctico implementar un sistema que incluya
n a a
memoria RAM fuera del CI para almacenamiento de programa. Es-
to permitir´ cambiar al programa durante el tiempo de ejecuci´ n. El
a o
TMS320C10 fue empleado en proyectos de reconocimiento de voz en
1983.
Un hecho hist´ rico interesante es el siguiente: Despu´ s de la introducci´ n del mi-
o e o
croprocesador en los a˜ os 70, la s´ntesis de voz fue la primera aplicaci´ n en alcanzar
n ı o
los mercados en forma masiva. Se trataba de circuitos integrados dise˜ ados espec´fi-
n ı
camente para ese prop´ sito, aunque no eran programables. El mejor ejemplo es el
o
juguete educativo “Speak and Spell" desarrollado por la Texas Instruments. La may-
or´a de estos circuitos empleaban un conjunto de par´ metros para generar un n´ mero
ı a u
limitado de frases. Eran considerados como sistemas de grabaci´ n de estado s´ lido.
o o
6. 20 ˜
EL PROCESADOR DE SENALES DIGITALES
2.2 CARATER´STICAS DEL DSP56002
I
En esta secci´ n, se incluye una breve descripci´ n del procesador de se˜ ales digitales
o o n
DSP56002 de Motorola. No se intenta substituir al manual de empleo, si no m´ s
c a
bien brindar parte de la informaci´ n acerca del procesador que se emplear´ en la
o a
realizaci´ n de filtros digitales, para procesamiento en tiempo real. Para informa-
o
ci´ n detallada, se recomienda consultar el DSP56002 Digital Signal Processor User’s
o
Manual ref no. DSP56002UM/AD REV 1. y el DSP56000UM/AD REV 2.
El DSP56002 es un procesador de se˜ ales de 24 bits cuya arquitectura ha sido
n
dise˜ ada para maximizar su desempe˜ o en aplicaciones de PDS con manejo intensi-
n n
vo de datos. Tiene una arquitectura que se puede expandir con perif´ ricos sofisticados
e
incluidos en el CI y puertos de entrada y salida (E/S), de prop´ sito general. La arqui-
o
tectura, se dice, es de doble naturaleza ya que cuenta con dos espacios independientes
y expandibles de memoria, dos unidades de generaci´ n de direcciones (AGU) y una
o
unidad aritm´ tica y l´ gica (ALU) que contiene dos acumuladores y dos circuitos de
e o
recorrimiento y limitaci´ n.
o
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 transformada compleja r´ pida de Fourier (FFT) de 1024 puntos en 59,898
a
ciclos de reloj.
Cuatro canales internos de datos de 24 bits y tres canales internos de direcciones de
16 bits para acceso simultaneo de la memoria de programa y dos memorias de datos.
Paralelismo: Tres unidades de ejecuci´ n incluidas, AGU unidad de generaci´ n au-
o o
tom´ tica de direcciones, PC contador de programa, y la ALU unidad aritm´ tica y
a e
l´ gica.
o
Una unidad en paralelo multiplicadora/acumuladora de 24¢24 bits de un solo ciclo.
Juego de instrucciones altamente ejecutables en paralelo con modos de direccionamien-
to para aplicaciones de PDS.
Instrucciones de ejecuci´ n en ciclos anidados sin carga extra para el programador.
o
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, y
ley ).
Tres puertos multifuncionales PTA, PTB, y PTC.
Direccionamiento de memoria externa con un canal de direcciones de 16 bits y canal
de datos de 24 bits.
24 terminales de E/S de prop´ sito general.
o
Un contador de eventos/temporizador de 24 bits.
Canales de datos: 4 bidireccionales de 24 bits XDB, YDB, PDB y GDB.
Tres canales de direcciones: XAB, YAB, PAB.
Interfase con soporte de acceso directo a memoria para comunicaci´ n entre proce-
o
sadores “Byte-wide Host Interface (HI)".
7. ´
CARATERISTICAS DEL DSP56002 21
Interfase (de comunicaci´ n) serie s´ncrona (SSI) para comunicaci´ n con CODECS y
o ı o
dispositivos de comunicaci´ n serie s´ncronos.
o ı
Interfase de comunicaci´ n serie (SCI) para comunicaci´ n as´ncrona “full-duplex".
o o ı
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 extensi´ n)
o
¯ 1 registro acumulador con recorrimiento
¯ 2 circuitos de recorrimiento/limitaci´ n para el canal de datos
o
Los registros de extensi´ n autom´ tica de 8 bits ofrecen protecci´ n contra desborde.
o a o
La extensi´ n autom´ tica de signo se da cuando se escribe en el acumulador de 56
o a
bits, A o B, con un operando de 48 o 24 bits.
La limitaci´ n ocurre autom´ ticamente cuando se leen los operandos de 56 bits de
o a
A 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 se˜ ales n
DSP56002, con un total de 132 terminales, y en la Tabla 2.1 se agrupan las terminales
de acuerdo a su funci´ n.
o
Tabla 2.1 Grupos de terminales de acuerdo a su funci´ n.
o
Grupo funcional N´ mero de terminales
u
Canal de datos, puerto A 24
Direcciones, puerto A 19
Canal de control, puerto A 7
Host interface, puerto B 15
SCI, puerto C 3
SSI, puerto C 6
Interrupciones y control del modo de operaci´ n
o 4
PLL y reloj 7
OnCE 4
Alimentaci´ n Vcc
o 16
Tierra 24
Temporizador 1
Reservados 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
8. 22 ˜
EL PROCESADOR DE SENALES DIGITALES
DSP56002
D0-D23 H0-H7
DGND(6) Port A HA0-HA2
Data
DVCC(3) HR/W
HEN
Port A Port B
A0-A15 HOST HREQ
Address
PS HACK
DS HGND(4)
X/Y HVCC(2)
AGND(5)
RXD
AVCC(3) Port C TXD
BN SCI SCLK
RD Port A
WR Control SVCC
BR SGND(2)
BG
WT SC0-SC2
Port C SCK
BS SSI
CGND SRD
CVCC 132 pins STD
DSCK/OS1
MODC/NMI
OnCE DSI/OS0
MODB/IRQB
DSO
MODA/IRQA Interrupt/ DR
RESET Mode
EXTAL Control PVCC
XTAL PGND
QGND(4) PCAP
QVCC(4) PLL
CKP
PLOCK
TIO Timer PINIT
CLVCC
RESERVED (2) CLGND
CKOUT
Figura 2.3 Diagrama de terminales del DSP56002.
¯ Registro de compensaci´ n (offset) N0 - N3, y N4 - N7
o
¯ Registros modificadores M0 - M3, y M4 - M7
ÊÒ , ÅÒ , y ÆÒ son registros que se emplean en trinomios. Solamente se puede usar
ƾ y ž para modificar el contenido de ʾ . Los registros de direcciones ʼ - Ê¿ y
Ê - Ê son registros de 16 bits que pueden contener direcciones o datos de prop´ sito
o
general. Estos registros se emplean para calcular la direcci´ n efectiva de un operan-
o
do. Cuando soportan movimientos en paralelo de datos de las memorias X y Y, los
registros de direcciones deben considerarse como grupos separados, ʼ a Ê¿ , y Ê a
Ê . El contenido de un registro ÊÒ puede apuntar directamente, o con un desplaza-
miento, a una localidad de memoria. Adem´ s, el contenido puede pre-modificarse o
a
post-modificarse, de acuerdo al modo de direccionamiento seleccionado.
Los registros de compensaci´ n ÆÒ pueden contener valores de compensaci´ n para
o o
incrementar o decrementar el contenido de los registros de direcciones, o la direcci´ n
o
apuntada por ÊÒ . Tambi´ n, pueden contener valores de 16 bits de prop´ sito general.
e o
9. ´
CARATERISTICAS DEL DSP56002 23
Los registros modificadores ÅÒ definen el tipo de aritm´ tica que se utilizar´ para
e a
el c´ lculo en los modos de direccionamiento, o tambi´ n pueden usarse para almace-
a e
namiento de prop´ sito general.
o
En la Tabla 2.2 se resumen los modos de direccionamiento cuando se emplean los
registros ÊÒ , y ÆÒ .
Tabla 2.2 Modos de direccionamiento.
Modo de direccionamiento Modificador C´ digo ensamblador
o
Direccionamiento indirecto
Sin modificar Si ( ÊÒ )
Post-incremento por 1 Si (ÊÒ )+
Post-decremento por 1 Si (ÊÒ )-
Post-incremento con compensaci´ n por ÆÒ
o Si ´ÊÒ µ · ÆÒ
Post-decremento con compensaci´ n por ÆÒ
o Si ´ÊÒ µ ÆÒ
Pre-decremento por 1 Si ´ÊÒµ
Indexado con compensaci´ n por ÆÒ
o Si ´ÊÒ · ÆÒ µ
(ÊÒ y ÆÒ no cambian)
Los registro modificadores son muy importantes y, aunque no siempre aparecen en
las instrucciones de movimiento de datos, siempre deber´ n pre-cargarse o inicializarse
a
con alg´ n valor, pues estos registros determinan el modo de direccionamiento. Se
u
distinguen pues tres importantes modos del empleo de los registros de direcciones
ÊÒ , bajo la acci´ n de los registros modificadores ÅÒ .
o
Al primero lo llamamos direccionamiento lineal o modificaci´ n lineal (linear mod-
o
ifier). Cuando deseamos direccionamiento lineal, se carga al registro ÅÒ con el valor
° , o tambi´ n -1, entonces se realiza la modificaci´ n empleando aritm´ tica
e o e
normal de 16 bits (m´ dulo 65,536). Es decir,cuando se incrementa el contenido de
o
alg´ n registro de direcciones ÊÒ , este incremento puede crecer en forma lineal hasta
u
el valor 65,536. Tambi´ n se puede usar un incremento con compensaci´ n por el valor
e o
de ÆÒ .
Al segundo lo llamamos direccionamiento m´ dulo M, o direccionamiento circular.
o
El registro modificador ÅÒ se carga con el valor ÅÒ Å ½ y se realiza la
modificaci´ n m´ dulo M, en donde M puede tomar cualquier valor desde 2 hasta
o o
32768. La aritm´ tica m´ dulo M hace que el registro de direcciones tenga un valor
e o
que permanece dentro de un intervalo de direcciones de tama˜ o M, definiendo l´mites
n ı
inferior y superior al direccionar a memoria. El l´mite inferior debe tener ceros en
ı
los bits menos significativos, en donde ¾ Å y por lo tanto debe se un m´ ltiplo
u
de ¾
Al tercer modo le llamamos direccionamiento con acarreo inverso (reverse carry
modifier). En este caso, se carga al registro ÅÒ con $0000. La modificaci´ n, o o
cambio de la direcci´ n, se realiza en el circuito (por “hardware") propagando el bit
o
´
de acarreo en la direcci´ n inversa. Este modo es muy util en los algoritmos de la FFT.
o
Para que funcione bien, para una FFT de ¾ puntos se debe seguir el procedimiento
siguiente:
1. ÅÒ ¼
10. 24 ˜
EL PROCESADOR DE SENALES DIGITALES
2. ÆÒ ¾ ½
3. Cargar ÊÒ con un valor que est´ entre los l´mites superior e inferior. El l´mite
e ı ı
inferior es Lx¾ , en donde L es un n´ mero entero cualesquiera. Este l´mite
u ı
entregar´ un n´ mero binario de 16 bits “x x x x 0 0 x x", en donde x x x
a u
x = L y 0 0 0 0 es igual a ceros. El l´mite superior es Lx´¾ µ · ´¾ ½µ.
ı
Esto dar´ un n´ mero binario “x x x x 1 1 1 1", en donde x x x x + L, y
a u
1 1 1 1 = unos
4. Usar el m´ todo de direccionamiento ´ÊÒ µ · ÆÒ
e
En resumen,
¯ El direccionamiento con acarreo inverso es util para FFTs de ¾ puntos.
´
¯ ´
El direccionamiento m´ dulo M es util para crear pilas circulares como colas
o
(FIFOs “first in first out"), l´neas de retardo y pilas de muestras de hasta 32,768
ı
palabras largas (“long words").
¯ ´
El direccionamiento lineal es util para direccionamiento de prop´ sito general.
o
Para m´ s detalles, se recomienda consultar el manual de usuario (DSP56000/DSP56001
a
Digital Signal processor user’s manual) DSP56000UM/AD.
2.2.2 ´ ´
Modulos de memoria y modos de operacion
El procesador de se˜ ales DSP56002 ha sido dise˜ ado con una arquitectura Harvard
n n
modificada, es decir, tiene tres espacios de memoria: un espacio de memoria para
programa P, y dos espacios de memoria para datos X y Y. Es posible tener acceso a estos
tres espacios de memoria independientes, en forma simultanea, gracias al paralelismo
que presenta dicha arquitectura. Los espacios de memoria son configurados por los
bits de control en el Registro de Modo de Operaci´ n (OMR). Los bits de control
o
de modo de operaci´ n, en el OMR, controlan el mapa de memoria de programa y
o
seleccionan las direcciones de los vectores de interrupci´ n. Un bit adicional (DE)
o
controla los mapas de memoria X y Y y habilita o inhibe los datos contenidos en
ROM.
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 f´ brica para “arranque" (bootstrap).
a
La memoria ROM de arranque es programada para realizar la operaci´ n de “ar-
o
ranque" desde el puerto de memoria expandida (puerto A), desde la interfase de Host
(HI), o desde el puerto SCI. Esto ofrece un m´ todo conveniente y de bajo costo para
e
cargar la memoria de programa RAM con un programa dado por el usuario al salir del
estado de re-inicio (“reset") o de encendido (“power-on"). La actividad de la ROM
de arranque es controlada por los bits MA, MB, y MC en el OMR.
11. ´
CARATERISTICAS DEL DSP56002 25
Los vectores de interrupci´ n est´ n localizados en las 128 direcciones m´ s bajas de
o a a
la memoria P ($0000 - $00FF). La memoria P se puede expandir hasta 64k fuera del
CI.
2.2.4 La memoria de datos X
Esta memoria cuenta con varias caracter´sticas muy importantes ya que incluye 256
ı
localidades de 24 bits de memoria RAM interna (incluida en el CI) ocupando las
direcciones bajas de memoria (0-255). Los datos en memoria interna ROM ocupan
las direcciones 256-511 y son controlados por el bit DE (“data enable") en el OMR.
En esta memoria X, se encuentran tambi´ n los registros perif´ ricos incluidos (“on-
e e
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 (fuera
del CI).
2.2.5 La memoria de datos Y
La memoria RAM interna es una memoria est´ tica interna de 24 bits de ancho que
a
ocupa loas direcciones m´ s bajas en el espacio de memoria Y (0-255). Los datos en
a
memoria interna ROM ocupan las direcciones 256-511 y son controlados por los bits
DE y YD en el OMR. La memoria Y se puede expandir a 64k en memoria externa
(fuera del CI).
2.2.6 ´
El registro de modo de operacion OMR
El OMR es un registro de 24 bits, en donde s´ lo est´ n definidos seis bits, que controla
o a
el modo de operaci´ n del procesador. Est´ localizado en la Unidad de Control de
o a
Programa. Los bits del OMR son afectados al re-iniciar, y por las 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 operaci´ n
ı o .
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 operaci´ n
ı o .
reservado .
SD detiene retardo (“Stop delay") .
Figura 2.4 Formato del registro OMR.
Las Tablas 2.3 y 2.4 muestran, en resumen, el funcionamiento de los bits contenidos
en el OMR.
12. 26 ˜
EL PROCESADOR DE SENALES DIGITALES
Tabla 2.3 Bits DE y YD del OMR
DE YD Memoria de Datos
0 0 ROMs internas inhabilitadas y sus direcciones
son parte de la memoria externa
0 1 ROM interna X, RAM y ROM internas de Y
inhabilitadas pasan a memoria externa
1 0 ROMs de datos X y Y habilitadas
1 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 operaci´ n
o
Modo MC MB MA Descripci´ n del Modo
o
0 0 0 0 ´
CI unico, P:RAM habilitada, re-inicio $0000
1 0 0 1 Arranque (bootsatrap) desde EPROM, sale en Modo 0
2 0 1 0 Expandido, P:RAM habilitada, re-inicio $E000
3 0 1 1 Desarrollo P:RAM inhabilitada, re-inicio $0000
4 1 0 0 Reservado para Arranque
5 1 0 1 Arranque desde “Host", sale en Modo 0
6 1 1 0 Arranque desde SCI (reloj externo), sale en Modo 0
7 1 1 1 Reservado para Arranque
El mapa de memoria, es decir las direcciones de inicio, tanto para espacio de memo-
ria P como para los espacios de memoria X y Y, depende de los modos de operaci´ n o
y de los bits DE y YD del OMR. Como se tienen tres modos de operaci´ n v´ lidos, se
o a
tendr´ n tres mapas de memoria para el espacio de memoria P. Esto se muestra en la
a
Tabla 2.4 y en forma m´ s clara en la Figura 2.5. Para los espacios de memoria X y Y,
a
´
como estos 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.
N´ tese que en cualquier caso, las direcciones $FFC0-$FFFF en el espacio de
o
memoria de datos X no est´ n disponibles externamente ya que est´ n reservadas para
a a
los perif´ ricos incluidos en el CI. La Figura 2.10 muestra el mapa para los vectores
e
de interrupci´ n as´ como el mapa para los perif´ ricos incluidos en el CI.
o ı e
13. ´
CARATERISTICAS DEL DSP56002 27
Modo 0 Modo 2 Modo 3
$FFFF $FFFF $FFFF
$E000 re-inicio
externa externa
externa
$01FF $01FF $01FF
RAM RAM
interna interna
$003F $003F $003F
interrupci´ n
o interrupci´ n
o
interrupci´ n
o
re-inicio re-inicio
$0 $0 $0
RAM P interna RAM P interna RAM P externa
re-inicio interno re-inicio re-inicio
externo externo
Figura 2.5 Mapa de Memoria P.
14. 28 ˜
EL PROCESADOR DE SENALES DIGITALES
DE = 1
YD = 0
$FFFF
perif´ ricos
e perif´ ricos
e
en el CI externos
$FFC0
$FFBF
Memoria de Memoria de
datos X datos Y
externa externa
$01FF ROM X ROM Y
interna interna
+ ley A/Lin
..................... onda seno
$017F ROM X
interna completa
+ley mu/Lin
$00FF
RAM X RAM Y
$0 interna interna
ROMs de datos
habilitadas
Figura 2.6 Mapa de Memoria XY, DE = 1; YD = 0.
15. ´
CARATERISTICAS DEL DSP56002 29
DE = 0
YD = 0
$FFFF
perif´ ricos
e perif´ ricos
e
en el CI externos
$FFC0
Memoria de Memoria de
datos X datos Y
externa externa
$00FF
RAM X RAM Y
$0 interna interna
ROMs de datos
inhibidos
Figura 2.7 Mapa de Memoria XY, DE = 0; YD = 0.
16. 30 ˜
EL PROCESADOR DE SENALES DIGITALES
DE = 1
YD = 1
$FFFF
perif´ ricos
e perif´ ricos
e
en el CI externos
$FFC0
$FFBF
Memoria de Memoria de
datos X datos Y
externa externa
$01FF ROM X
interna
+ ley A/Lin
.....................
$017F ROM X
interna
+ley mu/Lin
$00FF
RAM X
$0 interna
ROMs de datos
habilitadas
Figura 2.8 Mapa de Memoria XY, DE = 1; YD = 1.
17. ´
CARATERISTICAS DEL DSP56002 31
DE = 0
YD = 0
$FFFF
perif´ ricos
e perif´ ricos
e
en el CI externos
$FFC0
Memoria de Memoria de
datos X datos Y
externa externa
$00FF
RAM X
$0 interna
ROMs de datos
inhibidos
Figura 2.9 Mapa de Memoria XY, DE = 0; YD = 1.
18. 32 ˜
EL PROCESADOR DE SENALES DIGITALES
Mapa de Mapa de perif´ ricos
e
interrupciones incluidos en el CI
$007F Mandos del “host" $FFFF Prioridad de ints.
$0040 Control de canal (bus)
$003E Instr. ilegal Interfase SCI
$003C Int. del temporizador Interfase SSI
$003A Interfase del “host"
Mandos del “host"
$0024 Interfase de E/S
paralelo
Ints. del SCI
Ints. del SSI Temporizador
Ints. externas
Ints. por programa
Ints. “trace"
Int. por error $FFDE
de pila
Re-inicio Reservado
$0000 $FFC0
Figura 2.10 Mapa de interrupciones y perif´ ricos.
e
19. ´
CARATERISTICAS DEL DSP56002 33
2.2.7 ´ ´
Descripcion de los modos de operacion
¯ Modo 0 “Single chip" o Modo CI: En este modo, todas las memorias internas,
la de programa y las de datos, est´ n habilitadas. Un re-inicio por el circuito
a
(“hardware reset") hace que el DSP brinque a la localidad $0000 de la memoria
de programa interna y realice la ejecuci´ n. El mapa de memoria para el modo
o
0 y el modo 2 son id´ nticos, s´ lo que el vector de re-inicio se encuentra en la
e o
localidad $0000 en el modo 0 y en $E000 en el modo 2.
¯ Modo 1 Arranque desde EPROM: El modo de arranque permite al DSP cargar
un programa desde una econ´ mica memoria ROM de 8 bits en la memoria de
o
programa interna durante un re-inicio por encendido. Al encender el generador
de estados de espera agrega 15 estados de espera a todo el acceso de la memoria
externa de modo que se pueda usar una memoria lenta. El programa de arranque
emplea los octetos en tres localidades consecutivas de memoria de la ROM
externa 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 de
arranque alambrado (en “firmware") que realiza el cargado inicial de la RAM
de programa del DSP56002. Escrito en lenguaje ensamblador, el programa
inicializa la RAM de programa cargando desde una memoria EPROM externa
de 8 bits que comienza en la localidad P:$C000.
La EPROM t´picamente est´ conectada a esa direcci´ n a trav´ s de los canales
ı a o e
de datos y direcciones. El contenido de la EPROM debe organizarse como se
muestra en la Tabla 2.5
Tabla 2.5 Organizaci´ n del contenido de la memoria EPROM
o
Direcci´ n de
o Contenido cargado
la memoria a la P:RAM interna
P:$C000 P:$0000 con el octeto bajo
P:$C001 P:$0000 con el octeto medio
¡¡¡ ¡¡
P:$C002 P:$0000 con el octeto superior
¡
P:$C5FD P:$01FF con el octeto bajo
P:$C5FE P:$01FF con el octeto medio
P:$C5FF P:$01FF con el octeto superior
Despu´ s de que se carga la memoria interna, el DSP se cambia a modo 0 y
e
comienza la ejecuci´ n del programa en el CI desde la memoria de programa
o
en la localidad $0000.
Si el usuario selecciona el modo 1, a trav´ s de un circuito (en las terminales
e
MODA, MODB, MODC), ocurren las siguientes acciones una vez que el proce-
sador sale del estado de re-inicio.
20. 34 ˜
EL PROCESADOR DE SENALES DIGITALES
1. La l´ gica de control mapea la ROM de arranque en la memoria interna
o
del DSP en el espacio de memoria de programa con inicio en la localidad
$0000.
2. La l´ gica de control hace que el programa que lea desde la ROM de
o
arranque (s´ lo los bits 5-0 de direcciones son significativos) y toda la
o
escritura va a la RAM de programa (todos los bits de direcciones son
significativos). Esta condici´ n permite al programa de arranque cargar el
o
programa del usuario desde $0000-$01FF.
3. Comienza la ejecuci´ n del programa en la localidad $0000 en la ROM de
o
arranque. El programa de arranque de la ROM carga la RAM de programa
desde la memoria externa EPROM de 8 bits comenzando en P:$C000
4. El programa de arranque de ROM termina la operaci´ n de arranque y
o
comienza la ejecuci´ n del programa del usuario. El procesador entra en
o
modo 0 escribiendo en el registro OMR. Esta acci´ n es temporizada para
o
retirar la ROM de arranque del mapa de memoria de programa y vuelve
a habilitar los accesos de lectura/escritura a la RAM de programa. El
cambio al modo 0 es temporizado para permitir al programa de arranque
ejecutar una sola instrucci´ n (borrar el registro de estado), luego ejecuta
o
una instrucci´ n JMP #<00, y comienza la ejecuci´ n del programa del
o o
usuario 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 mapas
de memoria para el modo 0 y el modo 2 son id´ nticos. La diferencia para el
e
modo 2 es que, despu´ s del re-inicio, es ejecutada la instrucci´ n en la localidad
e o
$E000 en lugar de la instrucci´ n en $0000.
o
¯ Modo 3 Modo de desarrollo: En este modo, la RAM de programa interna es
inhabilitada y los vectores de re-inicio por circuito est´ n en la localidad $0000.
a
Todas las referencias al espacio de memoria de programa son dirigidas a la
memoria de programa externa. El vector de re-inicio apunta a la localidad
$0000.
¯ Modo 4 Reservado: Este modo est´ reservado para definici´ n futura.
a o
¯ Modo 5 Arranque desde “Host": En este modo, la ROM de arranque es habil-
itada y ejecutado el programa de arranque. Este es similar al modo 1 excepto
que 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 arranque
y ejecutado el programa de arranque. La RAM de programa interna y/o externa
es cargada desde la interfase serie SCI. Debe especificarse el n´ mero de pal-
u
abras a cargar y la la direcci´ n inicio. El c´ digo de arranque SCI espera recibir
o o
tres octetos especificando el n´ mero de palabras de programa, tres octetos es-
u
pecificando la direcci´ n desde la cual comienza a cargar el programa y tres
o
octetos para cada palabra de programa a ser cargada. El n´ mero de palabras, la
u
21. ´
CARATERISTICAS DEL DSP56002 35
direcci´ n de inicio y las palabras de programa se reciben con el octeto menos
o
significativo primero, seguido del octeto medio, y luego el octeto m´ s significa-
a
tivo. Despu´ s de recibir las palabras de programa, comienza la ejecuci´ n del
e o
programa en la direcci´ n en donde se carg´ la primera instrucci´ n. La SCI se
o o o
programa para trabajar en modo as´ncrona, 8 bits de datos, un bit de paro, y sin
ı
paridad. La fuente de la se˜ al de reloj es externa y la frecuencia de reloj debe
n
ser 16x la raz´ n de transmisi´ n (“baud rate"). Despu´ s de que se ha recibido
o o e
´
cada octeto, este es retransmitido a trav´ s del transmisor SCI.
e
¯ Modo 7 Reservado: Este modo est´ reservado para definici´ n futura. Si se
a o
selecciona, el procesador cambia por omisi´ n a modo 6.
o
En la pr´ ctica del Cap´tulo ?? se introduce el ambiente de programaci´ n del
a ı o
DSP56002 en su versi´ n para Windows. Posteriormente se trabaja con el simula-
o c
dor GUI56000 de Motorola, el cual permitir´ ejecutar instrucci´ n del DSP56002 sin
a o
tener que contar con la tarjeta de evaluaci´ n.
o
BIBLIOGRAF´A
I
1. Allen, J. “Computer Architecture for Signal Processing", Proceedings of the
IEEE, 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’s
DSP56002 Processor, Prentice Hall PTR, 1996.