RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana...

200
UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA PROYECTO TERMINAL I Y II INGENIERIA ELECTRONICA PROCESAMIENTO DIGITAL DE SENALES CON LA FAMILIA TMS320 ( DSP PRACTICO 1 LUIS IGNACIO ESCOBEDO RAMÍREZ MATRICULA: 89331848. ASESOR: ING. JESUS BARRIOS ROMANO 1994

Transcript of RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana...

Page 1: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

UNIVERSIDAD AUTONOMA METROPOLITANA

UNIDAD IZTAPALAPA

PROYECTO TERMINAL I Y I I

INGENIERIA ELECTRONICA

PROCESAMIENTO DIGITAL DE SENALES CON L A F A M I L I A T M S 3 2 0

( DSP PRACTICO 1

LUIS IGNACIO ESCOBEDO RAMÍREZ MATRICULA: 89331848.

ASESOR: ING. JESUS BARRIOS ROMANO

1 9 9 4

Page 2: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

INDICE:

~~

Página

OBJETIVOS .................................................. 1

PRESENTACION ............................................... 3

INTRODUCCION AL DSP TMS32010 ............................... 5

Características Principales ............................ 5 Arquitectura .......................................... 7 Unidad Central Lógico-Aritmética ...................... 9 Unidad de Memoria de Datos ............................ 12 Unidad de Control ..................................... 13 Memoria de Programas .................................. 15 Mapa de Memoria ....................................... 16 Funciones de Entrada/Salida de Datos . . . . . . . . . . . . . . . . . . 18

ARITMETICA DEL PROCESAMIENTO DIGITAL DE SEÑALES CON EL TMS32010 ............................................ 21

Corrimiento de Datos y Substracción de Bits . . . . . . . . . . . 21 Aritmética de Complemento a 2 ' s ....................... 26 Números Fraccionarios (Notación Q) .................... 28 Multiplicación de Numeros en Complemento a 2's . . . . . . . . 3 0

Fraccionarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Representación Binaria en Formato QN-1 de Cantidades

MODULO DE EVALUACION TMS320 (EVM) .......................... 37

Introducción .......................................... 37 Memoria ............................................... 39 Puertos del Módulo de Evaluación ...................... 40

Protocolo de Comunicaciones ........................... 41 Transferencia/Recepción de Información . . . . . . . . . . . . . . . . 4 2 Instalación ........................................... 44 Operación ............................................. 4 6 Carácteres de Control del Teclado ..................... 48

Formato de Transmisión de Carácteres . . . . . . . . . . . . . . . . . . 41

UNIVERSIDAD AUTONOMA METROPOLITANA

Page 3: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Página

TARJETA DE INTERFAZ ANALOGICA AIB (ANALOG INTERFACE BOARD) . 50 Introducción .......................................... 50 Descripción ........................................... 51 Características de la Tarjeta ......................... 53

Instalación ........................................... 55 Arquitectura de la AIB ................................ 56 Puertos de Entrada/Salida ............................. 57 Registro de Control ................................... 58 Reloj de Muestre0 ..................................... 60 Modos de Adquisición de Datos ......................... 62 Filtros Pasa-Bajas .................................... 64 Amplificador de Audio ................................. 66 Configuración de los Jumpers .......................... 67 Calibración de los Convertidores A/D y D/A . . . . . . . . . . . . 68

Especificaciones Generales ............................ 53

COMUNICACION CON EL MODULO DE EVALUACION (EVM) . . . . . . . . . . . . . 72 Configuración del Puerto de Comunicaciones ............ 72 Emulación de Terminal ................................. 73 Conexión Inicial ...................................... 75 Prueba de Operación de la Tarjeta AIB ................. 78 de Prueba ............................................. 79 Ensamblado y Ejecución del Programa de Prueba ......... 81 de Prueba ............................................. 85 Carga del Código Ejecutable del Programa de Prueba . . . . 87 Ejecución de Programas Paso a Paso .................... 95

Equipo Necesario para la Ejecución del Programa

Almacenamiento del Código Ejecutable del Programa

Manejo del Depurador del EVM .......................... 90

PROGRAMACION CON EL TMS32010 ............................... 99

Modos de Direccionamiento ............................. Filtros Digitales FIR ................................. Determinación de los Coeficientes de un Filtro FIR Pasa-Bajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Movimiento de Datos (Retardo 2 - I ) ..................... Movimiento de Datos Utilizando Direccionamiento

Almacenamiento de Datos ...............................

Indirecto ............................................. Ciclos (Loops) ........................................ Transferencia de Datos Entre Espacios de Memoria (De Memoria de Programas a Memoria de Datos) . . . . . . . . . .

99 110

113 117

1 2 0

122 124

129

UNIVERSIDAD AUTONOMA METROPOLITANA

Page 4: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Página

Inicialización del Procesador TMS32010 . . . . . . . . . . . . . . . . 131 Inicialización de la Tarjeta A I B ...................... 134 Programa Completo del Filtro FIR Pasa-Bajas . . . . . . . . . . . 135 Servicio a Interrupciones ............................. 145

REPERTORIO DE INSTRUCCIONES TMS320 . PRIMERA GENERACION .... 149 Descripción Individual del Repertorio de I-.strucciones ......................................... 149 Instrucciones que Referencían al Acumulador y a la Memoria ............................................... 151 Instrucciones Sobre los Registros Auxiliares y

Instrucciones de Multiplicación y Sobre Registros T y P ....................................... 175

Apuntador de Página de Datos .......................... 167

Instrucciones de Salto y Llamada a Subrutinas . . . . . . . . . 182 Instrucciones de Control del Procesador . . . . . . . . . . . . . . . 190 Sobre la Memoria ...................................... 197 Instrucciones de Entrada/Salida de Datos y

BIBLIOGRAFIA ............................................... 204

UNIVERSIDAD AUTONOMA METROPOLITANA

Page 5: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A C T I C O LUIS IGNACIO ESCOBEDO RAMIREZ

O B J E T I V O S :

CONOCER Y EXPLOTAR ALGUNAS DE LAS ARQUITECTURAS DISPONIBLES EN EL MERCADO PARA F'. PROCESAMIENTO DIGITAL DE SEÑALES (DSP) , PARTICULARMENTE L-. FAMILIA TMS320 DE TEXAS INSTRUMENTS.

ELABORAR MATERIAL PRACTICO DE APOYO A LA ENSEÑANZA DEL PROCESAMIENTO DIGITAL DE SEÑALES, EL CUAL PODFU SER UTILIZADO PARA DESARROLLAR. PRACTICAS DE DSP EN TIEMPO REAL QUE DEMUESTREN Y CONFIRMEN LA TEORIA QUE EL ALUMNO ADQUIERE EN EL AULA DE CLASES.

DESARROLLAR DIVERSAS EXPERIENCIAS PRACTICAS EN EL CAMPO DEL PROCESAMIENTO DIGITAL DE SEÑALES, PARTICULARMENTE EN EL DISEÑO E IMPLEMENTACION DE FUNCIONES DE FILTRADO DIGITAL.

UNIVERSIDAD AUTONOHA METROPOLITANA 1

Page 6: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

PRESENTACION:

HOY DIA, UNO DE LOS CAMPOS DE MAYOR INTERES EN LAS UNIVERSIDADES ES EL REFERENTE AL PROCESAMIENTO DE SEÑALES EN FORMA DIGITAL, LO CUAL OBEDECE AL ENORME IMPACTO QUE ESTA MATERIA DE ESTUQIO TIENE EN RAZON DE LA GRAN VARIEDAD DE APLICACIONES EN EL MUNDO REAL, QUE VAN DESDE LA INGENIERIA BIOMEDICA Y DE COMUNICACIONES HASTA LA ELECTRONICA DEL CONSUMIDOR.

EL IMPACTO DE LA TECNOLOGIA DIGITAL EN NUESTRA SOCIEDAD ES INCUESTIONABLE Y HA SIDO TAN PROFUNDO QUE LOS NIVELES DE INSTRUCCION EN CIENCIA E INGENIERIA, LO MISMO A NIVEL DE LICENCIATURA QUE DE POSGRADO, SE HAN VISTO PERMEADOS POR EL TEMA EN CUESTION. POR ESTAS RAZONES CONSIDERE IMPORTANTE EL DESARROLLAR ESTE PROYECTO, QUE SUPONIA UN RETO PARA MI, YA QUE EN EL PODIA COMPROMETER LOS CONOCIMIENTOS QUE ADQUIRI EN LA UNIVERSIDAD Y AL MISMO TIEMPO ME OFRECIA LA OPORTUNIDAD DE ENRIQUECERLOS.

DURANTE EL TIEMPO QUE ME LLEVO ELABORAR EL PROYECTO TUVE LA OPORTUNIDAD DE CONOCER VARIOS PROCESADORES DIGITALES DE SEÑALES, LO QUE ME PERMIT10 APRECIAR PANORAMICAMENTE LOS PROBLEMAS QUE TENIA POR DELANTE. NO OBSTANTE, EL PRESENTE REPORTE LO ELABORE BASICAMENTE ALREDEDOR DEL PROCESADOR DE TEXAS INSTRUMENTS TMS32010, LO CUAL OBEDECIO FUNDAMENTALMENTE A LA DISPONIBILIDAD DE MATERIAL E INFORMACION A LA QUE TUVE ACCESO.

UNIVERSIDAD AUTONOMA METROPOLITANA 3

Page 7: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

INTRODUCCION AL DSP TMS32010

La familia de procesadores de 1 6 / 3 2 bits TMS320 esta diseñada para soportar un amplio margen de aplicaciones de procesamiento numérico intensivo a alta velocidad, particularmente aquellas que son representativas del procesamiento digital de señales (DSP). Esta familia contiene procesadores que son capaces de ejecutar hasta 5 millones de instrucciones por segundo (5 Mips), lo cual es resultado de su eficiente repertorio de instrucciones y de su arquitectura en Hardware (tipo pipeline) , la cual permite la gran velocidad en el procesamiento numérico característica de estos procesadores. La familia TMS320, en particular, optimiza la velocidad implementando funciones en hardware que otros procesadores implementan con software o en microcódigo.

CARACTERISTICAS PRINCIPALES

EL TMS32010 (primer procesador de la familia TMS320) es un microcomputador de 16 bits que combina la flexibilidad de un controlador de alta velocidad con la capacidad númerica de un procesador.

A continuación se listan algunas de las características más importantes de la famila de procesadores TMS320:

-Tiempo de ejecución de instrucciones (ciclo de máquina) de 200 nseg.

-Palabras e instrucciones de 16 bits (2 bytes).

-144 palabras (registros de propósito general) en la RAM de datos interna.

-Bus de datos bidireccional de 16 bits con velocidad de transferencia de 50 Mbits/seg.

UNIVERSIDAD AUTONOHA METROPOLITANA 5

Page 8: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

-ALU y Acumulador de 32 bits.

-Multiplicación de datos de 16 x 16 b i t s en un s ó l o ciclo de máquina de 200 nseg., con productos de 32 bits.

-Registro para corrimiento de datos (barrel shifter) de O a 16 bits.

-Reloj generador de pulsos interno.

-Ocho canales de entrada y ocho de salida (puertos de E / S ) .

-Modo de microprocesador/microcomputadora seleccionable.

-4k palabras de memoria externa para programas en modo de microprocesador.

-1.5k palabras en ROM de programa interna y 2.5k palabras en memoria de programa externa, para un total de 4k palabras direccionables en modo de microcomputadora.

-Interrupción con resguardo de contexto.

-Aritmética de punto fijo en complemento a 2’s con signo.

-Voltaje de alimentacion de 5 volts.

-Encapsulado de 40 terminales.

-Tecnologia NMOS (TMS32010/11) y CMOS (TMS320C10)

UNIVERSIUAD AUTONOMA M E T R O P O L I T A N A 6

Page 9: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

ARQUITECTURA

La familia DSP TMS320XX utiliza una arquitectura Harvard modificada, en la cual mientras se ejecuta una operación se lee la siguiente instrucción a ejecutar (traslape de instrucciones) ; en esta arquitectura la memoria de programas y la memoria de datos quedan contenidas en dos espacios separados, cada uno con su propio bus. Esta estructura permite que se utilice al bus de programas para leer la siguiente instrucción por ejecutar, mientras una operación se lleva a cabo en la ALU, la cual utiliza al bus de datos para tomar las palabras-dato. La transferencia entre estos dos espacios de memoria permite utilizar a la memoria de programa como una expansión de la memoria de datos, obviamente para el almacenamiento de coeficientes numéricos, pudiendose leer l o s coeficientes almacenados en memoria de programa dentro de la RAM de datos.

En estos procesadores el hardware permite implementar funciones que otros procesadores típicamente realizan en software, Vg. el TMS3.2010 contiene un multiplicador en hardware, que realiza operaciones de 16 x 16 bits en un sólo ciclo de máquina (200 nseg); también contiene dos registros de corrimiento (shifters) que permiten la manipulación de bits para el escalamiento y extracción de bits de signo: contiene dos registros auxiliares que proveen el direccionamiento indirecto a la RAM de datos y que pueden ser autoincrementados 6 autodecrementados mediante ciclos (loops) para la manipulación de tablas de coeficientes; la mayor parte de sus instrucciones se ejecutan en un sólo ciclo de máquina, por lo que el número de operaciones que es capaz de ejecutar por segundo es de aproximadamente 5 Mips.

UNIVERSIDAD AUTONOMA METROPOLITANA 7

Page 10: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

1 h 16 *

LVE 4-

GEN 4- O

M E N "--c 4

/ p: ' 16

P "- 4 BIU -+- O

!x MClMp -+" E+

/ .' 12

INSTRUCCION 2 0 PROGRAMA

ROMlEPROM i is "b- U

e I PALABS1 5K/4K J

3 BUS DE PROGRAMA / 1

/ c

a DI RECC ION RAM DATOS

I 1 44/256

DATOS

SHIFTER (0-1 61

I

MULTIPLI

"--p y32

UNIVERSIDAD AvTwnnA METROPOLITANA 8

Page 11: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

UNIDAD CENTRAL LOGICO-ARITMETICA

La CALU esta constituida por un multiplicador en hardware para palabras de 16 bits, dos registros de corrimiento (shifters) para manejo de bits, una Unidad Logico-Aritmética (ALU) y un acumulador (ACC). La ALU y el ACC son de 32 bits de longitud para soportar aritmética de complemento a 2 ‘ s de doble precisión.

La ALU es una unidad de propósito general lógico-aritmética que opera con palabras de 16 bits, produciendo resultados de 32 bits que se almacenan en el acumulador. Una de las entradas a la ALU es el propio acumulador y la otra puede ser el registro P (el resultado de una multiplicación) ó el barrel shifter que rea’iza corrimientos a la izquierda sobre las palabras provenientes de la memoria de datos.

El ACUMULADOR almacena la salida de 32 bits de la ALU y también es, a veces, una entrada de datos a la ALU. Está dividido en dos palabras de 16 bits, una de orden alto (bits 16-31) y otra de orden bajo (bits O-15), que pueden almacenarse separadamente en la memoria de datos.

Los REGISTROS DE CORRIMIENTO (barrel and parallel shifters) implementan la manipulación de l o s datos, siendo útiles para el escalamiento y la extracción de los bits de signo extras resultantes de. las operaciones de multiplicación.

El BARREL SHIFTER realiza un corrimiento a la izquierda de O a 16 lugares sobre las palabras de 16 bits de la memoria de datos, que toma a través del bus de datos, para formar palabras de 32 bits que se almacenan en el acumulador después de que han sido operadas en la ALU. Este corrimiento de datos es necesario para implementar la aritmética de complemento a 2’s ya que los datos dentro del barrel shifter son extendidos en signo por el bit más significativo y son llenados con ceros en los bits de orden bajo.

UNIVERSIDAD AUTONOMA METROPOLITANA 9

Page 12: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

El PARALLEL SHIFTER realiza un corrimiento a la izquierda de O, 1, ó 4 lugares sobre la palabra de orden alto del acumulador (los corrimientos de 1 y 4 lugares se realizan sobre resultados de operaciones de multiplicación). El corrimiento a la izquierda se implementa solamente por la instrucción SACH dma,corr (almacena la palabra de orden alto del ACC), la cual causa que el parallel shifter sea cargado con el contenido de 32 bits del acumulador para que la palabra sea desplazada a la izquierda corr-lugares (perdiendo a los bits de orden alto) y que l o s 16 bits más significativos resultantes sean almacenados en la localidad dma de la memoria de datos.

El MULTIPLICADOR del procesador esta implementado en hardware y es capaz de multiplicar dos palabras de 16 bits, obteniendo resultados de 32 bits en complemento a 2’s en un sólo ciclo de máquina. Este multiplicador realiza las operaciones básicas del DSP como convolución, correlación y filtrado digital.

El multiplicador consiste de los tres registros siguientes:

-Registro T (temporal) de 16 bits que almacena temporalmente un operando de la multiplicación.

-Registro P (producto) que almacena al producto de 32 bits (resultado de la multiplicación).

Para realizar una multiplicación se debe cargar primero un operando en el registro T (a través del bus de datos) utilizando una de las instrucciones LT, LTA, ó LTD, para luego realizar la multiplicación con el segundo operando direccionado en la instrución de multiplicación M P Y ó con la constante especificada en la instrucción de multiplicación inmediata MPYK. Después de que se realiza la multiplicación, el resultado queda almacenado en el registro P.

UN I VERS I D A D AUTONOHA METROPOLITANA 10

Page 13: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Una operación común en la CALU implica las siguientes micro-operaciones:

-Una palabra de 16 bits es leída de la memoria de datos a través del bus de datos.

-La palabra pasa a través del barrel shifter donde puede ser desplazada a la izquierda de O a 16 lugares, dependiendo del valor especificado en la instrucción.

-El dato entra en la ALU en donde es operado lógica ó aritméticamente, para que el resultado sea cargado en el acumulador.

-El resultado obtenido en el acumulador es pasado a través del parallel shifter para eliminar los bits de signo extras.

-El resultado es almacenado en la memoria de datos. Como el acumulador es de 32 bits de longitud, ambas mitades se deben almacenar separadamente.

UNIVERSIDAD AUTONOMA METROPOLITANA 1 1

Page 14: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

UNIDAD DE MEMORIA DE DATOS

La Unidad de memoria de datos (RAM de datos interna) está constituida por dos bloques (páginas) de palabras de 16 bits, uno de 1 2 8 y otro de 16 palabras (144 registros de propósito general). La página cero abarca de la dirección O (>Oh) a la 127 ( > 7 F h ) , y la página uno de la 1 2 8 ( > 8 0 h ) a la 143 ( > 8 F h ) . El direccionamiento a la memoria de datos es directo con paginación, por medio del registro apuntador de página DP (que puede tomar los valores de O ó 1) , y es indirecto mediante la utilización de l o s registros auxiliares (índice) ARO y AR1.

La memoria de datos puede expanderse y, en tal caso, l o s datos se almacenan en memoria RAM ó ROM externa, pudiendo ser copiados dentro de la RAM interna según se les requiera. Las instrucciones TBLR (lectura del exterior) , TBLW (escritura al exterior), IN (entrada de dato) y OUT (salida de dato) permiten esta transferencia de datos entre la memoria de datos y la memoria externa. La instrucción TBLR transfiere palabras almacenadas en memoria de programa (ROM interna, ó ROM/RAM externa) a la RAM de datos interna. La instrucción TBLW transfiere datos desde la RAM interna a la RAM de programas externa, permitiendo el uso de RAM externa para incrementar la capacidad de almacenamiento de datos. Por otro lado, las instrucciones IN/OUT direccionan a la RAM de datos externa como un dispositivo periférico.

Los REGISTROS AUXILIARES ARO y AR1 son de 16 bits cada uno, y son utilizados en el direccionamiento indirecto a la memoria de datos, almacenamiento temporal de datos, en control de ciclos ó contadores de módulo 512.

En el direccionamiento indirecto, la dirección a memoria de datos la forman los ocho bits menos significativos de uno de los dos registros auxiliares. El apuntador de registros auxiliares ARP selecciona al registro auxiliar por ser utilizado en el direccionamiento indirecto, si el ARP es igual a cero (ARP=O) se selecciona al registro auxiliar ARO y si el ARP es igual a uno (ARP=l) se selecciona al registro auxiliar AR1. El ARP es de un bit, el cual forma parte del registro de estado (status register).

Los registros auxiliares se autoincrementan/decrementan por medio de instrucciones que permiten el direccionamiento indirecto ó por la instrucción BANZ (salta si el AR actual no es cero), siendo afectados l o s nueve bits menos significativos, los cuales forman un contador módulo-512 (los bits 9-15 no se afectan).

UNIVERSIDAD AUTONOMA METROPOLITANA 12

Page 15: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A L T I L ~ LUIS IGNACIO ESCOBEDO RAMIREZ

Un autoincremento de 111111111 ocasiona que los 9 bits LSB cambien a 000000000 y un autodecremento de 000000000 l o s cambia a 111111111.

UNIDAD DE CONTROL

La Unidad de Control de programa consta del contador de programa PC, de una pila de 4 niveles, la interrupción de reset, un terminal para atender interrupciones externas y el registro de estado (status register). EL PC y la pila habilitan la ejecución de instrucciones TLBR/TBLW, de salto, de llamada a subrutina y de interrupción.

El PC es un registro de 12 bits que contiene la dirección de memoria de programa de la siguiente instrucción por ejecutar; la memoria de programa siempre es direccionada por el PC.

La PILA (stack) esta implementada en hardware y es de cuatro niveles, de 12 bits de longitud cada uno. Se utiliza para salvar el contenido del PC durante las llamadas a subrutinas y el servicio a interrupciones. Las instrucciones PUSH y POP permiten accesar el contenido de la pila y salvar el contexto del dispositivo. La instrucción PUSH coloca los 12 bits LSB del acumulador en el tope (TOS) de la pila, y la instrucción POP coloca al tope (TOS) de la pila en los 12 bits LSB del acumulador.

Las instrucciones SACL (almacena la parte baja del ACC) y LAC (carga al ACC) permiten la expansión de la pila hacia la RAM de datos interna. La pila también puede extenderse hacia la RAM de programa externa utilizando a las instrucciones TBLR y TBLW, permitiendo un tamano de la pila restringido sólo por la cantidad de RAM externa disponible.

La recepción de la señal de RESET, que es una interrupción externa no modificable por software (no mascarable), provoca la terminación de programa en ejecución, forzando a l PC a cero. Debido a esto, debe existir, en esta dirección, una instrucción de salto a una dirección que contenga un código que inicialice al procesador, poniéndolo en un estado conocido ya que las siguientes acciones ocurren al detectarse un RESET:

UNIVERSIDAD AUTONOMA METROPOLITANA 13

Page 16: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIC‘CI LUIS IGNACIO ESCOBEDO RAMIREZ

-Los bits del registro de estado, ARP, DP y OVM quedan indefinidos.

-Las lineas de control DEN‘, WE‘ y MEN’ son puestas en 1.

-El bus de datos D15-DO es puesto en estado de alta impedancia.

-El PC es puesto en cero, y el bus de direcciones All-A0 es puesto en O.

-Se deshabilita la recepción de interrupciones externas.

El REGISTRO DE ESTADO (status register) consiste de cinco bits de estado que pueden ser alterados individualmente por medio de instrucciones especificas. Las instrucciones SST y LST salvan el estado actual del procesador al detectarse alguna interrupción ó llamada a subrutina. La instrucción SST almacena (salva) el contenido del registro de estado en memoria de datos (con direccionamiento directo la dirección debe ser menor a +16 para la página 1, con el apuntador de página de datos DP = 1) . La instrucción LST carga en el registro de estado el contenido de una localidad de la memoria de datos, con excepción del bit INTM, el cual sólo puede ser modificado por las instrucciones EINT y DINT (habilitación y deshabilitación de interrupciones externas). Los bits del registro de estado son los siguientes:

ARP: Apuntador de registros auxiliares. Selecciona un registro auxiliar para su utilización en el direccionamiento indirecto. ARP=O selecciona al registro auxiliar ARO, y ARP=l selecciona al registro auxiliar AR1. Este bit puede ser modificado por las instrucciones que permiten el direccionamiento indirecto y por las instrucciones LARP, MAR y LST.

DP: Apuntador de página de memoria de datos. Este bit se concatena con l o s ? bits LSB de una palabra de instrucción para formar una direccion de memoria de datos de 8 bits. DP=O selecciona las primeras 128 localidades de la memoria de datos (página O). DP=1 selecciona las restantes 16 palabras de la memoria de datos (página 1). Este bit puede ser modificado por las instrucciones LST, LDP y LDPK.

UNIVERSIDAD AUTONOMA METROPOLITANA

Page 17: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S I G N A C I O ESCOBEDO RAMIREZ

INTM: Bit de modo de interrupción. Este bit se pone en alto cuando una interrupción es detectada. INTM=O habilita las interrupciones mascarables, e INTM=1 las deshabilita. E l bit INTM se pone en uno por medio de la instruccion DINT (deshabilita las interrupciones) y se pone en cero (reset) por la instruccion EINT (habilita las interrupciones). La señal de reset RS’ deshabilita las interrupciones (pone en uno a INTM). INTM no afecta a la interrupcion de RESET. INTM no es afectado por la instruccion LST.

OV: Bandera de desbordamiento. OV=O indica que el acumulador no ha sufrido un desbordamiento). OV=l indica que un desbordamiento ha ocurrido. Si ocurre un desbordamiento, el bit OV permanece en 1 hasta que se detecte un RESET, ó una instrucción BV 6 LST lo pongan en O.

OVM: Bit de modo de desbordamiento. OVM = O deshabilita al modo de desbordamiento, causando que resultados con desborde permanezcan en-el acumulador. OVM=l habilita al modo de desborde, causando que el acumulador sea puesto a cualquiera de sus valores más positivo ó negativo cuando se detecte un desborde. La instrucción SOVM pone en uno (set) a este bit y ROVM lo pone en cero (reset). La instrucción LST puede utilizarse para modificar a este bit.

MEMORIA DE PROGRAMAS

La memoria de programas consiste de 1.5/4k palabras, diF-eccionables por medio del bus de direcciones A0 (LSB) -All (MSB) ( 2 = 4096), las cuales contienen al código objeto de los programas de usuario que seran ejecutados por el procesador TMS32010.

La operación de la memoria de programa puede ser seleccionada por medio del terminal MC/MP’(microcomputadora/microprocesador). En el modo de microcomputadora (MC/MP’=l) la memoria de programa es mapeada dentro de un espacio de memoria de 4k palabras. Las localidades O a 1523 son de memoria de programa interna y las localidades 1536 a 4095 son de memoria de programa externa (2.5k adicionales), disponibles para el desarrollo de programas de usuario. Las localidades 1524 a 1535 estan reservadas por Texas Instruments para propositos de prueba.

~~

UNIVERSIDAD AUTONOMA METROPOLITANA 1 5

Page 18: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRALTICO LUIS IGNACIO ESCOBEDO RAMIREZ

En el modo de microprocesador (MC/MP'=O) todo el espacio de memoria de programa (las 4 k palabras) se direcciona externamente y se emplea para el desarrollo de programas de usuario. La capacidad del TMS32010 de utilizar memoria externa proporciona siguientes beneficios:

-Ejecución desde RAM externa.

-Descarga de código desde otro microprocesador.

-Uso de la RAM externa para expandir la capacidad almacenamiento de datos.

-Uso de productos comerciales con aplicaciones grabadas evitan el programar en memoria ROM.

-Fácil actualización de código (cambio constante programas de aplicación) por medio de memorias EPROM.

los

de

que

de

MAPA DE MEMORIA

Los tres espacios de memoria del procesador T M S 3 2 0 1 0 , memoria de programa, memoria de datos y puertos de entrada/salida se muestran en la siguiente figura. La memoria de programa se configura de acuerdo al estado del terminal MC/MP'.

UNIVERSIDAD AUTONOMA METROPOLITANA 1 6

Page 19: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDII RAMIREZ ~" __

O( >OOOO)

1535 ( >05FF) 1536(>0600)

4005 (>OFFF)

ESPACIO DE MEMORIA INTERNA

RESERVADO PARA

PRUEBA ~-

MEMORIA EXTERNA-t

MODO MICROCOMPUTADORA

o(rOooo~I DATOS

o ( >o000

ESPACIO DE MEMORIA EXTERNA

MC/m = 0 MODO MICROPROCESADOR (NO EN EL TMS32011)

127(>007F)

' 4 3 (>OOSF) 128(>0080) PAGINA 1

t / No disponible en el TMS32011 11 +puertos O y 1 dedicados al control interno de registros en el ~ ~ ~ 3 2 0 1 1 f

U N I V E R S I D A D A U T O N O H A METROPOLITANA 17

Page 20: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOEEDO RAMIREZ

FUNCIONES DE ENTRADA/SALIDA DE DATOS

Las funciones de entrada/salida de datos que implementa el TMS32010 son útiles para su comunicación con dispositivos periféricos 6 externos que son tratados de la misma manera que la memoria, ya que se mapean dentro del espacio de direcciones de E / S , utilizando a los buses de direcciones y de datos externos del procesador.

Existen ocho direcciones de E/S (ocho puertos multiplexados de entrada y ocho de salida de 16 bits) que se utilizan. para la interfaz con dispositivos perifericos. Estas ocho direcciones se obtienen multiplexando las tres lineas LSB del bus de direcciones (PAO-PA2). E l bus de datos (de 16 bits) puede ser utilizado para realizar funciones de E/S por medio de las instrucciones IN y OUT. Cuando se utilizan estas dos instrucciones, los puertos de E/S se direccionan por medio de las tres lineas LSB del bus de direcciones (PAO-PA2) y las demás líneas de orden alto (A3-All) se ponen en el nivel bajo (cero) .

La comunicación con los dispositivos externos se realiza por medio de dos terminales:

El terminal de entrada de prueba BIO’ es utilizado para el monitoreo del estado de dispositivos periféricos, implementando instrucciones de salto (por medio de la instrucción BIOZ) que se condicionan al nivel lógico que se detecte en este terminal. Cuando el terminal B I O I detecta un nivel bajo, provoca que la instrucción BIOZ pma ejecute un salto a la dirección de memoria de programa especificada por el operando pma.

El terminal de entrada de interrupción externa INT’ permite la comunicación con dispositivos externos sincronizados con el reloj del TMS32010 (que realizan funciones altamente dependientes del tiempo). Una interrupción se genera aplicando un nivel bajo a éste terminal de interrupción.

Todas las interrupciones detectadas por este terminal son modificables por softwarte (mascarables) y pueden ser habilitadas ó deshabilitadas por medio de l a s instrucciones EINT y DINT, las cuales modifican el valor del bit bandera INTM que forma parte del registro de estado (status register). Si la bandera de interrupción INTM vale cero (INTM=O) , se atenderá a toda interrupción externa, y si INTM vale 1 se ignorarán las interrupciones.

UNIVERSIDAD AUTONOMA METROPOLITANA 18

Page 21: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Una interrupción tiene su vector de interrupción en la dirección >O02 de la memoria de programa y por ello se ejecuta un salto a la pma2 cuando se detecta una interrupción externa. En éSta dirección se debe implementar un salto (instrucción B pma) a la dirección del bloque de programa que debe ser ejecutado por la interrupción externa.

Un servicio a una interrupción es retrasado cuando se encuentra en ejecución una de las siguientes instrucciones:

-Instrucciones multiciclo (su ejecucción dura más de un ciclo de máquina).

-La instrucción posterior a una instrucción de habilitación de interrupciones EINT (cuando las interrupciones han sido previamente deshabilitadas).

El servicio a la interrupción se realiza hasta que termine la ejecución de una de las instrucciones anteriores.

~1 retorno de un servicio a interrupción se implementa mediante la instrucción RET. La instrucción RET se escribe al final de la rutina de interrupción, generalmente después de una instrucción EINT que habilite de nueva cuenta el servicio a interrupciones.

UNIVERSIDAD AUTONOHA METROPOLITANA 19

Page 22: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

ARITMETICA DEL PROCESAMIENTO DIGITAL DE SENALES CON EL TMS32010

CORRIMIENTO DE DATOS Y SUBSTRACCION DE BITS

Los registros de corrimiento (shifters) implementan el escalamiento de datos para permitir la aritmética de doble presición (32 bits) y la extracción de los bits de signo extras resultantes en las operaciones de multiplicación.

El barrel shifter realiza el corrimiento a la izquierda de O a 16 lugares sobre las palabras (de 16 bits) de l a memoria de datos para formar las palabras de 32 bits utilizadas en la aritmética de doble presición en complemento a 2’s. El corrimiento dentro de este registro, extiende en signo a la palabra a través de su bit más significativo y pone en cero a los bits que se generan en la parte baja.

El corrimiento a la izquierda de O a 16 bits sólo se realiza por medio de las instrucciones LAC, SUB y ADD que cargan, restan y suman palabras de la memoria de datos al acumulador respectivamente. Los siguientes ejemplos muestran como se realiza el corrimiento a las izquierda por medio de estas tres instrucciones:

La localidad 20 de la memoria de datos (dma20) contiene al número en complemento a 2’s >7EBC. La instrucción

LAC 2 0 , 4

realiza sobre la palabra (el número) un corrimiento a la izquierda de 4 posiciones antes de cargarla en el acumulador, el cual contendra al número de 32 bits (palabra doble) con signo en complemento a 2’s >7EBCO.

ANTES DESPUES

dma2 O :“--I “zq

UN! VERS I DAD AUTONOHA METROPOLITANA 21

Page 23: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Dado que el bit más significativo del número >7EBC es un cero, los bits de orden alto del acumulador s e ponen en cero. Los bits de orden bajo del número resultante de 32 bits se ponen en cero.

La localidad 30 de la memoria de datos (dma30) contiene al número en complemento a 2's >8EBC. La instrucción

L A C 30,8

realiza sobre la palabra un corrimiento a la izquierda de 8 posiciones antes de cargarla en el acumulador, el cual contendrá al número de 32 bits con signo en complemento a 2's >FF8EBCOO.

ANTES DESPUES

'dma 3 O r--"q

ACC m [ " G q

Dado que el bit más significativo del número >8EBC es un uno, l o s bits de orden alto del acumulador se ponen en uno. Los bits de orden bajo del número resultante de 32 bits se ponen en cero.

La localidad 9 de la memoria de datos (dma9) contiene al número >O002 y el acumulador contiene al número > 0 0 0 0 0 0 0 1 . La instrucción

ADD 9 , 4

después de correr a la izquierda 4 posiciones el contenido de la dma9, lo suma al acumulador ( > O 0 2 0 + >O1 = >21).

UNIVERSIDAD AUTONOMA METROPOLITANA 2 2

Page 24: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A C T I C O LUIS IGNACIO ESCOBEDO RAUIREZ

ANTES DESPUES

dma9 7 1 >o0021

El programa indicado por las siguientes instrucciones

LACK > O 4 ; >O4 =+ ACC S A C L 20 ; >O4 * dma20 LACK > O 1 : >O1 * ACC S A C L 30 ; >O1 * dma30 LAC 2 0 , 1 2 ; >4000 + ACC ( + 0 . 5 en Qls) ADD 20,8 ; >O400 + >4000 = >4400 3 ACC SUB 3 0 , 1 2 ; >4400 - >lo00 = >3400 3 ACC

realiza lo siguiente:

-Carga al acumulador con la constante > 0 4 .

-Almacena la constante >O4 en la localidad 2 0 de l a memoria de datos (dma20).

-Carga al acumulador con la constante >01.

-Almacena la constante >O1 en la dma30.

-La constante >O4 se corre a la izquierda 12 lugares, y se carga en el acumulador (>4000 * ACC).

-La constante >O4 se corre a la izquierda 8 lugares, y se suma al contenido del acumulador (>4400 * ACC).

-La constante ;.O1 se corre a la Izquierda 12 lugares, y se resta al contenido del acumulador (>3400 S ACC).

UNIVERSIDAD AUTONOUA METROPOLITANA 23

Page 25: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICCI L ~ J I S IGNACIO ESCOBEDO RAMIREZ

El parallel shifter realiza el corrimiento a la izquierda de O, 1, ó 4 lugares sobre la palabra de orden alto (los 16 bits de mayor peso) del acumulador, la cual en las operaciones de multiplicación, generalmente, contendrá bits de signo extras que deberán ser eliminados para manejar correctamente a los resultados.

La instrucción SACH almacena la mitad alta (bits 16-31) del acumulador permitiendo el corrimiento a la izquierda de O, 2 ó 4 lugares (eliminando a los bits más significativos). La ejecución de ésta instrucción no modifica el contenido del acumulador.

Los siguientes ejemplos muestran el corrimiento a la izquierda sobre la mitad alta del acumulador, antes de almacenarla en la memoria de datos:

El acumulador contiene al número de 32 bits con signo en complemento a 2's >A34B78CD. La instrucción

S A C H 40,4

implementa un corrimiento de 4 posiciones sobre la parte alta del acumulador antes de que se almacene en la dma40.

ANTES DESPUES

La dma50 contiene al número > 4 0 0 0 (+O. 5 en Q15) . Las instrucciones

LT 5 0 : >4000 =I REG. T ( + 0 . 5 en Q15) MPYK >800 ; >4000 X >O800 = > O 2 0 0 0 0 0 0 3 REG. P

P A C : > 0 2 0 0 0 0 0 0 + ACC (+0.25 en 427) S A C H 6 0 , 4 : ~ 2 0 0 0 =I dma60 (O. 25 en Qls)

* ( > 8 0 0 = + 0 . 5 en Q 1 2 )

UNIVERSIDAD AUTONOMA METROPOLITANA 2 4

Page 26: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

realizan lo siguiente:

-Se carga al registro T con el contenido ( > 4 0 0 0 ) de la dma50.

-Se multiplica el contenido del registro T con la constante >800 (+O. 5 en Q12) .

-Se carga el producto ( > 0 2 0 0 0 0 0 0 ) en el A C C .

- S e al.?acena en la parte alta del ACC (con un corrimiento de 4 lugares) en la localidad 60 de la memoria de datos.

A N T E S

dma 5 O )4ooo1

REG. T I

ACC >xxxxxxxx

DESPUES

r >4000 + 0 . 5 en Q15

I >02000000/ +O. 25 en Q27

dma60 I

U N I V E R S I D A D A U T O N O M A METROPOLITANA 2 5

Page 27: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

ARITMETICA DE COMPLEMENTO A 2 ’ s :

La notación de complemento a 2’s de cualquier número binario se obtiene invirtiendo el valor de sus bits y sumando 1 a este resultado. Por ejemplo, para obtener el complemento a 2’s del número decimal +19, se procede de la siguiente manera:

+19 = 0 0 0 1 0011 = >13h

Se invierten los bits:

(O001 0011)’ = 1110 1100

Se suma 1 a los bits invertidos:

1110 1100 + O000 0001

1110 1101 = >EDh = -19

Para obtener el complemento a 2 ‘ s del número -19 y comprobar este método, se procede de la misma manera.

-19 = 1110 1101 = >EDh

Se invierten los bits:

(1110 1101)’ = 0001 0010

Se suma 1 a los b i t s invertidos:

0001 0010 + O000 0001

0001 0011 = >13h = +19

UNIVERSIDAD AuToNonA METROPOLITANA 2 6

Page 28: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIC(1 L U I S IGNACIO ESCOBEDO RAMIREZ

En la aritmética de N-bits complemento a 2 ' 5 , los números menores a 2 N - 1 - l (incluido este número) se consideran como positivos, teniendo todos ellos al bNiF de orden alto igual a cero (MSB = O). El siguiente númer$,l 2 , se considera como el más negativo. Los números desde 2 en adelante tienen al bit de orden alto igual a uno (MSB = 1 ) y se consideran gomo números negativos. Por ejemplo, la aritmética de módulo-8 ( 2 , N = 3 ) se representa de la siguiente manera:

NUMERO DECIMAL NUMERO BINARIO M S B L S B

.L .L 3 - 1 3 = 2 - 1 O 1 1 C" numero mas positivo

2 O 1 0 1 O O 1 . numer o s positivos

O O 0 0 cero

- - - - - - _ " "" " " " " " " """""""""""

-1 1 1 1 numer o S negativos -2 1 1 0 - 3 1 0 1 - 4 = - 2 1 O O t" numero mas negativo

3 - 1

La aritmética de 16 bits (N = 1 6 ) complemento a 2 's se representa de l a siguiente manera:

NUMERO DECIMAL NUMERO BINARIO MS B L S B

numero mas .L J. positivo "+ 3 2 7 6 7 = 2 * 5 - 1 O 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = >7FFFh

3 2 7 6 6 O 1 1 1 1 1 1 1 1 1 1 1 1110 = >7FFEh

numeros posit i vos 1 0 0 0 0 O 0 0 0 O000 O001 = > 0 0 0 1 h """"""""""_"""""""""""""" -""-"""

cero O O000 0 0 0 0 0 0 0 0 O000 = >0000h """~"""""""" """_ -"" ""-""- - " - - - - - - - - - - - " numeros -1 1 1 1 1 1 1 1 1 1 1 1 1 1111 = >FFFFh negativos -2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 = >FFFEh

numero mas - 3 2 7 6 7 1000 O000 O000 O001 = > 8 0 0 1 h negativo "+ - 3 2 7 6 8 = - 2 1 5

1000 O 0 0 0 O 0 0 0 O000 = > 8 0 0 0 h

UNIVERSIDAD AUTONOMA METROPOLITANA 2 7

Page 29: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRAC.TICO LIJIS IGNACIO ESCOBEDO RAMIREZ

En la aritmética de complemento a 2 ’ s , se dice que el bit de signo se extiende a la izquierda, ya que en l o s números positivos, todos l o s bits a la izquierda del bit más significativo se ponen en cero (p.e +2 = 0 0 0 0 0 0 0 0 o000 0 0 1 0 ) , y en l o s números negativos, se ponen en uno (p.e. -2 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 ) .

El mqyor valor que alcanza un número entero positivo de 1 6 bits es 2 - 1 = + 3 2 , 7 6 7 con el bit más significativo en cero representando al signo positivo ( + ) .

MSB-J,

215- 1 = 3 2 , 7 6 7 = O 1 1 1 1 1 1 1 1111 1 1 1 1 = > 7 F F F h

El valor más negativo posible es - 3 2 , 7 6 8 , teniendo al bit más significativo en uno, representando al signo negativo ( - ) .

MS BJ,

-2 = - 3 2 , 7 6 8 = l o 0 0 O000 O000 O000 = > 8 0 0 0 h 15

El procesador TMS32010 implementa las operaciones del procesamiento digital utilizando la aritmética de complemento 2’s.

NUMEROS FRACCIONAROS (NOTACION Q):

La notación ó formato Q se utiliza para especificar la posición del punto binario. Un número binario en formato QN se define por los N bits que contenga a la derecha del punto binario. Con esta definición se puede decir que los números enteros binarios se encuentran en el formato Qo, ya que no contienen bits a la derecha del punto binario.

Por ejemplo, el número +1.75 se representa en el formato binario Q 3 como 0 1 . 1 1 0 , y el número + 2 se representa en formato binario Qo (entero) como 10.

UNIVERSIDAD AUTONOMA METROPOLITANA 2 8

Page 30: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

La figura siguiente muestra la representación en formato Q para números de 3 bits (N=3), considerando bit de signo:

NUMERO FRACCIONARIO NUMERO BINAR10 M S B L S B numero mas

J. J. positivo

O . 7 5 = 3 / 4 = 2N-1-l/ 2N-' o 1 1 t- ( 2 N- 1 - 1 )

0 . 5 0 O 1 0

negativo N- 1

( 2 )

La representación fraccionaria de números de 1 6 bits (N=16) es la siguiente:

NUMERO FRACCIONARIO

32767 0.99999 = ___

32768

o . O000

-1.000

NUMERO HEXADECIMAL

(COMPLEMENTO A 2 S )

NIJMERO MAS POS I T I VO

>7FFFh

>0000h

>8000h NIJMERO MAS NECATI VO

Page 31: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACXICU LUIS IGNACIO ESCCIBEDO RAMIREZ

MULTIPLICACION DE NUMEROS EN COMPLEMENTO A 2 ’ s :

Si se realiza una multiplicación de números con formatos distintos ( Q n y Q m ) , el resultado tendrá el formato Qn+m.

Como se vio anteriormente, el número +l. 7 5 se representa en el formato Q3 como 0 1 . 1 1 0 , y el número +2 se representa en formato Qo (número entero) como 1 0 . La multiplicación de estos dos números da como resultado 11.100 ( + 3 . 5 en formato Q3 = Q 3 + o ) , debido a esto se puede notar que el producto de multiplicar a un número entero (en formato Q o ) con un número en formato QX da como resultado un número en el formato QX (Qo + QX = Q x ) .

Todo producto de multiplicaciones de números (operandos) con distinto formato, contendrá bits de signo en exceso, y por lo tanto el resultado deberá ser truncado para obtener el resultado correcto.

Considerando la multiplicacidn de dos números de 16 bits, cada uno de 15 bits de datos y 1 de signo, su producto será de 30 bits de longitud más dos bits de signo (los dos bits más significati-vos) . La figura siguiente muestra la colocación de los dos bits de signo del producto almacenado en el acumulador de longitud doble (de 32 bits).

I + 3 0 4 S S ACC

Para tomar sólo los 15 bits de datos significativos de la mitad alta del acumulador y a un sólo bit de signo, debe eliminarse a uno de estos dos bits de signo (generalmente el que está más a la izquierda).

En el procesamiento digital de señales (DSP) con el TMS32010, l o s valores de los coeficientes y de las muestras de la señal x(n) , transmitidas por el convertidor A/D de la tarjeta A I B (Analog Interface Board), se interpretan como números de 16 bits en complemento a 2’s (con signo) compatibles con el formato Qls. El formato Qis contiene al punto binario a la izquierda del bit más significativo, debido a esto l o s valores de las muestras y los coefA12ientes se hayan dentro del rango -1s c o e f . 5 1-2-l ’ ( 1 - 2 < +1).

UNIVERSIDAD AUTONOMA METROPOLITANA 3 0

Page 32: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LIJIS IGNACIO ESCOEEDCI RAHIREZ

El multiplicador en hardware del TMS32010 normalmente realiza multiplicaciones de números de 16 bits en complemento a dos, produciendo resultados de 32 bits. Para multiplicar dos operandos, uno de ellos debe estar almacenado previamente en el registro T, y el otro debe ser referenciado por la instrucción de multiplicación, quedando su producto almacenado en el registro P. Antes de realizar una nueva multiplicación, el contenido del registro P debe ser cargado ó sumado al acumulador, ya que la nueva multiplicación borrará su contenido anterior.

El registro de corrimiento (parallel shifter) del TMS32010 realiza l o s corrimientos a la izquierda, de O, 1 ó 4 posiciones en la mitad alta del acumulador, lo cual elimina l o s bits de signo extras resultantes de las operaciones de multiplicación.

La instrucción MPYK del TMS32010 utiliza la aritmética de complemento a dos para multiplicar a un número de 16 bits (con 1 bit de signo) con una constante de 13 bits (en formato Q12 con 4 bits de signo) y dar como resultado a un número de 27 bits de datos con 5 bits de signo, de los cuales l o s de la parte alta contienen al producto que deberá ser desplazado 4 lugares a la izquierda para representarlo en el formato Q15. En el ejemplo siguiente se muestran los 5 bits de signo que resultan en el acumulador como producto de la instrucción MPYK.

LT O P 1 ; OP1 = >4000 ( + 0 . 5 en Q I ~ ) MPYK > S 0 0 ; O P 2 = >O800 (1-0.5 en Q 1 2 )

PAC : PRODUCTO AL ACUMULADOR

I + 2 7 -7

ACC s s s s s

0100 O000 O000 O000 = + 0 . 5 en Q l s X 0 0 0 0 1000 O000 O000 = + 0 . 5 en Q 1 2

O000 O010 O000 O 0 0 0 O000 O000 O000 O 0 0 0 = +0.25 en Q27 ~ ~~

P U N T O BINAR10

( t R E S U L T A D O - + I

SACH RESULT, 4 ; RESULT = >2000 ( 0 . 2 5 en Q l s )

dmaRESULT 0010 O000 0000 0000

Page 33: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO L U I S IGNACIO ESCOBEDO RAMIREZ __

La instrucción SACH dma 4, elimina l o s 4 bits de signo sobrantes del producto, realizando un corrimiento a la izquierda de 4 posiciones en la mitad alta del acumulador antes de almacenar el resultado en una localidad de memoria de datos, definida por el parámetro dma (en este caso dma = RESULT).

En una multiplicación de dos números enteros de 16 bits con signo, la parte baja del acumulador contendrá al resultado entero (Qo X Qo = Q o ) y por lo tanto no se necesita de corrimiento alguno a la izquierda antes de almacenar la parte baja del acumulador (SACL dma,O). El ejemplo siguiente muestra como implementar el producto de números enteros.

LT OP1 : OP1 = >O011 (17 en Q o ) MPY oP2 : OP2 = >FFFB ( - 5 en Qo) P A C ; PRODUCTO AL ACUMULADOR

O000 O000 0001 O001 = +17 en Qo X 1111 1111 1111 1011 = - 5 en Qo

S A C L RESULT ; RESULT = >FFAB ( - 8 5 en Qo)

dmaRESULT 1111 1111 1010 1011

La multiplicación de números en formato Qls con números en formato Qo da como resultado números de 32 bits en formato Q15.

Este resultado se carga en el acumulador de longitud doble con el punto binario entre la mitad alta (conteniendo a la parte entera del resultado) y la mitad baja (conteniendo a la parte fraccionaria del resultado). Un corrimiento a la izquierda de un bit sobre la mitad alta del acumulador, antes de almacenarla en la memoria de datos (SACH dma,l) eliminará al bit de signo extra cambiando a la parte alta al formato entero Qo. E l ejemplo siguiente muestra como implementar la multiplicacidn de números fraccionarios con números enteros:

UNIVERSIDAD AUTCJNOMA METROPOLITANA 3 2

Page 34: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A l . T I i _ O LUIS IGNACIO ESCOBEDO RAHIREZ

LT OP1 ; O P ~ = >4000 ( + 0 . 5 en Qls) MPY OP2 ; oP2 = >O005 ( + 5 en Qo) P A C : PRODUCTO AL ACUMULADOR

o100 0 0 0 0 0 0 0 0 0 0 0 0 = + 0 . 5 en Q15 X o o o o 0 0 0 0 O000 0101 = +5 en Q o

O0 O 0 O000 O000 0001 0100 O000 O000 O000 = + 2 . 5 0 en Qls P U N T O B I N A R I O

I t P A R T E E N T E R A - + I t P . F R A C C I O N A R I A + /

S A C H ENT, 1 : ENT = >O002 ( + 2 en Qo) S A C L F R A C : FRAC = > 4 0 0 0 (+O. 5 en Q I S )

dmaENT 0000 0000 0000 0010

dmaFRAC O100 0000 0000 0000

La multiplicación de muestras de una señal analógica con los coeficientes (ambos números en formato Qls) da como resultado números de 32 bits en formato Q30 con el bit de signo duplicado. En este tipo de multiplicaciones, el resultado de la mitad alta del acumulador debe ser desplazado 1 lugar a la izquierda para obtener el resultado en el formato Qls. El ejemplo siguiente muestra como implementar la multiplicación entre números fraccionarios (coeficientes por muestras):

L T OP1 ; OP1 = > 4 0 0 0 (O. 5 en Qls) MPY OP2 ; OP2 = > 4 0 0 0 ( 0 . 5 en Qls) PAC ; PRODUCTO AL ACUMULADOR

o100 o o o o 0 0 0 0 O000 = + 0 . 5 en Qls X o100 0000 O000 O000 = +0.5 en Qls

UNIVERSIDAD AUTONOHA METROPOLITANA 33

Page 35: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

SACH RESULT, 1 ; RESULT = > 2 0 0 0 ( 0 . 2 5 en Q15)

dmaRESULT 0010 oooa QQQQ QQQQ

Cabe recordar que el convertidor A/D de la tarjeta AIB transmite las muestras de la señal x ( n ) como números de 1 6 bits en complemento a 2 ’ 5 , compatibles con el formato Q I S .

REPRESENTACION BINARIA EN FORMATO QN-1 DE CANTIDADES FRACCIONARIAS

Para encontrar la representación binaria en formato una cantidad fraccionaria (valores de coeficientes), primero multiplicar al coeficiente por 2N-1, redondear ó al número obtenido para obtener un número entero y, por convertir a este número a su representación en hexadecimal

( Q N - I ) de se debe truncar ultimo,

La representación en el lenguaje del procesador TMS32010 de los coeficientes fraccionarios se hace por medio de palabras de 1 6 bits, con signo y en formato Qis = Q16-I (N=16) ;por ello15se necesita multiplicar a todo coeficiente por el valor 2 - 2 = 3 2 7 6 8 , redondear el resultado y obtener su representación en hexadecimal.

N-1-

Por ejemplo, el coeficiente +0.126 se representa como un número de 16 bits en complemento a 2‘s y formato Q15 de la siguiente manera:

a) Se multiplica al coeficiente por 2N-1 (N = 16):

0.126 X 2” = 4128.768

b) Se redondea al número para obtener un entero:

4129

c) Conversión a hexadecimal:

4129 = 0 0 0 1 0000 0010 O001 = >1021h

UNIVERSIDAD AUTONOMA METROPOLITANA 3 4

Page 36: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

La representación en formato Qls del coeficiente - 0 . 1 2 6 se obtiene como:

a) -0.126 x 215 = -4128.768

b) -4129

C) -4129 = 1110 1111 1101 1111 = >EFDFh

Se puede observar que el número >EFDFh es el complemento a 2’s del número >1021h.

UNIVERSIDAD AUTONOMA METROPOLITANA 3 5

Page 37: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital
Page 38: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

MODULO DE EVALUACION TMS320 (EVM)

INTRODUCCION

El Módulo de Evaluación (EVM) , es una herramienta de desarrollo en hardware para el Procesamiento Digital de Señales. Este módulo consiste de una tarjeta que permite al diseñador desarrollar, depurar y evaluar, por medio de programas, las características de los procesadores de propósito específico de la familia TMS320 (TMS32010, TMS320C10 y TMS320C15/E15, etc.).

El Módulo de Evaluación consiste de una serie de componentes electrónicos configurados como un sistema de desarrollo para el procesamiento digital de señales. El EVM contiene principalmente:

-Un grabador de memorias EPROM.

-Dos puertos de comunicación serial EIA RS-232C para la conexión con una terminal de usuario y con una computadora (host computer) u otros dispositivos periféricos.

-Un sistema operativo en 32K bytes de memoria ROM (firmware), residente en 4 memorias EPROM.

-8k bytes de memoria RAM para uso del sistema operativo.

-Un procesador principal TMS9995 encargado, junto con el sistema operativo, de la operación de la tarjeta.

-Un procesador secundario TMS32010 (TMS320C10 O TMS320C15/E15) , encargado de ejecutar los programas de aplicación.

-8K bytes de memoria RAM (4K palabras de 16 bits) para el almacenamiento de programas de desarrollo.

-Un conector a tarjeta de adquisición de datos externa (para la Tarjeta de Interfaz Analógica AIB).

-Una interfaz para grabadora de audio.

-Un reloj interno de 20 MHz.

La tarjeta EVM contiene dos procesadores en configuración Maestro-Esclavo. EL procesador principal TMS9995 (dispositivo U59), actúa como maestro ejecutando las operaciones del sistema operativo. El procesador secundario TMS32010 (dispositivo U63) es responsable de la ejecución de los programas PDS en tiempo real, actuando como esclavo.

UNIVERSI5AD AUTONOMA METROPOLITANA 37

Page 39: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

GRA

PI

SWITCH

RESET

DE

EADOR DE MEMORIAS]

EPROM -Í PROCESADOR (DSP) f’ PUERTO 3 91605021

TMS9995 TMS320y.x

MODULO DE EVALUACION (EVM)

UNIVERSIDAD AUTONOMA METROPOLITANA 38

Page 40: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRA~:.TILO LUIS IGNACIO ESCOBEDO RAMIREZ

MEMORIA,

La memoria contenida en el Módulo de Evaluación se divide en tres partes:

-Sistema Operativo en ROM.

-RAM del sistema operativo.

-RAM de usuario.

El Sistema Operativo esta contenido en 4 memorias EPROM TMS2764 (dispositivos U55-U58) formando 32K bytes de memoria ROM, la cual s ó l o es accesada por el procesador principal TMS9995. La RAM del sistema operativo está contenida en 8K bytes de una memoria RAM HM6264 ó ED18808 (dispositivo U54). Para el desarrollo de programas PDS y uso del procesador TMS32010, el EVM proporciona 4K bytes de meomoria RAM de usuario contenidos en cuatro memorias R A M IMS1420 (dipositivos U4G-U49).

El sistema operativo del Módulo de Evaluación consiste del siguiente software en ROM:

-Sistema Operativo monitor, encargado del funcionamiento total de la tarjeta.

-Editor de texto, con el cual se pueden editar l o s programas fuente para el TMS32010.

-Ensamblador/Desensamblador de programas fuente y objeto.

-Software de comunicaciones via dos puertos seriales EIA RS-232C.

-Software de grabado de memorias EPROM.

-Depurador de programas, el cual cuenta con ocho puntos de ruptura, seis localidades de trazo para inspecionar la memoria de datos, y un contador de eventos para el seguimiento paso a paso de los programas de aplicación.

UNIVERSIDAD AUTONOMA METROPOLITANA 3 9

Page 41: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOEEDO RAMIREZ

El uso y explotación del Módulo de Evaluación se realiza a través de l o s dos puertos EIA RS-232C y del software de comunicaciones del propio módulo. Se utiliza una terminal de usuario conectada al puerto 1 para que el diseñador se comunique y utilice la tarjeta EVM (puede utilizarse una computadora que por medio de un software de comunicaciones emule la terminal de usuario) : por otro lado, el puerto 2 se utiliza para la transferencia (upload) y recepción (download) de código fuente u objeto con una computadora (host computer) conectada a éste.

El ensamblador residente convierte el código fuente entrante (texto ASCII) en código objeto ejecutable en un s o l o paso, por medio de la resolución automática de las etiquetas en el programa fuente, y lo almacena en la memoria RAM de 8k bytes, permitiendo así que el procesador TMS32010 ejecute los programas. Cuando una sesión de trabajo finaliza, los programas en código objeto pueden ser transferidos hacia la computadora conectada a l puerto 2 para su almacenamiento y uso posterior.

Las capacidades de Edición, Ensamblado/Desensamblado, Depuración, Ejecución y Carga/Almacenamiento de programas en codigo fuente y objeto, permitidas por el Módulo de Evaluación en el desarrollo de programas para el procesamiento digital de señales con el PDS TMS32010, pueden compararse con las que ofrecen l o s Entornos Integrados de Desarrollo ( I D E ) de lenguajes de programación de alto nivel, como TURBO PASCAL y TURBO C.

PUERTOS DEL MODULO DE EVALUACION.

EL sistema operativo del EVM maneja tres puertos con los cuales realiza las operaciones de entrada/salida de datos (codigo fuente y objeto), para su almacenamiento y/o despliegue en pantalla. Dos de l o s puertos (puerto 1 y puerto 2) cumplen con las normas EIA RS-323C; el tercer puerto es una interfaz a grabadora de audio, cuando esta se utiliza como medio de almacenamiento de datos. Los dos puertos seriales del EVM tienen conectores DB-25 hembra. El puerto 1 (conector J1) se utiliza para conectar al EVM con una terminal de usuario compatible con el estandar RS-32C. El puerto 2 (conector J2) se utiliza para realizar l a carga/y almacenamiento de datos hacia/desde una computadora (host computer) ó como salida a una impresora serial.

UNIVERSIDAD AUTONOMA METROPOLITANA 4 0

Page 42: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

Estos dos puertos estan controlados por un dispositivo UART TMS9902 ( U 2 y U3), los cuales soportan velocidades de transmision de datos (baud rate) de 1 1 0 , 3 0 0 , 6 0 0 , 1 2 0 0 , 2 4 0 0 , 4 8 0 0 , 9 6 0 0 y 1 9 2 0 0 bauds. La velocidad de transmisión del puerto 1 se ajusta automáticamente a la velocidad a la que trabaja la terminal de usuario que le sea conectada. La velocidad de transmisión del puerto 2 se inicializa, por default, a 9 6 0 0 bauds. Por supuesto, las velocidades de transmisión de ambos puertos pueden modificarse por medio de comandos del sistema operativo del EVM.

FORMATO DE TRANSMISION DE CARACTERES.

Para ambos puertos seriales del EVM, el formato de tranmisión de carácteres es el siguiente:

1 bit de inicio

7 bits de datos

2 bits de parada

Sin bit de paridad

PROTOCOLO DE COMUNICACIONES.

El Módulo de Evaluación proveé cuatro comandos para habilitar/deshabilitar l o s protocolos de intercambio de datos (handshaking) DEC y Tektronix, que aseguran la transferencia correcta de datos entre el EVM y una computadora conectada a uno de sus puertos. Hay que considerar que ambos protocolos se encuentran deshabilitados al iniciar la operación del modulo:

XON Habilita el protocolo de intercambio de datos DEC con cualquier sistema (excepto Tektronix).

XOFF Deshabilita el protocolo DEC.

ACK Habilita el protocolo de intercambio de datos con un sistema Tektronix.

NACK Deshabilita el protocolo de intercambio de datos con un sistema Tektronix.

UNIVERSIDAD AUTONOMA METROPOLITANA 4 1

Page 43: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO EXOREDO RAMIREZ

Si ambos protocolos, en software, de intercambio de datos se encuentran habilitados, el control de flujo XON se transmite antes que el NAK. El siguiente ejemplo muestra como habilitar el protocolo DEC para efectuar, con seguridad, la transferencia y recepción de información entre el EVM y una computadora conectada a cualquiera de sus dos puertos seriales:

?XON<CR>

?

TRANSFERENCIA/RECEPCION DE INFORMACION.

El Módulo de Evaluación provee cuatro comandos que permiten la recepción de información (Downloading) proveniente de una computadora conectada a uno de sus puertos:

LPM : Carga en Memoria de Programa (Load Program Memory). El EVM recibe información en código objeto ejecutable para el procesador TMS32010, la cual se almacena en la memoria de programas.

ASM : Ensamblar. E l EVM recibe información en código fuente (texto ASCII), la cual contiene programas que serán ensamblados por el módulo.

EDIT: Editor de texto. El EVM recibe información en código fuente (texto ASCII) , la cual contiene programas escritos en el lenguaje ensamblador del TMS32010.

LMS : Carga el estado de los registros del procesador. E l EVM recibe información ASCII referente al estado de los registros del TMS32010.

UNIVERSIDAD AUTONOHA METROPOLITANA 42

Page 44: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS I G N A C I O E S C O B E D O RAMIREZ

E l EVM provee dos comandos que permiten la transferencia de información (Uploading) para su almacenamiento en una computadora conectada a uno de sus puertos:

SMS : Salva el estado de l o s registros del procesador (Save Machine State) . El EVM transfiere información en código ASCII referente al estado de l o s registros del TMS32010.

SPM: Salvar memoria de programa (Save Program Memory). El EVM transmite los programas en código objeto ejecutable cargados en la memoria de programa para su almacenamiento y posterior uso por parte del TMS32010.

U N I V E R S I D A D AUTONOMA METROPOLITANA 4 3

Page 45: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I m LUIS IGNACIC ESCOBEDO RAMIREZ "__ "

I N S T A L A C I O N .

La configuración para utilizar una computadora como medio de almacenamiento de datos se muestra en la siguiente figura:

TERMINAL DE USUARI

MODULO DE EVALUACION (EVM) PUERTO 3

En esta configuración, al puerto 1 se le conecta una terminal de usuario por medio de la cual el diseñador interactúa con la tarjeta (comunicación Usuario-EVM) /y por lo general al puerto 2 del EVM se le conecta una computadora (host computer) utilizada para el almacenamiento de datos.

Page 46: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

Si el diseñador no dispone de una terminal de usuario para la comunicación con el Módulo de Evaluación, se puede utilizar una computadora, conectada al puerto 1, que emule, por medio de un software de comunicaciones, esta terminal de usuario. Trabajando de éSta manera se tiene la ventaja de utilizar una sola computadora, la cual sirve a su vez como terminal de usuario y como medio de almacenamiento de datos. Los comandos de transmisión de datos descritos anteriormente, pueden utilizarse de la misma manera con una computadora que emule una terminal de usuario.

Si se desea conectar una segunda computadora al puerto 2 y utilizarla como medio de almacenamiento de datos, se tiene que utilizar un software de comunicaciones para que dirija y controle la transferencia de datos entre ella y el EVM. Se puede ocupar el mismo sofware de comunicaciones (utilizado para la emulación de la terminal en la computadora conectada al puerto 1) para entablar comunicación con ésta segunda computadora.

Para realizar la conexión Terminal-EVM-Computadora se utilizan cables seriales que contengan, en un extremo, un conector DB-25 macho, el cual se conecta al puerto 1 del EVM; y por el otro extremo, un conector DB-25 o DB-9 hembra para conectarse a la terminal de usuario o al puerto serie de la computadora.

La fuente de voltaje requerida por el EVM debe proveer +5 volts a 3 amperes y +/-12 volts a 0.1 amperes.

Una tarjeta de adquisición de datos, la Tarjeta de Interfaz Analógica (AIB) , se conecta al Módulo de Evaluación por medio del cable conector 91605021. La tarjeta AIB (Analog Interface Board) contiene l o s dispositivos de conversión Analógica/Digital y Digital/Analógica, que proveen de datos al procesador TMS32010 del EVM para el desarrollo de técnicas de procesamiento digital de señales en tiempo real.

MODULO DE EVAL

PUERTO 3 P I N 20 PIN 21

EL C :ABLE

UNIVERSIDAD AUTONOHA METROPOLITANA 4 5

Page 47: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A L T I C O LUIS IGNACIO ESCOBEDO RAMIREZ

El cable conector 91605021 se conecta al puerto 3 del EVM (conector P3) y al conector de 40 pines en la tarjeta AIB. E s t a conexión se debe realizar en forma correcta (pin 1 con pin 1, etc.) antes de alimentar con energía a las dos tarjetas.

OPERACION.

El interruptor de RESET (switch 1) provee el pulso de reset que inicia/reinicia la operación del EVM. Para iniciar la operación del sistema operativo del EVM (con la terminal de usuario conectada al puerto l), se debe accionar el interruptor de reset y presionar la tecla <CR> (ENTER). Si el EVM se inicializa correctamente, se muestra en la pantalla de la terminal el siguiente desplegado:

*** TMS32010 EVM OPERATING SYSTEM * * * REVISION l . X

BREAKPOINTS CLEARED EVENT COUNT CLEARED TRACE CLEARED INTERNAL CLOCK/MEM

* * TMS320 EVM MONITOR * *

"HELP" * READ ME * "MENU" THIS MENU "EDIT" TEXT EDITOR "ASM" ASSEMBLER I' PASM" PATCH ASSEMBLER "RASM" REVERSE ASSEMBLER PROM I' PROM UTILITY

3

El indicador del sistema operativo del Módulo de Evaluación es el signo de interroqacion ?. Al mostrarse este indicador, el sistema operativo del módulo "nos avisa" que ha tomado control de la terminal de usuario, además de que limpia los puntos de ruptura, el contador de eventos y las localidades de trazo utilizadas por el depurador.

Page 48: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS I G N A C I O ESCOBEDO RAHIREZ

Si el interruptor de reset se acciona dos veces ("reset frio"), las siguientes operaciones son llevadas a cabo:

-Se inicializa el editor de texto.

-La tabla de simbolos generada por el ensamblador es borrada.

-Todos l o s registros de TMS32010 se ponen en cero.

El EVM admite otro "reset frio", el cual se realiza por medio del comando RESET, con el cual no hay necesidad de accionar al interruptor de reset dos veces:

?RESET<CR> ARE YOU SURE? (NO) Y<CR>

*** TMS32010 EVM OPERATING SYSTEM * * * REVISION l . X

BREAKPOINTS CLEARED EVENT COUNT CLEARED TRACE CLEARED INTERNAL CLOCK/MEM

* * TMS320 EVM MONITOR * *

"HELP" * READ ME * "MENU" THIS MENU "EDIT" TEXT EDITOR I' ASM ASSEMBLER

"RASM" REVERSE ASSEMBLER I' PROM I' PROM UTILITY

PASM" PATCH ASSEMBLER

3

El accionar u n a sola vez el interruptor de reset se conoce como "reset caliente", y su función es la de detener los programas que el procesador TMS32010 se encuentre ejecutando, sin borrar el contenido de sus registros internos.

UN I V E R S I D A D AUTONOMA METROPOLITANA 4 7

Page 49: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

CARACTERES DE CONTROL DEL TECLADO.

E l EVM reconoce un conjunto de caracteres de entrada de teclado, conocido como teclas de función, el cual permite la edición de la linea actual de comandos de entrada antes de que ésta sea introducida por medio de la tecla < C R > . E l comando KHELP del EVM lista en pantalla a este conjunto de caracteres especiales La tabla siguiente muestra el conjunto de teclas de función:

T E C L A ( S )

E S C DEL CNTL/N CNTL/D C N T L / F , L, P CNTL/H C N T L CNTL/A C N T L / E CNTL/X CNTL/Y

C N T L / I

FUNCION

Borra la linea/crea una nueva linea Borra el último carácter de la linea Inserta un carácter Borra un carácter Mueve el cursor un lugar a la derecha Mueve el cursor un lugar a la izquierda Redespliega la linea Posiciona el cursor al inicio de la linea Posiciona el cursor al final de la linea Borra todos l o s caracteres sobre la linea Borra l o s caracteres desde la posición del cursor hasta el final de la linea Tabulador

Page 50: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I C ~ ~ L U I S IcN,. > I O ESCOBEDO RAMIREZ

TARJETA DE INTERFAZ ANALOGICA AIB

(ANALOG INTERFACE BOARD)

INTRODUCCION

La Tarjeta de Interfaz Analógica AIB incluye el hardware necesario para la adición de un segundo convertidor A/D. En caso de que esta expansión no se requiera, se deben seguir los siguientes pasos para asegurar la correcta operación del convertidor A/D de la tarjeta:

-Conectar el pin 13 al pin 27 ó 29 del conector de expansión p1, lo cual deshabilita la entrada de reloj (EOC2) del puerto de expansión (flip-flop U16), mandandola a tierra.

OUT X, 3

Donde X puede ser cualquier dirección de datos sin importar su contenido. Esta instrucción de inicialización puede añadirse al código normal de inicialización de la AIB; Una secuencia típica de inicialización de la AIB puede ser la siguiente:

OUT X, 3

OUT Y, 1

OUT Z, O

Deshabilita el puerto 3 del A I B

Carga al reloj de frecuencia de muestre0 con el valor Y

Carga el registro de modo de control del AIB con el valor Z

Si no se toman estas precauciones, las seriales de interrupción B I O ’ e INT’ transmitidas hacia el procesador TMS32010 puede fijarse en un estado bajo.

Page 51: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ -

DESCRIPCION

La tarjeta AIB es una herramienta provista del hardware necesario para realizar la interfaz analógica-digital (A/D) y digital-analógica (D/A) con el Módulo de Evaluación (EVM) del procesador TMS32010, para demostrar e implementar las operaciones propias del procesamiento digital de señales (DSP), con señales del mundo real. Para ello cuenta con un convertidor A/D y un convertidor D/A, ambos de 12 bits, con puertos de expansión para convertidores A/D y D/A adicionales, y con un reloj de muestreo para uso en tiempo real.

El reloj de muestreo de la AIB se deriva de la señal CLKOUT del procesador TMS32010 y puede ser programado para proveer entradas y / o salidas analógicas periódicas. Sobre la tarjeta hay dos filtros pasa-bajas, uno de ellos se encuentra a la entrada del A/D para limitar en banda a la señal de entrada y para minimizar los efectos de aliasing; el otro filtro suavisa la salida del convertidor D/A. Por otro lado, la respuesta en frecuencia de ambos filtros se puede controlar modificando l o s componentes externos, en tanto que la frecuencia de corte de los dos filtros siendo de 4.7 kHz. tambien se puede variar cambiando a estos componentes-externos.

Page 52: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A c T i C n Lurs IGNACIO ESCOBEDO RAMIREZ ." ~ ~" -

4 c-7

=*O

5 - --!E3

3 - -;o

.

4 z w d n a

UNIVERSIDAD AUTONOHA METROPOLITANA 52

Page 53: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

CARACTERISTICAS DE LA TARJETA

Convertidor D/A de 12 bits.

Un puerto de salida de 16 bits para un convertidor D/A adicional o para aplicaciones definidas por el usuario.

Un puerto de entrada de 16 bits para un convertidor A/D adicional o para aplicaciones definidas por el usuario.

Dos filtros pasa bajas.

Amplificador de audio.

1/0 extendida para memoria de datos.

Area de prototipo para aplicaciones de usuario.

ESPECIFICACIONES GENERALES

Convertidor A/D:

Resolución 12 bits

Entrada analogica : -10 V a +10 V

* Salida digital 16 bits en complemento a 2’s

Tiempo de conversión: 25 microseg. (máximo)

Page 54: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LIJ IS I G N A C : ~ ESCOBEDO RAMIREZ

Muestre0 y Retención:

Tiempo de adquisición a 0.1% : 4 microseg (Vout = 1OV)

Rango de caida (droop) de salida: 0.3 V/seg (25OC)

Paso de retención (Hold Step) : lOmV (25OC)

Convertidor D/A:

Resolución 12 bits

Salida analógica -10 V a + 1 0 V

* Entrada digital 16 bits complemento a 2's

Tiempo de asentamiento (Settling time): 250 nanoseg. (máximo)

Reloj de muestreo:

Rango 76.29 Hz a 5 . 0 0 MHz

Extensión de memoria de Datos:

Capacidad sobre la tarjeta : 8192 x 16 bits (DOS RAM HM6264P-12)

Nota: Los 12 bits de datos de conversión son puestos (latched) en la parte alta (los más significativos) del bus de datos de 16 bits (compatible con el formato Q I ~ ) .

UNIVERSIDAD AUTONOMA METROPOLITANA 54

Page 55: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

I N S T A L A C I O N .

La tarjeta A I B se configura para operar en conjunto con la tarjeta TMS32010 EVM (Módulo de Evaluación) por medio del cable conector. Véase la siguiente figura:

P FGENTE DE ALIMENTACION

TARJETA DE EMULADOR TMS32010 ANALOGICA

ENTRADA ANALOGICA

SALIDA ANALOGICA

Requerimientos de la tarjeta AIB:

Alirnentacion: t-5 V a 1.2 A

-12 V a 0.25 A

+12 V a 0.25 A

Emulador de TMS32010: EVM, X D S u otro emulador

UN I VERS I D A D AUTONOHA METROPOLITANA 55

Page 56: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ -___ - -

ARQUITECTURA DE LA AIB.

La arquitectura básica de la tarjeta de interfaz analógica ( A I B ) se muestra con un diagrama de bloques como el siguiente:

DIRECCION

DATOS BUFFER DE BUS DATOS

REGISTRO DE CONTROL

-

REG I STRO DE STATUS

4

L

I - MEMORIA CONECTOR DE EXTENDIDA EXPANSION

- -.

i

I

UERTO DE NTRADA 16 BITS ENTRADA DE

'SALIDA DEI PUERTO DE EXPANSION SALIDA 16 BITS

SALIDA DE AUDIO SALIDA 20 Vp-p

ENTRADA ANALOG I CA

RELOJ

MUESTRE0

ENTRADA 20 Vp-p

UNIVERSIDAD AUTONOHA METROPOLITANA 56

Page 57: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I C i LUIS IGNACIO ESCOBEDO RAMIREZ

El procesador TMS32010 tiene un pin de entrada, separado del pin de interrupción, el cual recibe la señal de salida del reloj de muestre0 proveniente de la tarjeta AIB, para poder procesar la muestra proveniente del convertidor A / D . La instrucción BIOZ (salta si el pin BIO’ esta en cero) del procesador TMS32010 permite verificar el estado de este pin.

PUERTOS DE ENTRADA/SALIDA

La transferencia de datos entre la AIB y el EVM se realiza por medio de las instrucciones IN y OUT del procesador TMS32010, a las cuales se asocia una dirección de puerto de tres bits. Esta dirección de puerto está multiplexada con l o s tres bits LSB del bus de direcciones. La dirección del puerto es decodificada y utilizada junto con las señales de control WE‘ y DEN’ para producir 8 puertos de entrada y 8 puertos de salida sobre la tarjeta AIB. La tabla siguiente lista cada dirección de puerto y su función correspondiente sobre la tarjeta AIB:

DIRECCION FUNCION DE PUERTO DE ENTRADA

FUNCION DE SALIDA

LEE EL REGISTRO DE ESTADO DEL CONVERTIDOR A/D

NO UTILIZADO

LEE UN DATO PROVENIENTE DEL CONVERTIDOR A/D

LEE DEL PUERTO DE EXPAN- SION

LEE DIRECCION DE MEMORIA EXTENDIDA

LEE DATO DE LA MEMORIA EXTENDIDA

NO UTILIZADO

NO UTI LIZADO

CARGA AL REGISTRO DE CONTROL DEL AIB

CARGA LA FRECUENCIA DE MUES- TREO EN EL RELOJ DE MUESTRE0

MANDA UN DATO AL CONVERTIDOR D/A

ESCRIBE EN EL PUERTO DE EX- PANSION

CARGA DIRECCION DE MEMORIA EXTENDIDA

ESCRIBE DATO EN LA MEMORIA EXTENDIDA

NO UTILIZADO

NO UTILIZADO

UNIVERSIDAD AUTONOMA METROPOLITANA . 57

Page 58: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LIJIS I G N A C I O E s c o E E D o RAMIREZ

La tarjeta EVM se comunica con la A I B a través de 3 puertos y del pin B I O ’ del procesador TMS32010:

El puerto O es el puerto de control. Por medio de este puerto, se transmite la palabra de control que configura el modo de operación de la A I B .

El puerto 1 es el puerto del reloj de muestreo. Por medio de este puerto, se transmite a la A I B el valor para la frecuencia de muestreo.

El puerto 2 es el puerto de datos. Por medio de este puerto se leen las muestras provenientes del convertidor A/D, y se escriben l o s datos de salida en el convertidor D/A.

REGISTRO DE CONTROL

El registro de control se carga por medio del procesador TMS32010, inicializando el modo de operación de la tarjeta A I B . Un modo específico de operación puede ser seleccionado almacenando el patrón de bits de control deseado en la memoria de datos, y enviándolo por el puerto O (direccion de puerto O) mediante la instrucción OUT. La figura siguiente muestra los bits del registro de control y su función correspondiente sobre la tarjeta A I B :

1 5 . . . 8 7 6 5 4 3 2 1 O

1

N O U T I L I Z A D O S 1 DCW C C L R C D A l C D A 2 C A D 1 C A D 2 U/D D C R j

U N I V E R S I D A D AUTONOMA METROPOLITANA 5 8

Page 59: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

BIT VALOR FUNCION

O (CCLR) 1 O

1 (CDA1) 1 O

2 (CDA2) 1

O

3 (CAD1) 1

O

4 (CAD2) 1

O

7 (DCW)

1

O

1

O

1

O

DESHABILITA AL RELOJ DE MUESTREO HABILITA AL RELOJ DE MUESTREO

MODO TRANSPARENTE PARA EL D/A MODO DE RETARDO DE MUESTRA (SAMPLE DELAY MODE) PARA EL CONVERTIDOR D/A

MODO TRANSPARENTE EN CONVERTIDOR D/A DE EXPANSION MODO DE RETARDO DE MUESTRA EN CONVERTIDOR D/A DE EXPANSION

MODO DE RECEPCION AUTOMATICA EN CONVERTI- DOR A/D MODO DE RECEPCION ASINCRONA EN CONVERTI- DOR A/D

MODO DE RECEPCION AUTOMATICA EN CONVERTI- DOR A/D DE EXPANSION MODO DE RECEPCION ASINCRONA EN CONVERTI- DOR A/D DE EXPANSION

CONTEO ASCENDENTE PARA EL CONTADOR DE DI- RECCIONES DE MEMORIA EXTENDIDA CONTEO DESCENDENTE PARA EL CONTADOR DE DIDECCIONES DE MEMORIA EXTENDIDA

DESHABILITA AL CONTADOR DE DIRECCIONES DE MEMORIA EXTENDIDA PARA EL CONTEO DE LEC- TURAS DE DATOS (INput) HABILITA AL CONTADOR DE DIRECCIONES DE

TURAS DE DATOS DE MEMORIA (INput) MEMORIA EXTENDIDA PARA EL CONTEO DE LEC-

DESHABILITA AL CONTADOR DE DIRECCIONES DE MEMORIA EXTENDIDA PARA EL CONTEO DE ES- CRITURAS DE DATOS (OUTput) HABILITA AL CONTADOR DE DIRECCIONES DE MEMORIA EXTENDIDA PARA EL CONTEO DE ES- CRITURAS DE DATOS DE MEMORIA (OUTput)

UN I VERS I DAD AUTONOMA METROPOL I T A N A

5 9

Page 60: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

Si se inicializa a la AIB para NO utilizar el puerto 3 de expansión de convertidores A/D y D/A (se sigue la recomendación OUT X,3), entonces es indiferente el valor de los bits 2 (CDA2) y 4 (CAD2) del registro de control.

Si se deshabilita al contador de direcciones de memoria extendida para el conteo sobre lecturas y escrituras de datos, entonces es indiferente el valor del bit 5 (U/D) (conteo ascendente ó descendente).

RELOJ DE MUESTRE0

El reloj de muestreo consiste de un contador programable (divisor x N) , el cual utiliza la señal CLKOUT, proveniente del EVM, como fuente de conteo. Los pulsos de salida de este contador proveen la señal de inicio de conversión SOC (start of conversión) en el convertidor A/D y también provee las señales de control de salida de datos del convertidor D/A.

La frecuencia de muestreo ( F s ~ ) se obtiene mediante la siguiente relación:

FCLKOUT Fsr =

N + 1 ó

FCLKOUT N = - 1

Fsr

Donde:

FCLKO~JT = 5 MHz para el EVM (comunmente el cristal con el cual trabaja el DSP TMS32010).

N = valor de la constante a cargar en el registro del reloj de muestreo, através del puerto 1.

UN I VERS I D A D AUTONOMA METROPOL I T A N A

6 0

Page 61: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO E ~ C O B E D O RAMIREZ

La constante N (de 16 bits) se debe almacenar en una localidad de la memoria de datos del TMS32010, para poderse transmitir a través del puerto 1, por medio de la instrucción OUT, y ser cargada en el registro del reloj de muestreo, inicializándo a la A I B para la obtención de la frecuencia de muestreo especificada por el valor de esta N.

El hardware del reloj de muestreo acepta cualquier valor de N, obteniendose un rango de frecuencias de muestreo de 76.29 Hz a 5 MHz. Como al convertidor A/D del A I B le toma 29 microsegundos realizar una conversión, entonces el rango seguro de valores para la contante N es de 144 a 6 5 5 3 5 , lo cual permite un rango de frecuencias de muestreo de 76.29 Hz a 34.48 kHz.

Una vez cargada la constante N en el registro del reloj de muestreo, una salida de datos NO ocurrirá hasta que el bit O (CCLR counter inhibit bit) del registro de muestreo sea puesto en cero.

A l tener al bit CCLR = O y a la constante N cargada en el registro del reloj de muestreo, el reloj de muestreo generará continuamente los pulsos periódicos a la frecuencia de muestreo programada por el valor de N.

Por ejemplo, un modo de operación >OA (modo transparente) del A I B , pone en cero al bit O (CCLR) del registro de control, habilitando el funcionamiento del reloj de muestreo, y un valor de 499 (decimal) para N, proveerá una frecuencia de muestreo de 10 kHz. Este valor de N debe ser colocado en el registro del reloj de muestreo por medio de una instruccion OUT que utilice a l puerto 1.

5 MHz

10 kHz N = - 1 = 499

Page 62: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

MODOS DE ADQUISICION DE DATOS

Los modos de adquisicion de datos, permiten que los programas corran (se ejecuten) con una atención mínima al tiempo y manejo de l o s datos (timing and data handling). El Muestre0 Automático puede ser suprimido para aquellas aplicaciones donde no se requiere de muestreo periodico. Los modos son selecccionados por medio del registro de control del A I B , que es accesado a través del puerto O (instrucción OUT X, O) .

* MODO DE RECEPCION DE DATOS. Este modo se divide en dos categorias:

-MODO DE RECEPCION AUTOMATICA:

Este inodo se inicia habilitando el reloj de muestreo con el valor apropiado de N (señal S O C hacia el A/D) . A l recibirse la señal S O C se activa la bandera de status del A/D, indicando que una conversión esta en proceso. El reset de la bandera de status al termino- de la conversión propicia la señal EOC (end of conversion) del flip-flop E O C . Esta señal EOC es utilizada como señal B I O ' ó I N T I por el D S P T M S 3 2 0 1 0 . El Jumper E5 de la tarjeta AIB conecta la señal E O C con los pines B I O ' ó I N T ' del D S P T M S 3 2 0 1 0 . El flip-flop EOC esta inactivo mientras se lee ó se escribe a través de los puertos 2 ó 3 del A I B . Este proceso se repite automáticamente cada vez que la señal S O C del reloj de muestreo se recive.

El modo de recepción automática se habilita poniendo en alto al bit 3 ( C A D 1 ) del registro de control. El puerto de expansión se habilita a este modo de operación poniendo en alto al bit C A D 2 .

UNIVERSIDAD A~JTONOMA METROPOLITANA 62

Page 63: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

-MODO DE RECEPCION ASINCRONA:

En este modo, el pulso SOC es iniciado por la lectura del convertidor A/D. La primer muestra leida es invalidada debido a que un retardo finito está presente en la conversión. Cuando el A/D ha completado su conversión, la muestra digitalizada se escribe dentro de un buffer de salida y permanece ahí hasta que sea leida por el procesador. Cuando esta muestra es leida, se comienza con una nueva conversión. Por ello, después de que la muestra inicial es leida, una nueva muestra estará lista cada vez que se lea al puerto del A/D.

El modo de recepción asíncrona se habilita para el convertidor A/D de la tarjeta poniendo en estado bajo al bit 3 (CAD1) del registro de control, ignorando al reloj de muestreo automático. Poniendo en estado bajo al bit 4 (CAD2) del registro de control, se habilita al puerto de expansión de entrada para que trabaje de la misma manera.

* MODO TRANSPARENTE:

Este modo concierne principalmente al control del convertidor D/A. Ambos puertos D/A, el de la tarjeta y el externo, tienen buffers dobles asociados a ellos. El buffer primario se interfaza al procesador TMS32010 y el buffer secundario se interfaza al convertidor D/A.

En el modo transparente, el dato en el buffer primario s e transfiere inmediatamente al convertidor D/A y es convertido en una salida analogica. La salida analógica permanecerá en el último valor puesto en el buffer primario (o secundario) hasta que en el buffer se coloque un nuevo valor.

El modo transparente se habilita, para el convertidor D/A de la tarjeta, poniendo en nivel alto al bit 1 (CDA1) en el registro de control. Para habilitar este modo en el convertidor D/A de expansión se debe poner en nivel alto al bit2 (CDA2).

UNIVERSIDAD AUTONOHA METROPOLITANA 63

Page 64: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I co LUIS IGNACIO ESCCIBEDO RAMIREZ

* MODO DE RETARDO DE MUESTRA:

En una aplicación típica, el dato es leido desde el A/D, y después de algún retardo debido a su procesamiento, es enviado al convertidor D/A para su salida. Si se utiliza un control totalmente asincrono, ocurrirá un retardo variable para la conversión en el A/D y posiblemente también para el procesamiento del dato leido. También existen retardos debidos a ciclos de procesamiento de datos.

Este modo elimina la mayoria de esos problemas y asegura la periodicidad entre las muestras de entrada y la salida. Afecta la transferencia de datos entre los convertidores A/D y D/A, e involucra el uso del reloj de muestreo automático. Permite que el pulso SOC sea generado por el reloj de muestreo, y al mismo tiempo se transfiera al dato desde el buffer D/A primario hacia el buffer D/A secundario. El dato es leido del A/D, procesado, y escrito en el puerto D/A tan pronto como este listo, pero la salida no será copiada en el convertidor D/A, sino hasta que la siguiente muestra sea tomada por el convertidor A/D. El modo se llama así dado que un periódo de retardo de la muestra resulta entre la lectura de una muestra y su proceso equivalente de escritura.

El modo de retardo de muestra se habilita para los convertidores A/D y D/A de la tarjeta poniendo en nivel bajo al bit 1 (CDA1) y poniendo en nivel alto al bit 3 (CAD1) , el cual inicializa al reloj de muestreo. El puerto de expansión se habilita a este modo de operación poniendo en nivel bajo a l bit 2 (CDA2) y poniendo en nivel alto al bit 4 (CAD2).

FILTROS PASA-BAJAS

El primer filtro pasa-bajas (filtro de antialiasing) , limita en banda a la entrada y minimiza los efectos de aliasing. El segundo filtro pasa-bajas (filtro de reconstrucción), suaviza y reconstruye la salida analógica del convertidor D/A. La respuesta en frecuencia de los dos filtros puede ser controlada variando sus componentes externos. La tabla siguiente muestra como se pueden modificar las frecuencias de corte de l o s filtros, reemplazando a l o s componentes resistivos y capacitivos.

UNIVERSIDAD AUTONOMA METROPOLITANA 64

Page 65: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LIJIS IGNACIO ESCOBEDO RAMIREZ

F R E C U E N C I A

U R I C A C I O N

c O M P O N E N T E

Todos los componentes, excepto un capacitor, estan situados en una base de 28 pines. En la tabla, los valores de los resistores están en K-ohms, y los valores de los capacitores en microfarads.

Para modificar las frecuencias de corte de estos filtros, se utilizan las siguientes ecuaciones:

CA * FA CN =

F N

U N 1 VERS I DAD AUTONOMA METROPOLITANA 6 5

Page 66: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

RA * FA FN

RN =

Donde :

CN = Valor del nuevo capacitor que sustituye al capacitor anterior CA

RN = Valor del nuevo resistor que sustituye al resistor anterior RA

Nota: S ó l o una de estas ecuaciones puede ser utilizada, y por lo tanto s ó l o pueden modificar a los resistores o a los capacitores, pero no a ambos.

El jumper El conecta o desconecta al filtro de antialiasing entre el convertidor A/D y la entrada analógica (J2) , y el jumper E2 conecta o desconecta al filtro de reconstrucción entre el convertidor D/A y la salida analógica (J3).

AMPLIFICADOR DE AUDIO

Este amplificador puede manejar una bocina de 8 ohms para aquellas aplicaciones con salida de audio. El jumper E3 conecta al filtro de salida con el amplificador de audio. La salida del amplificador de audio es el conector J4, y su nivel de salida es controlado por el trimmer R7. La máxima potencia de salida entregada a la bocina es aproximadamente de 500 miliwatts.

Page 67: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTIW LUIS IGNACIO ESCOBEDO RAMIREZ

C O N F I G U R A C I O N DE L O S J U M P E R S

La tabla siguiente muestra las configuraciones para los jumpers de la tarjeta AIB:

JUMPER CONEXIONES DESCRIPCION

El 1-2 Conecta la entrada J2 con el filtro de antialiasing.

convertidor AID. 3-4 Conecta al filtro de antialiasing con el

4-5

E2

E3

E4

E5

E6

1-2 Conecta al filtro de reconstrucción con

3-4 Conecta al convertidor D/A con el filtro la salida J3.

de reconstrucción. 4-5 Conecta al convertidor D/A con la salida

T ?

1-2 Conecta la salida analógica con el amplificador de audio La salida analógica se debe configurar con el jumper E2.

1-2 Aplica +5 V. al pin 3 0 del conector de la tarjeta EVM.

1-2 Conecta la señal(es) del convertidor A/D con el pin BIO' del conector de la tarjeta EVM.

con el pin INT' del conector de la tarjeta EVM.

2-3 Conecta la señal (es) del convertidor A/D

1-2 Conecta el circuito de muestreo y

2-3 Conecta AIN al convertidor A/D (se evita retención (S/H) al convertidor A/D.

el muestreo y retención).

UNIVERSIDAD AUTONOHA METROPOLITANA 6 7

Page 68: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

CALIBRACION DE LOS CONVERTIDORES A/D Y D/A.

Para realizar el ajuste de los convertidores, se debe ejecutar el siguiente programa de calibración, el cual lee datos continuamente del convertidor A / D , mostrándolos en la pantalla de la terminal, y además escribe datos al convertidor D/A para poder ser medidos en la salida J3.

*>

* * *

C I C L

*<

AORG >O ; I N I C I O D E L PROGRAMA OUT O , 3 ; D E S A B I L I T A PUERTO 3 DE LA A I B

D E S H A B I L I T A R E L O J DE MUESTRE0 Y PONE MODO TRANSPARENTE EN EL D/A

LACK > O 3 ;MODO 3 PARA LA A I B S A C L O ;ALMACENA E L 3 EN LA LOCALIDAD O DE LA MEMORIA DE DATOS OUT O , O ;MODO -> A I B NOP ;Hasta aqui se ha inicializado la A I B I N 4 , 2 ; L E E DATO DEL A/D Y LO ALMACENA EN LA LOCALIDA 4 NOP OUT 5 , 2 ;TRANSMITE AL D/A U N DATO ALMACENADO EN LA LOCALIDAD 5 B C I C L ; R E P I T E E L P R O C E D I M I E N T O END

UNIVERSIDAD AUTONOHA METROPOLITANA 68

Page 69: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO EXOBEDO RAMIREZ

Para ejecutar el programa de calibración se utiliza la cadena de comandos siguiente:

?EX;DDM 4 5;HX%<CR>

La cual, al encontrar algún punto de ruptura activo en el programa, muestra continuamente los datos de las localidades 4 y 5 de memoria de datos en formato hexadecimal. Antes de ejecutar ésta cadena se debe activar un punto de ruptura y ejecutar el comando INIT para habilitar a la señal B I O ’ como externa, Vg.

?INIT<CR>

INTERRUPT INTERNAL? E<CR>

?SB<CR>

BEAKPOINT1 XXX 7<CR>

?

El número 7 escrito, activa un punto de ruptura en la direccción 7 de la memoria de programa.

Dos potenciómetros externos para control de offset (R2) y ganancia (R3) son provistos para ajustar al convertidor A/D. Se recomienda ajustar primero el potenciómetro de offset (R2).

Los siguientes pasos muestran como calibrar al A/D:

1 Ensamblar el programa de calibración.

2 Ejecutar los comandos INIT y SB.

3 Ejecutar la cadena de comandos para el EVM.

UNIVERSIDAD AUTONOMA METROPOLITANA 69

Page 70: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I L O LUIS IGNACIO ESCOBEDO RAMIREZ

4 Poner un voltaje de -10 V. en la entrada analógica y ajustar el potenciómetro de offset R2 para obtener una lectura de >801X en la localidad 4 de memoria de datos (el valor X no importa ya que el dato de conversión de 12 bits se coloca en la parte alta de la palabra de 1 6 bits).

5 Poner un voltaje de + 1 0 V. en la entrada analógica y ajustar el potenciómetro de ganancia R3 para obtener una lectura de >7FEX en la localidad 4 de la memoria de datos.

Si surgen problemas al hacer este ajuste, revise las fuentes de alimentación de 12 V. El chip LF398 de muestre0 y retención sólo dejará pasar l o s niveles de 10 V si la fuente de alimentación esta ajustada en el rango de -12.1 V y +12.1 V. El jumper E6 puede ser utilizado para evitar a este chip durante la calibración del convertidor A/D.

Dos trimmers son provistos para ajustar el offset (R8) y la ganancia (R9) del convertidor D/A. El programa de calibración también puede ajustar la salida del convertidor D/A.

LOS pasos siguientes muestran como calibrar al convertidor D/A :

1 Colocar el dato >8000 en la localidad 5 de la memoria de datos en el programa de calibración, o por medio del comando MDM (Modifica Memoria de Datos) del EVM.

2 Ejecutar la cadena de comandos para el EVM.

3 Ajustar el trimmer de offset R8 para obtener -10 V. en la salida J3.

4 Colocar el dato >7FFF en la localidad 5 de la memoria de datos por medio del programa de calibración, o por medio del comando MDM (Modifica Memoria de Datos) del EVM y ejecutar la cadena de comandos.

5 Ajustar el trimmer de ganancia R9 para obtener +lo v. en la salida 53.

NOTA: Recuerde que la entrada digital del convertidor D/A y salida digital del convertidor D/A son datos de 16 bits en complemento a 2’s.

Page 71: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

COMUNICACION CON EL MODULO DE EVALUACION (EVM)

CONFIGURACION DEL PUERTO DE COMUNICACIONES

La comunicación entre una computadora y el Módulo de Evaluación del TMS32010, se puede realizar por medio de cualquier programa de comunicaciones: en nuestro caso hemos hecho USO del programa Bitcom, mismo que permite la emulación de terminal de usuario, requerida para que la tarjeta EVM ejecute su sistema operativo a través del puerto serial de la propia computadora.

Bitcom es un programa de comunicaciones que permite el establecimiento y control de la conexión entre una computadora y otra computadora o dispositivos a través de un puerto serial; dirige la conexión inicial de la computadora con cualquier otro dispositivo, la tranferencia de información hacia o desde la computadora, y la finalización ordenada de la conexión cuando la transferencia se ha completado. En general, Bitcom nos permite automatizar los diversos aspectos del proceso de comunicacón.

Del menú principal de Bitcom se escoge la opción 3 (Cambio de Configuración), la cual hace aparecer la ventana de configuración (Bitcorn Comunications Configuration), la cual se muestra en la siguiente figura:

1

D i a l Prefix :

D i a l Suffix : $ad '-

i i

Prev Se1 : LfArr Add Record : F1B Del Record : F9

m3 Cunn Prlnter : L P T l

can2

T l n i n g Nulls : a

Page 72: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C ' r I C O LUIS IGNACIO ESCOBEDO RAMIREZ

Para el caso nuestro, el campo de interés a modificar es el de Puertos (Ports) , en el cual se debe especificar al puerto serial de la computadora que se utilizará para la comunicación. En el subcampo Comm escogemos COM2.

Para guardar este cambio y salir de BitCom utilizamos la tecla < F 2 > . De este modo, el puerto serial COM2 será el de omisión, y cada vez que ejecute el programa Bitcom, el puerto a través del cual se efectuará la conexión será el COM2. Esta configuración s ó l o es necesario hacerla una v e z .

EMULACION DE TERMINAL

Para realizar la comunicación entre el Módulo de Evaluación y la computadora que empleamos para comunicarnos con éste, usamos una sección (ventana) de Bitcom que nos permite configurar l o s parámetros de comunicación. Esta ventana se muestra en la siguiente figura:

Record Id : Last Connect Date: 18/24/88 Description . Uestern Union's Easylink Time: 12:81 p n Phone Number ' 1-666-325-4112

Cata 7 P3r:ty ' Euen

E c h o Ves node ' Call I g l o r e . Both

Stop : I

Escape . FZ Shou Fkey - F 3 Prlnt : .r4 Snapshot : F5 B re3 k 'Plt-E

ami a u t o i o g F:!E N o n e Capture Filp: None

L n d i j t i o r h c n e

I m E E Trace :

output I n p u t . Quto LF :

E x p Tab :

Up Case B i a n k i n :

None Ver; VEZ

No NC No NO

[ti! u e s t c r n Union to slyn up io7 ~ c c o u n t ~nfornatlnn. C h e c k u;th ycur ! o m ! U e s t e r n Union Represent3tlue.

._..___

U N I V E R S I D A D AUTONOMA METROPOLITANA 7 3

Page 73: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO ESCOBEDO RAMIREZ

En el área de ItOpciones de Comunicación" seleccionamos 10s siguientes parámetros para establecer la comunicación con el Módulo de Evaluación (EVM):

BAUD : 9600 PARITY: None. DATA : 7. STOP : 2. ECHO : Los default presentados por BitCom. MODE : Drct (directo) IGNORE: Los default presentados por BitCom.

El Módulo de Evaluación utiliza estos parámetros para controlar la terminal por medio de su puerto 1.

7n el subcampo ltEmulación" del campo "Otro", escribimos el nombre y extensión del archivo que emulará la terminal seleccionada, en este caso la VT100B.EMU. Este tipo de terminal contiene una disposición de teclado, que coincide con la forma de utilizar las teclas de función especiales empleadas por el Módulo de Evaluación.

Los demás campos, que no son de mayor interés, se dejan con el valor por default presentado por BitCom, y proseguimos con la creación del registro que emule la terminal.

En el menú principal de Bitcorn se escoge la opción número 1, "Selección y/o Edición de números telefónicos", la cual muestra el "Menú de Selección de Comunicaciones". Al presionar la tecla F10 se crea un nuevo registro. En el campo de identificación de registro (Record ID), se introduce un nombre para el nuevo registro (8 caracteres). No se debe presionar la tecla ENTER hasta haber completado todo el registro.

Con la tecla <flecha-abajo> se escoge el campo ItDescripciónt1 y se escribe una pequeña descripción de la función del registro (p.e. EMULACION DE TERMINAL PARA LA TARJETA EVM). Para comenzar la emulación solo basta presionar <ENTER>.

Al salir de BitCom con la tecla < F 2 > , el registro creado es salvado. Para volver a emular la terminal, se debe entrar a la opción 1 del menú principal, escoger el registro creado, y presionar la tecla C (Connect).

Page 74: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

CONEXION INICIAL.

Para realizar la conexión entre la computadora-terminal y el Módulo de Evaluación, utilizamos un cable serial con conector DB-25 macho en uno de sus extremos, que se conecta al puerto 1 de la tarjeta EVM; y con conector DB-25 ó DB-9 hembra en el otro extremo, que se conecta al puerto serie COM2 de la computadora-terminal.

COMPUTADORA-TERMINAL i /

PUERTO 1 j PUERTO 2

FUENTE DE - VOLTAJE

CABLE CONECTOR 91605021

PUERTO 3

MODULO DE EVALUACION (EVM)

Page 75: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

La conexión entre las tarjetas AIB y EVM se realiza por medio del cable conector 91605021, que se conecta al socket de 4 0 pines (U49) de la AIB y al puerto 3 del Módulo de evaluación ( E V M ) . La alimentación de energía a la tarjeta AIB se obtiene desde la tarjeta EVM, con un cable similar al que se emplea para alimentar el Módulo de Evaluación.

Antes de alimentar las tarjetas (activando las fuentes de voltaje), se debe asegurar que el cable conector 91605021 este instalado adecuadamente a las tarjetas EVM y AIB con sus cuatro interruptores en posición de apagado.

Page 76: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICC LUIS IGNACIO ESCOBEDO RAMIREZ -

Para comenzar a trabajar con el Módulo de Evaluación, encendemos la computadora-terminal y ejecutamos el programa Bitcom, eligiendo el registro de emulación de terminal creado anteriormente: una vez realizado esto, activamos la fuente de alimentación de las tarjetas.

Para iniciar la operación del sistema operativo del Módulo de Evaluación, accionamos el interruptor de reset, y presionamos la tecla <CR> o ENTER del teclado de l a terminal (emulada) , lo cual nos hace aparecer el siguiente mensaje inicial:

*** TMS32010 EVM OPERATING SYSTEM *** REVISION l . X

BREAKPOINTS CLEARED EVENT COUNT CLEARED TRACE CLEARED INTERNAL CLOCK/MEM

** TMS320 EVM MONITOR **

"HELP" * READ ME * MENU THIS MENU "EDIT" TEXT EDITOR "ASM" ASSEMBLER

"RASM'I REVERSE ASSEMBLER I' PROM" PROM UTILITY

PASM" PATCH ASSEMBLER

?

El indicador (prompt) del sistema operativo del Módulo de Evaluavción es es signo de interrogacion ?, el cual nos indica que la trajeta esta lista para que hagamos uso de ella por medio de sus comandos de operación.

UNIVERSIDAD AUTONOMA METROPOLITANA 7 7

Page 77: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

P R U E B A D E O P E R A C I O N D E L A T A R J E T A A I B .

La correcta operación de la tarjeta A I B se puede verificar estando conectadas ambas tarjetas (EVM y A I B ) por medio del cable conector y ejecutando un programa de prueba. En este caso se requerirá de un generador de funciones y de un osciloscopio de doble canal.

Escribimos el siguiente programa en un editor de texto con formato A S C I I (pues de otra manera se podrían introducir algunos caracteres de control extras, que no reconociera el ensamblador del EVM, marcando errores de ensamblado):

*> FREC DATA 4 9 9 MODO DATA >OA

AORG >O ROVM LDPK O LARK 0 , 1 4 3 ZAC LARP O

C I C L l SACL * BANZ C I C L l NOP OUT O , 3 LACK FREC TBLR O OUT O , 1 LACK MODO TBLR O OUT O , O NOP

CICL2 BIOZ CICL3 B CICL2

CICL3 I N O , 2 NOP OUT O , 2 B CICL2 END

*<

; N PARA FRECUENCIA DE 10 Khz ;MODO PARA LA A I B ; I N I C I O DEL PROGRAMA ;DESABILITA DESBORDE ARITMETICO :APUNTADOR DE PAGINA=O ;CONTADOR ARO=143 PARA LLENADO DE MEMORIA DE DATOS ;ACUMULADOR = O ;APUNTADOR DE REGISTROS ARP=O (SELECCIONA ARO) ;LIMPIA MEMORIA DE DATOS (direccionamiento indirecto) ;VERIFICA S I ARO = O (TAMBIEN LO DECREMENTA) ;Hasta aqui se ha inicializado al TMS32010 ;DESABILITA PUERTO 3 DE LA A I B ;ACC = FREC

;FREC --> A I B :ACC = MODO

;MODO -> A I B

;PONE FREC EN LOCALIDAD O DE MEM DATOS (RON --> m)

;PONE MODO EN LOCALIDAD O DE MEM DATOS (ROM --> m)

;Hasta aqUi se ha inicializado la A I B ;ESPERA UNA MUESTRA DE LA A I B

;TRANSMITE EL MISMO DATO COMO DE SALIDA ;SIGUIENTE MUESTRA

L o s simbolos mayor que ( *> ) y menor que ( *< ) en el programa especifican el inicio y fin de archivo necesarios para que el ensamblador del EMV detecte el código que deberá ensamblar. Los asteriscos ( * ) son necesarios para que con cualquier ensamblador de la familia TMS320 se pueda ensamblar el programa.

UN1 VERSIDAD AUTONOMA METROPOLITANA 7 8

Page 78: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

E Q U I P O N E C E S A R I O P A R A E J E C U C I O N D E L PROGRAMA DE PRUEBA

1) Como en este momento no utilizaremos el puerto de expansión de convertidores A/D y D/A de la tarjeta A I B , debemos tomar las siguientes medidas:

-Conectar el pin 13 al pin 27 ó 29 del conector de expansión P1, lo cual deshabilita la señal de fin de conversión (EOC2) del puerto de expansión.

-Ejecutar una instruccion OUT sobre el puerto de salida 3 sin importar el contenido la dirección de memoria de datos que se use, por ejemplo:

OUT X, 3

Si no se toman estas precauciones, la señal BIO’ ó INT’ en el procesador TMS32010 puede quedar fija en un estado bajo, provocando problemas de conversión de datos.

2) Verificar que las conexiones de los jumpers de la tarjeta AIB se encuentren de acuerdo a la siguiente tabla:

JUMPER CONEXIONES DESCRIPCION

El 1-2 3-4

E2 1-2 3-4

E3 NC

E4 NC

E5 1-2

E6 1-2

Conecta la entrada J2 al convertidor A / D a través del filtro de entrada.

Conecta al convertidor D/A a la salida J3 a través del filtro de salida.

Deshabilita al amplificador de audio.

El pin a Vcc-del conector de tarjeta no se conecta.

Enruta la señal del convertidor A/D hacia el pin BIO’ del conector de tarjeta.

Conecta el muestre0 y retención al convertidor A/D.

NOTA: Los cuatro interruptores del cable conector 91605021 deben estar en posición de O F F (punto r o j o hacia arriba).

UNIVERSIDAD AUTONOMA METROPOLITANA 7 9

Page 79: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

3) Conectar la salida del generador de funciones a la entrada analógica de la AIB ( J 2 ) y a un canal del osciloscopio y ajustar el generador de funciones para producir una señal senoidal de +/-lo V con frecuencia menor a 4.7 kHz.

4) Conectar la salida analógica del A I B (J3) al otro canal del osciloscopio.

5) Ensamblar el programa de prueba con el ensamblador del EVM, para que el código ejecutable generado pueda ser cargado en la memoria de programa de la tarjeta EVM. La sección siguiente muestra como ensamblar y cargar en memoria el programa de prueba.

6) Ejecutar el comando INIT para habilitar a la señal BIO' como externa, como se muestra a continuación:

INTERRUPT INTERNAL ? E<CR>

?

7) Inicializar el contador de programa a O (PC = O) y ejecutar el programa de prueba:

?PC<CR>

PC = xxxx O<CR>

La señal de salida que proporciona la tarjeta AIB debe aproximar a la señal de entrada del generador de funciones, excepto por un desplazamiento de fase. El programa de prueba inicializa a la tarjeta AIB para obtener una frecuencia de muestre0 de 10 kHz (RATE DATA 499) , por lo que la frecuencia de entrada más grande que se puede utilizar está limitada a 5 kHz (recordar que los jumpers El y E2 conectan a los filtros de entrada y salida de la AIB, y que estos tienen una frecuencia de corte de 4.7 kHz).

Page 80: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

ENSAMBLADO Y EJECUCION DEL PROGRAMA DE PRUEBA

ENSAMBLADO DEL PROGRAMA DE PRUEBA:

En este punto damos por hecho que la computadora se encuentra emulando la terminal seleccionada con Bitcom, y que el sistema operativo del Módulo de Evaluación también se encuentra en ejecución.

Como se recibirá información en el EVM, a través de su puerto 1, se debe activar el software de control de flujo DEC (encargado de realizar correctamente todo el proceso de transmisión de información). Esto se hace ejecutando el siguiente comando:

?XON<CR>

?

Para iniciar el ensamblado del programa de prueba ejecutamos el siguiente comando:

?ASM 1 l<CR> LINE NUMBERS? (NO) <CR>

En este momento el ensamblador espera el código fuente proveniente del puerto 1 (de la computadora-terminal) para ensamblarlo, y mostrar el código resultante y los mensajes del ensamblador en la misma terminal.

Page 81: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

1 - Receive f i l e

2 - Send f i l e

3 - Change commgnicntionz parameters

4 - Issue DOS C O M M P ~

S - inuoke ACTION f i l e

6 - 3lsconnect (hangup)

7 - Kermit ser'ver conmaTd

S e l e c t Option: 2

Al presionar la tecla 2, aparece una ventana que pide la trayectoria de búsqueda (path) en unidades y subdirectorios de la computadora y el nombre del archivo por transmitir. Suponiendo que nuestro archivo, que contiene el programa de prueba, se llama PRUEBA.TMS y está en el directorio raíz de un disco flexible en la unidad A, se debe teclear: A:\PRUEBA.TMS.

Una segunda ventana nos pide el formato del archivo por transmitir (se accesa a esta ventana con la tecla Flecha-abajo) . Como nuestro archivo es de texto se elige la opción por default (ASCII). Para comenzar la transmisión presionamos la tecla <ENTER>.

Al teclear <ENTER> se retorna al modo de emulación de terminal, y el EVM comienza a ensamblar el programa proveniente de su puerto 1. Conforme se ensambla el programa, se muestran en la pantalla las etiquetas y sus direcciones en memoria. Por ejemplo:

# DE LINEA PC CODIGO ETIQUETA NEMONICO xxxxxx xxxxx xxxxxx xxxxxxxx xxxxx

Al terminar el ensamblado del programa se muestra el número de errores y el número de avisos encontrados, y se retorna el control del teclado y pantalla al sistema operativo del Módulo de Evaluación (EVM), apareciendo de nuevo el indicador del EVM:

UNIVERSIDAD AUTONOMA METROPOLITANA 8 2

Page 82: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A C T I C O LIJIS IGNACIO ESCOBEDO RAMIREZ

O ERRORS FOUND O WARNINGS

ASSEMBLY COMPLETE

?

Si el programa se escribió correctamente no se obtendrán errores, y el código objeto generado se cargará en la RAM de programas, listo para ser ejecutado. Si por otro lado, se hubiera encontrado algún error, ya sea de escritura o de lógica, será necesario hacer la correción debida en el programa fuente y volver a ensamblar el programa de la manera antes descrita.

NOTA: Como se eligió el puerto 1 (terminal) como salida de resultados del ensamblado (ASM 1 1), estos se pierden (en la pantalla de la terminal). Para evitar esta situación y obtener una copia en disco de los resultados, se puede utilizar otra computadora conectada al puerto 2 del EVM para que reciba esta información y la guarde en en archivo en disco. Para ello se debe utilizar el comando ASM como sigue:

?ASM 1 2<CR>

Recordemos que la segunda computadora debe estar preparada para ello, por medio de Bitcom, con las velocidades de transmisión iguales tanto para el puerto 2 del EVM como para el puerto serial de la segunda computadora, con el siguiente formato de transmisión de caracteres usado por el EVM:

7 bits de datos Sin bit de paridad 2 bits de parada

Para modificar la velocidad de transmisión del puerto 2 del EVM se utiliza el comando BAUD2, como sigue:

BAUD RATE PORT2 = 9600 2400,R<CR>

BAUD RATE PORT2 = 2400 <CR>

?

UNIVERSIDAD AUTONOHA M E T R O P O L I T A N A 8 3

Page 83: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

En este caso se hizo una modificación a la velocidad de transmisión del puerto 2 del EVM, de 9600 (valor por default) a 2400 bauds.

EJECUCION DEL PROGRAMA DE PRUEBA:

Para proseguir con la ejecución del programa, debemos estar ciertos de haber seguido los pasos 1 a 5 descritos en la sección de preparación del equipo. Como el código ejecutable del programa de prueba se encuentra en memoria, listo para ejecutarse (paso 5 ) , proseguimos con l o s pasos 6 y 7.

A continuación, habilitamos al TMS32010 para que reciba externamente la señal B I O ' , proveniente del convertidor A/D, y ponemos el contador de programa PC en cero:

?INIT<CR>

INTERRUPT INTERNAL? E<CR>

?

Ahora estamos listos para ejecutar el programa de prueba:

?RUN<CR>

En la pantalla de la terminal no se muestra ningún mensaje mientras se ejecuta el programa. Sin embargo, en la pantalla del osciloscopio se pueden ver las señales de entrada y de salida.

Para detener la ejecución del programa se presiona la tecla <ESC> ó <ENTER>, lo cual se observa al apararecer de nueva cuenta el indicador del EVM

UNIVERSIDAD AUTONOMA METROPOLITANA 8 4

Page 84: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCCIBEDO RAMIREZ

ALMACENAMIENTO DEL CODIGO EJECUTABLE DEL PROGRAMA DE PRUEBA

El proceso siguiente permite almacenar el código ejecutable del programa, de modo de poder cargarlo posteriormente en la memoria de programas y verificar el funcionamiento correcto de la tarjeta A I B , sin necesidad de tener que ensamblarlo otra vez. (El sofware de control de flujo sigue activo hasta no ejecutar el comando XOFF ó accionar el interruptor de reset). Primeramente veremos el uso de un comando del E m .

El comando DPM O 40 muestra el contenido de las primeras 64 localidades de la memoria de programa (64 = > 4 0 en hexadecimal):

?DMP O 40<CR>

FORMAT (HX) <CR>

O000 3F 56 FB A2 . . . O010 2A E3 56 3A , . . 0020 7F 80 7F 80 . . . 0030 7F 80 7F 80 . . . ?

FORMAT (HX) pregunta por el formato numérico en el cual se muestra el contenido especificado de la memoria de programa, y al presionar <CR> se escoge el formato hexadecimal (default).

El programa de prueba, en nuestro caso, es pequeño y cabe dentro de 64 localidades de memoria de programa. Esto se puede observar cuando aparecen las palabras >7F80, que son las palabr.ls que utiliza el EVM para limpiar el contenido de las localidades de memoria. Por otro lado, el comando ASM, ejecutado previamente, limpia la memoria de programa antes de colocar codigo ejecutable en ella. En este caso, comando DPM nos sirvió para ver l a dirección final que ocupa el programa de prueba.

Para salvar el codigo ejecutable del programa utilizamos el comando SPM de la siguiente manera:

?SPM O , 20,1<CR>

FORMAT? (9900)

UNIVERSIDAD AUTONOHA METROPOLITANA 85

Page 85: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I C C LUIS I G N A C I O E S C O B E D O RAMIREZ

El comando SPM 0,20,1 almacena las primeras 32 localidades de memoria de programa, a través de la computadora conectada al puerto 1 (terminal) .

FORMAT? ( 9 9 0 0 ) pregunta por el formato en el cual se guardará el código ejecutable, en tanto que 9900 es el formato por default que guarda la información generada por el procesador principal del Módulo de Evaluación, el TMS9900.

Antes de salvar el código ejecutable en formato TMS9900 (presionando <CR>), primero hay que preparar a la computadora para que quede lista para recibir la información proveniente de su puerto serie. Para ello se presiona l a tecla F2 (EXIT) para salir del modo de emulación de terminal, mostrandose la siguiente figura:

,,~ ~ ~~ " ~- - . ""

I Optlan Menu "I

1 - Receive file

I 2 - Sena file

3 - Change comnunications parameters

4 - Issue DOS connand

5 - Invoke A C T I O N flle

I ~

: , I

6 - Disconnect (hangup)

(KEerni t server connand

Select Option: 1

En la figura se muestra la ventana de Menu de Opciones y en ella elegimos la opción 1 de recepción de archivo (Receive file). Al hacer esto se abre una ventana que pide el nombre y extensión que le será asignado al archivo por recibir, así como la unidad y directorio en donde será almacenado. Escribimos A:\PRUEBA.OBJ ya que la información por salvar es el código objeto ejecutable del programa de prueba. Presionando la tecla <flecha-abajo> pasamos al parámetro, "Método", que nos pide el protocolo a usar en la transmisión. Como el formato 9900 es información en ASCII, elegimos el protocolo ASCII, que es el de default, y presionamos ENTER para iniciar la recepción de información. Finalmente presionamos F2 para regresar al modo de emulación de terminal y continuar la ejecución del comando SPM.

Page 86: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A C T I C O LUIS IGNACIO ESCOBEDO RAMIREZ

?SMP 0,20,1

FORMAT? ( 9 9 0 0 ) <CR>

1 2

?

Al presionar la tecla <CR> (ENTER) para aceptar el formato 9900, el EVM responde numerando a los bloques de información que estan siendo transmitidos. Al finalizr la transm’sión se muestra de nuevo el indicador ?.

Ahora sólo resta decirle a Bitcom que la transmisión de datos ha finalizado presionando la tecla F2. A l hacer esto se observa que el drive A, especificado para almacenar el código ejecutable, esta trabajando al encenderse su LED (escribiendo información), para que al terminar cierre el archivo creado.

CARGA DEL CODIGO EJECUTABLE DEL PROGRAMA DE PRUEBA

Este proceso sirve para cargar en memoria de programa el código objeto de algún programa que se desee ejecutar con el procesador T M S 3 2 0 1 0 . Esto evita el tener que ensamblar de nueva cuenta un programa sólo para poderlo cargar en memoria y ejecutarlo.

Como práctica, carguemos el código ejecutable del programa de prueba, almacenado anteriormente en disco flexible. El comando LPM del EVM permite realizar esta carga, distinguiendo automáticamente el formato del código, que en este caso es el formato 9900. La desventaja de ejecutar este comando a través de una emulación de terminal de usuario, como es nuestro caso, es la de necesitar de una segunda computadora conectada al puerto 2 del EVM.

Si la carga del programa se realiza a través del puerto 1 (terminal de usuario), el EVM toma al puerto 2 como salida para mostrar el código que se esta cargando. Si no se prepara la segunda computadora para recibir esta información, ó no se le conecta al puerto 2, se producirá un error de transmisión. Si, por otro lado, la carga del programa se realiza a través del puerto 2 , el EVM toma al puerto 1 (terminal) como salida para mostrar el código que se esta cargando.

UNIVERSIDAD AUTQNOMA METROPOLITANA 87

Page 87: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Debido a esta desventaja, hay que prepar a la segunda computadora para que entable comunicación con el EVM (por medio de Bitcom u otro software de comunicaciones), inicializando uno de sus puertos seriales a una velocidad de transmisión igual a la que se utilice en el puerto 2 del EVM, y con el formato de transmisión de caracteres que utiliza el EVM, descrito anteriormente.

Antes de comenzar con la recepción por medio del comando LPM, hay que realizar lo siguiente:

a) Ejecutar el comando XON para activar el software de control de flujo:

?XON<CR>

?

b) Tener a l a segunda computadora en funcionamiento y ejecutar en ella a Bitcom con el mismo formato de transmisión de caracteres que utiliza el EVM.

c) Conectar esta segunda computadora al puerto 2 del EVM.

d) Ejecutar el comando BAUD2 para tener la misma velocidad de transmisión configurada en la segunda computadora. Recuerde que el puerto 2 del EVM se activa por default a 9600 bauds cada vez que se le vuelve a utilizar por vez primera.

BAUD RATE PORT2 = 4800<CR>

?

En este último punto se modificó la velocidad de transmisión del puerto 2 del EVM de 9600 (default) a 4800 bauds (se supone que el puerto serial de la segunda computadora fue configurado a esta velocidad de transmisión con Bitcom).

Ahora procedemos a ejecutar el comando LPM:

?LPM 1<CR>

Page 88: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

En este momento el EVM está en estado de espera del código por cargar en la memoria de programa. No hay necesidad de preparar la segunda computadora para que guarde en disco la información que le envia el EVM, ésta información s o l o llega a ella para que el EVM no genere algún mensaje de error de transmisión.

NOTA: Si se estuviera ejecutando el comando ASM 1 2 , y se quisiera salvar los resultados del ensamblado, entonces SI hay que preparar a la segunda computadora para que almacene estos resultados.

Ahora se requiere preparar a la computadora que emula la terminal de usuario (conectada al puerto 1) para que transmita el programa (en código objeto) que se desea cargar en la memoria de programa del TMS32010. Para ello se presiona la tecla F2 y se escoge la opción de Envio de archivo (Send file) , del menú presentado por Bitcom.

Al pedirsenos el nombre del archivo por transmitir escribimos A:\PRUEBA.OBJ, -dejando la opción por default de tipo de archivo por transmitir (ASCII). Antes de presionar ENTER para iniciar la transmisión, debemos verificar que el disco que tiene el archivo PRUEBA.OBJ esté colocado en el dirve A.

Al presionar la tecla ENTER, el EVM comienza a recibir el código ejecutable del programa de prueba, mostrándolo en la pantalla de la segunda computadora. Al terminar Bitcom con la tranmisión, retorna el control al sistema operativo del EVM, y éste carga en memoria el código objeto del programa, listo para ser ejecutado por el procesador TMS32010.

NOTA: Si se hubiese ejecutado el comando ASM 1 2 , el código y mensajes del ensamblador se almacenarián en la segunda computadora, y al terminarse el ensamblado solo restaría decirle a esta computadora que termine con la recepción de información y que cierre el archivo creado.

UNIVERSIDAD AUTONOMA METROPOLITANA 8 9

Page 89: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ ~~ - ~__-__- "" ~

MANEJO D E L D E P U R A D O R D E L E V M .

Como ejemplo del manejo del depurador del EVM se utilizará el programa de calibración de convertidores A/D y D/A de la tarjeta A I B . Para realizar el ajuste de los convertidores, se debe ejecutar el siguiente programa de calibración, el cual lee datos continuamente del convertidor A/D y l o s muestra en la pantalla de la terminal, y además de que transmite datos al convertidor D/A:

*>

* * *

C I C L

*<

AORG >O ; I N I C I O D E L PROGRAMA OUT O , 3 ; D E S A B I L I T A PUERTO 3 DE LA A I B

NOP ;Hasta aqui se ha inicializado la A I B IN 4 , 2 ; L E E DATO DEL A/D Y LO ALMACENA EN LA LOCALIDA 4 NOP OUT 5 , 2 ; T R A N S M I T E A L D / A UN DATO ALMACENADO EN LA LOCALIDAD 5

END B C I C L ; R E P I T E EL PROCEDIMIENTO

? I N I T < C R > I N T E R R U P T I N T E R N A L ? E < C R >

?

Para ejecutar el programa de calibración utilizamos la siguiente cadena de comandos:

?EX;DDM 4 5;HX%

UNIVERSIDAD AUTONOHA METROPOLITANA 9 0

Page 90: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO E~COBEDO RAMIREZ

Esta cadena está constituida por los comandos EX (Ejecución con Puntos de Ruptura) y DDM (Mostrar Memoria de Datos). El comando EX funciona de la misma manera que el comando RUN, ya que ejecuta el programa que está en la memoria de programa, con la diferencia de que detiene la ejecución del programa al encontrarse con algún punto de ruptura activo en el programa, y mostrando (por default) el contenido del Acumulador y de l o s registros T y P del procesador TMS32010.

El comando DDM muestra el contenido de las localidades 4 y 5 de la memoria de datos en formato hexadecimal (HX). El simbolo de punto y coma ( ; ) sirve para separar los comandos de una cadena y funciona como un <CR> al ejecutarse esa cadena.

La cadena contiene un terminador de cadena de repetición continua (el signo de tanto porciento % ) , el cual repite continuamente los comandos EX y DDM, como si se estuviera ejecutando un ciclo infinito. Por tanto, si al ejecutarse continuamente estos dos comandos, se encuentra algún punto de ruptura activo dentro del programa, se mostrará en la pantalla de l a terminal los- datos de las localidades 4 y 5 de memoria de datos en formato hexadecimal, así como a otros registros del procesador TMS32010.

Para activar algún punto de ruptura se ejecuta el comando SB, el cual marca a una dirección de memoria de programa para que se le identifique como una dirección de punto de ruptura:

?SB 1<CR>

BP1 = XXX 7<CR>

?

El comando SB 1 activa el primer punto de ruptura en la dirección de memoria de datos número 7. Se elige esta dirección debido a que al ensamblar el programa de calibracidn, este ocupa muy pocas, y las más bajas, direcciones en la memoria de programa. Por otro lado, para desactivar l o s puntos de ruptura activos se utiliza el comando CB como sigue:

?CB 1<CR> BREAK POINT CLEARED

?

UNIVERSIDAD AUTONOMA METROPOLITANA 9 1

Page 91: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

CALIBRACION DEL CONVERTIDOR A/D:

Los siguientes pasos muestran como ejecutar la cadena de comandos que permite la calibración del convertidor A/D:

1.-Activar al software de control de flujo con el comando XON .

2.-Ensamblar el progama de calibración (comando ASM).

3 . -Ejecutar l o s comandos INIT y SB (como se describió anteriormente).

5.-Introducir un voltaje de -10 V. en la entrada analógica 5 2 de la tarjeta AIB y ajustar el potenciómetro de offset R2 para poder ver en la terminal (debido al punto de ruptura) una lectura de >800X en la localidad 4 de la memoria de datos (el valor X no importa ya que el dato de conversión de 12 bits se coloca en la parte alta de la palabra de 16 bits). -

6.-Introducir un voltaje de +10 V. en la entrada analógica J2 de la tarjeta AIB y ajustar el potenciómetro de ganancia R3 para obtener una lectura de >7FFX en la localidad 4 de la memoria de datos.

Para detener la ejecución continua de la cadena de comandos se deberá presionar la tecla <ESC>.

Los siguientes son algunos ejemplos de lo que se veria en la pantalla de la terminal cuando se queda ejecutando continuamente la cadena de comandos, debido a la activación del punto de ruptura.

?EX;DDM 4,5;HX%<CR>

ACC = XXX TREG = XXX PREG = XXX

FORMAT HEX 0004 80 O0 XX XX

[-lo V. EN LA ENTRADA ANALOGICA] [SE REPITE ESTE MENSAJE CONTINUAMENTE]

UNIVERSIDAD AUTONOMA METROPOLITANA 9 2

Page 92: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

ACC = XXX TREG = XXX PREG = XXX

FORMAT HEX 0004 7F FF XX XX

[+lo V. EN LA ENTRADA ANALOGICA] [SE REPITE ESTE MENSAJE CONTINUAMENTE]

La entrada y salida digital de l o s convertidores, A/D y D/A, son datos de 16 bits en complemento a 2 ’ s , por ello se tienen que ver estos resultados en la localidad 4 de la memoria de datos.

CALIBRACION DEL CONVERTIDOR D/A:

Para efectuar la calibración del convertidor D/A es necesario ejecutar la cadena de comandos, y será necesario utilizar el comando MDM 5, para modificar l a memoria de datos a partir de la localidad 5:

0005 = XXXX YYYY<CR>

?

Aquí se modificó el contenido de la localidad 5 (de XXXX a YYYY) . Si se desea modificar una localidad superior (la 6) , se debe presionar barra espaciadora.

2.-Ensamblar el progama de calibración (comando ASM).

3.-Ejecutar los comandos INIT y SB (corno se describió anteriormente).

4.-Colocar el dato > B O O 0 en la localidad 5 de la memoria de datos por medio del comando MDM.

UNIVERSIDAD AUTONOMA METROPOLITANA 93

Page 93: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO EXOBEDO RAMIREZ

5.-Ejecutar la cadena de comandos EX;DDM 4 5;HX% (NO importa que el dato provenga del convertidor A/D).

6.-Ajustar el trimmer de offset R8 de la tarjeta AIB para obtener -10 V. en la salida J3.

7.- Detener la ejecución continua de l a cadena de comandos por medio de la tecla ESC.

8.-Colocar el dato >7FFF en la localidad 5 de la memoria de datos por medio del comando MDM y ejecutar la cadena.

9.-Ajustar el trimmer de ganancia R9 de la tarjeta AIB para obtener + 1 0 V. en la salida J3.

Los siguientes son algunos ejemplos de lo que se observa en la terminal al estarse ejecutando continuamente la cadena de comandos debido a la activación del punto de ruptura:

0005 = XXXX 8000<CR>

?EX;DDM 4,5;HX%<CR>

ACC = XXX TREG = XXX PREG = XXX

FORMAT HEX 0004 XX XX 80 O0

[EN LA SALIDA ANALOGICA SE DEBEN OBTENER -10 V.] [SE REPITE ESTE MENSAJE CONTINUAMENTE]

[SE PRESIONA <ESC> PARA DETENER LA EJECUCION]

?MDM 5<CR>

0005 = XXXX 7FFF<CR>

?EX;DDM 4,5;HX%<CR>

UNIVERSIDAD AUTONOHA METROPOLITANA 9 4

Page 94: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICC LUIS IGNACIO ESCOBEDO RAMIREZ

ACC = XXX TREG = XXX PREG = XXX

FORMAT HEX 0004 XX XX 7F FF

[EN LA SALIDA ANALOGICA SE DEBEN OBTENER +10 V.] [SE REPITE ESTE MENSAJE CONTINUAMENTE]

EJECUCION DE P R O P r R A M A S P A S O A P A S O

La opción de ejecución paso a paso del depurador del Módulo de Evaluación (EVM) permite obsevar el desarrollo de los programas de usuario, instrucción por instrucción, y así poder detectar errores de programación. El comando SS (Ejecución de Programa Paso a Paso) permite realizar este tipo de ejecución y depuración de los programas de usuario.

Para utilizar el comando SS y poder observar el contenido de algunas localidades de la memoria de datos (máximo 6), se necesita del comando ST (Activa Localidades de Trazo). Este comando muestra el contenido de localidades de memoria de datos (localidades de trazo) para observar su comportamiento durante la ejecución paso a paso de un programa:

?ST 1<CR> TRACEl = XXX G,R<CR> TRACEl = OOG <CR>

?ST 2<CR> TRACE2 = YYY 8,R<CR> TRACE2 = 008

3

La ejecución de los comandos ST anteriores selecciona las localidades 6 y 8 de memoria de datos, para que su contenido sea mostrado en pantalla al ejecutarse un programa paso a paso.

Un bloque de programa de usuario que inicializa la frecuencia de muestre0 y el modo de operación de la tarjeta AIB es el siguiente:

UNIVERSIDAD AUTONOMA M E T R O P O L I T A N A 9 5

Page 95: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I co LUIS IGNACIO ESCOBEDO RAMIREZ

LACK RATE * CARGA EN ACC LA F R E C U E N C I A DE MUESTRE0 T B L R 6 * LO GUARDA EN LA LOCALIDAD 6 OUT 6,l * L O E S C R I B E E N E L P U E R T O DE S A L I D A 1 LACK MODE * CARGA EN E L A C C E L MODO DE O P E R A C I O N T B L R 8 * LO GUARDA EN LA LOCALIDAD 8 OUT 8 , O * L O E S C R I B E EN EL PUERTO DE S A L I D A O

Suponiendo que al ensamblar el programa que contiene este bloque, la instrucción LACK RATE ocupa la dirección 8 en la memoria de programa, entonces una posible ejecución paso a paso de este bloque de programa de inicialización de la tarjeta A I B , se realizaría como se muestra a continuación. Antes de ejecutar el comando SS, primero se debe inicializa el contador de programa P C para que contenga la dirección 8 de la memoria de programa:

? P C < C R > P C = xxx 8 < C R >

?SS 4 < C R > FORMAT ( S D ) H X < C R >

P C = O09 BIO = 1 MNEMONIC --- > LACK 0 0 0 6 = XXXX 0008 = Y Y Y Y

(SS) < S P > P C = OOA BIO = 1 MNEMONIC --- > TBLR 0 0 0 6 = 01F3 0 0 0 8 = Y Y Y Y

(SS) < S P > P C = OOB B I O 1 1 MNEMONIC ---> OUT 0006 = 0 1 F 3 0 0 0 8 = Y Y Y Y

(SS) < S P > P C = ooc 0006 = 01F3 0 0 0 8 = Y Y Y Y

B I O = 1 MNEMONIC ---> LACK

(SS) < S P > P C = OOD BIO = 1 MNEMONIC --- > T B L R 0006 = 01F3 0008 = OOOA

UN I VERSIDAD A U T O N O H A M E T R O P O L I T A N A 9 6

Page 96: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

( S S ) <CR>

?

La secuencia anterior simula la ejecución del comando SS 4, donde el parámetro 4 indica que se mostrará en pantalla el contenido de las localidades de trazo activadas por el comando ST (la 6 y la 8 ) . Por otro lado, FORMAT (SD) pide el formato en el cual se mostrará el contenido de estas localidades (decimal con signo por default), escogiendo nosostros el formato hexadecimal (HX) *

El indicador para este comando es (SS) I f , el cual pide que el usuario introduzca uno de entre varios subcomandos, para realizar ciertas funciones especificas, ó que presione las teclas <SP> ó <CR>. En el ejemplo se presionó la barra espaciadora <SP> para ejecutar, una a una, las instrucciones del bloque de programa, hasta que se presionó la tecla < C R > para terminar con la ejecución del comando SS.

El comando SS muestra siempre la dirección de la siguiente instrucción por ejecutar, contenida en el contador de programa PC, el estado del pin BIO' y el mnemónico de la instrucción que ha sido recién ejecutada.

En este ejemplo se puedo observar, instrucción por instrucción, como un valor de frecuencia de muestre0 (>01F3) se carga en la localidad 6 y como un valor de modo de operación de l a tarjeta A I B ( > 0 0 0 A ) en la localidad 8 de la memoria de datos.

Los subcomandos que pueden ser introducidos a l presentarse el indicador "(SS) se describen en el manual del depurador del EVM, así como también la descripción y funciomamiento de todo el repertorio de comandos del depurador.

Es posible comparar el funcionamiento de los comandos de depuración del Módulo de Evaluación (EVM), Vg. comandos S B , ST, SS, cadena EX;DDM 45;HX%, etc. , con la forma en que operan los depuradores de lenguajes de alto nivel como lo son TURBO P A S C A L y TURBO C; con los cuales se puede seguir el comportamiento y desarrollo de la lógica de los programas, y así, detectar y corregir errores de programación.

UNIVERSIUAn A W T ~ I N O M A METROPOLITANA 9 7

Page 97: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital
Page 98: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

PROGRAMACION CON EL T M S 3 2 0 1 0

El procesador TMS32010 contiene un conjunto de instrucciones especiales que realizan rápida y eficazmente las operaciones escenciales del Procesamiento Digital de Señales (DSP). Para ilustrar el manejo de estas instrucciones y la programación con ellas, se presentará paso a paso el desarrollo de un programa que implementa un filtro digital FIR pasa-bajas. Al término de este documento el programa podrá ser ejecutado por medio del Módulo de Evaluación (EVM) del TMS32010 y la Tarjeta de Interfaz Analógica (AIB) para implementarlo físicamente.

MODOS DE DIRECCIONAMIENTO

El conjunto de instrucciones del TMS32010 permite direccionar a la memoria de datos de forma inmediata, directa e indirecta:

DIRECCIONAMIENTO INMEDIATO:

El TMS32010 contiene cinco instrucciones especiales llamadas inmediatas, en las cuales la constante (operando inmediato) esta contenida en el campo de operandos de la instrucción. La longitud de la constante depende de cada instrucción:

LACK const: Carga inmediatamente en la parte baja del ACC (constante de 8 bits).

LARK x,const: Carga inmediatamente en parte baja del registro auxiliar ARx (constante de 8 bits).

LARP const: Carga inmediatamente al apuntador de registros auxiliares ARP (constante de 1 bit O/l).

LDPK const: Carga inmediatamente al apuntador de página de memoria de datos DP (constante de 1 bit O/l).

MPYK const: Multiplica inmediatamente con el contenido del registro T (constante de 13 bits).

UNIVERSIDAD AUTONOHA METROPOLITANA 99

Page 99: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

El valor de la constante puede ser decimal con signo, si es precedida por un signo positivo ( f ) ó por un signo negativo ( - ) , y puede ser hexadecimal si se precede por el signo mayor que ( > ) .

Ejemplos de direccionamiento inmediato:

El registro T contiene el valor > 0 0 0 7 . La instrucción

MPYK -9

multiplica a la constante -9 con el contenido del registro T, almacenando el resultado en el registro P:

ANTES DESPUES

REG. T r-)oao-ii [>ooo7j REG. P

7 X -9 = -63 = >FFFFFFCl

La instrucción

LACK 1 0

carga a la constante 10 = >OA en los 8 bits menos significativos del ACC, poniendo en cero a los 24 bits de mayor peso restantes:

ACC

ANTES DESPUES

Page 100: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO ESCOBEDO RAMIREZ

DIRECCIONAMIENTO DIRECTO:

~1 direccionamiento directo concatena los siete bits menos significativos de una dirección de memoria de datos (dma) con el valor del bit del registro apuntador de página de datos (DP), para formar una dirección de memoria de datos de 8 bits (el DP puede valer O ó 1). Este tipo de direcciomaniento implementa un esquema de paginación, en donde la página O contiene 128 palabras (localidades 0-127) y la página 1 contiene 16 (localidades 128-143), siendo las palabras de 16 bits de longitud. La página 1 generalmente se utiliza para el almacenamiento de la cantidad pequeña de variables poco frecuentes generadas por alguna atención a una interrupción.

El registro apuntador a página de memoria DP se modifica por medio de las instrucciónes LDP (carga en el apuntador de página de datos) , LDPK (carga inmediatamente en el apuntador de página de datos), y LST (cargar el estado del procesador desde la memoria de datos). E l apuntador de páginas de datos DP es un bit que forma parte del registro de estado (status register).

El bit DP no se inicializa por RESET y se encuentra en estado indefinido al activar al procesador, por lo tanto debe ser inicializado por software.

Ejemplos de direccionamiento directo:

La dma9 contiene >O002 y el acumulador ~00000001. La instrucción

ADD 9,4

suma a l ACC el contenido de la dma9. El dato es desplazado 4 bits a la izquierda antes de que sea sumado al acumulador:

ANTES DESPUES

dma 9

ACC 1 > 0 0 0 0 0 0 0 1 I

1

Page 101: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

El programa constituido por las siguientes instrucciones

LACK S A C L LAC S A C L LT MPYK * P A C SACH

>O4 ; > O 4 * ACC 2 ; >O4 + dma2 2,12 ; > 4 0 0 0 + ACC ( + 0 . 5 en Qls) 2 ; >4000 + dma2 2 ; >4000 * REG. T > 8 0 0 ; > 4 O O O X >O800 = >O2000000 * REG. P

( > 8 0 0 = + O . 5 en Q12)

; >02oooooo + ACC ( + 0 . 2 5 en Q 2 7 )

294 ; >2000 * dma2 (O. 25 en Qls)

-Carga al acumulador con la constante > 0 4 .

-Almacena la constante >O4 en la localidad 2 de la memoria de datos (dma2).

-Carga al acumulador directamente con el valor > 4 0 0 0 (la constante >O4 con un corrimiento de 12 lugares a la izquierda) .

-Almacena el valor >4000 en la dma2.

-Carga al registro T con el contenido >4000 de la dma2.

-Multiplica el contenido del registro T con la constante > 8 0 0 .

-Carga el producto >O2000000 en el ACC.

-Almacena (con un corrimiento de 4 lugares) a la parte alta del ACC en la localidad dma2.

ANTES DE LT 2

dma2 ->4oo01

DESPUES DE SACH 2,4

1 >20001

+O. 25 en Q I S

REG. T I I >4000 1

ACC />000040061 ! >02000000 I

UNIVERSIDAD AUTONOMA METROPOLITANA 102

Page 102: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ ~ _ _ _

Por otro lado, el conjunto de directivas e instrucciones

O P 1 EQU 22 O P 2 EQU 2 3 E N T E Q U 2 4 F R A C EQU 2 5

L A C K > O 4 S A C L O P 1 L A C O P 1 , 1 2 S A C L O P 1 L A C K 5 S A C L O P 2 LT O P 1 M P Y O P 2 P A C S A C H ENT, 1 S A C L F R A C

* ; >O4 + ACC : >O4 + O P 1 (dma22) ; >4OOO + ACC (>4000 = + 0 . 5 EN Q l 5 )

: > 4 0 0 0 * OP1 : >O5 + ACC (+5 en Qo) : >O5 + OP2 (dma23) ; >4000 * REG. T ; >4000 X >o5 = >O0014000 (+2.50 en Q15) * REG. P ; >O0014000 + ACC ; >O002 + ENT ( + 2 en Qo) ; >4000 + FRAC (+O. 5 en Qis)

efectúa lo' siguiente:

-Las directivas EQU asignan las localidades de la memoria de datos a las etiquetas declaradas.

-Carga al acumulador con la constante >04.

-Almacena la constante >O4 en la localidad 22 de la memoria de datos (OP1 = dma22).

-Carga al acumulador directamente con el contenido (corrido a la izquierda 12 lugares) de la localidad 22 de la memoria de datos (>4000).

-Almacena el valor > 4 0 0 0 en la localidad 22 de la memoria de datos (OP1 = dma22).

-Carga al acumulador con la constante > 0 5 .

-Almacena la constante >O5 en la localidad 23 de l a memoria de datos (OP2 = dma23).

-Carga al registro T con el contenido de la dma22 ( > 4 0 0 0 ) .

-Multiplica el contenido del registro T con el contenido de la dma23 (>4000 x >O5 = >00014000).

-Carga el producto >O0014000 en el acumulador.

-Almacena la parte alta del ACC (la parte entera del producto), con un corrimiento a la izquierda de 1 bit, en la localidad 24 de la memoria de datos (>O002 +. dma24 = ENT).

UNIVERSIDAD AUTONOHA METROPOLITANA 103

~~ ~

Page 103: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

-Almacena la parte baja del acumulador (parte fraccionaria del producto) en la localidad 25 de la memoria de datos (>4000 + dma25 =

dma2 2

dma2 3

REG. T

ACC

FRACC) .

ANTES DE LT OP1

I >4000 1

I >O005 I

I >xxxx I

dma24

dma25

DIRECCIONAMIENTO INDIRECTO:

Todas las instrucciones del procesador TMS32010 que permiten el direccionamiento directo a memoria de datos también permiten el direccionamiento indirecto, en donde el contenido de un registro auxiliar (ARx) provee la dirección de una localidad de memoria de datos. Un asterisco ( * ) indica que el direccionamiento que se realiza es indirecto.

UNIVERSIDAD AUTONOMA METROPOLITANA 104

Page 104: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

El apuntador de registros auxiliares ARP selecciona al registro auxiliar por utilizar en el direccionamiento indirecto. Los registros auxiliares pueden autoincrementarse/decrementarse en paralelo con la ejecución de cualquier instrucción que utilice el direccionamiento indirecto, ocurriendo el incremento/decremento al final de la ejecución de la instrucción.

En el direccionamiento indirecto las direcciones de 8 bits, se pueden cargar en los registros auxiliares por medio de las instrucciones LAR (carga en registro auxiliar) y LARK (carga inmediata en registro auxiliar). El contenido de los registros auxiliares se puede modificar por la instrucción MAR (modificación en registro auxiliar) o, equivalentemente, por el campo de direccionamiento indirecto de cualquier instruccion que soporte este tipo de direccionamiento. ARx ó AR(ARP) denota al registro auxiliar seleccionado por el valor del apuntador a registros auxiliares ARP.

Las instrucciones LAR (carga al registro auxiliar) y SAR (salva al registro auxiliar) utilizan a l o s registros auxiliares para el almacenamiento temporal de datos.

LOS siguientes simbolos se utilizan en el direccionamiento indirecto:

* El contenido del ARx se utiliza como dirección a memoria de datos.

*- El contenido del ARx se utiliza como dirección dma y después del accseso a la memoria de datos se decrementa.

*+ El contenido del ARx se utiliza como dirección dma y después del acceso a la memoria de datos se incrementa.

El autoincremento/decremento del contenido del registro auxiliar actual se puede realizar por medio de la instrucción MAR.

Por ejemplo, la instrucción

MAR *-,O

decrementa al registro auxiliar actual y modifica el valor del ARP para que se Utilice al registro auxiliar ARO en los siguientes direccionamientos indirectos.

Page 105: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I C O LUIS IGNACIO ESCOBEDO RAMIREZ

Ejemplos de direccionamiento indirecto:

Las instrucciones

L A R P O L A R K 0,23 S A C L *

realizan lo siguiente:

La instrucción LARP O carga al apuntador de registros auxiliares ARP con el valor O para que el registro auxiliar ARO sea el utilizado en el direccionamiento indirecto, la instrucción LARK 0,23 carga al registro auxiliar ARO con la constante +23, y la instrucción SACL * causa que los 16 bits menos significativos (parte baja) del acumulador se almacenen en la localidad 23 de la memoria de datos (dma23).

S A C L *-,1

causa que después de almacenar la parte baja del ACC en la dma direccionada por el registro auxiliar actual, el contenido de éste registro auxiliar se decrecremente y que el ARP tome el valor 1.

La instrucción

ADD *+, 8

suma al acumulador el contenido de la localidad de memoria de datos, direccionada por el contenido del registro auxiliar actual (especificado por el ARP) . El dato es desplazado a la izquierda 8 bits antes de que se le sume al acumulador, y el registro auxiliar se autoincrementa en uno al termino de la instrucción:

Page 106: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

AR1

dma2

ANTES

ARP = 1

DESPUES

ARP = 1

ACC

La instrucción

ADD *, 8

realiza la misma operación del modificar el contenido del registro

ANTES

e j emplo auxiliar

AR1

anterior, pero sin actual:

DESPUES

La instrucción

ADD * - , 8

realiza la misma operación de los ejemplos anteriores, pero en este caso autodecrementa en 1 al registro auxiliar actual:

ANTES DESPUES

AR1

Page 107: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A C T I C O L ~ J I S I G N A C I O EscOBEoo RAMIREZ

La instrucción

ADD *+, 8, O

realiza la misma operación que el primer ejemplo, excepto que el apuntador de registro auxiliar ARP se carga con O al término de la instrucción, especificando que se utilizará al ARO para todo direccionamiento indirecto.

ANTES DESPUES

AR1

ARP = 1

I I

ARP = O

Las instrucciones indicadas en el siguiente programa:

LARK LARK L A R P LACK S A C L LACK S A C L LT MPY PAC S A C L

1 , 4 o , 9 1 8 *+ 2

*+ *-

*

; 4 + AR1 ; 9 + ARO ; 1 + ARP ; >O8 3 ACC ; >O8 3 dma4, AR1+1 * AR1 (5 =, AR1) ; >O2 3 ACC ; > O 2 3 dma5, AR1-1 =+ AR1 (4 + AR1) ; >O8 3 REG. T, AR1+1 =+ AR1 (5 =+ AR1) ; > O 8 x >O2 = >10 (+16) * REG. P, O =+ ARP ; >lo =, ACC ; >lo 3 dma9

Hacen que :

-Se cargue con 4 al registro auxiliar AR1 para que apunte a la dma4.

- S e cargue con 9 al registro auxiliar ARO para que apunte a la dma9.

-Se cargue con 1 al ARP.

-Se cargue con >8 al acumulador.

-Se almacene al operando > O 8 en la dma4 (direccionada por el registro auxiliar AR1) y se incrementa el contenido del AR1.

-Se cargue con >2 al acumulador.

Page 108: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

-Se almacene al operando >O2 en la dma5 (direccionada por el registro auxiliar AR1) y se decrementa el contenido del AR1.

-Se cargue al registro T con el contenido ( > 0 8 ) de la dma4 (direccionada por el contenido del registro auxiliar ARl), y se incrementa el contenido del AR1.

-Se multiplique al contenido del registro T con el contenido de la dma5 (direccionada por el contenido del registro auxiliar AR1) y se cambia a O el contenido del apuntador de registros auxiliares ARP.

-Se almacene el producto (>lo = +16) en el acumulador.

-Se almacene el producto en la dma9 (direccionada por el contenido del registro auxiliar ARO).

AR1

ARO

ANTES DE LT *+

ARP = 1

DESPUES DE SACL * ARP = O

dma 4

dma 5

REG. T

ACC = +16

dma9

UNIVERSIDAD AUTONOMA METROPOLITANA 109

Page 109: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

FILTROS DIGITALES FIR

El filtrado digital es una de las operaciones básicas del DSP. La ecuación matemática que representa la relación entre las muestras de la señal de entrada x (n) y las muestras de la salida y(n) para un filtro digital de respuesta finita al impulso ( F I R ) es la siguiente:

n

y(n) = 1 h(i)*x(n-i) = h(l)*x(n-1) + h(2)*x(n-2) + i =1

+ h(3)*x(n-3) + h(4)*x(n-4) + . . . Donde :

y(n) es la señal de salida.

x(n-1) es la muestra más reciente de la señal de entrada. x(n-21) es la muestra previa de la seiial de entrada.

x(n-i) es la i-ésima muestra previa de la señal de entrada.

y cada h(i) es un coeficiente del filtro F I R .

Se puede notar que la salida del filtro y(n) no depende de muestras previas de ella misma (no existe retroalimentación). La salida y(n) es la acumulación (suma) de l o s productos de l o s coeficientes h( i) por las muestras previas de la señal de entrada x (n-i) .

Los valores x(n-i) son las muestras más recientes de la señal de entrada, los cuales se deben almacenar en una tabla en memoria. Cada uno de estos valores de entrada se multiplica por un coeficiente h(i). Los coeficientes h(i) se conocen como la respuesta al impulso del filtro y determinan forma y características del filtro y se deben extraer cada uno de una tabla en memoria.

La salida digital es una combinación de términos, donde cada uno es el producto de una muestra de la señal de entrada x(n) (obtenida por un convertidor A/D) por un coeficiente h(i) apropiado del filtro. Estos términos se suman para formar la señ1 de salida digital y(n) que se transmite hacia un convertidor D/A que genera l a serial analógica.

El siguiente diagrama de flujo muestra el proceso computacional que, por lo general, se sigue en la implementación de filtros digitales F I R .

U N I V E R S I D A D A U T O N O M A METROPOLITANA 110

Page 110: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIC~J LUIS IGNACIO ESCOBEDO RAMIREZ

L E C T U R A D E C O E F I C I E N T E S D E L F I L T R O D E S D E M E M O R I A

D E P R O G R A M A H A C I A M E M O R I A D E D A T O S

E I N I C I A L I Z A C I O N D E L P R O C E S A D O R

- - - J. - -

L E C T U R A D E M U E S T R A D E > D E E N T R A D A x ( n ) Y A L M A C E N A -

i

M I E N T O E N M E M O R I A D E D A T O S

I

M U L T I P L I C A C I O N P R E S E N T E O P A S A D A

U N C O E F I C I E N T E D E L F I L T R O h ( i ) * X ( n - i )

(1 A C U M U L A C I O N

M O V I M I E N T O ( z-’) D E D A T O S A L A L O C A L I D A D S I G U I E N T E

x ( n - i ) * x ( n - i - 1 )

/ \

/ E L \ N O / C I C L O S E \

W / H A E J E C U T A D O \ \ n V E C E S ? /

\ n = O R D E N / \ /

\ / S I p

I I

t T R A N S M I T I R S A L I D A y ( n )

I N S TRUCCION DEL

T M S32010

T BLR

IN

MPY

B ANZ

O UT B

Page 111: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

En el diagrama de flujo se asume que los coeficientes h(i) se encuentran almacenados (declarados en el programa fuente) en memoria ROM/RAM de programa. El primer paso por realizar es transferir los coeficientes hacia la memoria de datos (la RAM interna del procesador). La instrucción TBLR realiza esta transferencia de coeficientes entre la memoria de programa y memoria de datos. Las muestras de la señal de entrada x(n) se obtienen de un convertidor A/D y se almacenan en la memoria de datos por medio de la instrucción IN. El valor de una muestra de entrada se multiplica por un coeficiente del filtro utilizando la instrucción M P Y . La instrucción LTD suma en el acumulador al producto reciente con los productos previos y realiza el movimiento de muestras de la señal entrada. El proceso se repite un número de veces igual al orden del filtro deseado utilizando la instrucción BANZ. Cuando se completa el total de la computación, se genera un valor de salida del filtro y(n) y se transmite hacia un convertidor D/A, la instrucción OUT permite esta salida. Por último se prosigue con la obtención de la siguiente muestra de entarda (instrucción B) .

La implementación de filtros de distintas características y / o orden se lLeva a cabo por medio del cambio de los valores de los coeficientes y/o incrementando el número de veces (el orden) que se ejecuta el ciclo de procesamiento de las muestras de la señal de entrada; siendo esto mucho más fácil que cambiar físicamente los componentes externos de algún filtro diseñado analógicamente (la mayoria de l o s filtros analógicos de orden alto no pueden ser realizados en forma física, y para ello se debe recurrir a l o s filtros digitales).

En las siguientes secciones se implementan los pasos a seguir para diseñar un filtro digital FIR pasa-bajas de orden 9, explicando detalladamente su programación con el conjunto de instrucciones del procesador TMS32010.

UNIVERSIDAD AUTONOMA METROPOLITANA 1 1 2

Page 112: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LLJIS IGNACIO ESCOEEDO RAMIREZ

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FINITE IMPULSE RESPONSE (FIR) LINEAR-PHASE DIGITAL FILTER DESIGN PARKS-MCCLELLAN ALGORITHM

LOWPASS FILTER

FILTER LENGTH = 9

SAMPLING FREQUENCY= 4.000 KILOHERTZ

***** IMPULSE RESPONSE ***** 16-BIT QUANTIZED COEFFICIENTS

H( 1) =-.138855E-01 = H( 9 ) H( 2) = .112762E+00 = H( 8) H( 3) =- .137146E+00 = H( 7) H( 4) = .182861E+00 = H( 6) H( 5) = .802063E+OO = H( 5)

*** CHARACTERISTICS OF DESIRED FILTER ***

BAND 1 BAND 2

1OWER BAND EDGE . O000 1.8000 PPER BAND EDGE 1.4000 2.0000 OMINAL GAIN l. O000 . O000 OMINAL RIPPLE .loo0 .loo0 AXIMUM RIPPLE .O914 .O912 IPPLE IN DB .7594 -20.7956

UNIVERSIDAD AUTONOUA METROPOLITANA 114

Page 113: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

t

Page 114: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Como se puede ver de los resultados obtenidos de DFDP, sólo se obtienen 5 valores distintos de coeficientes, y por lo tanto sólo se necesitan 5 localidades de la memoria de datos para almacenarlos.

Para obtener l o s coeficientes en el formato Q 1 5 , utilizado por el TMS32010 y declararlos en el programa fuente, se les multiplica por 2f5= 32768 y se les redondea al valor mas próximo, pudiendo declararseles tanto en decimal como en hexadecimal en complemento a 2’s ( l o s números hexadecimales se preceden por el signo > ) :

h(1) = h(9) = -.138855E-01 * 2;: = -455 = >FE39 h(2) = h(8) = .112762E+00 * 215 = +3695 = >OE6E h(3) = h(7) = -.137146E+00 * 215 = -4494 = >EE72 h(4) = h(6) = .182861E+00 * 215 = +5592 = >1767

h(5) = .802063E+00 * 2 = +26282 = >66AA

Page 115: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO Ltiis IGNACIO EscoBEuo RAMIREZ

ALMACENAMIENTO DE DATOS

La implementación del almacenamiento de muestras de la señal de entrada x(n) , de los coeficientes h( i) y de la salida y(n) del filtro se realizará de la siguiente manera: las muestras x(n-i) se almacenarán a partir de la localidad 10 de la memoria de datos, la salida y(n) en la localidad 19 y los coeficientes h(i) a partir de la localidad 20. La figura siguiente muestra como se referencian las localidades de la memoria de datos, por medio de la directiva EQU del ensamblador, al implementar este almacenamiento:

* MUESTRAS * XNMl EQU 10 XNM2 EQU 11 XNM3 EQU 12 XNM4 EQU 13 XNM5 EQU 14 XNM6 EQU 15 XNM7 EQU 16 XNM8 EQU 17 XNM9 EQU 18

* SALIDA YN EQU 19

* COEFICIENTES

*

* * H19 EQU 20 H28 EQU 21 H37 EQU 22 H46 EQU 23 H5 EQU 24

x(n-1) MUESTRA MAS RECIENTE x(n-2) x(n-3) x(n-4) x (n-5) x (n-6) x(n-7) x(n-8) x(n-9) MUESTRA MENOS RECIENTE

h(l)=h(9) h(2)=h(8) h(3)=h(7) h(4)=h(6) h(5)

Las muestras de la señal se han declarado en localidades consecutivas en el código del programa fuente, con la muestra más reciente x(n-1) en la localidad más baja de la memoria de datos (XNM1 EQU 10) y la muestra menos reciente x(n-9) en la localidad más alta (XNM9 EQU 18).

Note que las líneas que sólo contienen comentarios tienen el signo * en la primer columna.

La operación de filtrado digital se basa en la suma de productos, utilizando el registro T del TMS32010 para almacenar un operando de la multiplicación, al registro P para almacenar el resultado y al acumulador para sumar los productos previos. El otro operando de la rnultiplicacion se obtiene del direccionamiento especificado en el campo de operandos de las instrucciones M P Y ó MPYK.

UNIVERSIDAD AUTONOMA METROPOLITANA 1 1 7

Page 116: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

Para realizar la operación de suma de productos:

9

y(n) = 1 h(i)x(n-i) i =1

el código ejecutable debe implementar l a s sumas y multiplicaciones por medio de las instrucciones LT (carga las muestras en el registro T) , MPY (multiplica las muestras por los coeficientes) , PAC (carga el producto en el acumulador) y APAC (carga en el acumulador la suma del producto reciente con el anterior).

*

*

*

* *

* *

* * *

LT MPY PAC LT MPY APAC LT MPY APAC LT MPY APAC

LT MPY APAC

LT MPY APAC

LT MPY APAC

LT MPY APAC

LT MPY APAC

SACH *

XNMl H19

XNM2 H28

XNM3 H37

XNM4 H4 6

XNM5 H5

XNMG H4 6

XNM7 H37

XNM8 H28

XNM9 H19

YN, 1

x(n-1) + REG. T (MUESTRA MAS RECIENTE) x(n-1) *h(l) x(n-l)*h(l) 3 ACC x(n-2) + REG. T x(n-2) *h(2) x(n-l)*h(l)+x(n-2)*h(2) * ACC x(n-3) + REG. T x(n-3)*h(3) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3) * ACC x(n-4) 3 REG. T x(n-4)*h(4) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4) + ACC x(n-5) + REG. T x(n-5)*h(5) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5) * ACC x(n-6) + REG. T x(n-6) *h(6) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-6)*h(G) + ACC x(n-7) 3 REG. T x(n-7) *h(7) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-G)*h(6)+ +x(n-7)*h(7) + ACC x(n-8) + REG. T x(n-8) *h(8) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-6)*h(G)+ +x(n-7) *h(7)+x(n-8) *h(8) 3 ACC x(n-9) + REG. T x(n-9) *h(9) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-6)*h(6)+ +x(n-?)*h(7)+x(n-8)*h(8)+x(n-g)*h(g) * ACC

ELIMINA AL BIT DE SIGNO EXTRA Y ALMACENA EL RESULTADO EN LA LOCALIDAD YN

UNIVERSIDAD AUTONOHA METROPOLITANA 118

Page 117: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L l J I S I G N A C I O ESCOBEDO RAMIREZ -~

Dado que la suma de productos es una operación de uso constante en el procesamiento de señales, el TMS32010 contiene la instrucción LTA, la cual suma el producto previo al acumulador y carga al mismo tiempo las muestras en el registro T, reduciendo asi el tiempo de ejecución de los programas:

LTA dma reemplaza las instrucciones: APAC Y LT dma

El código del filtro de orden 9 se implementa con la instrucción LTA de la siguiente forma:

*

*

*

* *

* *

* *

ZAC LT XNMl MPY H19 LTA XNM2 MPY H28 LTA XNM3 MPY H37 LTA XNM4

MPY H46 LTA XNM5

MP'I H5 LTA XNM6

MPY H46 LTA XNM7

MPY H37 LTA XNM8

MPY H28 LTA XNM9

MPY H19 APAC *

* *

SACH YN, 1 *

O + ACC (LIMPIA INICIALMENTE AL ACUMULADOR) x(n-1) + REG. T (MUESTRA MAS RECIENTE) x (n-1) *h (1) x(n-l)*h(l) =+ ACC, x(n-2) * REG. T x(n-2)*h(2) x(n-l)*h(l)+x(n-2)*h(2) + ACC, x(n-3) * REG.T x(n-3)*h(3) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3) * ACC, x(n-4) * REG. T x(n-4) *h(4) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4) + ACC, x(n-4) + REG. T x(n-5) *h(5) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5) + ACC, x(n-6) * REG.T x(n-6)*h(6) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-6)*h(6) * ACC, x(n-7) * REG. T x(n-7)*h(7) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-6)*h(6)+ +x(n-7)*h(7) + ACC, x(n-8) 3 REG. T x(n-8)*h(8) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-G)*h(6)+ +x(n-?)*h(7)+x(n-8)*h(8) 4 ACC, x(n-9) + REG.T x (n-9) *h (9) x(n-l)*h(l)+x(n-2)*h(2)+x(n-3)*h(3)+ +x(n-4)*h(4)+x(n-5)*h(5)+x(n-G)*h(6)+ +x(n-?)*h(7)+x(n-8)*h(g)+x(n-g)*h(g) =+ ACC

ELIMINA AL BIT DE SIGNO EXTiiA Y ALMACENA EL RESULTADO EN LA LOCALIDAD YN

Page 118: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

MOVIMIENTO DE DATOS (RETARDO Z - l )

Las instrucciones DMOV y LTD realizan el movimiento de los datos dentro de la memoria de datos. Permiten que el dato de la localidad actualmente direccionada sea copiado en la localidad inmediata superior y sea manipulado al mismo tiempo.

Cuando se trabaja en tiempo real, el flujo continuo de datos provee constantemente nuevas muestras de la señal de entrada, y desecha las muestras ya utilizadas. Después de calcular un valor de salida y(n) se deben mover (correr) todas las muestras una localidad arriba en la memoria de datos para crear el espacio necesario para almacenar una nueva muestra proveniente del exterior (del convertidor A/D) .

La instrucción DMOV dma permite la copia (movimiento) del contenido de la localidad de memoria de datos (drna) direccionada en la localidad siguiente (drna+l) . Esta operación es útil para la implementa2ión de algoritmos que utilizan la operación de retardo Z- , como lo son los algoritmos de convolución y de filtrado digital.

Las siguientes instrucciones:

DMOV XNM8 DMOV XNM7 DMOV XNMG DMOV XNM5 DMOV XNM4 DMOV XNM3 DMOV XNM2 DMOV XNMl

COPIA A x(n-8) EN LA LOCALIDAD XNM9 COPIA A x (n-7) EN LA LOCALIDAD XNM8 COPIA A x(n-6) EN LA LOCALIDAD XNM7 COPIA A x(n-5) EN LA LOCALIDAD XNMG COPIA A x (n-4) EN LA LOCALIDAD XNM5 COPIA A x (n-3) EN LA LOCALIDAD XNM4 COPIA A x (n-2) EN LA LOCALIDAD XNM3 COPIA A x(n-1) EN LA LOCALIDAD XNM2

copian (mueven) la muestra al tiempo t (de la localidad drna) en la localidad dma+l previamente ocupada por la muestra al tiempo t-l. La instrucción DMOV realiza este corrimiento de muestras cuando direcciones consecutivas en la memoria de datos corresponden a incrementos consecutivos de tiempo, debiendose direccionar primero la localidad más alta de la memoria de datos que contenga la muestra menos reciente. Esta es la razón por la cual se almacenó a la muestra más reciente x(n-1) de la señal de entrada en una localidad baja en la memoria de datos (XNM1 EQU 10).

Page 119: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTILO L U I S I G N A C I O ESCOBEDD RAMIREZ

La instrucción LTD combina la operación de movimiento de datos ( Z - ' ) con la carga de un operando en el registro T y con la suma de un producto previo en el acumulador; realiza las tres operaciones en paralelo y sustituye las operaciones de las instrucciones, LTA y DMOV.

El código más eficiente para implementar filtros digitales, y en general cualquier operación DSP, utiliza la instrucción LTD. El siguiente listado se implementa por medio de esta instrucción, y en él se implementa la transferencia de datos, utilizando al puerto 2 del procesador para leer a las muestras x(n-i), transmitidas por un convertidor A/D, y escribir la salida y(n) en un convertidor D/A a través de este mismo puerto 2.

*

ADC *

*

*

*

* *

* *

* *

* * *

* * *

LDPK O SE UTILIZA LA PAGINA O IN XNM1,2 OBTIENE LA MUESTRA Y LA ALMACENA EN LA

ZAC LT XNM9 MPY H19 LTD XNM8

MPY H28 LTD XNM7

MPY H37 LTD XNM6

MPY H46 LTD XNM5

MPY H5 LTD XNM4

MPY H46 LTD XNM3

MPY H37 LTD XNM2

MPY H28 LTD XNMl

LOCALIDAD XNMl O * ACC x(n-9) + REG. T x(n-9)*h(9) x(n-8) 3 REG. T, x(n-8) * XNM9, x(n-9)*h(9) + ACC x(n-8)*h(8) x(n-7) + REG. T, x(n-7) + XNM8, x(n-g)*h(g)+x(n-8)*h(8) + ACC x(n-7) *h(7) x(n-6) + REG. T, x(n-6) * XNM7, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7) * ACC x(n-6)*h(6) x(n-5) 3 REG. T, x(n-5) =+ XNM6, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6) * ACC x(n-5)*h(5) x(n-4) + REG. T, x(n-4) + XNM5, x(n-9)*h(9)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-c)*h(6)+x(n-5)*h(5) 3 ACC x(n-4)*h(4) x(n-3) + REG. T, x(n-3) * XNM4, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ tx(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4) + ACC x(n-3)*h(3) x(n-2) + REG. T, x(n-2) * XNM3, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3) + ACC x(n-2)*h(2) x(n-1) + REG. T, x(n-1) * XNM2, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2) =+ ACC

U N I V E R S I D A D AUTONOHA M E T R O P O L I T A N A 121

Page 120: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

MPY H19 APAC *

* *

SACH YN, 1

OUT YN, 2

B ADC

* *

x (n-1) *h (1) x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7’)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2)+x(n-l)*h(l) * ACC

ELIMINA AL BIT DE SIGNO EXTRA Y ALMACENA EL RESULTADO EN LA LOCALIDAD YN TRANSMITE EL RESULTADO AL CONVERTIDOR D/A

LEE LA SIGUIENTE MUESTRA (REPITE EL PROCESO)

Se puede observar que al final de una ejecución del código anterior, la localidad XNMl queda libre para introducir en ella una nueva muestra de la señal de entrada (la más reciente que provenga del convertidor A/D), y que al haberse recorrido una localidad en memoria a todas las muestras, se implementó la operación de retardo Z - l , donde las muestras x(n-i) pasan a ser las muestras x(n-i-1) en la obtención de la siguiente y(n).

MOVIMIENTO DE DATOS UTILIZANDO DIRECCIONAMIENTO INDIRECTO

Los registros auxiliares del procesador TMS32010 pueden ser utilizados como apuntadores para el direccionamiento indirecto y como contadores de ciclos (LOOPS), donde el contenido del registro auxiliar ARx actual es interpretado como una dirección de memoria de datos. Una lista secuencia1 de datos en memoria puede ser accesada indirectamente utilizando la capacidad de autoincremento/decremento de los registros auxiliares.

En el siguiente bloque de código se implementa al filtro de orden 9 utilizando direccionamiento indirecto.

* MUESTRAS * XNMl EQU 10 XNM2 EQU 11 XNM3 EQU 12 XNM4 EQU 13 XNM5 EQU 14 XNM6 EQU 15 XNM7 EQU 16 XNM8 EQU 17 XNM9 EQU 18

* SALIDA YN EQU 19

*

x (n-1) MUESTRA MAS RECIENTE x (n-2) x(n-3) x(n-4) x (n-5) x (n-6) x(n-7) x(n-8) x(n-9) MUESTRA MENOS RECIENTE

UNIVERSIDAD AUTONOMA METROPOLITANA 12 2

Page 121: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCG~EDO RAMIREZ

* * COEFICIENTES H19 EQU 20 H28 EQU 21 H37 EQU 22 H46 EQU 23 H5 EQU 24

*

* LDPK O

ADC IN XNM1, *

LARP O LARK O , 18 LARK 1,20 ZAC LT *-, 1 MPY *+, O LTD *-, 1 MPY *+,O LTD *-, 1

*

* *

MPY *+, O LTD *-, 1

* *

MPY *+,O LTD *-, 1 *

* MPY *-,O * LTD *-, 1

* * *

MPY *-,O LTD *-, 1 *

* *

MPY *-,O LTD *-, 1 *

* *

MPY *-,O LTD *, 1 *

* *

h(l)=h(9) h(2)=h(8) h(3)=h(7) h(4)=h(6) h(5)

SE UTILIZA LA PAGINA O

Y SE LE ALMACENA EN LA LOCALIDAD XNMl O 3 ARP (SE UTILIZA AL REG. AUX. ARO) 18 3 ARO (DIR. DE LA MUESTRA MENOS RECIENTE) 20 + AR1 (DIR. DEL COEFICIENTE H19) O + ACC x(n-9) + REG. T, 17 + ARO, 1 * ARP x(n-g)*h(g), 21 + AR1, O * ARP x(n-8) + REG. T, x(n-8) + XNM9, x(n-9)*h(9) 3 ACC, 16 + ARO, 1 3 ARP x(n-8)*h(8), 2 2 + AR1, O + ARP x(n-7) 3 REG. T, x(n-7) + XNM8, x(n-g)*h(g)+x(n-8)*h(8) + ACC, 15 + ARO, 1 3 ARP x(n-7)*h(7), 23 3 AR1, O + ARP x(n-6) + REG. T, x(n-6) + XNM7, x(n-g)*h(g)+x(n-8)*h(8)+x(N-7)*h(7) + ACC, 14 =+ ARO, 1 + ARP x(n-G.h(G), 24 3 AR1, O + ARP x(n-5) 3 REG. T, x(n-5) + XNMG, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-G)*h(G) + ACC, 13 + ARO, 1 + ARP x(n-5)*h(5), 2 3 3 AR1, O + ARP RETORNO PARA REPETIR USO DE COEFICIENTES x(n-4) 3 REG. T, x(n-4) + X N M 5 , x(n-s)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-G)*h(6)+x(n-5)*h(5) + ACC, 12 * ARO, 1 3 ARP x(n-4)*h(4), 22 * AR1, O + ARP x(n-3) + REG. T, x(n-3) =) XNM4, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4) * ACC, 11 + ARO, 1 + ARP x(n-3)*h(3), 21 3 AR1, O + ARP x(n-2) + REG. T, x(n-2) + XNM3, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ + x ( n - G ) * h ( G ) + x ( n - 5 ) * h ( 5 ) c x o * h ( 4 ) * h ( 4 ) +

x(n-2)*h(2), 20 3 AR1, O + ARP x(n-1) * REG. T, x(n-1) =: XXM2, x(n-9)*h(9)+x(n-8)*h(8)+x(n-7)*h(7)+ + x ( n - G ) * h ( G ) + x ( n - 5 ) * h ( 5 ) + x o * h ( 4 ) * h ( 4 ) +

2 SE LEE LA PRIMER MUESTRA DEL CONVERTIDOR D/A

+x(n-3)*h(3) 5 ACC, 10 * ARO, 1 + ARP

+x(n-3)*h(3)+x(n-2)*h(2) G ACC, 1 3 ARP

UNIVERSIDAD AUTONOMA METROPOLITANA 123

Page 122: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A I Y I C O LUIS IGNACIO ESCOBEDO RAMIREZ

MPY * APAC

* * *

SACH YN, 1

OUT YN, 2

B ADC

* *

x(n-1) *h(l) x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2)+x(n-l)*h(l) * ACC

E L I M I N A A L B I T DE S I G N O E X T R A Y ALMACENA E L RESULTADO EN LA LOCALIDAD YN TRANSMITE EL RESULTADO AL CONVERTIDOR D/A

L E E LA S I G U I E N T E M U E S T R A ( R E P I T E E L P R O C E S O )

Las instrucciones LTD *-,l y LTD *+,1 además de cargar y copiar a las muestras x(n-i) (direccionadas con el. reg. aux. A R O ) , acumulan los productos previos, decrementan '= incrementan el contenido del reg. aux. ARO y cambian el valor del ARP de O a 1 . Las instrucciones MPY * - , O y M P Y * + , O además de multiplicar las muestras con los coeficientes (direccionados con el reg. aux. A R 1 ) , decrementan e incrementan el contenido del ARO y cambian el valor del A R P de 1 a O.

CICLOS (LOOPS)

Un registro auxiliar puede ser utilizado como contador de ciclos (LOOPS), y por medio de la instrucción BANZ se prueba y se decrementa su contenido. E l número máximo de ciclos que pueden ejecutarse es de 512 dado que sólo pueden .utilizarse 9 de sus bits para dicho conteo. Cabe recordar que un registro auxiliar es seleccionado por medio contenido del apuntador de registros auxiliares ( A R P ) .

La implementación de programas por medio de ciclos, reduce considerablemente la escritura del código, pero tiene la desventaja de que su ejecución en tiempo real es más lenta, siendo esto de vital importancia para sistemas que dependan altamente del tiempo de respuesta. Esto es debido a que cada instrucción de prueba y salto ocupa 2 ciclos de ejecución del procesador, lo cual incrementa el tiempo del procesamiento de l o s datos.

U N I V E R S I D A D AUTONOHA METROPOLITANA 1 2 4

Page 123: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRALT I I:Ü LrJiS I G N A C I O ESCOREDO RAMIREZ

Un ejemplo de implementación de ciclos se da en la lectura de datos (muestras) provenientes de la tarjeta AIB, en donde se espera que el terminal BIO' del TMS32010 detecte un nivel bajo para leer l a muestra y procesarla (la señal BIO' es una interrupción externa del muestre0 del convertidor A/D) . La instrucción de salto BIOZ checa el estado del terminal BIOI y por ello se utiliza para implementar saltos a subrutinas que dependan del nivel lógico detectado en éste terminal. El ejemplo siguiente implementa dos ciclos que permiten la adquisición de muestras de la señal de entrada:

* CICLO DE ESPERA DE LA MUESTRA ESP BIOZ ADC SI BIO' = O + SE PROCESA LA MUESTRA *

B ESP SI BIO' = 1 3 SE ESPERA LA MUESTRA * * CICLO DE PROCESAMIENTO DE MUESTRAS

ADC IN XNM1,2 LECTURA DE LA MUESTRA *

PROCESAMIENTO DE LA MUESTRA

OUT YN, 2 SALIDA DEL DATO PROCESADO B ESP ESPERA LA SIGUIENTE MUESTRA

El pequeño ciclo interno: ESP BIOZ ADC B ESP

se repite hasta que en el terminal BIO' se detecte un nivel bajo (señal de que el convertidor A/D ha obtenido una muestra). A l detectarse éste nivel bajo, se salta a la instrucción IN XMN1,2 (con dirección ADC), en donde el TMS32010 obtiene la muestra e inicia su procesamiento. Las instruccines B ESP implementan la repetición de cada uno de los dos ciclos.

En el siguiente bloque de codigo se implementa el filtro de orden 9 por medio de ciclos y direccionamiento indirecto. Se utiliza el reg. aux. AR1 para direccionar las localidades donde se almacenan los coeficientes, y al reg. aux. ARO para direccionar las localidades donde se almacenan las muestras de la señal de entrada y como contador de ciclo. Debido a este uso de l o s registros auxiliares, se almacena a muestras del filtro g partir la localidad Q & memoria & datos, para así probar que el reg. aux. ARO se decremente hasta cero (utilizando la instrucción BANZ). También es necesario 'almacenar separadamente

ascendentemente por medio del reg. aux AR1. " los 9 coeficientes del filtro y direccionarlos indirecta y

UNIVERSIDAD AUTONOMA METROPOLITANA 1 2 5

Page 124: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO

* SALIDA YN EQU 19

* MUESTRAS XNMl EQU O XNM2 EQU 1 XNM3 EQU 2 XNM4 EQU 3 XNM5 EQU 4 XNM6 EQU 5 XNM7 EQU 6 XNM8 EQU 7 XNM9 EQU 8

* COEFICIENTES

* *

* * H9 EQU 20 H8 EQU 21 H7 EQU 22 H6 EQU 23 H5 EQU 24 H4 EQU 25 .

H3 EQU 26 H2 EQU 27 H1 EQU 28 *

* * CICLO DE ESPERA * ESP

* * *

ADC *

*

LUIS IGNACIO ESCOBEDO RAMIREZ

LA SALIDA y(n) SE ALMACENA EN LA dma 19

x(n-1) MUESTRA MAS RECIENTE x(n-2) x(n-3) x(n-4) x (n-5) x (n-6) x(n-7) x(n-8) x(n-9) MUESTRA MENOS RECIENTE

COPIA DE LOS VALORES DE LOS COEFICIENTES DECLARADOS EN EL PROGRAMA FUENTE DENTRO DE LA MEMORIA DE DATOS Y CODIGO DE INICIALIZACION DEL PROCESADOR.

DE LA MUESTRA

BIOZ ADC SI BIO’ = O + SE PROCESA LA MUESTRA B ESP SI BIO’ = 1 + SE ESPERA LA MUESTRA

CICLO DE PROCESAMIENTO DE MUESTRAS

LDPK O IN ‘ XNMl 2

LARP O LARK 0,8 LARK 1,20 ZAC LT * - r 1 MPY *+, O

UTIILIZA LA PAGINA o LEE PRIMER MUESTRA DEL CONVERTIDOR D/A Y LA ALMACENA EN LA LOCALIDAD XNMl O 3 ARP (SE UTILIZA EL REG. AUX. ARO) 8 + ARO (DIR. DE LA MUESTRA MENOS RECIENTE) 20 3 AR1 (DIR. DEL COEFICIENTE H9) O * ACC x(n-9) + REG. T, 7 + ARO, 1 * ARP x(n-9)*h(9), 21 3 AR1, O + ARP

CICL LTD *-, 1 CARGA Y COPIA DE MUESTRAS Y ACUMULACION DE * PRODUCTOS

MPY *+, O MULTIPLICA MUESTRAS CON COEFICIENTES BANZ CICL CHECA SI ARO = O (CONTADOR DEL CICLO)

UNIVERSIDAD AUTONOMA METROPOLITANA 126

r

Page 125: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I co LUIS I G N A C I O ESCOBEDO RAMIREZ

* APAC *

* * *

SACH YN, 1

OUT YN, 2

B ESP

* *

x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2)+x(n-l)*h(l) * ACC ( ULTIMA ACUMUWCION )

ELIMINA AL BIT DE SIGNO EXTRA Y ALMACENA EL RESULTADO EN LA LOCALIDAD YN TRANSMITE EL RESULTADO AL CONVERTIDOR D/A

LEE LA SIGUIENTE MUESTRA (REPITE EL PROCESO)

Note que las muestras de la señal de entrada se siguen declarando en localidades consecutivas en el programa fuente, con la muestra más reciente x(n-1) en la localidad más baja de la memoria de datos (XNM1 EQU O ) .

El ciclo que comienza con la instrucción LTD *-,l (en la dirección CICL) realiza la carga (en el registro T) y el movimiento de muestras (en memoria de datos) , y realiza l o s productos y las acumulaciones debidas.

La instrucción BANZ CICL permite que el ciclo se repita, y si el contenido del reg. aux. ARO no es iqual 2 cero, lo decrementa. Por tanto, para direccionar las 9 muestras, se almacena a la muestra x(n-9) en la localidad 8 (XNM9), a x(n-8) en la localidad 7 (XNM8), y así sucesivamente hasta que a la muestra x(n-1) en la localidad O (XNM1) ; para que al decrementarse hasta cero a l registro auxiliar ARO, la ejecución del ciclo termine y quede disponible la localidad O (XNM1) para almacenar en ella una nueva muestra durante la siguiente ejecución del ciclo.

Para direccionar indirectamente con el reg. aux. AR1 los 9 coeficientes del filtro, se les almacenó en localidades contiguas de memoria de datos; almacenando el coeficiente h(9) en la localidad 2 0 (H9) (localidad inmediatamente inferior 2 localidad 21 (H8) donde se almacena al coeficiente h(8)), y así sucesivamente ya que el reg. aux. AR1 se incrementa a través de la instrucción MPY * + , O .

Pequeñas modificaciónes en el programa anterior permitirán la implementación de filtros digitales de orden nayor, debiendose tomar en cuenta el espacio de memoria de datos para el almacenamiento de coeficientes y muestras.

U N I V E R S I D A D AUTONOMA METROPILITANA 127

Page 126: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

El bloque de código:

*

*

COPIA DE LOS VALORES DE LOS COEFICIENTES DECLARADOS EN EL PROGRAMA FUENTE DENTRO DE LA MEMORIA DE DATOS Y CODIGO DE INICIALIZACION DEL PROCESADOR.

se implmentará posteriormente en este capítulo al realizar la transferencia de coeficientes entre espacios de memoria e inicializar la adecuada operación del TMS32010.

Page 127: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L ~ J I S IGNACIO ESCOBEDO RAMIREZ

TRANSFERENCIA DE DATOS ENTRE ESPACIOS DE MEMORIA (DE MEMORIA DE PROGRAMAS A MEMORIA DE DATOS)

El procesador TMS32010 contiene dos espacios separados de memoria, uno para datos y otro para programas, y es capaz de mover (copiar) l o s valores declarados en memoria de programa (por medio de la directiva DATA) hacia la memoria de datos.

Un valor & 6 bits (un coeficiente) puede ser movido desde la memo’ria de programa hacia la memoria de datos utilizando la instrucción TBLR (un coeficiente puede utilizarse directamente por medio de instrucciones inmediatas que operan con constantes de 13 bits de longitud). La instrucción TBLR dma requiere que la dirección de memoria de programa (pma) (dirección ‘fuente) esté cargada en el acumulador, mientras que la dirección de memoria de datos (dma) (dirección destino) es obtenida del operando dma.

El ejemplo siguiente muestra como utilizar la instrucción TBLR para mover 5 valores (los 5 coeficientes distintos del filtro de orden 9) desde la memoria de programa hacia la memoria de datos. Los coeficientes deben ser dec.larados por medio de la directiva DATA y en formato 415, pudiendo ser esto en decimal o en hexadecimal en complemento a 2’s. Este proceso se implementa por medio de un pequeño ciclo y direccionamiento indirecto:

c19 C28 c37 C4 6 c5

UNO *

*

*

*

DATA -455 DATA 3695 DATA -4494 DATA 5992 DATA 26282

EQU 11

LDPK O LACK 1 SACL UNO

LARK 0,4 LARK 1,24

LARP 1 LACK C5

COEFICIENTES h (1) =h ( 9 ) =>FE39 COEFICIENTES h (2) =h (8) =>OEGE COEFICIENTES h(3)=h(7)=>EE72 COEFICIENTES h (4) =h (6) =>1767 COEFICIENTE h (5) =>66AA

LOCALIDAD 11 DE LA MEMORIA DE DATOS

O 3 DP (SE UTILIZA LA PAGINA O) 1 3 ACC 1 3 UNO (dmall)

4 * ARO (CONTADOR DEL CICLOS) 2 4 -j AR1 (SE ALMACENARAN LOS COEFICIENTES APARTIR DE LA dma24) 1 3 ARP (SE UTILIZA AL REGISTRO AUXILIAR 1) CARGA AL ACC CON LA DIRECCION INICIAL C5 DE

UNIVERSIDAD AUTONOMA METROPOLITANA 129

Page 128: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I ~ ~ O LUIS IGNACIO ESCOBEDO RAMIREZ

* MEMORIA DE PROGRAMA (pmaC5 + ACC) LOOP TBLR *-, O CX + dma24 (dma-1 + AR1, O + ARP)

SUB UNO pma-1 + ACC BANZ LOOP SI ARO=O SALE DEL CICLO, SI NO ARO-l+ARO * Y CONTINUA EL CICLO

La instrucción LACK C5 coloca en el acumulador la dirección de memoria de programa (pmaC5) que contiene al coeficiente h ( 5 ) . La instrucción SUB UNO decrernenta en uno el contenido del acumulador para poder direccionar las demás localidades de memoria de programa, en el orden: C46, C37, C28 y C19.

Los coeficientes se almacenan en la memoria de datos por medio de un ciclo y del direccionamiento indirecto con l o s dos registros auxiliares. La instrucción LARK 1/24 carga inicialmente el reg. aux. AR1 con 24 (dma24), y la instrucción LARK 0,4, junto con la instrucción de salto BANZ LOOP, implementan el ciclo de movimiento de datos , ya que cargan al reg. aux. ARO con 4 y lo decrementan hasta cero; pudiendose así almacenar l o s coeficientes a partir de la localidad 24 hasta la localidad 20. Las instrucciones dentro del ciclo, TBLR *-O y SUB UNO, apuntan decrecientemente las localidades de la memoria de programa que contienen la declaración de los coeficientes y l o s copian en la memoria de datos (primero el coeficiente h(5). Al finalizar el ciclo, l o s coeficientes quedan almacenados en la memoria de datos (en hexadecimal) de la siguiente manera:

COEFICIENTE Pma dma CONTENIDO

h(5)=26282 c5 * 24 >66AA h(4)=h(6)=5992 C4 6 * 23 >1767 h(3)=h(7)=-4494 C37 * 22 >EE72 h(2)=h(8)=3695 C28 * 21 >OEGE h(l)=h(9)=-455 c19 * 20 >FE39

siendo este el orden en el cual fueron movidos desde la memoria de programa hacia la memoria de datos.

U N I V E R S I D A D AlJToNOMA M E T R O P O L I T A N A 130

Page 129: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTII'O LUIS IGNACIO ESI:ORE!IO RAHIREZ

INICIALIZACION DEL PROCESADOR TMS32010

Antes de ejecutar algún algoritmo de procesamiento digital de señales, es necesario inicializar o pener en un estado conocido todos ICs registros y memoria del procesador TMS32010. Esta inicialización requiere que sean puestos en un estado conocido los bits-bandera del registro de estado:

-0VM Bit de modo de desborde (overflow). Determina la forma de responder del procesador al presentarse un desborde aritmético en el acumulador. Desactivar el modo de desborde aritmético (OVM=O) permite implementar la aritmética de complemento 9 2's con el TMS32010. La instrucción SOVM activa el modo de desborde y ROVM lo desactiva.

-ARP Apuntador de registros auxiliares. Selecciona el registro auxiliar A R x (x = O ó 1) por utilizar-.

-DP Apuntador de pagina de datos. Selecciona la página actual a ser accesada por medio del direccionamiento directo. La memoria de datos contiene 144 localidades divididas en dos páginas. La página O se accesa desde la dirección O ( > O ) a la 127 ( >7F ) y la página 1 desde la dirección 128 ( > 8 0 ) a la 143 (>8F). La página O se ocupa para el manejo de datos de programas de procesamiento digital de señales y la página 1, debido a su tamaño reducido, se usa durante el servicio a interrupciones.

-1NTM Modo de interrupción. Permite que una subrutina específica sea ejecutada al recibirse una interrupción por parte de un dispositivo externo al procesador. El valor de INTM determina la habilitación (INTM=O) ó deshabilitación (INTM=l) del servicio a interrupciones (la instrucción EINT pone en O al bit INTM y DINT lo pone en 1). El vector de interrupción se localiza en la dirección 2 de memoria de programa (pma2) , con lo cual, al recibirse una interrupción (al estar el bit INTM en cero) el contador de programa PC tomará el valor de 2 (PC=2).

La recepción de una señal de reset (interrupción no mascarable) termina la ejecución de todo prograna, forzando al contador de programa PC a tomar el valor de O, además de colocar en un estado indefinido a los bits del registro de estado y deshabilitar el servicio a interrupciones(poniendo en 1 al bit INTM). NOTA: El interruptor de reset de la tarjeta EVM pone en cero (limpia) a los registros y memoria de datos del TMS32010 y el comando "RESET" proporciona un reset que no limpia los registros ni la memoria.

Page 130: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Como estos sucesos ocurren cada vez que se detecta una señal de reset, el procesador debe ser inicializado por software para colocarlo en un estado inicial conocido. Por tanto, una inicialización, por lo general, puede implementar las siguientes operaciones:

-Habiltar la aritmética de complemento a 2’s (deshabilitar el

-Utilizar la página O (poner al apuntador de pagina de

-Poner al apuntador de registros auxiliares en un estado

-Limpiar toda la memoria de datos. -Habilitar el servicio a interrupciones (INTM=O).

modo de desborde (OVM=O).

memoria en cero DP=O).

conocido (p. e ARP=O) .

El siguiente segmento de programa inicializa al procesador TMS32010 e implementa las operaciones anteriores:

AORG >O DIRECCION DE INICIO DE PROGRAMA RST B INIC - pmaO (DIRECCION DE RECEPCION DE RESET)

B INT pma2 (VECTOR DE INTERRUPCIONES) * INIC ROVM pma4 (ARITMETICA DE COMPLEMENTO A 2 ’ s )

LDPK O O =+ DP (SE UTILIZA LA PAGINA O) ZAC O =+ ACC LARP O O =+ ARP *

* CODIGO QUE LIMPIA LA MEMORIA DE DATOS *

LARK 0,143 143 3 ARO (144 LOCALIDADES EN RAM DE DATOS)

BANZ L1 SI ARO O SE DECREMENTA EN UNO

EINT HABILITA EL SERVICIO A INTERRUPCIONES

L1 SACL * O =+ TODA LA MEMORIA DE DATOS

* * * HASTA AQUI SE HA INICIALIZADO AL PROCESADOR *

PROGRAMA PRINCIPAL

* * SUBRUTINA DE INTERRUPCION * INT .

CODIGO DE ATENCION A LA INTERRUPCION

RET * END

RETORNO DE LA INTERRUPCION

FIN DE PROGRAMA

Page 131: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I I C C L U I S IGNACIO ESCOBEDO RAMIREZ

La directiva del ensamblador AORG >o establece dirección en memoria de Koqramam (pma) 5 partir de la cual comienza ejecució,n del proqrama (en este caso a partir de la pmaO), por lo tanto, la línea de código fuente RST B INIC queda colocada en la dirección pma0, especificando que la recepción de una señal de RESET realice un salto a la dirección donde se encuentra la etiqueta INIC (con dirección pma4, ya que las dos instrucciones de salto B anteriores a esta, ocupan las primeras cuatro localidades de memoria de programa: pma0, pmal, pma2 y pma3) donde comienza el código que inicializa al procesador.

La instrucción B INT queda colocada en la dirección pma2 debido a que toda instrucción de salto ocupa dos palabras en memoria de programa (la instrucción anterior RST B INIC ocupa las direcciones pmaO y pmal) y por lo tanto, toda interrupción que se atienda (si es que el servicio a interrupciones se habilita previamente por medio de una instrucción EINT) ejecutará un salto a la dirección de memoria de programa que contenga la etiqueta INT, donde se tiene una subrutina de servicio a la interrupción.

Para nuestra implementación de un filtro digital de orden 9 no será necesario escribir una subrutina de servicio a interrupción, y por ello este tema será tratado a l final del capítulo.

El bloque de código:

ZAC LARP O LARK O , 143

BANZ L1 L1 S A C L *

utiliza al reg. aux. ARO como apuntador para limpiar las 144 localidades (de 16 bits) de la memoria de datos (con la palabra > O O O O ) ya que la instrucción Z A C puso previamente en cero al acumulador. La instrucción S A C L * copia el contenido de la parte baja del acumulador (bits 0-15) en las localidades de la memoria de datos direccionadas indirectamente con reg. aux. ARO.

Finalmente, la directiva END le indica al ensamblador donde finaliza el código del programa, y siem~re se le debe colocar al final de este.

U N I V E R S I D A D AUTONOMA M E T R O P O L I T A N A 1 3 3

Page 132: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

I N I C I A L I Z A C I O N DE L A T A R J E T A AIB

Un bloque de código que inicializa el modo de operación y la frecuencia de muestreo de la tarjeta de interfaz analógica A I B es el siguiente:

FREC DATA 1 2 4 9 MODO DATA >OA *

OUT O , 3

LACK MODO TBLR 3 0 OUT 3 0 , O

LACK FREC

*

*

FRECUENCIA DE MUESTRE0 DE 4 KHz ( N = 1 2 4 9 ) MODO DE OPERACION DE LA TARJETA A I B

DESABILITACION DEL PUERTO 3

pmaMODO =+ ACC >OA * dma30 >OA + REGISTRO DE CONTROL DEL A I B (POR MEDIO DEL PUERTO DE SALIDA O ) pmaFREC + ACC

TBLR 2 9 249 + dma29 OUT 2 9 , l 249 + RELOJ DE M U E S T ~ E O DE LA A I B (POR MEDIO * DEL PUERTO DE SALIDA 1 )

La instrucción OUT dma,3 (en este caso el contenido la dma no importa) deshabilita al puerto 3 de expansión de convertidores de la tarjeta A I B . A l no utilizar tal expansión de convertidores, éSta instruccion debe ser la primera en ejecutarse antes de que cualquier otra instrución (OUT o I N ) utilice la tarjeta A I B .

El bloque de código de programa inicializa la tarjeta A I B para operar en modo transparente (MODO = >OA) , en el cual la salida analógica permanece fija en un valor, hasta que el convertidor D/A obtenga una nueva muestra. E l patrón de bits de control que inicializan el modo de operación de la tarjeta A I B se declara en el programa por medio de la directiva DATA como: MODO DATA >OA. L a instrucción LACK MODO carga en el acumulador la dirección de memoria de programa pmaMODO (direccionamiento indirecto utilizando el acumulador). La instrucción TBLR 3 0 almacena el modo de operación (>OA) en la localidad 30 de l a memoria de datos, para que posteriormente sea transmitido hacia la tarjeta A I B , a traves del puerto de salida O , por medio de la instrucción OUT 3 0 . 0 .

La frecuencia de muestreo FSI- es una constante N de 16 bits que se debe cargar en el registro del reloj de muestreo de la tarjeta A I B . Para obtener el valor de la frecuencia y/o el de N , se emplean las siguientes relaciones:

UNIVERSIDAD AUTONOMA METROPOLITANA 1 3 4

Page 133: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICC LUIS IGNACIO ESCOBEDO RAMIREZ

FCLKOUT Fsr = ó

N + 1

FCLKOUT N = " 1

Fsr

Donde :

FCLKOUT = 5 MHz para el EVM (comunmente el cristal con el cual trabaja el DSP TMS32010). N es la constante a cargar en el registro del reloj de muestreo.

La linea FREC DATA 1249 declara la constante FREC como un valor de frecuencia de muestreo de 4 kHz:

5 MHz

4 kHz N = - 1 = 1249

La constante N se almacena en la localidad de memoria de datos dma29 por medio de las instrucciones LACK FREC y TBLR 29, para posteriormente transmitirla al registro del reloj de muestreo de la tarjeta A I B , a través del puerto de salida 1, por medio de la instrucción OUT 2 9 , l .

PROGRAMA COMPLETO DEL FILTRO F I R PASA-BAJAS

Un programa completo que implementa al filtro F I R pasa-bajas de orden 9 , con frecuencia de corte de 1. G KHz y con una frecuencia de muestreo de 4.0 kHz, se ha implementado en forma lineal (sin el uso de un ciclo para el procesamiento de las muestras de entrada) . En la implementación de filtros digitales, el tiempo de ejecución del programa debe ser mínimo. Por tanto, a estos se les debe implementar en forma lineal, la cual ocupa más código, pero tiene un tiempo de ejecución mucho menor al que se necesitaría si se le implementa por medio de un ciclo; lo cual es de vital importancia para su ejecución en tiempo real.

El programa puede ser ensamblado por el ensamblador en software en disco TMS320 ASSEMBLER ó por el de firmware en ROM de la tarjeta EVM. Este programa no implementa servicio a interrupciones (no las necesita), pero habilita la atención a estas durante la inicialización del procesaaor. También utiliza l o s 5 distintos coeficientes del filtro, a los cuales mueve desde la memoria de programa hacia la memoria de datos.

U N I V E R S I I I A D AUTONOMA METROPOLITANA 135

Page 134: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L l J I S I G N A C I O ESCCIBEDCI RAMIREZ

LA SALIDA y (n) SE ALMACENA EN LA dma 19

*> * SALIDA YN EQU 19

* MUESTRAS XNMl EQU O x(n-1) MUESTRA MAS RECIENTE XNM2 EQU 1 x(n-2) XNM3 EQU 2 x(n-3) XNM4 EQU 3 x(n-4) XNM5 EQU 4 x (n-5) XNM6 EQU 5 x (n-6) XNM7 EQU 6 x(n-7) XNM8 EQU 7 x(n-8) XNM9 EQU 8 x (n-9) MUESTRA MENOS RECIENTE

* COEFICIENTES

* * *

* * H5 EQU 24 h(5) H46 EQU 25 h(4)=h(6) H37 EQU 26 h(3)=h(7) H28 EQU 27 - h(2)=h(8) H19 EQU 28 h(l)=h(9)

UNO EQU 11 LOCALIDAD 11 DE LA MEMORIA DE DATOS (dmall)

* VALORES DE COEFICIENTES C5 DATA 26282 COEFICIENTE h (5) C46 DATA 5592 COEFICIENTE h (4) =h (6) C37 DATA -4494 COEFICIENTE h (3) =h (7) C28 DATA 3695 COEFICIENTE h (2) =h (8) C19 DATA -455 COEFICIENTE h (1) =h (9)

* CONSTANTES PARA INICIALIZAR A LA TARJETA AIB FREC DATA 1249 FRECUENCIA DE MUESTRE0 DE 4 KHz (N=1249) MODO DATA >OA MODO DE OPERACION DE LA TARJETA AIB

* INICIALIZACION DEL PROCESADOR

* * *

* *

*

* AORG >O DIRECCION DE INICIO DE PROGRAMA

RST B INIC pmaO (DIRECCION DE RECEPCION DE RESET) B INT pma2 (VECTOR DE INTERRUPCIONES) *

INIC ROVM pma4 (ARITMETICA DE COMPLEMENTO A 2’s) LDPK O O * DP (SE UTILIZA LA PAGINA O) ZAC O 3 ACC LARP O O =+ ARP *

* CODIGO QUE LIMPIA LA MEMORIA DE DATOS

U N I V E R S I D A D AIJTONOMA M E T R O P O L I T A N A 136

Page 135: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LlJIS I G N A C I O ESCOBEDO RAHIREZ ~

* LARK O, 14 3 143 * ARO (144 LOCALIDADES EN RAM DE DATOS)

BANZ L1 SI ARO j5 O SE DECREMENTA EN UNO

EINT HABILITA EL SERVICIO A INTERRUPCIONES

L1 SACL * O 3 TODAS LA MEMORIA DE DATOS

* * * COPIA DE LOS VALORES DE MODO, FREC Y DE LOS COEFICIENTES EN LA * MEMORIA DE DATOS *

LARK O, 6 G + ARO (CONTADOR DE CICLO) LARK 1,30 30 3 AR1 LARP 1 SE UTILIZA AL AR1 LACK 1 1 * ACC SACL UNO 1 + UNO (1 + dmall) LACK MODO CARGA AL ACC CON LA DIRECCION DE MEMORIA DE * PROGRAMAS CON ETIQUETA MODO (pmaMODO + ACC)

LOOP TBLR *-, O pma dma (dma-1 + AR1, O + ARP) SUB UNO pma-1 3 ACC BANZ LOOP SI ARO=O * FIN DE CICLO, SI NO (ARO-13ARO) *

* AL FINALIZAR EL CICLO: MODO + dma30, FREC + dma2.9, (219 + dma28, * C28 + dma27, C37 * dma26, C4G * dma2.5 y C5 + dma24’.

* INICIALIZACION DE LA TARJETA AIB * *

OUT O, 3 DESHABILITACION DEL PUERTO 3 OUT 30,O MODO = >OA + REGISTRO DE CONTROL

OUT 29,l FREC = 1249 + RELOJ DE MUESTRE0 * (POR MEDIO DEL PUERTO DE SALIDA O)

* (POR MEDIO DEL PUERTO DE SALIDA 1) * * PROCESAMIENTO DE LA SEÑAL DE ENTRADA * * y(n) = h(l)*x(n-1) + h(2)*x(n-2) + h(3)*x(n-3) * h(4) *x(n-4) + h(5) *x(n-5) + h(G)*x(n-6) * h(7)*x(n-7) + h(8)*x(n-8) + h(9)*x(n-9) * * CICLO DE ESPERA DE LA MUESTRA *

DE LA AIB

DE LA AIB

+ +

ESP BIOZ ADC SI BIO’ = O * SE PROCESA LA MUESTRA B ESP SI BIO’ = 1 * SE ESPERA LA MUESTRA *

* CICLO DE PROCESAMIENTO DE LAS MUESTRAS DE LA SENAL DE ENTRADA *

LDPK O SE UTILIZA LA PAGINA O ADC IN XNM1,2 LEE LA MUESTRA Y LA ALMACENA EN LA * LOCALIDAD XNMl

ZAC O * ACC LT XNM9 x(n-9) 3 REG. T MPY H19 x(n-9) *h(9) LTD XNM8 x(n-8) =$ REG. T, x(n-8) * XNM9, * x(n-9)*h(9) + ACC

UNIVERSIDAD AUTONOMA METROPOLITANA 137

Page 136: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO Lurs IGNACIO ESCXBEDO RAMIREZ

*

*

* *

* *

* *

* * *

* * *

* * * * * * *

*<

MPY H28 LTD XNM7

MPY H37 LTD XNMG

MPY H46 LTD XNM5

MPY H5 LTD XNM4

MPY H46 LTD XNM3

MPY H37 LTD XNM2

MPY H28 LTD XNMl

MPY H19 APAC

SACH YN, 1

OUT YN, 2

B ESP

END

x(n-8)*h(8) x(n-7) + REG. T, x(n-7) * XNM8, x(n-9) *h(9)+x(n-8)*h(8) * ACC x(n-7) *h(7) x(n-6) + REG. T, x(n-6) * XNM7, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7) * ACC x(n-6) *h(G) x(n-5) + REG. T, x(n-5) + XNMG, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7) * h ( 7 ) + +x(n-G)*h(6) * ACC x(n-5)*h(5) x(n-4) + REG. T, x(n-4) XNM5, x(n-9)*h(9)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(G)+x(n-5)*h(5) + ACC x(n-4) *h(4) x(n-3) + REG. T, x(n-3) + XNM4, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(5)+x(n-4)*h(4) + ACC x(n-3)*h(3) x(n-2) 3 REG. T, x(n-2) 3 XNM’!, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-6)*h(c)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3) ACC x(n-2)*h(2) x(n-1) 3 REG. T, x(n-1) + XNM2, x(n-g)*h(g)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-c)*h(G)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2) + ACC x(n-l)*h(l) x(n-9)*h(9)+x(n-8)*h(8)+x(n-7)*h(7)+ +x(n-G)*h(G)+x(n-5)*h(5)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2)+x(n-l)*h(l) + ACC ( ULTIMA ACUMULACION )

ELIMINA AL BIT DE SIGNO EXTRA Y ALMACENA EL RESULTADO EN LA LOCALIDAD YN TRANSMITE EL RESULTADO AL CONVERTIDOR D/A

LEE LA SIGUIENTE MUESTRA (REPITE EL PROCESO)

FIN DEL PROGRAMA

Se puede observar que antes de la copia de los 5 coeficientes distintos del filtro en la memoria de datos, se copian previamente los valores del modo de operación y de frecuencia de muestre0 (con el mismo ciclo de movimiento de datos entre espacios de memoria) quedando almacenados en la memoria de la siguiente forma:

~ ~~

UNIVERSIDAD AUTONOMA METROPOLITANA 1 3 8

Page 137: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO Luis IGNACIO ESCOBEDO RAMIREZ

dma CONTENIDO VALOR

30 >OA modo de tarjeta AIB 29 >1249 frec. de muestre0 28 >FE39 h(l)=h(9) 27 >0e6e h(2)=h(8) 26 >EE7 2 h(3)=h(7) 2 5 >1767 h(4)=h(6) 24 >66AA h ( 5 )

La primer línea ( *> ) y la última ( *< ) del programa fuente son las marcas necesarias de inicio y fin de archivo que utiliza la tarjeta EVM para ensamblar código fuente. El ensamblador en software en disco TMS320 ASSEMBLER ignorará estas líneas ya que contienen al inicio al asterisco ( * ) que es la marca de línea de comentarios.

El siguiente listado muestra, con un mínimo de instrucciones y líneas de comentarios, una segunda implementación del filtro FIR pasa-bajas de orden 9. Note que la transferencia de datos entre espacios de memoria y el proceso de limpiar la memoria se implementan en un mismo ciclo:

*> AORG

FREC EQU MODO EQU XNMl EQU XMN2 EQU XMN3 EQU XMN4 EQU XMN5 EQU XMN6 EQU XMN7 EQU XMN8 EQU XMN9 EQU YN EQU H19 EQU H28 EGU H37 EQU H46 EQU H5 EQU UNO EQU *

B DATA DATA DATA DATA DATA DATA DATA DATA

O O 1 2 3 4 5 6 7 8 9 1 0 11 12 13 14 15 16 17

INIC 1249 >OA >o000 >o000 >o000 >o000 >o000 >o000

INICIO DE PROGRAMA EN > O 0 (PmaO) FRECUENCIA DE MUESTRE0 EN dmaO MODO DE AIB EN dmal MUESTRA MAS RECIENTE EN dma2

MUESTRA MEMOS RECIENTE EN dmalO SALIDA y(n) EN dmal2 h(l)=h(9) h(2)=h(8) h(3)=h(G) h(4)=h(G)

dmal7 CONTENDRA UN 1 h(5)

pmaO 4 KHz MODO O 3 MEMORIA DE DATOS

UN I VERS I D A D AUTONOHA METROPOLITANA 1 3 9

Page 138: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I co LUIS IGNACIO ESCOHEDO RAMIREZ

TBL * INIC

SIG

*

* CICL

ADC

*

*<

DATA >O000 DATA >O000 DATA >O000 DATA >O000 DATA >FE39 DATA >OE6E DATA >EE72 DATA >1767 DATA > 6 6AA DATA 1

LDPK O R O W LACK TBL LARP O LARK O,UNO TBLR * SUB UNO BANZ SIG

OUT O, 3 OUT MODO, O OUT FREC, 1

B I O Z ADC B CICL IN XNM1,2 ZAC LT XMN9 MPY H19 LTD XNM8 MPY H28 LTD XNM7 MPY H37 LTD XNM6 MPY H46 LTD XNM5 MPY H5 LTD XNM4 MPY H46 LTD XNM3 MPY H37 LTD XNM2 MPY H28 LTD XNMl MPY H19 APAC SACH YN, 1

OUT YN, 2 B ADC END

h(l)=h(9) h(2)=h(8) h(3)=h(7) h(4)=h(6)

1

PAGINA O ARITMETICA DE COMPLEMENTO A 2’s pmaTBL + ACC (DIR. DE INICIO PARA pma) O * ARP 1 + ARO (DIR. DE INICIO PARA dma) pma + dma (MOVIMIENTO)

h(5)

ACC-1 * ACC FIN DE COPIA ?

DESHABILITACION DE PUERTO 3 MODO 9 AIB (MODO DE OPERACION) FREC 3 AIB (FRECUENCIA DE MUESTRE0 DE 4 KHz)

MUESTRA LISTA ? ESPERAR LA MUESTRA OBTIENE MUESTRA O + ACC LAS SIGUIENTES INSTRUCCIONES OBTIENEN EL VALOR DE LA SALIDA y (n)

ULTIMA ACUMULACION ELIMINA BIT DE SIGNO EXTRA Y

TRANSMITE LA SALIDA AL CONVERTIDOR D/A REPITE EL PROCESO FIN DE PROGRAMA

ALMACENA LA SALIDA y(n) EN dmaYN

UN I VEHS I L I A U AUTONOMA METROPOLITANA 140

Page 139: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

El siguiente listado fue obtenido por DFDP e implementa el filtro F I R pasa-bajas de orden 9. L o s comentarios e instrucciones en letra negrita fueron añadidos para aclarar y mejorar el funcionamiento del programa:

*> Para poder utilizar ensamblador en software TMS32010 ASSEMBLER

* ASP1 TMS32010 DIGITAL FILTER REALIZATION * * * * FILTER GENERATED FROM FILE orden9.flt * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

* LABEL DEFINITION AREA * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * FILIN EQU O dmaO (almacena la salida y(n)) FILOUT EQU 1 dmal (almacena la muestra de entrada) * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * 9-TAP FIR FILTER * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * LOCATION O - BRANCH TO INITIALIZATION CODE * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

AORG O origen del programa B START pma O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

* COEFFICIENT STORAGE AREA * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

AORG 8 inicio para definir los coeficientes * * FIR COEFFICIENTS *

DATA -4494 pma8 DATA 5992 pma9 DATA 26282 pmalO DATA 5992 pmall DATA -4494 pmal2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

* A/D CARD CONTROL PARAMETERS * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . *MASK EQU 2 no necesario MODE EQU 3 A/D-D/A CONTROL ADDR. dmaMODE RATE EQU 4 SAMPLING RATE ADDR. dmaRATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * A/D CARD INITIALIZATION CODE * * INICIALIZACION DE LA TRAJETA AIB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . START B GO * DMAS K DATA > B O O 0 no necesario DMODE DATA >A A/D-D/A MODE modo de operacion de * la tarjeta AIB

UNIVERSIDAD AUTONOHA METROPOLITANA 14 1

Page 140: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

DRATE * GO

* *

* * * * * * * * *

DATA 1249

LACK DMODE TBLR MODE

LACK DMASK TBLR MASK

LACK DRATE TBLR RAT E CALL F I L I N T

OUT O , 3

OUT MODE, O

OUT RATE , 1

2 5 6 SAMPLING RATE frecuencia de muestreo de 4 KHz (N=1249)

pmaDMODE + dmaMODE no necesario no necesario

pmaDRATE * dmaRATE I N I T I A L I Z E llamada a subrutina de

inicializacion del procesador

DESHABILITACION DEL PUERTO 3

A / D SETUP MODE = > O A + registro de control de la AIB (por medio del puerto de salida O )

RATE = 1249 + reloj de muestreo de la AIB (por medio del puerto de salida 1 )

SAMPLING RATE

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * M A I N 1/0 LOOP * * CICLO PRINCIPAL DE E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * CICLO DE ESPERA DE LA MUESTRA LPTS * * * GET *

* * * * * * *

BIOZ

B

OUT

I N

ZALS XOR SACL

CALL ZALS XOR SACL

B

GET WAIT FOR CLOCK

LPTS BRANCH I F NO CLOCK si BIO' = O + se procesa la muestra

si BIO' = 1 + se espera la muestra

FILOUT, 2 OUTPUT LAST OUTPUT salida de y(n) (transmite el resultado al convertidor D/A)

F I L I N , 2 INPUT SAMPLE se lee la muestra y se le almacena en la localidad FILIN

F I L I N LOAD INPUT no necesario MASK ""IERSE S I G N B I T no necesario F I L I N bi-i'E I N INPUT no necesario

F I LOUT GET OUTPUT no necesario MASK REVERSE S I G N B I T no necesario F I LOUT SAVE RESULT no necesario

FILTER EXECUTE FILTER

LPTS LOOP repeticion del ciclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * FILTER INITIALIZATION SUBROUTINE * * SUBRUTINA DE INICIALIZACION DEL PROCESADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * COPIA DE LOS 5 COEFICIENTES EN MEMORIA DE PROGRAMA * HACIA LA MEMORIA DE DATOS F I L I N T LACK 1 GET A 1 1 3 ACC

SACL 10,o TEMPORARY SAVE 1 + dmalO LT 10 LOAD 1 I N T 1 * reg. T MPYK 1 1 INTO P 1 * reg. P

UNIVERSIDAD AUTONOMA METROPOLITANA 142

Page 141: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACI~I ESCOBEDO RAMIREZ

ROVM 2s COMPLEMENT aritmetica de * complemento a 2's LARK 1,s NUMBER OF P O I N T S 5 + AR1 LARK O,5 P O I N T E R T O DM 5 =+ ARO LACK 8 P O I N T E R T O DM 8 + ACC

I L P L A R P O R E S E T A R T O O O + ARP T B L R *+, 1 TRANSFER DATA VALUE pma + dma APAC I N C R E M E N T P O I N T E R ACC+1 + ACC BANZ I L P LOOP

* en este momento: pma8 + dma5, pma9 + dma6, pmalO + dma7, * pmall + dma8 y pmalí! + dma9 * * >O0 =+ MEMORIA DE DATOS (SOLO LAS LOCALIDADES DONDE * SE ALMACENAN LAS MUESTRAS)

LARK 1 , 8 NUMBER O F P O I N T S 8 + AR1 LARK o , 1 0 P O I N T E R T O DM 10 * ARO ZAC CLEAR ACCUMULATOR O + ACC

I L P A L A R P O R E S E T AR TO O O + ARP S A C L * + , o , 1 CLEAR DATA VALUE O + MEMORIA BANZ I L P A LOOP

* en este momento: O 3 dmal0, O 3 dmall, O + dmal2, O + dmal3, * O 3 dmal4, O + dmal5, O + dmal6, O + dmal7 * y O + dmal8

R E T I N I T RETURN retorno de subrutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * F I L T E R S U B R O U T I N E * * SUBRTUINA DEL PROCESAMIENTO DE LAS MUESTRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . F I L T E R Z A L H F I L I N G E T I N P U T obtiene la muestra

SACH 1 0 S A V E I N Z-1 la almacena en la dmalO ZAC I N I T . ACC O * ACC LT 1 8 LOAD T R E G I S T E R x(n-9) + reg. T M P Y K L T D M P Y K LTD MPY LT D MPY L T D M P Y LT D MPY LTD M P Y LTD MPYK L T D MPYK APAC

-455 17 3695 16 9 15 8 14 7

13 6

12 5

11 3695 10 -455

* * *

M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y LOAD T , ADD M U L T I P L Y FORM R E S U L T

x(n-9)*h(9)

x(n-8)*h(8)

x(n-7)*h(7)

x(n-6)*h(6)

x(n-5)*h(5)

x(n-4)*h(4)

x(n-3)*h(3)

x(n-Z)*h(2)

x(n-l)*h(l)

AND DELAY

AND DELAY

AND DELAY

AND DELAY

AND DELAY

AND DELAY

AND DELAY

AND DELAY

x(n-9)*h(9)+x(n-8)*h(8)+x(n-7)*ho)*h(7)+ +x(n-6)*h(6)+x(n-5)*h(S)+x(n-4)*h(4)+ +x(n-3)*h(3)+x(n-2)*h(2)+x(n-l)*h(i) + ACC

UNIVERSIDAD AUTONOHA METROPOLITANA 24 3

Page 142: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

* *

SACH * *

RET * END

*< Para poder

( ULTIMA ACUMULACION )

FILOUT, 1 SCALE AND SAVE OUTPUT elimina el bit de signo extra y almacena el resultado en la localidad FILOUT RETURN retorno de subrutina

(repite el proceso)

utilizar ensamblador en software TMS32010 ASSEMBLER fin del programa

Este programa implementa el uso de llamadas a subrutinas por medio de la instrucción CALL (el retorno de subrutinas lo realiza l a instrucción RET). También hace un uso óptimo de la memoria de datos, debido a que utiliza el mínimo de memoria necesario para implementar al filtro FIR.

Este uso óptimo de memoria se da debido a que s ó l o se almacenaron 5 coeficientes en la memoria de datos (h(3)=h(7) , h(4)=h(6) y h(5)). Estos 5 coeficientes son los de mayor valor y ocupan más de 13 bits en su representación en hexadecimal. Debido a su longitud en bits, se les debe declarar en memoria de programa por medio de la directiva DATA, la cual declara constantes de hasta 16 bits de longitud.

Los otros 4 coeficientes (h(2)=h(8) y h(l)=h(9)) se obtienen directamente del operando inmediato de las instrucciones de multiplicación MPYK, los cuales pueden ser constantes de hasta 13 bits de longitud, y por ello no se les almacena en memoria de datos.

Esta forma de optimización de l a memoria de datos es muy ú t i l cuando se necesita de mayores cantidades de memoria, como lo es el caso de un filtro de orden mucho mayor.

Las lineas con comentarios no necesario pueden eliminarse del programa debido a que las instrucciones de tales lineas fueron escritas para una versión anterior de la Tarjeta de Interfaz Analógica AIB. Las líneas DRATE DATA 1249 256 SAMPLING RATE y OUT O , 3 DESHABILITACION DEL PUERTO 3 fueron modificadas e introducidas respectivamente por esta misma razón.

El manejo del paquete de diseño de filtros digitales DFDP y la generación autornatica de programas en código TMS32010 se puede consultar en el manual de DFDP A S P I .

UNIVERSIDAD AUTONOMA METROPOLITANA 144

Page 143: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICG L U I S IGNACIO ESCCIBEDO RAMIREZ

SERVICIO A INTERRUPCIONES

Todo servicio de interrupciones en el TMS32010 tiene un vector de interrupciones localizado en la dirección de memoria de programa > 0 0 2 , y por lo tanto la detección de alguna interrupción (si el bit INTM vale O) coloca el valor >O02 en el contador de programa PC para que ésta sea atendida. En esta dirección de memoria de programa se debe especificar un salto a la dirección del programa que contenga la subrutina que dé servicio a la interrupción. La atención a una interrupción externa provoca que ocurran los siguientes sucesos:

-El bit de modo de interrupción INTM del registro de estado es puesto en 1, desabilitando posteriores interrupciones y evitando que interfieran en el servicio a la interrupción actual.

-El valor actual del PC es puesto en el tope (TOS) de la pila.

-El PC toma el valor >O02 (pma2).

En todo servicio a interrupciones se deben implementar las siguientes operaciones:

-En la dirección pma2 del programa (establecida con la ayuda de la directiva AORG) se debe ejecutar una salto a una subrutina que de el servicio a la interrupción.

-Al inicio de la subrutina de interrupción se debe salvar el contexto previo del procesador.

-Poner en 1 al apuntador de página de datos DP para salvar (alamacenar) el contexto previo del programa principal (registro de estado, acumulador y registros auxiliares) en la página 1 de la memoria de datos. La página 1 provee una memoria de 16 localidades diseñada especialmente para el servicio y atención a interrupciones.

-Ejecutar el servicio específico a la interrupción.

-Restaurar el contexto previo del procesador.

-Retorna a O al apuntador de página de datos DP.

-Habilitar de nueva cuenta el servicio de interrupciones por medio de la instrucción EINT que pone en cero al bit INTM del registro de estado.

U N I V E R S I L I A D AUTONOHA METROPOLITANA 145

Page 144: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIW LUIS IGNACIO ESCOBEDO RAMIREZ

-Ejecutar 1.a instrucción RET para retornar de la subrutina de interrupción y colocar en el PC la dirección que contenía antes de ocurrir la interrupción (almacenada en el tope TOS de la pila) y así leer la siguiente instrucción del programa principal y proseguir con su ejecución.

El siguiente bloque de código es un ejemplo que implementa las operaciones a realizar cuando se atiende una interrupción.

* CONSTANTES DE SALVADO DE CONTEXTO * EST EQU

ACCL EQU

ACCH EQU

AUXO EQU

AUXl EQU

* * * * * *

*

O dma128 = dmaO EN PAGINA 1 (PARA ALMACENAR AL REG. DE ESTADO)

LA PARTE BAJA DEL ACC)

LA PARTE ALTA DEL ACC)

AL REG. AUX. ARO)

AL REG. AUX. AR1)

1 dma129 = dmal EN LA PAGINA 1 (PARA ALMACENAR

2 dmal30 = dma2 EN LA PAGINA 1 (PARA ALMACENAR

3 dmal31 = dma3 EN LA PAGINA 1 (PARA ALMACENAR

4 dma132 = dma4 EN LA PAGINA 1 (PARA ALMACENAR

PROGRAMA PRINCIPAL

* SUBRUTINA SERVICIO A INTERRUPCION

INT LDPK 1 1 * DP (SE UTILIZA LA PAGINA 1) *

SST EST SALVA AL REGISTRO DE ESTADO EN LA dma128 SACL ACCL SALVA PARTE BAJA DEL ACUMULADOR EN LA dma129 SACH ACCH SALVA PARTE ALTA DEL ACUMULADOR EN LA dmal30 SAR AUXO SALVA AL REG. AUX. ARO EN LA dmal31 SAR AUXl SALVA AL REG. AUX. AR1 EN LA dma132 *

* HASTA AQUI SE HA SALVADO EL CONTEXTO PREVIO DEL PROGRAMA *

* * RESTAURACION DEL *

LAR 1,AUXl LAR 0,AUXO ZALH ACCH ADDS ACCL LST EST LDPK O EINT RET *

CODIGO ESPECIFICO DE LA INTERRUPCION

CONTEXTO PREVIO DEL PROGRAMA

RESTAURA AL REG. AUX. AR1 RESTAURA AL REG. AUX. ARO RESTAURA LA PARTE ALTA DEL ACUMULADOR RESTAURA LA PARTE BAJA DEL ACUMULADOR RESTAURA AL REGISTRO DE ESTADO O 3 DP (SE UTILIZA LA PAGINA O) HABILITA LAS INTERRUPCIONES SUBSECUENTES RETORNO DE LA SUBRUTINA DE INTERRUPCION

UNIVERSIDAD AUTONOHA METROPOLITANA 146

Page 145: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I i o L U I S I G N A : IC) ESCGBEDO RAMIRE2

Para que se detecte una interrupción y se ejecute una subrutina especifica, el servico a interrupciones debe estar habilitado previamente por medio de la instrucción EINT, la cual se debe ejecutar en toda inicialización del procesador.

La instrucción LDPK 1 pone en 1 al apuntador de página de datos DP para utilizar la página 1 de la memoria de datos, la cual sólo se debe acceder con valores de direcciones menores a 16 (de O a 15). La instrucción SST EST almacena (salva) el contenido previo del registro de estado en la localidad O de la página 1 (dma128) y la instrucción LST EST carga en el registro de estado el contenido de la dma128, restaurando el contenido previo del registro de estado, con exepción del bit INTM que sólo puede ser modificado por las instrucciones EINT y DINT.

Las instrucciones SACL y SACH almacenan (salvan) en la memoria de datos (dma129 y dmal30 respectivamente) el contenido de del acumulador. La instrucción ZALH ACCH restaura la parte alta del acumulador, cargando en ella el contenido de la dmal30, y poniendo en cero la parte baja del acumulador. La instrucción ADDS ACCL rest-aura el contenido de la parte baja del acumulador, sumando el contenido de la dma129 con el contenido del acumulador, y dado a que la parte baja del acumulador es cero (debido a la instrucción previa ZALH ACCH) se completa la restauración del contenido previo del acumulador.

Las instrucciones SAR AUXO y SAR AUXl salvan el contenido previo de los registros auxiliares en las localidades dmal31 y dma132 respectivamente. Las instrucciones LAR 1,AUXl y LAR 0,AUXO restauran el contenido previo de los registros auxiliares AR1 y ARO respectivamente.

El bloque de código:

*

CODIGO ESPECIFICO DE LA INTERRUPCION

*

se dejó en blanco para en ella se escriba el código específico que debe ser ejecutado al atenderse la interrupción.

La instrucción LDPK O retorna al manejo de la página O de la memoria de datos, la instrucción EINT habilita de nueva cuenta la recepción de interrupciones externas y la instruccidn RET retorna el valor previo del contador de programa PC para que el programa principal continúe con la ejecución de la siguiente instrucción a partir de la cual fue interrumpido.

U N I V E R S I D A D AUTONOMA METROPOLITANA 147

Page 146: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEOO RAMIREZ

REPERTORIO DE INSTRUCCIONES TMS320 - PRIMERA GENERACION

El repertorio de instrucciones del procesador TMS32010 permite implementar las operaciones básicas del procesamiento digital de señales (DSP) y las de propósito general aritmético, consistiendo primordialmente de instrucciones de una palabra (2 bytes) de longitud que se ejecutan en un sólo ciclo de máquina (200 nseg.) , permitiendo velocidades de ejecución de cerca de 5 millones de instrucciones por segundo.

D E S C R I P C I O N I N D I V I D U A L D E L REPERTORIO D E I N S T R U C C I O N E S

La descripción de cada instrucción contempla la siguiente información:

S :

O :

M:

D:

P:

C:

E:

Sintaxis de escritura para el ensamblador.

Operandos utilizados por la instrucción.

Secuencia de ejecución.

Descripción y efectos sobre l o s registros del procesador y/o sobre la memoria.

Número de Palabras de memoria requeridas para codificar la instrucción.

Número de Ciclos requeridos en su ejecución.

Ejemplos de su sintáxis y efecto sobre el procesador.

Page 147: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

Los simbolos y abreviaciones siguientes se utilizan en la descripción individual de las instrucciones:

A ACC ARn ARP D DATn

dma DP INTM NARP >nn

OVM P PA PC Pma PRGn

Dirección. Acumulador. Registro auxiliar ARO ó AR1. Apuntador de registros auxiliares. Campo de dirección de memoria de datos. Etiqueta asignada a la localidad n de memoria de datos. Direccion de memoria de datos. Apuntador de pagina de datos. Bit cie modo de interrupción. Siguiente valor para el ARP. Indica numero hexadecimal (cualquier otro se asume como decimal) . Bit bandera de desborde. Registro P (Producto). Direccion de puerto (PAO-PA7). Contador de programa. Dirección de memoria de programa. Etiqueta asignada a la localidad n en la memoria de programa. Registro T (Temporal). Tope de la pila. Se asigna a: Parámetros de la instrucción. Parámetros opcionales. Contenido de: Parámetros opcionales, (sólo uno debe ser elegido).

La descripción individual de las instrucciones del TMS32010, se presenta en orden alfabético de acuerdo a la función que realizan. Los grupos funcionales en los cuales se dividen las instrucciones son:

Instrucciones que referencian al acumulador y a la memoria.

Instrucciones de multiplicación y sobre registros T y P.

Instrucciones de salto y llamada a subrutina.

Instrucciones de control.

Operaciones de E/S y sobre la memoria de datos.

U N I V E R S I D A D A U T O N O H A METROPOLITANA 150

Page 148: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

INSTRUCCIONES QUE REFERENCIAN AL ACUMULADOR Y A LA MEMORIA

ABS (VALOR ABSOLUTO DEL ACUMULADOR)

S : [<etiqueta>] ABS O: Ninguno M: PC+l=+PC

Si ACC < O Entonces ( -ACC) + ACC

D: Si el contenido del acumulador es mayor o igual que O, entonces el acumulador permanece con este mismo contenido. Si el contenido del acumulador es menor que cero, entonces este contenido es reemplazado por su valor en complemento a dos.

Cuando no esta activo el modo de sobreflujo, el valor absoluto de >80000000 es >80000000 y cuando si esta activo, su valor absoluto es >7FFFFFFF (caso especial).

w

P: 1 C: 1

El: ABS ANTES DESPUES

ACC 1 . 1 2 3 4 1 Como el numero >1234 es mayor que cero el contenido del

acumulador permanece sin cambio.

E 2 : ANTES DESPUES

ACC

El valor absoluto de -1 ( >FFFFFFFF ) es +1 ( >1 ) .

UN1 VERSIDAD AIJTONOHA METROPOLITANA 151

Page 149: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

ADD

S:

O :

M:

D:

P: C:

El:

( S U M A A L A C U M U L A D O R C O N C O R R I M I E N T O )

Directo [<etiqueta>] ADD <dma>[,<corr>] Indirecto [<etiqueta>] ADD (*,*+,*-)[,<corr>[,<~~~~>]] Ordmai127 NARP = O 6, 1 PC+1 =) PC ACC + (dma*2deSP1) + ACC

El contenido de la localidad de memoria de datos direccionada es corrido la izquierda (formando una palabra de 32 bits) y sumada al acumulador. Durante el corrimiento, l o s bits de menor orden son puestos en cero, y los de orden a l t o son extensiones del bit de signo. El resultado es almacenado en el acumulador.

1 1

ADD DATl, 3 (DP=O)

ADD *, 3 Si el registo auxiliar actual contiene 1,

ANTES DESPUES

Memoria de

datos >1

ACC

Como la palabra >2 (de 16 bits) tiene un cero en SU bit de signo, el resultado (de 32 bits) se llena con ceros en su Parte alta ( >17 = >00000017).

UNIVERSIDAD AUTONOMA METROPOLITANA 152

Page 150: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRac?.:cr.i L U I S IGNACIO ESCOBEDO RAHIREZ

E2: ADD DAT2 , 4 ó

ADD *, 4

Memoria de

datos >2

(DP=O)

Si el registo auxiliar actual contiene > 2

ANTES DESPUES

I I J

La palabra >8BOD tiene un 1 en su bit de signo, por lo tanto al correrse pimero cuatro lugares, se llena con 1's en su parte alta (ahora es de 32 bits) y con ceros en su parte baja, y a l final se realiza la suma.

ADDH ( S U M A A L A P A R T E A L T A D E L A C U M U L A D O R )

S: Directo [<etiqueta>] ADDH <dma>

O: Osdmas127

M: PC+l+PC

Indirecto [<etiqueta>] ADDH {*,*+,*-J[,<NARP>]

NARP = O ó 1

ACC + (dma*216) 9 ACC

D: El contenido de l a localidad de memoria de datos direccionada es sumado a la parte alta del acumulador (bits 31 al 16). Los bits de orden bajo no s o n afectados. Esta instrucción es útil para realizar aritmética de 32 bits.

P: 1 C: 1

E: ADDH DAT5 (DP=O)

ADDH * Si el registo auxiliar actual contiene > 5 . ó

ANTES DESPUES

Memoria de

datos , 5

U N I VERSILIAD AUTONOMA METROPOLITANA 1 5 3

Page 151: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

bits

ADDS

S :

O :

M:

D:

P : C :

E :

ACC

El número 4 se suma a la parte alta del acumulador ( l o s 16 de orden alto) para formar un número de 32 bits.

( S U M A AL ACUMULADOR CON SUPRESION DE EXTENSION DE SIGNO)

Directo [<etiqueta>] ADDS <dma> Indirecto [<etiqueta>] A D D S ( * , * + , * - ) [ , < N A R P > ] Oidmas127 N A R P = O ó 1 P C + l = + P C ACC + dma 4 ACC (dma = numero de 16 bits sin signo).

El contenido de la localidad de memoria de datos especificada es sumada al acumulador con supresion de extension de signo. El dato es tratado como un numero de 16 bits sin signo, y por e l l o no existe la extension de signo. Esta instrucción es útil para realizar aritmetica de 32 bits.

1 1

A D D S D A T l l ( D P = O )

A D D S * Si el registo auxiliar actual contiene >11 ó

ANTES D E S P U E S

Memoria de

datos >11

ACC

Debido a que se suprime la extensión de signo, se valores como números de 16 bits.

toman l o s

UNIVERSIDAD AUTONOMA METROPOLITANA 154

Page 152: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT1C;O LUIS IGNACIO ESCOBEDO RAMIREZ "

S :

O :

M:

D:

P : C :

E :

( O P E R A C I O N AND CON LOS B I T S D E O R D E N B A J O D E L A C U M U L A D O R )

Directo [<etiqueta>] AND <dma> Indirecto [<etiqueta>] AND (*,*+,*-}[,<NARP>] Osdmai127 NARP = O ó 1 P C + l * P C A C C ( 1 5 - O ) . A N D . dma + A C C ( 1 5 - O ) O * A C C ( 3 1 - 1 6 )

A l contenido de la localidad de memoria de datos direccionada se le aplica la operacion AND junto con la mitad baja del acumulador. La mitad alta del acumulador queda siempre con valor cero.

1 1

AND DATlG (DP=O)

AND * Si el registo auxiliar actual contiene >16 ó

A N T E S D E S P U E S

Memoria de

datos >16

I L I

La palabra >FF deja intacto al byte mas bajo del acumulador.

Page 153: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

LAC ( C A R G A EN ACUMULADOR CON CORRIMIENTO)

S :

O :

M:

D:

P: C:

E :

Directo [<etiqueta>] LAC <dma>[,<corr>] Indirecto [<etiqueta>] LAC (*,*+,*-)[,<corr>[,<NARP>]] O'dmas127 NARP=O 6 1 O~corr515 (default O ) PC+ 1*PC (drna*2'Orr) + ACC

El contenido de la direccion de memoria de datos especificada se corre a la izquierda y se almacena en el acumulador. Durante el corrimiento, los bits de orden bajo son llenados con ceros y l o s de orden alto son extendidos en signo.

I

1

LAC DATG, 4 ó

LAC * , 4

Memoria de

datos > G

ACC

(DP=O)

Si el registo auxiliar actual contiene >6

ANTES DESPUES

Page 154: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I ~ IGNACIO ESCOBEL)~ RAMIREZ

LACK (CARGA EN ACUMULADOR INMEDIATAMENTE)

S: [<etiqueta>] LACK <constante> O : Osconstantes255 M: PC+1 + PC

constante positiva de 8 bits + ACC

D: La constante de 8 bits es cargada en el acumulador, justificada a la derecha. Los 24 bits MSB del acumulador se ponen en cero (la extensión de signo es suprimida).

P: 1 C: 1

E : LACK >15

ACC

ANTES DESPUES

El número >15 se carga inmediatamente en el acumulador.

OR (OR CON ACUMULADOR)

S: Directo [<etiqueta>] OR <dma>

O: Osdmas127

M : PC+l * PC

Indirecto [<etiqueta>] OR ( * , * + , * - ) [ , < N A R P > ]

NARP = O ó 1

ACC(15-O) .OR.dma + ACC(15-O) ACC(31-16) * ACC(31-16)

D: Los b i t s de orden bajo del acumulador son OR-operados con el contenido de la localidad de memoria de datos direccionada y el resultado es almacenado en el acumulador. Los bits de orden alto del acumulador permanecen sin cambio. Esta instrucción es útil para comparación de bits seleccionados dentro de una palabra de datos.

P: 1 C: 1

UNIVERSIDAD AUTONOMA METROPOLITANA 157

Page 155: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIIX L U I S IGNACIO ESCCIBEDO RAHIREZ

E: OR DAT88 6,

OR * Dp = O

Si el registro auxiliar actual contiene >88

ANTES DESPUES

Memoria de

Datos >88

ACC j . I O F 0 0 2 ]

>F .OR. > O = >F. > O .OR. >O = > O > O .OR. >2 = > 2 .

SACH (ALMACENA LA PARTE ALTA DEL ACUMULADOR CON C O R R I M I E N T O )

S: Directo [<etiqueta>] SACH <dma>[,<corr>]

O: Osdmas127 Indirecto [<etiqueta>] SACH (*,*+,*-)[,<corr>[,<NARP>]]

NARP = O 6 1 corr = O, 1 ó 4

(ACC(31-16) x 2'"') + dma M: PC+1 rs PC

D: La instruccion copia el valor del acumulador dentro del parallel shifter, luego lo desplaza a la izquierda O, 1, ó 4 lugares (al numero de 32 bits) , y copia los 16 bits MSB, del valor desplazado, dentro de la memoria de datos. El acumulador permanece inafectado.

P: 1 C: 1

E: SACH DAT70,l ó

SACH *, 1 DP = O

si el registro auxiliar actual contiene > 7 0 .

ANTES DESPUES

1 >4208001~

U N I V E R S I D A D AiJTONOHA METROPOLITANA

158

Page 156: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO L U I S I G N A C I O ESCOBEDO RAMIREZ

Memoria de

Datos >70

>841

SACL

S:

O :

M:

D:

P: C:

E:

El valor del acumulador >4208001, dentro del registro de corrimiento, es desplazado un bit a la izquierda formando al nuevo valor > 8 4 1 0 0 0 2 y posteriormente, la parte alta de este nuevo valor

es copiado en la dirección de memoria de datos > 7 0 .

( A L M A C E N A L A P A R T E B A J A D E L A C U M U L A D O R )

Directo [<etiqueta>] SACL <dma>[,<corr>] Indirecto [<etiqueta>] SACL (*,*+,*-)[,<O>[,<NARP>I] Oadma5127 NARP = O ó 1 corr = O PC+1 * PC ACC(15-O) + dma

Los bits de orden bajo del acumulador son almacenados en la memoria de datos. No existe un corrimiento asociado a esta instrucción, aunque un corrimiento nulo (O) DEBE ser especificado si se desea cambiar al ARP.

1 1

SACL DAT7 1

SACL * O

DP = O

Si el registro auxiliar actual contiene >71.

ANTES DESPUES

Memoria de

Datos >71

El contenido bajo del acumulador >8421 es almacenado en la localidad de memoria de datos >71.

U N I V E R S I D A D AUTONOMA METROPOLITANA 159

Page 157: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

SUB

S:

O :

M:

D:

P: C:

E:

(RESTA D E L ACUMULADOR CON C O R R I M I E N T O )

Directo [<etiqueta>] SUB <dma>[,<corr>] Indirecto [<etiqueta>] SUB (*,*+,*-)[,<corr>[,<NARP>]] Osdmas127 NARP = O ó 1 Oscorrsl5 (default O ) PC+1 * PC (ACC - (dma x 2"") ) + ACC

El contenido de la localidad de memoria de datos direccionada es desplazado a la izquierda y restado del acumulador. Durante el corrimiento, los bits de orden bajo son puestos en cero y los de orden alto son extendidos en signo. El resultado es almacenado en el acumulador.

1 1

SUB DAT59 ó

SUB *- DP = O

Si el registro auxiliar actual contiene > 5 9 .

ANTES DESPUES

Memoria de

Datos >59

ACC 1-1 r"-1

UN I VERS I DAD AUTONOMA METROPOLITANA 160

Page 158: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS I G N A C I O ESCOBEDO RAMIREZ

SUBC (RESTA CONDICIONAL)

S: Directo [<etiqueta>] SUBC <dma>

O : Osdmas127

M: PC+1 * PC

Indirecto [<etiqueta>] SUBC (*,*+,*-)[,<NARP>]

NARP = O ó 1

(ACC - (dma x 2 1 5 ) ) 3 salida del ALU Si salida entonces otro

D: La resta operacion la parte

del ALU 2 O: (salida del ALU x 2 ) +1 * ACC ACC X 2 + ACC.

condicional puede ser utilizada para realizar l a de división. El dividendo de 16 bits es puesto en baja del acumulador, y la parte alta del

acumulador es -puesta en cero. El .divisor esta en memoria de datos. Para division de 16 bits, SUBC se realiza 16 veces, y al completarse el ultimo SUBC, el cociente de l a division se coloca en los 16 bits de orden bajo, y el residuo en los 16 bits de orden alto del acumulador. SUBC asume que el divisor y el dividendo son ambos positivos.

Si el dividendo de 16 bits contiene menos de 16 bits, éste puede ser puesto en el acumulador con un corrimiento a la izquierda del número de ceros no significativos (esto reduce el número de veces que se ejecuta SUBC). Sin embargo, al menos un cero delantero debe estar siempre presente, ya que ambos operandos de SUBC deben ser positivos. Nótese que la siguiente instrucción despues de SUBC no debe hacer uso del acumulador.

La instrucción SUBC afecta al bit OV pero no es afectada por OVM. Por lo tanto, el acumulador no se satura con sobreflujos negativos o positivos cuando se ejecuta esta instrucción.

La descripción hecha es para división de enteros de 16 bits, pero SUBC tambien puede ser usada en divisiones de punto fijo.

P: 1 C: 1

E : LARP ARO LARK ARO, 1 5

BANZ D I V D I V SUBC DAT2 DP = O

U N I V E R S I D A D AIJTONOMA METROPOLITANA 161

Page 159: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO Escos~r~o RAMIREZ

ANTES DESPUES

Memoria de

Datos >2

Se utiliza al registro auxiliar ARO (LARK AR0,15) para ejecutar 16 veces a la instrucción SUBC DAT2. La instrucción BANZ compara que ARO sea igual a cero, si no, se salta a la etiqueta D I V hasta que ARO se decremente a cero.

Este ejemplo implementa una división de dos numeros enteros. El numero >41 (65 en decimal) es dividido entre el numero >7 (7 en decimal). El resultado de la division (>20009) se almacena en las dos mitades del acumulador, el cociente >O009 (9 en decimal) en la mitad baja y el residuo >2 (2 en decimal) en la mitad alta ( 6 5 / 7 = 9 con residuo 2) .

SUBH (RESTA DE LA PARTE ALTA DEL ACUMULADOR)

S:

O :

M:

D:

P: C:

E:

Directo [<etiqueta>] SUBH <dma> Indirecto [<etiqueta>] SUBH {*,*+,*-)[,<NARP>] Osdma'127 NARP = O ó 1 PC+1 * PC (ACC - (dma x 216)) 3 ACC

El contenido de la localidad de memoria de datos direccionada es restado de la parte alta del acumulador, y la parte baja del acumulador permanece sin ser afectada. El resultado se almacena en la parte alta del acumulador. Esta instrucción puede ser usada para implementar aritmética de 32 bits.

1 1

SUBH DAT3 3 ó

SUBH *

DP = O

Si el registro auxiliar actual contiene > 3 3 .

UNIVERSIDAD AUTONOMA METROPOLITANA 1 6 2

Page 160: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACT I co LUIS IGNACIO ESCOBEDO RAMIREZ

ANTES DESPUES

Memoria de

Datos >33

La parte alta del acumulador contiene al final el número >6, ya que >A (10 en decimal) menos >4 (4 en decimal) es igual a >6 (6 en decimal) . La parte baja del acumulador >O013 permanece intacta.

SUBS (RESTA D E L A P A R T E B A J A D E L ACUMULADOR CON S U P R E S I O N D E E X T E N S I O N D E S I G N O )

S: Directo [<etiqueta>] SUBS <dma>

O : Osdmas127

M: PC+1 * PC

Indirecto [<etiqueta>] SUBS (*,*+,*-)[,<NARP>]

NARP = O ó 1

(ACC - dma) * ACC

D: El contenido de la localidad de memoria de datos direccionada es restado de la parte baja del acumulador con extensión de signo suprimida. El dato es tratado como un número de 16 bits sin signo. El acumulador se comportará como número con signo.

P: 1 C: 1

E : SUBS DAT2 ó

SUBS *

DP = O

si el registro auxiliar actual contiene > 2 .

ANTES DESPUES

Memoria de

Datos >2

ACC = > l o 2 (>F105 menos >F003 = >102).

Page 161: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

XOR (OR EXCLUSIVA CON LA PARTE B A J A DEL ACUMULADOR)

S: Directo [<etiqueta>] XOR <dma>

O: Osdmas127

M: PC+1 + PC

Indirecto [<etiqueta>] XOR (*,*+,*-)[,<NARP>]

NARP = O ó 1

ACC( 15-0) .XOR. dma + ACC( 15-0) ACC(31-16) =+ ACC(31-16)

D: La mitad baja del acumulador es operada-OR-exclusiva con el contenido de la localidad de memoria de datos direccionada. La mitad alta del acumulador permanece sin cambios ., La instrucción XOR es útil para cambiar o poner (toggling or setting bits) los bits de una palabra. Además, el complemento a 1’s de una palabra se puede realizar fácilmente operándola, mediante XOK, con todo el acumulador en 1’s ó F ’ s (si se hacen cero los bits del acumulador se obtiene la misma palabra).

P: 1 C: 1

E : XOR DAT27

ó XOR *

DP = O

si el registro auxiliar actual contiene >27.

ANTES DESPUES

Memoria de

Datos >27

ACC m La parte baja del acumulador > 5 6 7 8 es operada con XOR con la

palabra >FOFO, resultando modificada sólo la parte baja del acumulador en >A688, ya que la operación >O .XOR. >X = >X, y la operación >F .XOR. >X es el complemento a 1‘s de X.

Page 162: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

ZAC (ACUMULADOR EN CERO)

S: [<etiqueta>] ZAC O : Ninguno M: P C + 1 * P C

O * ACC

D: El contenido del acumulador es reemplazado por cero.

P : 1 C : 1

E: ZAC A N T E S DESPUES

El acumulador se "limpia" con el valor >O.

ZALH (CERO EN LA PARTE BAJA DEL ACUMULADOR Y CARGA EN LA PARTE ALTA)

S : Directo [<etiqueta>] ZALH <cima> Indirecto [<etiqueta>] ZALH { * , * + , * - ) [ , < N A R P > ]

NARP = O ó 1 O: Osdmalr 1 2 7

M: P C + 1 =+ P C O * A C C ( 1 5 - O ) dma * A C C ( 3 1 - 1 6 )

D: La instrucción carga un valor de memoria de datos en la parte alta del acumulador y pone en cero a la parte baja. Es útil para implementar aritmética de 32 bits.

P : 1 C : 1

E : ZALH DAT3 ó

ZALH * DP = O

si el registro auxiliar actual contiene > 2 .

UNIVERSIDAD AUTONOMA METROPOLITANA 165

Page 163: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A C T i C O LlJiS I G N A C I O ESCOBEDO RAHIREZ

ANTES DESPUES

Memoria de

Datos > 3

Al final de la instrucción, la parte alta del acumulador se carga con la palabra > 3 F 0 1 , y la parte baja con >O.

ZALS

S:

O:

M:

D:

P: C: E:

(CERO EN EL ACUMULADOR Y CARGA EN LA P A R T E B A J A CON S U P R E S I O N D E E X T E N S I O N D E S I G N O )

Directo [<etiqueta>] ZALS <dma> Indirecto [<etiqueta>] ZALS (*r*+,*-)[r<NARP>] Osdma'127 NARP = O ó 1 PC+1 * PC O + ACC(31-16) dma + ACC(15-O)

La instrucción carga un valor de memoria de datos en la parte baja del acumulador y pone en cero a la parte alta. El dato es tratado como un número sin signo, por ello no hay extensión de signo con esta instrucción. La instrucción es útil para implementar aritmética de 32 bits.

1 1

ZALS DATl ó

ZALS *

Memoria de

Datos > 3

ACC

DP = O

si el registro auxiliar actual contiene >l.

ANTES DESPUES

Promero se "limpia" el acumulador y posteriormente se carga con la palabra > F 7 F F . La extensión de signo se suprime.

Page 164: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO ESIXBEDO RAHIREZ

INSTRUCCIONES SOBRE LOS REGISTROS AUXILIARES Y APUNTADOR DE PAGINA DE DATOS

LAR (CARGA EN REGISTRO AUXILIAR)

S: Directo [<etiqueta>] LAR <AR>,<dma>

O : O~dma-cl27 Indirecto [<etiqueta>] LAR <AR>,(*,*+,*-J[,<NARP>]

A R = O Ó 1 NARP = O ó 1

dma + AR M: PC+1 + PC

D: El contenido de la dirección de memoria de datos especificada es cargado dentro del registro auxiliar designado. Las instrucciones LAR y SAR pueden ser usadas para cargar y salvar l o s registros auxiliares durante llamadas a subrutinas e interrupciones. Si un registro auxiliar no esta siendo usado para direccionamiento indirecto, LAR y SAR habilitan al registro para ser usado como un registro adicional de almacenamiento, especialmente para intercambio (swaping) de valores entre localidades de memoria de datos sin afectar e l conten-ido del acumulador.

Si es usado el direccionamiento indirecto con autodecremento con LAR para cargar al registro auxiliar actual, el nuevo valor del registro auxiliar no es decrementado como resultado de la ejecucion de la instrucción. Un caso análogo sucede con el autoincremento.

P: 1 C: 1

El: LAR O , DAT19 ANTES

Memoria d e

Datos >13

ARO

El ARO se carga con >11.

DESPUES

I I

Page 165: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

E2: LARP O LAR O,*-

Se selecciona al registro auxiliar ARO (que contiene > 7 ) .

ANTES DESPUES

Memoria de

Datos >19

ARO I I

En este último ejemplo se observa que el ARO contenía >7 y al e j ecutarse la instrucción, cambió a > 3 2 sin realizarse el decremento.

LARK (CARGA EN REGISTRO AUXILIAR INMEDIATAMENTE)

S: [<etiqueta>] LARK <AR>,<constante> O: O'constantez2 55

A R = O Ó l M: PC+1 + PC

constante de 8 bits + AR

D: La constante de 8 bits se carga en el registro auxiliar designado, justificada a la derecha y con los bits MSB puestos en cero (la extensión de signo es suprimida).

Esta instrucción es útil para cargar el valor inicial de contadores de ciclo en un registro auxiliar para usarse con la instrucción BANZ

P: 1 C: 1

E: LARK 0,>21 ANTES

ARO I >60 1 DESPUES

j->21/

La constante de 8 bits, >21, se carga inmediatamente en el registro auxiliar ARO.

UNIVERSIDAD AUTONOMA METROPOLITANA 168

Page 166: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO EscosEnO RAHIREZ

LARP

S : O : M:

D:

P: C:

E:

(CARGA APUNTADOR DE REGISTRO AUXILIAR)

[<etiqueta>] LARP <constante> Osconstantes1 PC+1 * PC constante + ARP

El apuntador de registros auxiliares se carga con la constante de un bit identificando al registro auxiliar deseado. El ARP puede ser también modificado por las instrucciones LST y MAR, y por las instrucciones que son utilizadas en el direccionamiento indirecto.

1 1

LARP 1 ANTES

ARP = >O

DESPUES

ARP = >1

Cualquier instrucción subsecuente utilizará al auxilar 1 (AR1) para direccionamiento indirecto.

LDP

S:

O :

M:

D:

P: C:

(CARGA AL APUNTADOR DE PAGINAS'DE MEMORIA DE DATOS)

Directo [<etiqueta>] LDP <dma> Indirecto [<etiqueta>] LDP {*,*+,*-)[,<NARP>] Osdmas 12 7 NARP = O ó 1 PC+1 + PC LSB de dma + DP (O ó 1)

El LSB del contenido de la dirección de memoria

registro

de datos especificado se carga en el registro apuntador de páginas de memoria de datos (DP). Todos los bits de orden alto en la palabra de datos son ignorados. DP=O define a la página cero, la cual contiene a las palabras 0-127. DP=1 define a la página 1, la cual contiene a las palabras 128-143. El DP puede ser, tambien, cargado por las instrucciones LST y LDPK.

1 1

UNIvERSInAD AUTONOMA METROPOLITANA 169

Page 167: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRAC-TICC LUIS IGNACIO EXOEEDO RAMIHEZ "

El: LDP DAT4 ANTES

Memoria de

Datos >4

DESPUES

DP = 1 DP = O

El bit LSB del contenido de la localidad DAT4 ( > 4 = 0100B) es puesto en el DP.

E2: LDP * , I

ARO

Memoria de

Datos >4

Dado que el dato

EL bit LSB de la localidad, actualmente direccionada por un registro auxiliar, es cargado en el DP, y el registro ARP es puesto en 1.

ANTES DESPUES

rFEDCj DP = >1 DP = >O

ARP = >O ARP = >1

>FEDC tiene a su bit LSB iaual a O ( > C = llOOB) , este es cargado en el registro DP para apintar a la página cero. El registro ARP es cargado con 1 para poder utilizar al registro auxiliar AR1 para direccionamiento indirecto (Se supone que el registro auxiliar ARO fue utilizado para el direccionamiento indirecto de la localidad de memoria de datos 4).

U N I V E R S I D A D AUTONOMA METROPOLITANA 1 7 0

Page 168: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO EsCc?BEDO RAMIREZ

LDPK

S: O : M:

D:

P: C: E:

MAR

S:

O:

M:

D:

P: C:

(CARGA INMEDIATAMENTE DE MEMORIA

AL APUNTADOR DE PAGINAS DE DATOS)

[<etiqueta>] LDPK <constante> Osconstantesl PC+1 * PC Constante 3 DP

El registro apuntador de página de memoria de datos (DP) se carga con una constante de un bit. DP=O define a la página cero, la cual contiene a las palabras 0-127. DP=1 define a la página 1, la cual contiene a las palabras 128-143. El DP puede ser, también, cargado por las instrucciones LST y LDP.

1 1

LDPK O ANTES

DP = > 1

DESPUES

DP = > O

El DP es puesto en O para apuntar a la página cero.

(MODIFICA AL REGISTRO AUXILIAR)

Directo [<etiqueta>] MAR <dma> Indirecto [<etiqueta>] MAR (*,*+,*-)[,<NARP>] Osdmas127 NARP = O ó 1 PC+1 * PC

La instrucción es usada sólo para modificar a l o s registros auxiliares o al ARP. En modo de direccionamiento indirecto, los registros auxiliares son incrementados o decrementados y el ARP es modificado; por ello ningún cambio es realizado en la localidad de memoria referenciada. EL ARP puede ser cargado tambien por la instrucción LST.

La- instrucción MAR actua como una instrucción NOP (no operación) en el modo de direccionamiento directo. La instrución LARP es una versión reducida de MAR (p.e., MAR * , O realiza la misma función que LARP O ) .

1 1

UNIVERSIDAD AUTONQMA METROPOLITANA 171

Page 169: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LIJIS I G N A , - I O ESCOBEDO RAHIREZ

E l : MAR *, 1 ANTES

ARP = > O

DESPUES

ARP = >1

Se carga a ARP con 1 para utilizar al AR1 en el direccionamiento indirecto.

E 2 : MAR *- ANTES DESPUES

Se decrernenta al registro auxiliar actual (en este caso AR1).

E3: MAR * + , O ANTES DESPUES

ARP = >1 ARP = > O

Se incrementa al registro auxiliar actual (AR1) y se carga al ARP con O para utilizar al ARO en el direccionamiento indirecto.

Page 170: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

SAR ( A L M A C E N A A L R E G I S T R O A U X I L I A R )

S: Directo [<etiqueta>] SAR <AR>,<dma>

O: Ordmas127 Indirecto [<etiqueta>] SAR <AR>,(*,*+,*-)[,<NARP>]

NARP = O ó 1 A R = O Ó 1

AR * dma M: P C + l * PC

D: El contenido del registro auxiliar designado es almacenado en la localidad de memoria de datos designada.

IMPORTANTE: Pueden surgir problemas especiales con la instrucción SAR cuando se almacena al registro auxiliar actual con direccionamiento indirecto, al utilizarse el autoincremento ó el autodecremento, por ejemplo:

LARP O LARK O, 10 SAR O,*+ ó SAR O, * -

En este caso, SAR ARO, *+ causará que el valor 11 sea almacenado en la localidad 10, y SAR ARO, *- causará que el valor 9 sea almacenado en la localidad 10.

P: 1 C: 1 El: SAR O , DAT3 O

ó SAR O, *

DP = O

Si el registro auxiliar actual contiene > 3 0 (AR1).

ANTES DESPUES

ARO >371 r - 7 1 Memoria

de Datos > 3 0

En este ejemplo se debe notar que el registro auxiliar utilizado para direccionamiento indirecto es el AR1, que contiene al valor > 3 0 (direcciona a la localidad > 3 0 de memoria de datos).

UN I VEHSI D A D AUTUNOPIA METROPOLITANA 1 7 3

Page 171: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

E 2 : LARP O SAR O, *+

ANTES DESPUES

ARO

Memoria de

Datos > 5

En este caso, se incrementa primero el contenido del registro auxiliar ARO y después se copia en memoria de datos, y, como en el ejemplo anterior, se utiliza al AR1 para direccionar la localidad > 5 de memoria de datos.

AR1 L I

Page 172: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I CfJ L U I S IGNACIO ESCOBEDO RAMIREZ ~ ~~~ ~~ ~

INSTRUCCIONES DE MULTIPLICACION Y SOBRE REGISTROS T Y P

APAC (SUMA EL REGISTRO P AL ACUMULADOR)

S: [<etiqueta>] APAC O: Ninguno M : PC+ 1*PC

(ACC + Reg. P) =+ ACC

D: El contenido del registro P (resultado de una multiplicacidn) es sumado a l contenido del acumulador.

P: 1 C: 1

E: APAC ANTES

Registro P

ACC I > z o j

DESPUES

Page 173: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOEEDO RAMIREZ

LT

S :

O :

M:

D:

P: C:

E :

(CARGA AL REGISTRO T)

Directo [<etiqueta>] LT <dma> Indirecto [<etiqueta>] LT (*,*+,*-)[,<NARP>] Osdmas127 NARP = O ó 1 PC+1 * PC dma + registro T

El registro T es cargado con el contenido de la localidad de memoria de datos especificada. La instrucción LT puede ser utilizada para cargar al registro T para efectuar una multiplicación.

1 1

LT DAT24 1,

LT * DP = O

Si el registro auxiliar actual contiene >24.

ANTES DESPUES

Memoria de

Datos >24

Registro T

UN I VERS I D A D AUTONOMA METROPOL I TANA

176

Page 174: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I LiC LUIS IGNACIO ESCOBEDO RAMIREZ

LTA ( C A R G A A L R E G I S T R O T Y ACUMULA EL P R O D U C T O P R E V I O )

S : Directo [<etiqueta>] LTA <cima>

O : Osdmas127

M: PC+1 + PC

Indirecto [<etiqueta>] LTA (*r*+r*-)[r<NARP>]

NARP = O ó 1

dma + registro T ACC + registro P + ACC

D: El registro T es cargado con el contenido de la localidad de memoria de datos direccionada. EL registro P, conteniendo al producto previo de la multiplicación, es sumado al acumulador, y el resultado es almacenado en el acumulador.

La función de la instrucción LTA está incluida en la instrucción LTD.

P: l. C : 1

E: LTA CAT24 ó

LTA * DP = O

si el registro auxiliar actual contiene > 2 4 .

ANTES DESPUES

Memoria de

Datos >24

Registro T

L I I I

Registro I- - P >FI >F/

~1 dato >62 de la localidad de memoria de datos 24 es cargado en el registro T, y el contenido >F del registro P es sumado a l contenido >5 del acumulador, almacenandose el resultado en e l acumulador.

Page 175: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

LTD ( C A R G A A L R E G I S T R O T , ACUMULA E L P R O D U C T O P R E V I O Y MUEVE EL DATO)

S:

O :

M:

D:

P: C:

E:

Directo [<etiqueta>] LTD <dma> Indirecto [<etiqueta>] LTD (*,*+,*-)[,<NARP>] Ordmas127 NARP = O 6 1 PC+1 * PC dma + registro T dma + dma+l ACC + registro P + ACC

El registro T es cargado con el contenido de la localidad de memoria de datos direccionada. El contenido del registro P es sumado al acumulador, y el resultado es almacenado en el acumulador. El contenido de la dirección de memoria de datos especificada es copiado en la dirección de memoria de datos inmediata superior. Esta función está descrita bajo la instrucción DMOV.

1 1

LTD DAT24 0

LTD *

Memoria de

Datos >24 Memoria

de Datos >25 Registro

T

DP = O

Si el registro auxiliar actual contiene >24.

ANTES DESPUES

I 1

, I

I I r

1 I

Registro P

El dato >62 de la localidad de memoria de datos 24 es cargado en el registro T y copiado en la localidad 25, y el contenido >F del registro P es sumado al contenido >5 del acumulador, almacenandose el resultado >14 en el acumulador.

Page 176: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I co LrJ15 I G N A C I O EsconEDo RAMIREZ

MPY (MULTIPLICA)

S: Directo [<etiqueta>] M P Y <dma>

O : Ordmas127

M: P C + 1 + P C

Indirecto [<etiqueta>] MPY ( * , * + , * - ) [ , < N A R P > ]

NARP = O ó 1

(registro T x dma) 3 registro P

D: El contenido del registro T e s multiplicado por el contenido de la localidad de memoria de datos direccionada y el resultado es colocado en el registro P.

Durante una interrupción, todos l o s registros exce'pto el p pueden ser salvados. Por esta razon, es conveniente que, siguiendo a una instrucción MPY ó MPYK se utilicen las instrucciones L T A , LTD, P A C , A P A C , ó S P A C . Para ello, el TMS32010 contiene un hardware de protección contra servicio de. interrupciones entre la ejecución de instrucciones MPY 0

MPYK y la siguiente.

N o existen precauciones para la condición de >8000 x > 8 0 0 0 . Si ocurre esta condición, el producto será >COOOOOOO.

P: 1 C : 1

E: MPY D A T 1 3 ó

M P Y * Dp = O

si el registro auxiliar actual contiene > 1 3

ANTES DESPUES

Memoria de

Datos > 1 3

Registro T

1 I I

Page 177: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

MPYK (MULTIPLICA INMEDIATAMENTE)

S : [ <fitiqueta>] MF2YK <constante> O : - 2 %onstantes12 M: P C + 1 + P C

(registro T x constante) + registro P

D: El contenido del registro T es multiplicado por la constante de 13 bits con signo y el resultado es puesto en el registro Y. Durante una interrupción, todos los registros excepto el P pueden ser salvados. Dado que si no se toman precauciones para salvar el contenido del registro P dura.nte una interrupción, es conveniente que, siguiendo a una instrucción M P Y o MPYK se usen las instrucciones L T A , LTD, PAC, APAC, ó S P A C . El TMS32010 contiene un hardware de protección para inhibir interrupciones durante la ejecución de las instrucciones MPY ó MPYK, hasta que la siguiente instrucción se e jecute .

P: 1 C : 1

E : M P Y K -9 ANTES D E S P U E S

Registro T

I I I I

>7 X -9 (decimal) = >FFFFFFCl (-63 decimal) .

UNIVERSIDAD AUTONOHA METROPOLITANA 180

Page 178: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

PAC (CARGA AL ACUMULADOR CON EL CONTENIDO DEL REGISTO P)

S : [<etiqueta>] PAC O : Ninguno M: PC+1 + PC

registro P + ACC

D: El contenido del registro P resultante de una multiplicación es cargado dentro del acumulador.

P: 1 c: 1

E: PAC ANTES

Registro P

DESPUES

ACC > 2 3 1

SPAC (RESTA AL REGISTRO P DEL ACUMULADOR)

S : [<etiqueta>] SPAC O : Ninguno M: PC+1 + PC

(ACC - registro P ) + ACC

D: El contenido del registro P es restado del contenido del acumulador, y el resultado es almacenado en el acumulador. El registro P siempre esta extendido en signo.

P : 1 C : 1

E : SPAC ANTES

P = ACC I

DESPUES

>24

Page 179: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L~JIS IGNACIO ESCOBEDO RAMIREZ

INSTRUCCIONES DE SALTO Y LLAMADA A SUBRUTINAS

B (SALTO INCONDICIONAL)

S: [<etiqueta>] B <pma> O: Ospmas4095 M: pma + PC

P: 2 C: 2

E:

El

B PRG191

191 es cargado en el PC y el programa continúa corriendo desde esa localidad.

BANZ (SALTA SI EL REGISTRO AUXILIAR NO ES CERO)

S: [<etiqueta>] BANZ <pma> O: Ospmas4095 M: Si AR(8-0) f o

Entonces pma + PC Otro PC+2 3 PC

AR - 1 * AR.

D: Si l o s nueve bits LSB del registro auxiliar actual no son igual a cero, entonces la dirección de memoria de programa es cargada en el contador de programa. Si son cero, el contador de programa actual es incrementado en dos. En cualquier caso, el registro auxiliar es decrementado. La prueba de cero es hecha antes de decrementar al registro auxiliar. El salto a la localidad de programa está especificado por la pma. La pma- puede ser una dirección simbólica o numérica. Esta instrucción esta diseñada para control de ciclos, utilizando a l o s registros auxiliares como contadores de estos ciclos.

P: 2 C: 2

UNIVERSIDAD AUTONOMA METROPOLITANA 18 2

Page 180: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP P R A C T I C I ~ Lurs IGNACIO ESCOBEDO RAMIREZ

E: BANZ PRG3 5 ANTES DESPUES

ARn

PC

ARn

PC

En el primer caso

ó

I I

el ARn actual se decrementó de >1 a >O (AR f > o ) y p o r ello el PC tomó la dirección > 3 5 , y en el segundo caso el AR se decrementó de > O a >FFFF (AR = > O ) y por ello se ejecuta la siguiente instrucción incrementando al PC en dos (de >46 a >48).

BGEZ ( S A L T A S I E L ACUMULADOR ES MAYOR O I G U A L Q U E C E R O )

S : [<etiqueta>] BGEZ <pma> O : Ospma54 O9 5 M: Si ACC 2 O

Entonces pma 3 PC Otro PC+2 + PC

D: Si el contenido del acumulador es mayor o igual que cero, entonces se salta a la localidad de memoria de programa especificada por pma. La pma puede ser una dirección simbólica o numerica.

P: 2 C: 2

E : BGEZ PRG2 17

El número 217 es cargado en el PC si el contenido del acumulador es mayor o igual que cero.

UNIVERSIDAD AUTONOMA METROPOLITANA 1 8 3

Page 181: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

BGZ ( S A L T A S I EL ACUMULAODR E S MAYOR QUE CERO)

S: [<etiqueta>] BGZ <pma> O: Ospma54095 M: Si ACC > O

Entonces pma +. PC Otro PC+2 3 PC

D: Si el contenido del acumulador es mayor que cero, entonces s e salta a la localidad de memoria de programa especificada por pma. La pma puede ser una dirección simbólica o numérica.

P: 2 C: 2

E : BGZ P R G 3 4 2

El número 3 4 2 es cargado en el PC si el contenido del acumulador es mayor que cero.

BlOZ ( S A L T A SI E S T A D O D E L P I N 1/0 E S I G U A L A C E R O )

S: [<etiqueta>] B I O Z <pma> O: Ospmas4095 M: Si B I O ’ = O

Entonces pma + PC Otro PC+2 PC

D: Si el pin B I O ’ es activo bajo (cero), entonces se salta a l a localidad de memoria de programa especificada por pma; de otra manera, el PC se incrementa a la siguiente instrucción (en dos). La pma puede ser una dirección simbólica o numérica.

Esta instrucción junto con el pin B I O ’ puede ser utilizada para verificar si un dispositivo periférico esta listo a recibir o enviar datos, lo cual es preferible al uso de

P: 2 C: 2

E: B I O Z PRG64

Si el pin BIOI es activo bajo, entonces se salta a la localidad 64; de otra manera se ejecutará la siguiente instrucción incrementandose en dos al PC.

UNIVERSIDAD AUTONOMA METROPOLITANA 1 8 4

Page 182: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

BLEZ ( S A L T A SI EL ACUMULADOR E S MENOR O I G U A L Q U E C E R O )

S: [<etiqueta>] BLEZ <pma> O: Ospmas4095 M: Si ACC s O

Entonces pma + PC Otro PC+2 + PC

D: Si el contenido del acumulador es menor o igual que cero, entonces se salta a la localidad de memoria de programa especificada por pma. La pma puede ser una dirección simbólica o numérica.

P: 2 C: 2

E: BLEZ PRGG3

El 63 es cargado en el PC si el contenido del acumulador es menor o igual que cero.

BLZ ( S A L T A S I EL ACUMULADOR ES MENOR Q U E C E R O )

S: [<etiqueta>] BLZ <pma> O: Ospmas4095 M: S i ACC < O

Entonces pma =+ PC Otro PC+2 + PC

D: Si el contenido del acumulador es menor que cero, entonces se salta a la localidad de memoria de programa especificada por pma. La pma puede ser una dirección simbólica o numérica.

P: 2 C: 2

E: BLZ PRG4 8 1

Page 183: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICU LUIS IGNACIO ESCOBEDO RAMIREZ

BNZ ( S A L T A S I EL ACUMULADOR NO ES I G U A L A C E R O )

S: [<etiqueta>] B N Z <pma> O : Ospmas4 O9 5 M: Si ACC f O

Entonces pma + PC Otro PC+2 + PC

D: Si el contenido del acumulador no es igual a cero, entonces se salta a la localidad de memoria de programa especificada por pma. La pma puede ser una dirección simbólica o numérica.

P: 2 C: 2

E: BNZ PRG320

El 320 es cargado en el PC si el contenido del acumulador no es igual a cero.

BZ ( S A L T A S I EL ACUMULADOR ES I G U A L A C E R O )

S: [<etiqueta>] BZ <pma> O: Ospma'4095 M: Si ACC = O

Entonces pma 3 PC Otro PC+2 + PC

D: Si el contenido del acumulador es igual a cero, entonces se salta a la localidad de memoria de programa especificada por pma. La pma puede ser una dirección simbólica o numérica.

P: 2 C: 2

E: BZ PRG102

El 102 es cargado en el PC si el contenido del acumulador es igual a cero

Page 184: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO EsCOBEDO RAMIREZ

BV

S : O : M:

D:

P: C:

E:

en

(SALTA SI OCURRE UN DESBORDE ARITMETICO)

[<etiqueta>] BV <pma> Ospmas4095 Si OV = 1

Otro PC+2 + PC. Entonces pma + PC y O + OV

Si la bandera de desborde aritmético (OV) ha sido activada (puesta en 1 por la ocurrencia de un desborde) , entonces se salta a la localidad de memoria de programa especificada por pma y la bandera de desborde es puesta en cero. De otra manera, el PC se incrementa (en dos) a la siguiente instrucción. La pma puede ser una dirección simbólica o numérica.

¿

2

BV PRG610

Si un desborde aritmético ocurre, estando la bandera desborde cero (OV = O), entonces sa carga 610 en el PC y se pone en cero

a OV. De otra manera, el PC se incrementa en dos.

CALA (LLAMADA INDIRECTA A SUBRUTINA)

S: [<etiqueta>] CALA O : Ninguno M: PC+1 + TOS

ACC(11-O) * PC.

D: El PC actual es incrementado en uno y colocado en el tope de la pila. Luego, el contenido de los 12 bits LSB del acumulador es cargado en el PC. Esta instrucción se utiliza para realizar llamadas a subrutinas.

P: 1 C: 2

Page 185: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P P R A ~ T I C O

E: CALA

PC

ACC

PILA

El PC se incrementa

ANTES DESPUES

>32 > 7 5 >84 > 4 9

en uno (a > 2 6 ) y se almacena en el tope de la pila TOS (top of stack), despúes el valor de los 12 b i t s LSB del acumulador (en este caso >83) se copia en el PC.

CALL ( L L A M A D A A S U B R U T I N A )

S: [<etiqueta>] CALL ipma> O: Ospma54095 M: PC+2 3 TOS

pma + PC.

D: El PC actual es incrementado en dos y colocado en el tope de la pila. Luego, la direccion de memoria de programa (pma) es cargada en el PC. La pma puede ser una dirección simbólica o numérica.

P: 2 C: 2

Page 186: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIUJ LUIS IGNACIO ESCOBEDO RAHIREZ

E : CALL PRG 1 O 9

ANTES DESPUES

PC

PILA

L I

El PC se incrementa en dos (a >35) y se almacena en el tope de la pila TOS, despúes la dma 109 = >6D se carga en el PC.

RET (RETORNO DE SUBRUTINA)

S: [<etiqueta>] RET O : Ninguno M: TOS + PC

D: El contenido del tope de la pila es copiado en el PC: luego la pila es recorrida un lugar hacia arriba. Esta instrucción es u’sada junto con las instrucciones CALA y CALL para la implementación de subrutinas e interrupciones.

P: 1 C: 2 E: RET

ANTES DESPUES

PI LA PI LA >37 >45 >75

>37 >45 >75

:“:I >75

PC

E l TOS (>37) es copiado en el PC, recorriendose un nivel l o s demás valores de la pila y repitiendose el valor de la base de la pila (>75).

U N I VERS I D A D AUTONOMA M E T R O P O L I T A N A 189

Page 187: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

INSTRUCCIONES DE CONTROL DEL PROCESADOR

DINT (DESHABILITA INTERRUPCIONES)

S: [<etiqueta>] DINT O : Ninguno M: PC+1 + PC

1 * INTM

P: 1 C: 1

E: DINT

La instrucción deshabilita las interrupciones mascarables, y pone en 1 al bit INTM.

ElNT (HABILITACION DE INTERRUPCIONES)

S: [<etiqueta>] EINT O: Ninguno M: PC+l+PC

O + INTM

D: Pone en O al bit de estado de modo de interrupción (INTM) , habilitando las interrupciones mascarables después de ejecutarse esta instrucción. ESTO PERMITE QUE SE REHABILITEN LAS INTERRUPCIONES Y SE EJECUTE UNA instrucción RET ANTES DE QUE OTRA INTERRUPCION PENDIENTE SEA PROCESADA. Esta instrucción NO DEBE SER USADA PRECEDIENDO INMEDIATAMENTE A UNA INSTRUCCION DE SALTO. La instrucción LST no afecta el bit INTM.

P: 1 C: 1 E: EINT

UNIVERSIDAD AUTONOMA METROPOLITANA 190

Page 188: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICÜ LUIS IGNACIO ESCOBEDO RAMIREZ

LST ( C A R G A A L R E G I S T R O DE ESTADO DESDE MEMORIA DE DATOS)

S

O

: Directo [<etiqueta>] LST <dma> Indirecto [<etiqueta>] LST (*,*+,*-)[,<NARP>] Osdmas127 NARP = O ó 1

M: PC+1 + PC dma + ST

D: El registro de estado (status register) es cargado con el valor de memoria de datos direccionado. El bit INTM (modo de interrupción) no puede ser afectado por esta instrucción.

La instrucción es usada para cargar el registro de estado despúes de llamadas a subrutinas e interrupciones. El registro de estado contiene los bits de estado: ov (bandera de sobreflujo), OVM (modo de sobreflujo), ARP (apuntador de registros auxiliares), y DP (apuntador de páginas de memoria de datos). Estos bits, son almacenados por la instrucción SST (almacena regisro de estado) en la memoria de datos como sigue:

15 14 13 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 0

O V DP 1 1 1 1 1 1 O ARP 1 1 1 1 INTM OVM

Cuando se utiliza direccionamiento directo, la instrucción SST siempre salva el estado en la página 1. La instrucción LST no restaurará automáticamente al estado desde la página 1; por ello, el usuario debe especificar al apuntador de página de datos DP como 1, con la instrucción LDPK 1.

P: 1 C: 1

E: LARP O LST * , 1

La palabra de memoria de datos direccionada por el contenido del registro auxiliar ARO reemplaza los bits del registro de estado. A l final ARP es puesto en 1, para utilizar al registro auxiliar AR1 con direccionamiento indirecto.

Page 189: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L:.,rs IGNACIO ESCOBEDO RAHIREZ

NOP (NO OPERACION)

S: [<etiqueta>] NOP O : Ninquno M: PC+1 * PC

D: Ninguna operación es realizada y se afecta sólo al PC, incrementandolo en uno. Esta instrucción es útil para el "relleno" o como instrucción temporal durante el desarrollo de programas.

P: 1 C: 1 E: N O P

No se realiza ninguna operación, simplemente se incrementa el PC.

pop (SACA EL TOPE DE LA PILA Y LO COPIA EN LA PARTE BAJA DEL ACUMULADOR)

S: [<etiqueta>] POP O : Ninguno M: PC+1 =+ PC

TOS + ACC(11-O) O =+ ACC(31-12)

D: El contenido del tope de la pila es copiado en la parte baja del acumulador. La parte alta del acumulador (bits 31-12) es puesto a cero. La pila (último en entrar-primero en salir) esta implementada en hardware y es de cuatro niveles. Cada vez que ocurre un POP, cada valor de la pila es copiado en la siguiente más alta localidad de la pila, y el valor tope es removido (primero se copia en el acumulador). Después del POP, la base de la pila se repetirá con dos palabras del mismo valor. Si mas de tres POP'S ocurren (debido a las instrucciones POP y RET) antes de que ocurra un PUSH (meter en la pila), todos los niveles de la pila tendrán el mismo valor.

P: 1 C: 2

UNIVERSIDAD AUTONOHA METROPOLITANA 192

Page 190: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L t ~ r s IGNACIO ESCOBEDO RAMIREZ

E: PUSH ANTES

ACC -)71 DESPUES

El contenido bajo del acumulador ( > 7 ) es copiado en el tope de la pila, y todos los demás valores de éSta se recorren un nivel hacia abajo, perdiendose el valor base de la pila ( > O )

ROVM (DESACTIVA MODO DE DESBORDE ARITMETICO)

S : [<etiqueta>] ROVM O : Ninguno M: PC+1 + PC

o * o m

D: El bit de estado OVM es puesto en O (reset) deshabilitando el modo de desborde aritmético, en el cual fue puesto el dispositivo por la instrucción SOVM. Si ocurre un desborde con el bit OVM en cero, la bandera de desborde OV se activa (se pone en uno), y el resultado con desborde es puesto en el acumulador. El bit OVM también puede ser cargado por las instrucciones LST y SOVM.

P: 1 C: 1 E: ROVM

El bit de nodo de desborde OVM es puesto en cero, deshabilitando el modo de desborde para cualquier subsecuente operación aritmética.

UNIVER5IDAD AUTONOHA METROPOLITANA 194

Page 191: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOREDO RAMIREZ

SOVM (ACTIVA MODO DE DESBORDE ARITMETICO)

S: [<etiqueta>] SOVM O: Ninguno M: PC+1 * PC

1 =+ o m

D: El bit de estado OVM es puesto en 1 (set) habilitando el modo de desborde aritmértico. Si ocurre un desborde con el bit OVM en 1, la bandera de desborde OV se activa (se pone en uno), y el acumulador es puesto para la representación más larga de 32 bits de números positivos (>7FFFFFFF ó ) ó negativos ( > 8 0 0 0 0 0 0 0 ) , de acuerdo a la dirección del desborde. El bit de estado de modo de desborde OVM puede ser también cargado por las instrucciones LST y ROVM.

P: 1 C: 1

E: s o w

El bit de modo de desborde OVM es puesto en 1, habilitando el modo de desborde para cualquier subsecuente operación aritmética.

SST (ALMACENA REGISTRO DE ESTADO)

S: Directo [<etiqueta>] SST <dma> Indirecto [<etiqueta>] SST I*,*+,*-)[,<NARP>]

NARP = O ó 1

registro de estado + dma

O: Ozdmaz 15

M: PC+1 =3 PC

D: Los bits de estado (status bits) son salvados dentro de la dirección de memoria de datos especificada (página 1 con direccionamiento directo).

En modo de direccionamiento directo, el registro de estado es almacenado siempre en la pagina 1, independientemente del valor del registro apuntador de páginas de memoria DP. El procesador forza automáticamente a que la página sea la 1. La localidad especificada Por la instrucción ( en direccionamiento directo) sólo puede ser menor a 16. En direccionamiento indirecto la dirección de memoria de datos, seleccionada para almacenar el registro de estado, puede ser cualquier localidad en RAM seleccionada por un registro auxiliar.

UNIvER'5lLlAIl A~JTONOMA METROPOLITANA 195

Page 192: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO Lurs IGNACIO ESCOBEDO RAMIREZ .~

La instrucción SST se puede usar para almacenar los bits de estado despúes de llamadas a subrutinas o interrupciones. Los bits de estado incluyen el bit OV (bandera de sobreflujo), el OVM (modo de sobreflujo), INTM (modo de interrupciones), ARP (apuntador de registros auxiliares) , y el bit DP (apuntador de páginas de memoria de datos). Los bits de estado son almacenados en la palabra de memoria de datos de la siguiente manera :

15 1 4 1 3 1 2 1 1 1 0 9 8 7 6 5 4 3 2 1 O

OV DP 1 1 1 1 1 1 X ARP 1 1 1 1 INTH OVH

X = r e s e r v a d o

P: 1 C: 1

E l : SST DATl ó

SST * , 1

Registro de

estado

Memoria de

Datos >1

DP = No importa

si el registro auxiliar actual contiene >l.

ANTES DESPUES

j q Se almaceno el registro de estado en memoria de datos y se

puso el ARP en 1, para utilizar el registro auxiliar AR1 con direccionamiento indirecto.

UN1 VERSIDAD AUTONOMA METROPOLITANA 196

Page 193: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICII LUIS IGNACIO EXOREDO RAMIREZ ~~ ~

INSTRUCCIONES DE ENTRADA/SALIDA DE DATOS Y SOBRE LA MEMORIA

DMOV (MUEVE UN DATO A LA MEMORIA DE DATOS)

S:

O:

M:

D:

P: C:

E:

Directo [<etiqueta>] DMOV <dma> Indirecto [<etiqueta>] DMOV {*,*+,*-][,<NARP>] Osdmas127 NARP=O 6 1 PC+l+PC dma + dma + 1.

El contenido de la dirección de memoria de datos especificada es copiado en la siguiente dirección superior, permaneciendo intacto el contenido de la dirección especificada.

Esta función es útil en la implementación del retardo (z-') utilizado en el procesamiento digital de señales. La función DMOV está incluida dentro de la instrucción LTD.

1 1

DMOV DAT8 ó

DMOV * Si el registo auxiliar actual contiene >8

ANTES DESPUES

Memoria de

datos >8

Memoria de

datos >9

La dma >8 permanece intacta al copiarse en la dma superior (dma > 9 ) .

Page 194: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

IN (ENTRADA DE DATO DESDE PUERTO)

S: Directo [<etiqueta>] IN <dma>,<PA>

O: Osdmas127 Indirecto [<etiqueta>] IN (*,*+,*-},<PA>[,<NARP>]

NARP=O ó 1 OSPAS7

M: PC+1 + PC; PA * lineas de direccion(A2/PA2-AO/PAO) O + bus de direcciones(Al1-A4) Bus de datos(D15-DO) * dma.

D: La instrucción lee datos desde un periférico y los coloca en memoria de datos. Es una instrucción de dos ciclos; durante el primer ciclo el puerto de direcciones (PA) se coloca en las lineas de direcciones (A2/PA2-AO/PAO) y el pin DEN‘ cae a cero, sincronizando al dato que el periférico direccionado coloca en el bus de datos (D15-DO) . En el segundo ciclo, el dato en el bus de datos es colocado en memoria. EL pin MEM’ permanece en alto cuando DEN’esta activo.

P: 1 C: 2

E: IN STAT, PA5

Se lee una palabra desde un periférico sobre la dirección de puertos 5, y es almacenada en la localidad de memoria STAT.

LARK 1,20 LARP 1 IN *-, PA1, O

Se carga el registro auxiliar 1 con el valor decimal 20, se carga el ARP con 1 y se lee una palabra desde el periférico sobre la dirección de puertos 1, se almacena el dato en la localidad 20 de la memoria de datos, se decrementa el registro auxiliar 1 a 19, y se carga al ARP con O. Este ejemplo sirve para leer datos externos e irlos almacenando en localidades contiguas de memoria de datos.

UN 1 V E R S I D A D AUTONOMA METROPOLITANA 1 9 8

Page 195: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTIU L U I S IGNACIO ESCOBEDO RAMIREZ

OUT (SALIDA DE DATO A PUERTO)

S: Directo [<etiqueta>] OUT <dma>,<PA>

O: O'dmas 12 7 Indirecto [<etiqueta>] OUT (*,*+,*-),<PA>[,<NARP>]

NARP = O ó 1 OSPA'7

PA =+ bus de direcciones(A2/PA2-AO/PAO) O * bus de direcciones(Al1-A3) dma * bus de datos(D15-DO)

M: PC+1 =+ PC

D: La instrucción transfiere datos desde la memoria de datos hacia un periférico externo. La instrucción se ejecuta en dos ciclos. En el primer ciclo, se coloca la dirección del puerto sobre las lineas de 'direcciones A2/PA2-AO/PAO y el pin WE' Cae a cero, y el pin MEN' permanece en alto. Durante el segundo ciclo, la palabra de dato es puesta en el bus de datos (D15-DO) .

P: 1 C: 2

E: OUT 120,7

La palabra almacenada en la localidad de memoria de datos > I 2 0 es enviada hacia un periferic'o puesto sobre la dirección del puerto 7.

OUT ,5

La palabra referenciada por el registro auxiliar actual es enviada hacia un periferico puesto sobre la dirección del puerto 5.

Page 196: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACT I co LUIS IGNACIO ESCOBEDO RAMIREZ

TBLR

S :

O :

M:

D:

P: C: E:

(. LECTURA DE TABLA )

Directo [<etiqueta>] TBLR <dma> Indirecto [<etiqueta>] TBLR (*,*+,*-)[,<NARP>] Osdmas 12 7 NARP = O ó 1 PC+1 * TOS ACC(11-O) + PC pma * dma TOS + PC

La instrucción transfiere una palabra desde una localidad de memoria de programa a una localidad de memoria de datos especificada por la instrucción. La dirección de memoria de programa (pma) es definida por los 12 bits de menor orden del acumulador. Para esta operación, una lectura de memoria de programa es realizada, seguida de una escritura en memoria de datos. El contenido de la base de la pila se pierde con el uso de esta instrucción.

La instrucción TBLR es útil para lectura de coeficientes 6 constantes que han sido almacenados en ROM de programas, ó de datos dependientes del tiempo almacenados en RAM.

1

TBLR DAT6 O

TBLR * DP = O Si el registro auxiliar actual contiene >6

ANTES DESPUES

ACC

Memoria de Prog.

>9

Memoria de

Datos >6

PILA i; UNIVERSIDAD AUTONOMA METROPOLITANA

2 0 0

Page 197: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAHIREZ

Los 12 bits LSB del acumulador ( > 9 ) dan la pma y la instrucción, con direccionamiento directo o indirecto, da la dma ( > 6 ) . El dato ( > 3 0 6 ) de la localidad direccionada por pma es copiado en la localidad direccionada por dma. Se pierde la base de la pila ya que el TOS fue usado para almacenar temporalmente el PC y a su vez éste fue usado para que los 1 2 bits LSB del ACC fueran de pma.

TBLW (ESCRITURA EN TABLA)

S

O

: Directo [<etiqueta>] TBLW <dma> Indirecto [<etiqueta>] TBLW (*r*+r*-)[,<NARP>] Osdmas127 NARP = O ó 1

M: PC+1 3 TOS ACC(11-O) =+ PC dma 3 pma TOS =+ PC

D: La instrucción transfiere una palabra desde una localidad de memoria de datos a una localidad de memoria de programas. La dirección de memoria de datos (dma) está especificada por la instrucción y la dirección de memoria de programa (pma) está definida por los 12 bits de menor orden del acumulador. Una lectura desde memoria de datos es seguida por una escritura a memoria de programa para completar la instrucción. El contenido de la base de la pila se pierde con el uso de esta instrucción.

Las instrucciones TBLR y OUT usan las mismas señales externas y por ello no pueden ser distinguidas cuando se escribe a "

las direcciones d e

P: 1 C: 3 E: TBLW DAT5

ó TBLW *

ACC

Memoria de

Datos >5

memoria de programa O a 7.

DP = O

Si el registro auxiliar actual contiene > 5

ANTES DESPUES

>8j >8

~~~

UNIVERSIDAD AUTONOMA METROPOLITANA 2 0 1

Page 198: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO L U I S IGNACIO ESCOBEDO RAMIREZ

Memoria de Prog.

>8

Los 12 bits LSB del acumulador ( > 8 ) dan la pma y la instrucción, con direccionamiento directo o indirecto, da la dma ( > 5 ) . El dato ( > 4 3 3 9 ) de la localidad direccionada por dma e s copiado'en la localidad direccionada por pma. Se pierde la base de la pila ya que el TOS fue usado para almacenar temporalmente el PC y a su vez éste fue usado para que l o s 12 LSB del ACC fueran de pma .

UNIVERSIDAD AUTONOMA METROPOLITANA 2 0 2

Page 199: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

D S P PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

B I B L I O G R A F I A :

FIRST-GENERATION TMS320 USER‘S GUIDE Digital Signal Processor Products TEXAS INSTRUMENTS

TMS32010 EVALUATION MODULE USER’S GUIDE Digital Signal Processor Products TEXAS INSTRUMENTS

TMS32010 ANALOG INTERFACE BOARD USER’S GUIDE Digital Signal Processor Products TEXAS INSTRUMENTS

TMS32010 ASSEMBLY LANGUAJE PROGRAMMER’S GUIDE Digital Signal Processor Products TEXAS INSTRUMENTS

TMS32010 LINK EDITOR USER‘S GUIDE Digital Signal Processor Products TEXAS INSTRUMENTS

A DIGITAL SIGNAL PROCESSING LABORATORY USING THE TMS32010 Douglas L. Jones, Thomas W. Parks TEXAS INSTRUMENTS (Digital Signal Processing Series) PRENTICE HALL

DIGITAL SIGNAL PROCESSING APPLICATIONS WITH THE TMS320 FAMILY Theory, Algorithms, and Implementations TEXAS INSTRUMENTS

DIGITAL SIGNAL PROCESSING Design Andrew Bateman, Warren Yates COMPUTER SCIENCE PRESS

DIGITAL SIGNAL PROCESSING A System Design Approach David J. DeFatta, Joseph G. Lucas, William S. Hodgkiss WILEY

UNIVERSIDAD AUTONOHA METROPOLITANA 204

Page 200: RAMÍREZ - 148.206.53.84148.206.53.84/tesiuami/UAM1277.pdf · universidad autonoma metropolitana unidad iztapalapa proyecto terminal i y ii ingenieria electronica procesamiento digital

DSP PRACTICO LUIS IGNACIO ESCOBEDO RAMIREZ

UNDERSTANDING ADVANCED SOLID STATE ELECTRONICS Don L. Cannon SAMs

MASTERING SERIAL COMMUNICATIONS Peter W. Gofton SYBEX

ON-LINE WITH BITCOM Bud E. S m i t h BANTAM COMPUTER BOOKS

ASP1 DFDP Digital Filter Design Package ATLANTA SIGNAL PROCESSORS INCORPORATED

UNIVERSIDAD AUTONOMA METROPOLITANA 2 0 5