universidad autonoma metropolitana148.206.53.84/tesiuami/uam5372.pdf · unidad lógica aritmética...

85
UNIVERSIDAD AUTONOMA METROPOLITANA IZTAPALAPA CbI MAESTRÍA EN INGENIERÍA BIOMÉDICA SISTEMA PARA EL PROCESAMIENTO DIGITAL DE SEÑALES EN TIEMPO REAL, BASADO EN EL DSP TMS32010 -PRESENTA: Marco Antonio Reyna Carraasa ASESORES: Dr. Hector Perez Meana Dr. Adriano De Luca P.

Upload: truongminh

Post on 04-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

UNIVERSIDAD AUTONOMA METROPOLITANA

IZTAPALAPA

C b I MAESTRÍA EN INGENIERÍA

BIOMÉDICA

SISTEMA PARA EL PROCESAMIENTO DIGITAL DE SEÑALES EN TIEMPO REAL,

BASADO EN EL DSP TMS32010

-PRESENTA:

Marco Antonio Reyna Carraasa

ASESORES:

Dr. Hector Perez Meana Dr. Adriano De Luca P.

Page 2: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

AGRADECIMIENTOS

0 Agradezco a la Universidad Autbnoma de Baja California el tan importante soporte económico que me otorgb durante mis estudios de maestría.

Quiero agradecer en forma muy especial al Dr. Joaquín Aspiros, al M.I. Tomis Aljama y a los Ingenieros Gonzalo Duchén y Juan Carlos Sánchez quienes siempre me estuvieron auxiliando con sus asesorías durante el desarrollo del proyecto.

0 Doy gracias a los profesores de los laboratorios de Electrónica y BiomCdica que de alguna manera participaron en la elaboración de este trabajo.

Page 3: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

ÍNDICE

1 REVISIóN GENERAL DEL TMS32010 Revisión de la arquitectura 3

2 ORGANIZACIÓN DE LA MEMORIA DEL ~ ~ ~ 3 2 0 1 0 Organización de la memoria 8 Memoria de datos 8 Memoria de programa 9 Movimiento de datos 12 Mapeo de la memoria 11 Registros auxiliares 13 Modos de direccionar la memoria 15

3 UNIDAD L ~ C I C A ARITMÉTICA CENTRAL (ULAC) Unidad Lógica Aritmética Central (WAC) I7 Shiflers 19 Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20

4 CONTROL DEL, SISTEMA Control del sistema 22 Contador de programa y el stack 22 Reset 23 Registro de status 24

5 FUNCIONES DE ENTRADA/SALIDA EN EL TMS32010 Funciones de EntraddSalida (E&) 26 Operación de EntraddSalida 27 Operación Table Read/Table Write 28

6 CIRCUITERIA DEL SISTEMA (HARDWARE) Revisión general del sistema (Diagrama a bloques) 32 Revisión detallada del sistema (Diagrama esquemático) 33 .Dispositivos que conforman cada sección del sistema 33 *Funcionamiento del sistema 37

.Especificaciones de memoria 37

.Descripción funcional 37 OODeración del circuito 39

Page 4: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

ÍNDICE

7 ALGORITMOS DE PRUEBA (SOFTWARE) Implementación de un filtro digital FIR pasa-bajas 51 *Resultados experimentales de:

Implementación de un filtro adaptivo (Algoritmo LMS) 66 *Resultados experimentales de:

OFiltrado de una seiial seno 64

ODOS seilales senoidales de igual frecuencia v con diferente fiecuencia 74 ODOS seiiales cardiacas altamente comelacionadag 76 ODOS sefiales cardiacas débilmente correlacionadw 78

CONCLUSIONES 80

BIBLIOGRAFÍA 81

Page 5: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

I n t r o d u c c i 6 n 1

uno de los adelantos de mayor importancia en la

tecnologia de la electrónica, han sido sin duda los procesadores digitales de sefiales de alta velocidad. Estos procesadores se ofrecen comercialmente como circuitos integrados a muy alta escala (VLSI) por los distribuidores de semiconductores. Los procesadores digitales de sefiales son esencialmente microprocesadores/microcomputadores que operan a muy altas velocidades disefiados para funcionar específicamente con algoritmos que realicen c6lculos intensivos en el procesamiento de las sebales. Gracias a la ventajosa arquitectura del dispositivo, a la capacidad de procesamiento en paralelo y al conjunto de instrucciones dedicadas al procesamiento digital de señales (PDS), estos dispositivos pueden ejecutar millones de operaciones de PDS por segundo. Esta capacidad permite la implementación de complicados algoritmos en el PDS. En la última década, el procesamiento digital de seiiales ha tenido un gran desarrollo y ha jugado un papel importante tanto en el aspecto teórico como en el aspecto práctico dentro de diversos campos tales como: telecomunicaciones, instrumentación, medicina, industria, militar, voz, control, etc. Mientras 5e siguen desarrollando mas y novedosos algoritmos en el procesamiento digital de señales, se hace necesario desarrollar también, mas y mejores herramientas para la implementación de esos algoritmos; y es este, precisamente, el objetivo del trabajo que aquí se presenta; el desarrollo y construcción de un sistema portátil dedicado al procesamiento digital de sefiales

Page 6: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

I n t r o d u c c i 6 n 2

basado en el procesador digital TMS32010, que es versati1 en la implementaci6n de los algoritmos, cuenta con diferentes canales anal6gicos de. entrada, la frecuencia de muestreo es controlable y el sistema es capaz de ejecutar los algoritmos en tiempo real. Este trabajo de tesis se describe aqui por etapas, empezando con el capitulo 1 en donde se da una explicaci6n general da la arquitectura del DSP TMS320lO de Texas Instruments. En el capitulo 2 se ve como el TMS

tiene organizada su memoria interna. El capitulo 3 explica el funcionamiento de la Unidad L6gica Aritmética, del acumulador y de algunos de sus registro. El capitulo 4 se dedica al analisis de la secci6n de control en TMS. En el capítulo 5 se explica como el TMS

realiza las funciones de Entrada/Salida y como se controlan sus periféricos. En el capítulo 6 se analiza la circuitería del sistema por secciones empezando por la interacción del DSP con la memoria de datos y la memoria de programa continuando con la sección que controla la frecuencia de muestreo. Luego, se describe como se controlan y se seleccionan los ocho canales de entrada analógica del sistema, para concluir con las etapas de conversión tanto analógica a digital (A/D)

como digital a analógica (D/A). El T M S 3 2 0 1 0 cuenta con un conjunto de instrucciones dedicadas al procesamiento digital de sefiales y en capítulo 7 de este trabajo se analizan los programas de prueba que se emplearon para verificar el desempeño del sistema interactuando con sus algoritmos. El algoritmo "Last Mean Square" (LMS) que se usó para obtener los resultados experimentales que se presentan en este mismo capítulo, puede encontrarse detalladamente en las referencias ( 4 ) y (5).

Page 7: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 1 0 R e v i s i d n g e n e r a l d e l TMS32010 3

1 REVISIóN GENERAL DEL TMS32010

CONTENIDO Revisión de la arquitectura

REVISIóN DE LA ARQUITECTURA

L a combinación de la arquitectura tipo Harvard modificada1 y el conjunto de instrucciones especiales para el procesamiento digital de señales (PDS) de los TMS320's los proveen de gran velocidad y de una gran flexibilidad para formar una familia de procesadores capaces de ejecutar 6.25 MIPS (millones de instrucciones por segundo). La familia de los TMS320 optimiza velocidad debido a que realiza funciones vía hardware a diferencia de otros procesadores, que emplean funciones vía software o microcódigo. El TMS32010, es el primer miembro de la familia de los TMS320's, es un microprocesador capaz de realizar una multiplicación de 16 x 16 bits en un simple ciclo de 200 nanosegundos. El micro tiene disponible una sección de memoria de 144 palabras de RAM. Este dispositivo se puede configurar para una versión de microcomputador, con 1.5K palabras de memoria de programa ROM y se puede obtener hasta un total de 4K palabras empleando un chip externo de 2.5K palabras de ROM.

lEsto se explicara con mas detalle en el capítulo 4.

Page 8: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 1 0 R e v i s i 6 n g e n e r a l d e l TMS32010 4

Como se mencionb anteriormente, la familia del TMS320 utiliza una arquitectura Harvard modificada para obtener flexibilidad y velocidad. En una arquitectura Harvard estricta, la memoria del programa y de datos aparecen en espacios separados, permitiendo un traslape completo en el fetch y ejecución de las instrucciones. La familia del TMS320 con la modificación de la arquitectura Harvard permite la transferencia entre los espacios de datos y de programa lo cual provoca incrementar la flexibilidad del dispositivo. Estas modificaciones permiten almacenar los coeficientes (de un filtro por ejemplo) en la memoria del programa, evitando tener que emplear una memoria ROM exclusivamente para estos coeficientes. El dispositivo contiene una Unidad Lógica Aritmética (ULA) y un acumulador de 32 bits que le permite trabajar con operaciones aritméticas de doble precisión y con complemento a dos. El ULA es una unidad aritmética de prop6sito general que opera usando una palabra de 16 bits tomada desde la memoria RAM de datos o derivada de las instrucciones inmediatas. El ULA puede ejecutar operaciones Booleanas, permitiéndose la manipulación por bit, habilidad que requiere un controlador de alta velocidad (ver figura 1) .

Page 9: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p i t u l o 1 0 R c v i s i 6 n g t n c r a l d c l T M S 1 2 0 1 0 S

x1 CLK@UT XZ/CLKIN

A

I 16

INSTHUCCION

INT j + + D PROGRAMA

L I RCWEPROM R E (1.5K/4K RS + -

STACK 4x12

Al 1-AO/ m PA2 - PA0

BUS DE PROGRAMA

NOTACION:

ACL" Acumulador ARP= Apuntador del registro auxiliar ARO= Registro auxiliar O AR1= Registro auxiliar 1 DP = Apuntador de p6gina de datos PC = Contador de programa P = Registro P T = Registro T

DIRECCION

RAM DE DATOS 1 4 4

DATOS

I

A@ 16

BUS DE DATOS 16 I J

Figura 3 . - Diagrama a bloque8 del ~ ~ ~ 3 2 0 1 0

Page 10: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p i t u l o 1 R e v i s i 6 n g e n e r a l d e l T M S 3 2 0 1 0 6

El acumulador almacena la salida del ULA y es con frecuencia también una entrada hacia el ULA. El acumulador tiene una longitud de 32 bits y se divide en una palabra de alto orden (desde el bit 31 hasta el bit 16) y en una palabra de bajo orden (desde el bit 15 hasta el bit O ) . Las instrucciones del dispositivo están dispuestas para almacenarse como una parte baja y una parte alta en el acumulador y en la memoria de datos. El multiplicador ejecuta una multiplicación de 16 x 16 bits complemento a dos con un resultado de 32 bits mediante el empleo de una sola instrucción y un simple ciclo. El multiplicador consiste de tres elementos: el registro T, el registro P y un arreglo multiplicador. El registro T de 16 bits almacena temporalmente al multiplicando; el registro P almacena los 32 bits del producto. Los valores del multiplicador provienen ya sea de la memoria de datos ó del empleo de alguna instrucción de multiplicación inmediata, como podría ser MPYK. La rapidez del multiplicador le permite al dispositivo desempeñar tareas fundamentales de manera muy eficiente tales como la convoluci6n, correlacibn y

filtrado. Algunas de estas aplicaciones se verdn en el capítulo 7, en la sección de ALGORITMOS DE PRUEBA. El dispositivo cuenta con dos registros de corrimiento para la manipulación de l o s datos. Esta manipulación de datos se lleva a cabo entre la memoria de datos y el ULA en donde consiste de corrimientos únicamente hacia la izquierda y de O, 1, ó 4 bits. El TMS32010 tiene internamente 144 palabras de memoria RAM para datos y

1.5K palabras de memoria ROM para programa. Este dispositivo es capaz de ejecutar programas hasta de 4K palabras mediante el empleo de memorias ROM externas (mas adelante se verá como el sistema que se propone interactúa con las memorias y el D S P ) . El dispositivo permite también la expansión de la memoria RAM para dar una mayor capacidad de almacenamiento de los datos.

Page 11: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 1 0 R c v i s i 6 n g e n e r a l d e l TMS32010 7

El TMS32010 ofrece dos modos de operación definido por el estado que se tenga en el pin MC/MP, esto quiere decir que el procesador tiene la opción de ser configurado ya sea en modo de microcomputador, (que se conoce como alto nivel) 6 en modo de microprocesador, (que se conoce como bajo nivel) . En el modo de microcomputador, la memoria ROM se mapea dentro del espacio de memoria con un límite de 4K palabras. En el modo de microprocesador, los 4K palabras de memoria son consideradas como externas. El TMS32010 contiene cuatro niveles en el "stack" para salvar el contenido del contador del programa (PC) cuando sucede alguna interrupción o cuando se llama a alguna subrutina. Existen algunas instrucciones dedicadas para salvar todo' el contexto del dispositivo. El canal de 16 bits en paralelo se puede utilizar para ejecutar funciones de entrada/salida (E/S) en dos ciclos. Los puertos (E/S) son direccionados por los tres bits menos significativos (LSBs) sobre las líneas de direcciones. También se le han incorporado al dispositivo los pins de entrada por rastreo (pulling) para bit de prueba, operaciones de brinco (BIO) y un pin de interrupciones (INTI. Estas opciones aumentan la flexibilidad del dispositivo en sus implementaciones.

Page 12: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 2 o O r g a n i z a c i 6 n d e l a m e m o r i a e n e l TMS32010 8

2 ORGANIZACION DE LA MEMORIA DEL TMS32010

CONTENIDO Organización de la memoria Memoria de datos Memoria de ro rama Movimiento 11 e atos Mapeo de la memorla Registros auxiliares Modos de direccionor la memoria

ORGANIZACI~N DE LA MEMORIA

Como el TMS32010 utiliza una arquitectura Harvard, la

memoria de datos y la memoria de programa residen en espacios diferentes de memoria. El dispositivo está provisto de una memoria RAM de 1 4 4 palabras de 16 bits cada palabra y de una memoria ROM para programa de 1.5K palabras. En esta sección se describe la distribución de la memoria de datos y de programa, el movimiento de los datos, el mapeo de la memoria, registros auxiliares, modos de microcomputador y microprocesador y los modos de direccionar la memoria.

MEMORIA DE DATOS

L a memoria de datos consiste de 144 palabras de 16 bits sobre una RAM interna. Para expandir la memoria de datos, los datos se pueden almacenar fuera del DSP, y luego se pueden leer dentro de este conforme se vayan

Page 13: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 2 o O r g a n i z a c i 6 n d e l a m e m o r i a e n e l TMS32010 9

necesitando. Para llevar a cabo esto, se pueden emplear dos pares de instrucciones que estdn dispuestas por el DSP: TBLR/TBLW y IN/OUT. La instrucción (TBLR) puede transferir valores desde la memoria del programa, ya sea desde la ROM interna del DSP o desde una ROM ó RAM externa hacia la RAM interna del dispositivo. La instrucción (TBLW) transfiere valores desde la RAM de datos interna hacia la RAM externa. Este par de instrucciones toma 4 ciclos de reloj para ejecutarse. Cuando se usa el par de instrucciones IN/OUT, la instrucción IN lee el dato desde algún periférico y lo transfiere a la RAM de datos. Con alguna circuitería extra, la instrucción IN junto con la instrucción OUT, se pueden usar para leer y escribir datos desde la RAM o direccionando algunos circuitos periféricos. Este método es muy rápido debido a que este par de instrucciones toma únicamente dos ciclos en su ejecución.

MEMORIA DE PROGRAMA

L a memoria del programa consiste de 1.5K palabras

contenida internamente en el TMS32010. La operación de la memoria del programa es seleccionable por el usuario mediante el empleo del pin MC/MP (microcomputador/microprocesador). Poniendo el pin MC/MP en alto el dispositivo queda configurado en el modo de microcomputador. Manteniendo el pin en un estado bajo el dispositivo se configura para el modo de microprocesador. En el modo de microcomputador, únicamente las localidades de memoria de la O a la 1523 de la ROM interna del TMS32010 est6n disponibles para el programa del usuario. Las localidades de la 1524 a la 1535 se reservan para propósitos de prueba del fabricante. La

Page 14: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p i t u l o 2 r O r g a n i z a c i 6 n d e l a m e m o r i a e n e l TMS32010 10

arquitectura del dispositivo permite la implementación de una memoria ROM adicional de 2.5K palabras externa al TMS32010 para memoria de programa. Para direccionar la memoria externa al TMS32010, se dispone de doce lineas de direcciones (canal de direcciones) A l l (MSB) hasta A0 ( L S B ) . Estas lineas de direcciones vienen directamente desde el contador de programa o de las direcciones del puerto de entrada/salida ( I / O ) . Cuando una instrucción es recogida desde la memoria externa, el MEN (memory enable) se activara para seleccionar a la correspondiente memoria. Luego, la instrucción es transferida hacia el procesador vía el bus de datos. Cuando el dispositivo está configurado en el modo de microcomputador, el procesador selecciona la memoria interna del programa. Estando el dispositivo en este modo, el MEN se activara y las lineas de direcciones de la A l l hasta la A0 sacarán el valor correspondiente que tenga el contador de programa, para que la instrucción sea leída por la memoria de programa interna. Hay que aclarar que cuando la señal del MEN se activa, las señales del WE o DEN no se activan. El MEN sera activo bajo para un ciclo de reloj, excepto cuando una función de 1/0 sea activada mediante una instrucción I N , OUT, o TBLW. En estas instrucciones multiciclo, la sena1 de MEN

bajará durante los ciclos de reloj en los cuales WE o DEN no estén abajo. En la figura 2, se dá un ejemplo de la expansión de memoria de programa externa.

Page 15: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p i t u l o 2 o O r g a n i z a c i 6 n d e l a memoria e n e l T M S 3 2 0 1 0 11

TMS32010 LINEA DE DATOS 2 6 c / '

4K X 16 / 9

RAM ESTATICA

MC/MP LINES DE DIRECCIOjJES

12 -

WE MEN -'

OUTPUT ENABLE CHIP WRITE

SELECT ENABLE

PARA R A M I

F i g u r a 2 . - Expansión de memoria e x t e r n a

MOVIMIENTO DE DATOS

E1 TMS32010 está provisto de instrucciones para el

movimiento de los datos en la RAM interna. La instrucción DMOV (mueve dato), es muy empleada en la implementación de algoritmos que usan la operación de retardo Z-l, tales como la convolución y filtrado digital donde los datos son sometidos a través de una ventana. La función de DMOV sobre la RAM interna, permite que una palabra sea copiada desde una localidad de memoria (de la RAM interna) hacia la siguiente localidad de memoria mayor, mientras el dato direccionado es operado en el mismo ciclo de reloj. La instrucción LTD (carga el registro T, acumula el producto previo y mueve el dato) también usa la función de movimiento de datos.

MAPEO DE LA MEMORIA

E1 TMS32010 contiene tres espacios de direcciones por separado para la memoria de programa, para la memoria de

Page 16: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p i t u l o 2 o O r g a n i z a c i 6 n d e l a . m e m o r i a e n e l TMS32010 12

datos, y para las funciones de I/O, tal como lo muestra la figura 3. La memoria de programa está configurada de acuerdo al estado que se tenga en el pin MC/MP1.

, PROGRAMA o(’oooo) ESPACIO DE R MEMOIA

EXTERNA 1523(>05F3) 1524(>05f4) RESERVADO

ARA PRUEBAS 1535(>05FF) 1536 (>0600) ESPACIO DE U MEMORIA

EXTERNA 4 095 (>OFFF)

MCjMP = 1

o (>OOOO)

4095(>OFFF)

PROGRAMA

ESPACIO DE MEMORIA EXTERNA

MC/MP = O MODO DE MICROCOMPUTADOR M O W DE MICROPROCESAWR

o ( > O O O O )

7 (>0007) PAGINA O

127 (>007F) 128(>0080) PAGINA 1 143(>008F) U Figura 3.- Mapeo de memoria para el 32010

lVer sección MEMORIA DE PROGRAMA de este mismo capítulo.

Page 17: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 2 o O r g a n i z a c i 6 n d e l a m e m o r i a e n e l T M S 3 2 0 1 0 13

REGISTROS AUXILIARES

E1 TMS32010 cuenta con dos registros auxiliares de 16

bits (ARO y AR1). En esta secci6n se discute como se seleccionan estos registros y cuales funciones realizan. Los registros auxiliares se pueden usar para dieccionar indirectamente los datos de la memoria, almacenar datos temporalmente y para algún control de lazo (loop). El direccionamiento indirecto permite la colocación de la dirección de la memoria de datos de algún operando de instrucción dentro de los ocho bits menos significativos de un registro auxiliar. Los registros se seleccionan mediante un simple bit en el apuntador de registro auxiliar (ARP) el cual se carga con un valor de o ó 1, designando a A R O o A R 1 respectivamente. El ARP es parte del registro de estatus y puede almacenarse en memoria. Cuando los registros auxiliares son autoincrementados o decrementados mediante el empleo de una instrucción de direccionamiento indirecto o mediante una instrucción BAN2 (branch on auxiliary register not zaro) , los nueve bits mas bajos resultan afectados (ver porción de contador de algún registro contador de 9 bits, como lo muestran las

j CONTADOR - 15 9/ 8 7 O

DIRECCIONAMIENTO - INDIRECTO

Figura 5. - Contador del registro

figura 5 ) . Esta auxiliar es un figuras 6 y 7.

auxiliar

Page 18: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p f t u l o 2 o O r g a n i z a c i 6 n d e l a m e m o r i a e n e l TMS32010 14

15 8 O

1 1 1 1 1 1 1 1 1

INCREMENTO

15 8 I o I NO AFECTADO 0 0 0 0 0 0 0 0 0

AR

Figura 6.- Direccionamiento indirecto con autoincremento

15 8 O

15 8 I O I 0 0 0 0 0 0 0 0 0

Figura 7.- Direccionamiento indirecto con autodecremento

Los siete bits mas altos de los registros auxiliares no se ven afectados cuando ocurre una operaci6n de autoincremento o decremento. Los registros auxiliares se pueden salvar en la memoria de datos mediante la instrucción SAR (store auxiliary register) y también se pueden restablecer mediante la instruccih LAR (load auxiliary register). La instrucción BANZ le permite a los registros auxiliares ser empleados como un contador en lazo (loop). BANZ revisa si un registro auxiliar es cero y si no lo es, el registro se decrementa y brinca hacia donde se indique.

Page 19: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p í t u l o 2 o O r g a n i z a c i 6 n d e l a m e m o r i a e n e l T M S 3 2 0 1 0 15

MODOS DE DIRECCIONAR LA MEMORIA

E 1 TMS32010 puede direccionar hasta 4K palabras en la

memoria de programa y hasta 1 4 4 palabras de memoria de datos. Se pueden usar tres formas de direccionar los operandos de instrucciones: direccionamiento directo, indirecto e inmediato. La figura 8 ilustra estos tres modos de direccionamiento.

INSTRUCCION

DIRECIONAMIENTO DIRECTO

DIRECCIONAMIENTO INDIRECTO

OPERANDO INMEDIATO

CODIGO DE OPEFiACION drna DP

I

INSTRUCCION

I CODIGO DE OPERACION I ARP I

OPERANDO

INSTRUCCION

CODIGO DE OPERACION OPERANDO

Figura 8 . - Métodos de direccionar los operandos de instrucción

En el modo de direccionamiento directo, el bit asignado al apuntador de página de memoria selecciona ya sea la página O que contiene las localidades de memoria de la O

hasta la 127 o la página 1 que contiene las localidades de la 128 a la 143. La direccih de memoria de datos (dma), especificada por los siete bits menos significativos de la instrucción concatenada con la página de datos (DP), direccionan la palabra deseada dentro de la p6gina 1.

Page 20: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

C a p i t u l o 2 o O r g a n i z a c i 6 n d e l a m e m o r i a e n e l TMS32010 16

El direccionamiento indirecto usa los ocho bits mas bajos de los registros auxiliares como las direcciones de la memoria de datos. Esto es suficiente para direccionar las 143 palabras de datos; la selecci6n de la paginacih no se hace necesaria en direccionamiento indirecto. El registro auxiliar en cuestión se selecciona mediante el apuntador de registro auxiliar (ARP) . En suma, los registros auxiliares se pueden emplear para autodecrementarse o autoincrementarse cuando se emplee cualquier instruccih indirecta. Cuando se usa un operando inmediato, esta se contiene asi misma dentro de la palabra de instrucción.

Page 21: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 3 0 Unidad Lhgica Aritdtica Central 17

3 UNIDAD LOGICA ARITMETICA CENTRAL

(ULAC)

CONTENIDO Unidad lógica aritmética central (ULAC) Shifters Unidad Lógica Aritmética (ULA) y el Acumulador Multiplicador, Registros T y P

UNIDAD LOGICA ARITMETICA CENTRAL

L a unidad lógica aritmética central (ULAC) contiene un

multiplicador de 16 X 16 bits, una unidad lógica aritmktica (ULA), un acumulador de 32 bits (ACC) y dos shifters. Esta sección describe los componentes del ULAC y sus funciones. La figura 9 es un diagrama a bloques que muestra los componentes del ULAC.

La siguiente secuencia de pasos ocurre en la implementación de una tipica operaci6n del ULAC:

1) El dato se recoge de la RAM sobre el bus de datos. 2) El dato se pasa a traves del shifter en donde se

puede recorrer a la izquierda de O a 16 bits, dependiendo del valor que se le especifique con la instrucción.

3) El dato entra en el ULA en donde es manipulado y cargado en el acumulador.

Page 22: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

4) El resultado que se obtiene en el acumulador se pasa a traves de un "left-shifter" presente a la salida del acumulador para ayudar en el escalamiento de los resutados.

MULTIPLICADOR

BUS DE PROciRAMA 1

6

BUS DE DATOS

"I

I1 SHIFTER ( O , 1, 4)

Figura 9 . - Unidad 16gica aritmética central ( U L A C )

Page 23: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 3 0 Unidad Ugh Aritmctica Central 19

5) El resultado se almacena en la RAM de datos. Dado que el acumulador tiene un ancho de 32 bits, el resultado se debe almacenar en dos partes por igual.

SHIFTERS

E 1 dispositivo dispone de dos shifters para la

manipulación de los datos: un barrel shifter para el corrimiento de los datos en la RAM dentro del ULA y un shifter paralelo para el corrimiento del acumulador dentro de la RAM de datos (ver la figura 9). El barrel shifter tiene una entrada de 16 bits conectada hacia el bus de datos y una salida de 32 bits conectada hacia el ALU. El barrel shifter produce un corrimiento hacia la izquierda de O a 16 bits sobre los datos que sean cargados dentro de él, restados a él o sumados al acumulador mediante el empleo de las instrucciones LAC, SUB y ADD.

UNIDAD LOGICA ARITMETICA (ULA) Y EL ACUMULADOR

E 1 ULA y el acumulador tienen una longitud de 32 bits e

implementan un rango amplio de funciones lógicas y aritméticas las cuales se ejecutan en un solo ciclo de reloj. Una vez que la operación se pone en marcha dentro del ULA, el resultado se transfiere al acumulador en donde ocurren las operaciones adicionales, tales como corrimientos. El dato que se mete al ALU se puede escalar por el barrel shifter.

Page 24: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 3 0 Unidad Ugica Aritnlctica Central 20

El ULA es una unidad 16gica aritmetica de prop6sito general que opera con datos de una longitud de 16 bits, el cual produce resultados de 32 bits. El ULA puede sumar, restar y operar con funciones lógicas. El acumulador siempre se utiliza como destino y es el operando primario. El resultado de las operaciones lógicas se muestran en la tabla 1. Un valor en la memoria de datos (ha) es el operando en la parte baja del acumulador (bits del 15 al O ) . El cero es el operando de la parte alta del acumulador.

I FUNCION IBITS DEL ACC 31-16 BITS DEL ACC 15-0 I XOR (O) .XOR. (ACC(31-16)) (&M) .XOR. (ACC(15-O) AND (O) .AND. (ACC(31-16)) (&M) .AND. (ACC(15-O)) OR ( O ) .OR. (ACC(31-16) ) (a) .OR. (ACC(15-O) )

Tabla 1. Resultados en el acumulador de una operrcf6n 16gi ca

Los 32 bits del acumulador almacenan la salida del ULA y es con frecuencia entrada hacia el ULA. El acumulador está dividido en dos palabras de 16 bits para almacenarse en la memoria de datos. Las instrucciones SACH y SACL se usan para almacenar tanto la parte baja como la parte alta del acumulador en la memoria de datos.

MULTIPLICADOR, REGISTROS T Y P

E1 TMS32OlO utiliza un multipicador (ver figura 9), el cual es capaz de calcular un producto de 32 bits en un

Page 25: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 3 Unidad Lbgica Aritmdtica Central 21

solo ciclo de máquina. Los siguientes dos registros est6n asociados con el multiplicador:

0 Un registro (T) temporal de 16 bits que mantiene uno de los operandos para el multiplicador, y

0 Un registro producto (P) de 32 bits que mantiene el producto.

Para poder usar el multiplicador, primeramente se debe cargar un operando dentro del registro T desde el bus de datos usando alguna de las siguientes instrucciones: LT, LTA o LTD. Luego, la instruccih MPY (multiplica) o MPYK

(multiplica inmediato) suministran el segundo operando (tambih desde el bus de datos) .

Page 26: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 4 Control d e l sitema 22

4 CONTROL DEL SISTEMA

CONTENIDO Control del sistema El contador de programa y el Stack Reset Registro de status

CONTROL DEL SISTEMA

E 1 control del sistema en el TMS32010 lo forman el contador de programa, el stack, la señal de reset externa, las interrupciones* y el registro de status. Esta sección explica el funcionamiento de cada uno de los componentes del sistema de control con excepción de las interrupciones.

CONTADOR DE PROGRAMA Y EL STACK

E 1 contador de programa y el stack inhiben la ejecución de brincos, llamadas a subrutinas, interrupciones e instrucciones table read/write. El contador de programa (PC) es un registro de 12 bits que contiene la dirección de la memoria de programa de la siguiente instrucción que va a ser ejecutada. El TMS32010 lee la instrucción desde la localidad de memoria de programa direccionada por el PC e incrementa el PC para leer la siguiente instrucción. El PC se inicializa a cero activando la línea de reset.

'Las intcrmpciones no se vcrhn en este documento ya que no se present6 la necesidad de emplearlas, ver refcrencia (l), en bibliografia.

Page 27: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 4 control del sitema 23

El TMS32010 utiliza una arquitectura harvard modificada en la cual la memoria de datos y memoria de programa caen en dos espacios separados, permitiendo un traslape completo en el fetch y ejecuci6n de las instrucciones (ver figura 10) . En la figura se observa que a la caida del reloj de salida (CLKOUT) , el contador de programa se carga con la direcci6n de la inst.rucci6n (load PC 2 ) para prerecogerla mientras la instruccibn en proceso (execute 1) es decodificada y ejecutada. Luego, se recoge la siguiente instrucción (fetch 2 ) mientras la instruccih en proceso se continua en ejecuci6n (execute 1). Aunque otros prefetch ocurran (fetch 3), la instruccih en proceso (execute 2) y la instrucción previa siguen en e j ecuci6n.

CARGA PC 1 +-, FETCH 1 -

c"-----------+ CARGA PC 2 c)

EJECUCION 1

c"----------) FETCH 2

EJECUCION 2 ___1 CAFtGA

cj PC 2

FETCH 3 - EJECUCIO 3 -

Figura 1 0 . - Arquitectura Harvard

RESET

E 1 reset (RS) es una interrupcibn externa no enmascarable que se puede usar en cualquier momento

Page 28: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 4 0 Control del sitema 24

para poner al TMS32010 en un estado conocido. El reset se aplica tipicamente despuCs de encender el sistema o cuando este se encuentra en un estado aleatorio. La entrada del reset se debe mantener en un estado bajo minimamente durante cinco ciclos de reloj. Dando a la sefial de reset un nivel bajo causa que el TMS32010 termine con la ejecuci6n y el contador de programa se pone en cero. El RS afecta varios registros y bits de status. Después de que el sistema es encendido, el estado del procesador es indeterminado. Para una correcta operaci6n del sistema, este debe de recibir una sefial de reset en el momento de energizarlo.

Cada vez que se presenta una sefial de reset, ocurre lo siguiente:

1) Las líneas de control DEN, WE y MEN se fuerzan a un estado alto.

2) El bus de datos D15-DO se colocan en un estado de impedancia alta.

3 ) El contador de programa (PC) se pone en cero, y el bus de direcciones All-A0 se mantienen en cero hasta que ocurre un ciclo de reloj después de que el RS baja.

4 ) Las interrupciones se desabilitan y el registro de banderas de interrupciones se pone completamente en ceros.

REGISTRO DE STATUS E 1 registro de status consiste de 5 bits de status. Estos bits de status se pueden alterar individualmente a través de instrucciones dedicadas. La instrucción SST, por ejemplo, se usa para almacenar el registro de status en la memoria de datos. La instruccih LST carga el registro de status desde la memoria de datos,

Page 29: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 4 Control del sitema 25

con excepci6n del bit INTM. Este bit se puede cambiar solo con las instrucciones EINT/DINT (enable/disable interrupt). En esta forma, el status actual del dispositivo se puede salvar antes de hacer alguna llamada de interrupci6n o subrutina. La figura 11 muestra la posici6n de los bits de status tal y como aparecen en la RAM de datos despues de una ejecuci6n de una instrucci6n SST.

Figura 11.- Organización del registro de status.

Page 30: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 5 Funciones de EnWSalida en el TMS32010 26

5 FUNCIONES DE ENTRADNSALIDA EN EL TMS32010

CONTENIDO Funciones de entrado y salida (E/S) Operación de E/S Operación de las instrucciones Table Read/Table Write

FUNCIONES DE ENTRADNSALIDA

E 1 TMS32010 implementa una variedad de funciones de

E/S diferentes para la comunicaci6n con dispositivos externos. El bus paralelo de datos se puede utilizar para realizar funciones de (E/S) en solo dos ciclos usando las instrucciones IN y OUT. Los puertos de E/S se direccionan mediante los tres bits menos significativos del bus de direcciones (PA2-PAO). La entrada y salida de datos hacia y desde un perifbrico se controla mediante las instrucciones IN y OUT. El dato se transfiere sobre el bus de datos hacia y desde la memoria de datos mediante dos strobes independientes: data enable (DEN) y write enable (WE). El bus bidireccional de datos externo siempre se encuentra en un estado de impedancia alto, excepto cuando WE es activo (bajo). WE va hacia abajo durante el primer ciclo de la instrucción OUT y el segundo ciclo de la instrucción TBLW. El TMS32010 tiene disponible ocho lineas direccionables para funciones de E/S (ver figura 12).

Page 31: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 5 Funciones de Entrada/Salida en el TMS32010 27

DECODI- FICADOR PARA DIRECC.

DE PUERTO

DEN I

I ' WE

16 BITS DE

E/S POR PUERTO

Figura 12. Interfase para dispositivos externos

OPERACI~N DE ENTRADNSALIDA

L o s tres pins de dirección de puertos (PA2-PAO) sacan

la dirección de puerto durante las instrucciones I N y

OUT. La ejecución de una instrucción I N activa al DEN

para transferir el dato desde un dispositivo periférico hacia la RAM de datos (ver la figura 13). La instrucción I N es la única instrucción que activará la linea DEN. La ejecución de una instrucción OUT

activa WE para transferir datos desde la RAM de datos hacia un dispositivo periférico (ver figura 14). WE se activa únicamente durante las instrucciones OUT y

TBLW.

Page 32: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 5 0 Funciones de Entrada/Mida en el TMS32010 28

PREFETCH DE LA INSTRUCCION

DATO DE ENTRADA PREFETCH DE LA VALIDO SIGUIENTE

IN c"--------J - INSTRUCCION -

DEN U Figura 1 3 . - Tiempos de l a inrrtrucci6n I N (input)

DATO DE SALIDA DREFETCH DE

FETCH DE VALIDO LA SIGUIENTE LA INTR. OUT - INSTRUCCION - f"---------*

M E N I -1 1- WE U

figura 14 . - Tiempos de l a instruccih OUT (output)

Mientras los tres bits menos significativos del bus de direcciones (PA2-PAO) se usan como direcciones de puerto por una instrucción IN o una instrucción OUT, los bits restantes (los de mayor orden) del bus de direcciones (All hasta A3) se mantienen en un estado 16gico cero durante la ejecución de las instrucciones.

OPERACIONES TABLE READD'ABLE WRITE

Las instrucciones TBLR y TBLW permiten la transferencia de palabras entre la memoria de datos y

la memoria de programa. TBLR se usa para leer palabras desde la ROM interna o ROM externa dentro de la RAM de

Page 33: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 5 Funciones de EntraddSalida en el TMS32010 29

datos. TBLW se usa para escribir palabras desde la RAM de datos interna hacia una RAM de programa externa. La ejecución de la instruccibn TBLR genera la activacibn de la linea MEN para leer la palabra desde la memoria de programa (ver la figura 15). La ejecución de la instrucción TBLW activa la linea WE (ver la figura 16).

DATO PREFETCH TRANSFERIW PREFETCH

DE LA DESDE LA DE LA INSTRUCCION PREFETCH MEMORIA DE SIGUIENTE

”” TBLR FANTASMA PROGRAMA INSTRUCCION

MEN

F i g u r a 15.- Tiempo de l a instrucción TBLR

PREFETCH DATO TRANSFERIDO

DE LA HACIA LA PREFETCH DE

INSTRUCCION PREFETCH MEMORIA LA SIGUIENTE

TBLW FANTASMA DE PROGRAMA INSTRUCCION -“

MEN

F i g u r a 16. - Tiempo de l a instrucción TBLW

Hasta aquí se ha dado una descripción más o menos detallada de la arquitectura y funcionamiento del DSP

TMS32010 y de como este procesador emplea algunas de las instrucciones que se usaron en los algoritmos de prueba’. Profundizar en su arquitectura y en la explicación de todos sus mnem6nicos no estría de más

‘Estos algoritmos de prucba se vcriin con mhs dctalle en cl capitulo 7.

Page 34: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 5 Funciones de Entrada/&Iida en el TMS32010 30

si este fuera el objetivo de la tesis, pero, si el lector est& interesado en ello, se le recomienda haga uso de la bibliografía correspondientez.

2First-Gcncration TMS32010 User's Guide.- Digital Signal Processor Products.- Texas Instruments- abril 1988.

Page 35: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Circuiteffa del sistema (Hardware) 31

6 CIRCUITERIA DEL SISTEMA ( HARDWARE )

CONTENIDO Revisión general del sistema (diagrama a bloques) Revisión detallada del sistema (diagrama esquemático) dispositivos que conforman cada secci6n del sistema .Funcionamiento del sistema

OEsDecificaciones de memorig ~Descri~ci6n funcional %eraci6n del circuitq

REVISIóN GENERAL DEL SISTEMA (DIAGRAMA A BLOQUES)

E n esta sección haremos una revisión general de 1

sistema por bloques para después entrar en detalle con cada sección en los siguientes capítulos. La figura 17 es una representación a bloques de las partes que constituyen el total del sistema independiente para el procesamiento digital de sefíales en tiempo real, basado en el DSP TMS32010 de TEXAS INTRUMENTS. Como se puede observar en el diagrama, el sistema cuenta con un canal de datos, que es por donde el procesador va a recibir tanto las instrucciones como los datos a procesar y es también por donde va a enviar los datos procesados a los dispositivos periféricos de salida. Cuenta con un canal de

Page 36: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

direcciones, que le permite enviar las direcciones de localidad de memoria hacia las unidades de memoria externa, que en este caso es una unidad de memoria RAM para el almacenamiento de datos y una unidad de memoria EPROM para el almacenamiento del programa. El sistema cuenta tambih con un canal para las lineas de control en donde el procesador puede accesar todos y cada uno de los dispositivos perifbricos de manera ordenada.

CONVERSION

ENTRADAS ANALOGICAS ( 8 CANALES)

+ SALIDA ANALOG1 CA

Figura 17.- Diagrama a bloques del sistema independiente para el procesamiento digital de sefiales

Este sistema tiene ocho canales de entrada anaMgica, en donde son controlados mediante el bloque mux y las entradas pueden estar multiplexhndose. La salida del mux es convertida de analógica a digital a través del bloque A/D.

Page 37: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Como se observa en el diagrama a bloques, la frecuencia con la cual el A/D tiene que convertir se controla mediante una etapa temporizadora que marca la pauta de conversión. Esta, a su vez, es controlada por el bloque de micro-interruptores (dip-switch) . El sistema est& capacitado para brindar resultados despues de que los datos se han procesado y para ello, el sistema cuenta con una etapa de conversión D/A, en donde los datos son transformados de digitales a analógicos.

REVISIóN DETALLADA DEL SISTEMA (DIAGRAMA E S Q U E a T I C O )

.Dispositivos que conforman cada secci6n del sistema:

E n esta sección se explicar& el funcionamiento del

sistema basándonos en los diagramas esquemáticos que se muestran en las figuras 18a,b,c,d y e. Estos diagramas estarán divididos en secciones encerradas mediante cuadros de lineas punteadas para facilitar su explicación. En ellos se muestra con todo detalle la circuiteria que compone al sistema en su totalidad. En la figura 18a se pueden apreciar las 6 secciones que la componen: la sección de RESET, OSCILADOR, PROCESADOR, RETENEDOR DE DIRECCIONES, MEMORIA RAM Y MEMORIA EPROM. La sección de RESET est6 compuesta por un circuito rc que mantiene la linea RS del TMS en un estado alto, pero cuando se presiona el interruptor (swl) el estado de la linea RS del TMS permanece en bajo por un minimo

Page 38: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Circuiteria del sistema (Hardware) 34

de cinco ciclos de reloj, lo cual es un requisito para que el TMS acepte ser inicializadol. La sección OSCILADOR está compuesta por un cristal y un circuito rc que brinda al TMS una frecuencia de entrada de lOMHZ a travks de la linea CLKIN. La secci6n PROCESADOR es propiamente el TMS32010 en donde se nos muestra la organizacibn de sus canales (direcciones, datos y lineas de control). La secci6n RETENEDOR DE DIRECCIONES está compuesto por dos "latches 74als373" que sirven para retener las direcciones enviadas por el procesador dentro del bus o canal de direcciones. La sección MEMORIA RAM está compuesta por dos circuitos integrados "6116" de memoria RAM estática. Cada chip tiene una capacidad de almacenamiento de 2K- palabras con una longitud de 8 bits cada palabra (2048-palabras de 8-bits). El sistema emplea dos memorias de este tipo debido a que el TMS puede accesar datos de hasta 16 bits de longitud. La sección MEMORIA EPROM la componen dos chips "2732" cada chip tiene una capacidad de almacenamiento de 4K- palabras x 8 bits de longitud (4096-palabras de 8-bits cada una). La razón por la cual el sistema emplea dos memorias de este tipo es porque el TMS puede accesar datos de 16-bits de longitud máxima.

El diagrama de la figura 18b la forman 8 secciones: CONVERSI6N A/D, RETENEDOR DE MUESTRAS, ACOPLADOR DEL FILTRO, FILTRO PASABAJAS, MULTIPLEXADO DE ENTRADAS, RETENEDOR DEL BIO, ACOPLADORES DE ENTRADA, CONTROL DEL MULTIPLEXADO. La sección de CONVERSI6N A/D está compuesta por el convertidor "ADC80" que tiene una resolución de 8 bits ,una entrada analógica de -1Ov a lOv, la salida e s t á complementada a dos y tiene un tiempo de conversi6n de

'Para mayorcs detalles a cerca del funcionamiento del reset, refidrase al capítulo 4 secci6n RESET.

Page 39: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Circuitería del sistema (Hardware) 35

25ps2. Esta secci6n cuenta tambih con una compuerta NAND que mas adelante en este mismo capítulo se explicar& cual es la funci6n que realiza. La secci6n RETENEDOR DE MUESTRAS emplea dos chips "latch 74als534". Estos dispositivos retienen y

controlan el transito de datos en cada conversi6n que realiza el convertidor A/D dentro del bus de datos del sistema. La secci6n ACOPLADOR DEL FILTRO lo compone únicamente un amplificador operacional "TL074" en configuracibn de seguidor de voltaje para acoplar las impedancias entre las etapas de el multiplexor y el filtro. La sección de FILTRO PASABAJAS es un operacional "TL074" configurado como un filtro activo pasabajas de primer orden y con una frecuencia de corte de 400Hz. La sección de ACOPLADORES DE ENTRADA son dos operacionales "TL074" tambih en configuracih de seguidor de voltaje para aumentar la impedancia de entrada del multiplexor. La sección MULTIPLEXADO DE ENTRADAS est6 compuesto por un multiplexor "4051" de ocho canales a uno. La sección de CONTROL DEL MULTIPLEXADO es un "Latch 74als373" que retiene un dato para seleccionar algún canal de los ocho que contiene el multiplexor. La sección RETENEDOR DEL BIO la conforman dos chips, un flip-flop-JK "741~112" y un flip-flop-tipo D que mantienen la señal de BIO (fin de conversión del A/D) hasta que sea leído por el DSP.

En la figura 18c aparecen únicamente 2 secciones: el SELECTOR DE FRECUENCIA DE MUESTREO y el GENERADOR DE FRECUENCIA DE MUESTREO. La sección de SELECTOR DE FRECUENCIA DE MUESTREO esta compuesto por dos "Dip-Switch" de ocho interruptores cada uno, esto con el fin de proporcionar un rango

*Para mayor información acerca de cste convertidor, referirse al manual del fabricante.-Data- Adquisition. Data Book 1982.- Analog Devices.

Page 40: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 CircuiterIa d e l sistema (Hardware) 36

amplio de constantes para indicar la frecuencia de muestre0 a ejecutar. La sección GENERADOR DE FRECUENCIA DE MUESTRE0 la forman cuatro chips contadores "up down 74als193" y un flip-flop-JK junto con algunas compuertas para controlar y brindar la frecuencia con la que se van a adquirir los datos.

La figura 18d muestra una sola secci6n: el MANEJADOR DE PUERTOS. Esta sección emplea alguna 16gica de control (compuertas lógicas) y el decodificador "74als138". La función de esta etapa es la de seleccionar y activar algunos de los dispositivos perifericos del sistema.

En el diagrama de la figura 18e aparecen tres secciones: el D/A, ACOPLADOR A la sección cuatro "latch una sincronía

SINCRONIZADOR DE MUESTRAS, CONVERSI6N DE FILTRO y FILTRO PASABAJAS. SINCRONIZADOR DE MUESTRAS la forman 741~373" su función es la de mantener entre las muestras de entrada y las

muestras de salida. La sección CONVERSI6N D/A la componen una compuerta NOT, un convertidor digital a analógico y un amplificador operacional "TL074" en configuración de convertidor de corriente a voltaje. El convertidor A/D es el "DAC565A" que cuenta con una resolución de 12 bits, una salida de -lOV a lOV, una entrada digital en complemento a dos y una velocidad de conversión de 250 qs. La función de esta sección es la de pasar los datos en formato Q1S3 de digital a analógico. Por último, tenemos las secciones ACOPLADOR DE y FILTRO PASABAJAS que están integradas por los elementos que las secciones anteriores del nombre.

FILTRO mismos mismo

3En el capitulo siete se e.xplica cn que consiste el formato Q15,

Page 41: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Cirmitería del sistema (Hardware) 37

*Funcionamiento del sistema:

OEspecificaciones de memoria Si volvemos a revisar el diagrama de la figura 18a, vemos que el procesador TMS32010 tiene el pin MC/MP conectado a tierra, con esto el procesador queda configurado bajo el modo de micropro~esador~ empleando los 4K palabras de la memoria de programa externa. El circuito está configurado con la mitad de direcciones para accesar la memoria RAM y la otra mitad de las direcciones se deja para accesar la memoria EPROM. Las RAM estáticas que se usaron fueron las 6116 de 2K x 8 y las EPROM 2732 de 4K x 8 estas dos últimas de Texas Instruments.

oDescripci6n funcional En este mismo diagrama, vemos cuatro chips de memoria conectados al TMS32010, un par de ffbufferstt que funcionan como cerrojos en el canal de direcciones y una lógica que controla los "buffers" en el canal de direcciones y que activa el tercer estado en la salida de las memorias. Las primeras 2K palabras de las EPROM están localizadas en las direcciones de la OH a la 7FFH,

previniendo cualquier conflicto con los puertos de E/S si se llegan a presentar en el sistema y la RAM está localizada en las direcciones de la 800H a la FFFH. Las EPROM y LAS RAM se seleccionan con el bit más significativo del bus de direcciones a la salida del TMS mediante el empleo de un inversor (U2D,U2E, U18A) . En el diagrama de la figura 18b tenemos el circuito que controla a los dispositivos periféricos, ya sean de entrada o de salida. El acceso a estos dispositivos se hace mediante el manejo de los puertos de entrada y

4Estos modos de operaci6n del TMS32010 fueron explicados ya en el capítulo 2 d d n MEMORIA DE PROGRAMA.

Page 42: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 0 Circuiterla del sistema (Hardware) 38

salida (E/S). La relaci6n de acceso a los puertos del sistema es la que se muestra en la siguiente tabla:

ENTRADA EN EL MULTIPLEXOR DESOCUPADO 2 DESOCUPADO INICIO DE CONVERSI6N EN

EL CONVERTIDOR A/D

Tabla 2.- Asignación de los diferentes puertos

El procesador puede tener acceso hacia algunos de los dispositivos perifkricos del sistema mediante el empleo de las instrucciones TBLW, TBLR, que son muy similares a las instrucciones OUT e IN. El circuito de la figura 18b es necesario para cuando se emiten las instrucciones TBLW y TBLR por el TMS. Las tres primeras lineas del bus de direcciones (lineas de la PA2 a la PAO) sacan la dirección del puerto durante la ejecución de una instrucción IN y OUT. La ejecución de una instrucción IN genera la activación de la linea DEN para la transferencia de datos desde un dispositivo periférico hacia la RAM de datos. La instrucción IN, es la única instrucción que activarti la linea DEN. La ejecución de la instrucción OUT genera la activación de la linea WE para transferir datos desde la RAM de datos hacia algún dispositivo perif6rico. El WE se activará únicamente para cuando se ejecute la instrucción OUT y TBW. En el diagrama, U31 se utiliza para revisar que los nueve bits más significativos de la dirección emitida por el TMS sean cero, activando así a U30B el cual activará al puerto que corresponda la dirección de los

Page 43: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 0 Circuiteria del sistema (Hardware) 39

tres bits menos significativos de la direcci6n emitida por el TMS y que estard en funci6n de las instrucciones IN o OUT.

OOperaci6n del circuito Veamos de nuevo el diagrama de la figura 18a. El TMS32010 puede realizar una operaci6n de lectura ya sea desde la RAM (US, 6) o desde la EPROM (U4,S) presentando una direcci6n y un estado bajo en la linea de control MEN (ver figura 19). Ya que la linea de control WE que va hacia los latches de direcciones (U3,4) est& en un estado alto, estos latches son transparentes para el canal de direcciones y las direcciones se presentan en las memorias despues de un pequeño retardo. Después del retardo para accesar la memoria, el dato se hace presente internamente pero no se presenta a la salida de la memoria, sino hasta que el tercer estado a la salida de la memoria se desabilite mediante la linea de control RDEN. La seiial RDEN se genera para que las salidas de la memoria permanezcan deshabilitadas durante una operaci6n de lectura y hasta que el estado de la señal CLKOUT suba. Esto asegura que para memorias muy veloces, si la señal de control MEN ocurre prematuramente, el bus de datos no entre en conflicto cuando una operaci6n de lectura suceda de una operación de escritura. Despuds de que el CLKOUT sube, las salidas de las memorias se activan. Al final del ciclo CLKOUT, el TMS32010 requiere que el dato leido se mantenga hasta que la señal CLKOUT baje o MEN suba, lo que ocurra primero. Esto garantiza que RDEN no suba hasta que cualquiera de las dos últimas seiiales (CLKOUT o MEN) cambie su estado. Las operaciones de escritura se llevan a cabo de una manera muy similar a las de lectura, con la excepción de que WE es la que se activa en lugar de MEN (ver figura 20) .

Page 44: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Cidtería del sistema (Hardware) 40

CLKOUT T DIRECCION

DEL THs32010

VAL1 Do

DIRECCION DE

MEMORIAS VALIDO

MEN "\ r RDEN "\ /-

DATO DEL THs32010

DATO DE MEMORIAS

Figura 1 9 . - Tiempos de lectura de memoria

CLKOUT m DIRECCION

DEL TMS32010

V A L I W

DIRECCION DE

MEHORIAS VALIDO

/-

WEB

DATO DEL TMS32010

MEMORIAS DATO DE

Figura 20.-

VAL1 Do

Tiempos

,-<=>-

de escritura en memoria

Ya que l o s "buffers" de direcciones (U3,4) están controlados por la linea de control WEB, la cual se

Page 45: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Circuitería del sistema (Hardware) 41

encuentra en un estado alto para la primera mitad del ciclo, los "buffers" son transparentes cuando la dirección es aún válida. Luego, cuando WEB baja, la dirección permanece "latchada" hasta después de que WE baja.

En el diagrama de la figura 18b podemos ver que estdn conectados dos seguidores de voltaje ( U 1 4 C , D ) a dos de las entradas del multiplexorS (U34). Los operacionales aumentan la impedancia de entrada del multiplexor para evitar que la fuente de donde se esté tomando la señal sobrecargue al sistema. Las entradas del multiplexor (x0 hasta x7) pueden seleccionarse mediante el dato que se le envíe al multiplexor (entrada A , B , C ) atravkz de U36. Por ejemplo, si se quiere seleccionar el canal X1, entonces el TMS envía sobre el bus de datos el número 1 especificando el puerto en la instrucci6n OUT (OUT 1 , P l ) activando asi a Y1. Y1 es recibido por una de las entradas de U 1 5 C . A s i , el multiplexor deja pasar la señal a traves de la entrada X1, para canalizarla hasta el acoplador y el filtro pasabajas. U14 es un operacional que acopla la impedancia de salida del multiplexor con la impedancia de entrada del filtro pasabajas para evitar la atenuación de la sefial a la entrada del filtro. El filtro pasabajas (U16C) está diseñado para cortar a una frecuencia de 400Hz, porque las señales que se procesaron no requerían de un mayor ancho de banda. La salida del filtro va directamente hasta la entrada del convertidor analógico a digital ( U 2 5 ) , en donde este la recibe para digitalizarla. La salida de la compuerta NAND ( U 1 8 B ) está conectada a la linea de control de inicio de conversión (SOC) en el convertidor, en donde se le indica a que frecuencia tiene que convertir (frecuencia de muestreo). Esta compuerta NAND recibe dos señales, Y 2 y C S . si se

SEn el diagrama se muestran únicamente dos de las entradas del multiplexor ya que &lo se ocuparon estas para probar los algoritmos.

Page 46: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 6 0 Cirmitería del sistema (Hardware) 42

quiere una frecuencia de muestreo periódica, entonces el inicio de conversi6n se da a traves de la linea CS, pero si no se requiere de periodicidad en la frecuencia de muestreo, entonces el inicio de conversión se envía sobre la linea Y2 (puerto P2). Después de que el convertidor realiza una conversión, este lo indica mediante la linea fin de conversión (EOC) la cual es recibida por el inversor U2C. La salida del inversor la reciben los latch U26 y U27 para mantener cada conversión en el bus de datos hasta que sea leída por el TMS. El TMS recoge el dato de los latch mediante una operación de lectura empleando la instrucción IN y el puerto YO (IN DATO, PO) . La línea del puerto YO es enviada a U28A y como se trata de una operación de lectura, DEN se activa para indicar a los latch (U26 y U27) que saquen el dato hacia el bus de datos. La señal de fin de conversi6n (EOC) es tambien recibida por el flip-flop U24B y la salida de este entra al flip-flop U23A. Despues de cada conversión que realiza el A/D, el TMS recibe la seiial de BIO, que es retenida por U23A hasta que es detectada por el TMS

para saber que ya el dato est& sobre el bus de datos y

que puede ser leído. El diagrama de la figura 18c es la etapa que se encarga de generar una frecuencia de muestreo síncrona en la lectura y escritura de datos en los convertidores del sistema. A los contadores U19,20,21,22 se les puede indicar el conteo regresivo máximo que pueden ejecutar mediante los "Dip-Switch" U32,33. Los contadores son descendentes de 16 bits y emiten un pulso (en BO) cada vez que la cuenta regresiva del valor (valor de la frecuencia de muestreo) indicado por l o s "dip-switch" llega a cero. El valor de la frecuencia de muestreo se programa con los l'dip-switchll moviendo sus interruptores (ON-OFF) . La longitud del número mdximo que se puede obtener con estos "Dip-Switch" es de 16 bits. La relación que se

Page 47: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Circuitería del sistema (Hardware) 43

puede emplear para obtener el número que representa la frecuencia de muestreo en los "Dip-Switch" es la siguiente:

N - - Frec. CLKOUT Fm -1

En donde:

N = el valor representado por los "Dip-Switch" Fm = Frecuencia de muestreo que se desea obtener Frec. CLKOUT = Frecuencia del reloj de salida en el TMS

En este sistema el TMS emplea un oscilador de lOMHz y ya que la Frec. CLKOUT es un cuarto de la frec. CLKIN, entonces, la frec. CLKOUT = 2.5MHz. El rango de la frecuencia de muestreo es de 38.15Hz a 2.5MHz debido a que la constante N tiene una longitud de 16 bits. Como el convertidor A/D tiene un tiempo de conversión de 25p, el rango seguro de la constante N es de 62 (3EH) a 65535 (FFFFH) es decir, de 40.323KHz a 76.29Hz. El circuito empezará a contar cada vez que se le aplique la señal de reset. U35C recibe la señal de reset y esto provoca que los contadores carguen el número que le brindan los "Dip-Switch". Cuando los contadores han cargado el número, estos empiezan a generar un pulso en su pin BO. El pulso generado llega al pin CL en U24A en donde también se genera otro pulso en sus dos salidas (Q y Q) . Los pulsos que aquí se generan están sujetos a los contadores que son los que determinan la frecuencia de muestreo. Una de las salidas va dirigida hacia una de las entradas de U18B (ver figura 18b) que determina la frecuencia de muestreo en el convertidor A/D y la otra va dirigida hacia U12 y 13, que determina la frecuencia a la que deben presentarse los datos de salida. En el diagrama de la figura 18e, el convertidor D/A cuenta con dos buffers previos a él. Cuando se ejecuta

Page 48: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 6 0 Circuitería del sistema (Hardware) 44

una instrucci6n OUT con la direcci6n del convertidor, se escribe el dato emitido solamente en el primer buffer, de manera que el segundo buffer contiene el dato que se emiti6 con la instrucci6n OUT anterior a la actual. El dato que se almacena en el primer buffer se copiard al segundo en el momento de ejecutar una instrucción I N con la direcci6n del puerto que corresponde al convertidor A/D. Esta configuracibn del circuito asegura periodicidad tanto en la captura como en la salida de los datos. A la salida del convertidor aparece un seguidor de voltaje ( U 1 4 B ) para aumentar la impedancia de entrada al filtro pasabajas (U16D). La frecuencia de corte de este filtro es la misma que el anterior para evitar el fen6meno de aliasing en la salida anal6gica. En el diagrama de la figura 18d se muestra el circuito que se empleó para generar las sefiales que accesan los diferentes puertos asignados a los dispositivos que se muestran en la tabla 2.

Cada vez que se desea accesar uno de los puertos, el TMS envía la dirección correspondiente al puerto ya sea mediante una instrucción OUT o I N dependiendo si se trata de una función de escritura o de lectura. U 3 1 B y C sirven para asegurar que los nueve bits más significativos del canal de direcciones se mantengan en cero y U 3 0 A recibe la señal que determina si se trata de una escritura (WE) o una lectura ( D E N ) . U 2 9

recibe la dirección del puerto a través de sus lineas A , B y C. Cuando U 2 9 recibe la dirección y U 3 0 recibe cualquiera de las sefiales de escritura (WE) o de lectura ( D E N ) , la salida de U 3 0 activa las salidas que correspondan a la dirección de puerto (desde YO hasta Y71 para accesar algún dispositivo periférico.

Page 49: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

r 1 li I C I S I 9 1 ¿ I 8 -

t

E

3

-

Q

1 1 lW3tl OdW311 NA

lUlI3IO OlN3IWWS330Ud S3lWN3S 30

13 WUUd WW3lSIS

W T UUnbIj

U3Ia3UOI8 UIU3IN33NI

i f

.."

VJ d

n c e 1 .-N a 3

B Y .- VJ VJ

I

a s 'orz>ts

=?Tf f??f

\\\ \\

8 6 T T T T T T 9TT9 gn

LPSlCL

."""..."""".._______________._._.".. -4

ozn b AS

Page 50: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

I I

e I 7 I 6 I 5 I 4 I 3 I 2 I 1 i ..."""""...."...."~....._.______."..."".."......... 6r58r .:"" i.,.s """....". de fipC18a) DESDE: 7.8

OFFSET OUT PARATOR I N N ADJUST DO SPAN I N D 1

DIG SUPLY ANALOG SUPLY D 5 SHORT CYCLE 0 6 CLK INHIBIT D 7

DESDE: 7 , C

74ALS32 DESDE: 7.A de f i p C 1 8 r

SISTEMA PARA EL

DE SENALES PROCESAMIENTO DIGITAL

8 1 7 I 6 I I EN TIFVPO REAL "_ - 5 4 I 3 I ?- 1 'I

Page 51: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

I .................................................................... I DESDE: 7.R

I e I 7 I 6 I 5 I 4 I 3 I 2 I 1

3

'9' I , \;/u,,, 74LS04

1 74RLS04 I

!

Page 52: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 0 Circuitería del sistema (Hardware) 48

L

.................................................................

4 Ln O I- U W 3 n. W n o! O n a 7 w z L a

Page 53: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 Circuitería del sistema (Hardware) 49

A I O I m I

l

..". ..".

: o : : w : >

VI

U c VI W 3 I W

a

n

n a

U O

N H z o: O

u z H VI

I I

: ................................................................................................ :

L

J. I L

J ul a

,................." .......... i I i f +,,

I +

: u i o

U M

..............................

....... . VI

9 a a m a

n a VI

O U c J n L

.........

J

......................................

n I O I m 1 a

Page 54: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 6 0 Circuiteria del sistema (Hardware) 50

Enseguida se muestra una fotagrafía del sistema en donde se puede ver todo el hardware y las dimensiones del espacio que este ocupa.

Page 55: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

7 ALGORITMOS DE PRUEBA ( SOFTWARE )

CONTENIDO Implementación de un filtro digital FIR pasa-bajas

Resultados experimentales de: 0 Filtrado de una seilal seng

Implementación de un filtro adoptivo (Algoritmo LMS) 0 Resultados experimentales de:

0 pos seilales senoidales de iaual frecuencia v con diferente frecuencia 0 Dos senales cardiacas altamente correlacionadas o Dos sellales cardiacas debilmente COKelaCiOnadaS

E n este capitulo explicaremos el código de los

programas de los algoritmos de aplicación, así como también la implementación y funcionamiento de estos en el sistema.

IMPLEMENTACIÓN DE UN FILTRO DIGITAL FIR PASA-BAJAS

L a siguiente ecuación de diferencias puede ser

empleada para la implementación de filtros digitales FIR :

Page 56: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

. M

y(n) = E h (k) x (n-k) -.--."> Ecuacih (1) k= O

Donde : (M+1) = longitud del filtro h ( k ) = Respuesta al impulso unitario

En esta ecuación, el filtro FIR es simplemente una suma finita de pesos de las entradas previas con la actual. De la ecuación anterior, se puede ver que un filtro FIR tiene, como lo implica su nombre, una respuesta al impulso mitario de longitud finita. La ecuaci6n anterior se puede representar mediante la maya de la figura 2 1 .

z z 2 -1 -1 -1 2 -1

La figura 22 es un ejemplo de un filtro FIR de 5 O

orden y la figura 23 muestra una porción del c6digo que usa el TMS32010 en la implementación de este filtro.

Page 57: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

z z z z 2 -1 -1 -1 -1 -1

Figura 2 2 . - Representacih estructural de un f i l t r o FIR de longitud 5

* ESTA SECCI6N DE C6DIGO IMPLEMENTA LA SIGUIENTE ECUACI6N:

*x(n-4)h(4)+x(n-3)h(3)+x(n-2)h(2)+x(n-1)h(l)+x(n)h(O) = y(n) * S I GPTO

4

*

*

*

*

* *

*

IN XN,PA2

2 AC

LT XNM4 MPY H4

LTD XNM3 MPY H3

LTD XNM2 MPY H2

LTD XNMl MPY H1

LTD XN MPY HO

* OBTEN VALOR DE LA SIGUIENTE MUESTRA XN DESDE PUERTO PA0

PON EN CERO EL ACUMULADOR

* x(n-4)h(4)

* x(n-4)h(4) t x(n-3)h(3

* SIMILAR A LOS DOS ÚLTIMOS

1

PASOS ANTERIORES

APAC * SUMA EL RESULTADO DE LA ULTIMA MULT. CON EL ACUMULADOR

SACH YN, 1 * ALMACENA EL RESULTADO EN YN

OUT YN, PA2 * SACA RESULTADO POR PUERTO PA1

B SIGPTO VE A LEER EL SIGUIENTE PUNTO

Figura 2 3 . - Código del TMS para implamentar un f i l t r o FIR DE LONGITUD 5

Entender como funciona el código en este sencillo ejemplo es de gran importancia, ya que sera la base

Page 58: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

para poder digerir el código que se implement6 en los algoritmos que se usaron para probar el sistema. Hagamos algunas convenciones de notaci6n que nos servirán en la aplicaci6n de los algoritmos.

XN corresponde a x (n) XNMl correrrponde a x (n-1) I XNM2 corresponde a x(n-21, oto.

Es importante tomar en cuenta algunos conceptos básicos para la implementacibn de filtros FIR en el TMS32010:

1. La estrecha relación entre la respuesta al impulso unitario de un filtro FIR y la estructura del filtro, 2. El gran poder de las instrucciones LTD y MPY para estas implementaciones y

3. El ordenamiento que se le dé a las muestras de entrada en la memoria de datos del TMS32010, lo cual es critico para el procesamiento de sefiales en tiempo real.

La secuencia de entrada x(n) se almacena en la memoria como se muestra en la figura 24.

DIRECCION RAJA DE DATOS

DIRECCION ALTA DE DATOS

Figura 24.- Almacenamiento de la8 muestras de entrad8 en el "S32010 para un filtro FIR de longitud N

Page 59: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (Software) 55

En general, cada una de las multiplicaciones y

corrimientos de x (n) en la ecuación (1) , son implementadas por el par de instrucciones de la siguiente forma:

LTD XNMl MPY H1

La instrucción LTD XNMl carga el registro T con el contenido de la dirección XNM1, suma el resultado de la multiplicación previa con el contenido del acumulador y corre el dato de la dirección XNMl hacia la siguiente dirección superior de la memoria de datos. Si observamos el esquema de almacenamiento de la figura 24, vemos que este corrimiento consiste en pasar el dato de la dirección XNMl hacia la dirección XNM2. La instrucción MPY H1 multiplica el contenido del registro T con el contenido de la dirección H 1 . El corrimiento de los datos es la razón de emplear el esquema de almacenamiento de la figura 24 . Este esquema, que es crítico para el procesamiento digital de señales en tiempo real, asegura que la secuencia de entrada x(n), esta en la localidad correcta para la ejecución del siguiente paso a través del filtro. Comparando la ecuación (1) con el código de la figura 23, se puede ver la razón por la cual los datos se ordenaron de esta manera en memoria y la importancia del corrimiento que brinda la instrucción LTD. El código que se usó para la implementación del filtro digital F I R de orden 2 1 se muestra en la figura 2 5 .

Page 60: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 7 Algoritmos de prueba (Software) 56

8888.88.888888.8 .8888.88.888.88888888888888888.8*888*8888.888.888888888888888.

*NOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.1M.lO7 1 6 4 0 5 0 02-25-93 . PAGE 0001 8 - FILTRO FIR PASABMAS DE LONGITUD 21.

8 - FRECUENCIA DE MUESTRE0 DE IOKHZ. 8 - FRECUENCIA DE CORTE DE 205 HTZ . . .*88888*.88888...*8888888..88888..88888**8.888.888.888.8888888*8888888*888888*

8.88. ~ ~ ~ ~ ~ ~ ~ ~ 8 . * . ~ ~ 8 8 8 8 8 8 8 8 8 * 8 8 8 8 8 8 8 . 8 8 8 8 8 8 8 8 . ~ ~ 8 8 . ~ ~ . ~ ~ ~ ~ . ~ * ~ ~ ~ 8 8 8 * 8 8 8 8 8 8 8 8 8

0001 oo00 XN EQU O ;RESERVAMEMORIAPARAMUESTRAS DE ENTRADA 0002 O001 XNMl EQU 1 0003 0002 XNM2 EQU 2 O004 O003 XNM3 EQU 3 0005 O004 XNM4 EQU 4 O006 0005 XNMJ EQU 5 0007 0006 XNM6 EQU 6 0008 0007 XNM7 EQU 7 O009 0008 XNM8 EQU 8 0010 0009 XNM9 EQU 9 0011 OOOA XNMlO EQU IO 0012 000B XNMll EQU 1 1 0013 Oooc XNM12 EQU 12 0014 OOOD XNM13 EQU 13 0015 OOOE XNM14 EQU 14 0016 000F XNMl5 EQU 15 0017 0010 XNMl6 EQU 16 0018 0011 XNMI7 EQU 17 0019 0012 XNM18 EQU I8 0020 0013 XNM19 EQU 19 0021 0014 XNM2O EQU 20 0022 oo00 0023 0015 HO EQU 21 ;RESERVAMEMORIAPARACOEFICIENTES 0024 0016 H I EQU 22 002s 0017 HZ EQU 23 0026 0018 H3 EQU 24 0027 0019 114 EQU 25 0028 00lA H5 EQU 26 0029 00 lB H6 EQU 27 0030 OOlC H7 EQU 28 0031 OOlD € 1 8 EQU 29 0032 OOlE I19 EQU 30 0033 OOlF HI0 EQU 31 0034 oo00 0036 0021 YN EQU 33 ;RESERVA MEMORIA PARA RESPUESTA DE SALIDA 0037 0022 UNO EQU 34 0038 oo00 0039 o000 AORG O 0 0 4 O o o o O F 9 O O B INICIA

0041 0002 *DEBIDO A LA SIMETRIA DE LA RESPUESTA IMPULSO, SOLAMENTE SE 0001 000F

*ALMACENARON LA MITAD DE LAS MUESTRAS DE LA RESPUESTA IMPULSO. ESTO 'SIGNIFICA QUE: h(N-I-n) = h(n).

0042 0002 OOOC CHO DATA >oooC ;LOS COEFICIENTES ESTÁN EN MEMORIA DE 0043 0003 0032 CHI DATA X032 ;PROGRAMA PARA DESPUkS PASARl.CN A MEMORIA 0044 0004 006E CH2 DATA %E ;DE DATOS. 0045 0005 OOBD CH3 DATA W B D 0046000601l8 CH4 DATA M118 004700070179 CHS DATA >o179 0048000801D6 CH6 DATA M1D6 0049 0009 0228 CH7 DATA M228 005000OA0268 CH8 DATA X268 0 0 5 I OOOB O291 CH9 DATA X291 0052 Oooc 029F CHI0 DATA a 2 9 F 0053 OOOD 0055 WOE O001 CANAL1 DATA 1 0056 OOOF

Figura 25 (inicio).- C6digo que usa el TMS32010 para la implementaci6n del filtro digital FIR pasabajas de orden 21.

Page 61: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

VOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.I 84.107 1 6 4 0 5 0 02-25-93 PAGE 0002

0057 OOOF 7F8B INICIA SOW ;HABILITA MODO DE SOBREFLUJO.

0058 0010 6E00 LDPK O ;USA PAGINA DE DATOS O. 00590011 708F LARK 0.143 O 0 6 0 0012 O061 0012 7389 ZAC 0062 0013 6880 LARP O ;INICIALIZA TODA LA MEMORIA DE DATOS A 0063 0014 5088 LOOP SACL ;CERO, PAOINA DE DATOS CERO. O064OO15 F400 BANZ LOOP

0065 0017 O066 0017 6E00 LDPK O ;PAGINA DE DATOS CERO. 0067 0018 7F89 ZAC 0068 0019 0069 0019 7EOE LACK CANAL1 ;SELECCIONA EL CANAL XI DEL MULTIPLEXOR 0070 0 0 1 A 67 15 TBLR HO ;COMO ENTRADA ANAlhGICA 0071001B4915 OUT H0.1 0072 OOlC 007300lC7EOl LACK 1 0074 WID 5022 SACL UNO

0016 0014

0075 00lE 7020 LARK AR0,HIO ;CARGA REG-AUXO CON LA DIR. DE HIO. 0076 00lF 7lOB LARK A R 1 , I O ;CARGA REG-AUXI CON 10 PARA CONTADOR. 0077 0020 7EOD LACK CHI0 ;CARGA ACC CON LA DIR DE CHIO.

0078 0021 ‘CON ESTA SECCION DE C6DIGO SE PASAN COEFICIENTES A MEMORIA

0079 002 1 6880 CARGA LARP ARO ; L o APUNTADO POR ACC PONU) EN MEMORIA o08000226791 TBLR *,AR1 ;DE DATOS EN DIR. A R O . A R I ES EL 00810023lO22 SUB ONE ;DECREMENTA ACC POR UNO. 0082 0024 F400 BANZ CARGA

0083 0026 0084 0026 F600 ESPERA DIOZ SIGPTO ;CUANDO BIO SEA CERO VE A LEER LA

00850028F900 B ESPERA

O086 OO2A 0087 OO2A 4000 SIGPTO IN X N , O ;ASIGNA LA NUEVA MUESTRA A LA DIR. XN,

0088 002B 7F89 ZhC 0089 002c 0090 002C 6A I4 LT xnm20 ;DEDIDO A LA SIMETRíA h(0) - h(20) 0091 O02D6D15 MY H O ;x(n-20)h(20)

0092 OOZE 6B13 LTD XNM19 ;h(l)= h(19) 0093 002F 6D16 LIPY H I ;x(fl-l9)h(19)

*DE DATOS.

0025 002 1

0027 OO2A ;SIGUIENTE MUESTRA.

0029 0026

;LEE MUESTRA POR PUERTO PAO.

0094 0030 61312 LTD XNM18 ;SIMILAR A L O S PASOS ANTERIORES. 00950031 6D17 MPY HZ

0096 0032 601 1 LTD XNMI7 0097 0033 6DI 8 MPY H3 0098 0034 6Bl0 LTD XNMl6 0099 0035 6D19 MPY H4 0100 0036 6BOF LTD XNM15 0101 00376DIA MPY H5 O102 0038 6BOE LTD XNMl4

0104 003A 6BOD LTD XNM13 0105 0038 6D1C MPY H7 0106003C6BOC LTD XNMl2 0107003D6D1D 0108 003E 6BOD

MPY H8 LTD X N M l l

0109003F6DlE MPY H9

0103 0039 6 ~ 1 1 3 MPY H6

Continuación de la figura 25

Page 62: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 7 Algoritmos de prueba (Software) 58

NOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.I 84.107 l6:40:50 02-25-93 PAGE 0003

O 1 10 0040 6BOA LTD XNMlO O 1 1 1 0041 6DlF MPY HI0 O0 12 0042 6BO9 LTD XNM9 O1 13 0043 6D1E MPY H9 01 14 O044 6BO8 LTD XNM8 O115 0045 6D1D MPY H8 O 1 16 0046 6B07 LTD XNM7 O1 17 0047 6D1C MPY H7 O1 18 0048 6BO6 LTD XNM6 O1 I9 0049 6D1B MPY H6 0120004A6BO5 LTD XNM5 0121 004B6DlA MPY H5 0122 004C 6BO4 LTD XNM4 0123 004D6D19 MPY H4 0124 004E 6BO3 LTD XNM3 0125 004F6D18 MPY H3 O I26 0050 6BO2 LTD XNM2 01270051 6D17 MPY H2 01280052 6BO1 LTD XNMl 01290053 6D16 MPY HI 0130 0054 6BOO LTD XN 0131 00556D15 MPY HO 0132 0056 013300567F8F 0134 O135 0057 5921 SACH YN,l ;EL NUMEROQ30 PÁSAU) AQl5 RECORRIENDO

O 136 0058 482 1 OUT YN.0 ;SACA LA RESPUESTA DEL FILTRO POR PUERTO

01370059F900 B ESPERA ;VE A LEER EL SIGUIENTE PUNTO.

0138 END NO ERRORS. NO WARNINGS

NOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.184.107 16:40:52 02-25-93 PAOE 0004

APAC ;SUMA EL RESULTADO DE LA MULT AL ACC Y DIbUB EN ACC. ACC=P+ACC.

;YN A LA IZQUIERDA POR 1.

;PAO.

OOSA 0026

"-

0001 O000 NO ERRORS, NO WARNlNGS

Final de la figura 25

Como lo muestra el listado de la figura 25, l o s coeficientes de 1 filtro fueron inicialmente almacenados en la memoria del programa (CHO.. .CH10) y

después se pasaron a la memoria de datos. Los coeficientes están representados en formato Q15, en donde se asume que el punto binario (representado en la forma de complemento a dos) sigue al bit más significativo. Esto nos da un rango de coeficientes que va desde 0.999969 a -1.0 con incrementos de 0.000031. La salida del convertidor A/D (entrada de datos en el programa) está también en formato Q15 para cuando se multipliquen dos números Q15 el resultado sea un número en formato Q30. Cuando el número Q30 reside en el acumulador (32-bits) del TMS32010, el

Page 63: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (Software) 59

punto binario sigue al segundo bit m6s significativo. Como se asume que la salida del filtro está en formato Q15, el número Q30 se debe ajustar recorrihdolo por 1 a la izquierda, así manteniendo los 16 bits m& significativos del resultado. Esto se logra obtener mediante el paso SACH YN,1 (ver al final de la figura 2 5 ) . En este paso se recorre el número 030 a la izquierda por uno y se almacenan los 16 bits más significativos de 1 acumulador siguiendo el corrimiento. De esta manera, el resultado asignado a YN queda en el formato Q l 5 . El diagrama 1 ,muestra la secuencia lógica que sigue el programa para la cual el TMS32010 debe adquirir y

procesar la señal de entrada. Los coeficientes de este filtro fueron calculados mediante el sistema DSPLAY de BURR-BROWN dedicado al procesamiento digital de seilales. La figura 26 muestra el diseño del filtro y sus coeficientes. La figura 27 muestra la respuesta en frecuencia del filtro que produjo el sistema DSPLAYI.

IDSPLAY es un sistema comercial para computadora personal que produjo la compafiía BURR- BROWN en la simulaci6n de procesamiento digital de Males. Ver la referencia (2).

Page 64: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (Sof tware) 60

Q inicio

para muestras de

reserva memoria para coeficientes

[h(O) ... h(20)]

almacena la mitad de las muestras de

la respuesta impulso h(N-l-n)=h(n)

habilita modo de sobreflujo

inicializa memoria de datos a cero

selecciona canal X1 del multiplexor

I

carga los coeficientes del filtro desde la memoria del programa a la memoria de datos

Diagrama 1 . - Diagrama de f l u j o para e l filtro digital FIR de orden 21 para implementarse en el TMS32010

Page 65: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

k=O, suma=O

suma=suma + [ h(k) x(n-k) ]

k=k+l

no

saca respuesta del filtro

y(n)=suma

S n=n+l

Continuación del diagrama 1

Page 66: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 7 0 Algoritmos de prueba (Softwe) 62

............. ....

.. - ................... - . . . . . . . . . . . . . - .......

.. - ........... - ................... - .......

.. - ................ . . . . . . . . . . . . -. .....

.... .......

.......................

. . - ................ - .............. - .......

I .

Figura 2 6 . - Cdlculo de los coeficientes para el f i l t r o

d i g i t a l FIR pasabajas

Page 67: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capltulo 7 Algoritmos de prueba (Soffware) 63

I I 1

n Q €

W 0

Figura 2 7 . - Respuesta en frecuencia del f i l tro digital FIR pasabajas, que 8e obtuvo mediante e l 8istema

DSPLAY

Page 68: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (Software) 64

Resultados experimentales de: 0 Filtrado de una seiial seno

La figura 28 muestra a bloques el procedimiento que se sigui6 para probar el sistema implementando el filtro digital FIR de orden 21.

Senoide de 200Htz

(y1 Genl+Gen2 /-\ Filtro digital FIR pasabajas de orden 21 Fm=I OKHtz Fcorte=ZOSHtz

Sumador

I I /

4 Senoidede 2OOHtz

4-l Computadora Senoide de 1 OOOHtz u

Figura 28.- Esquema que se sigui6 para probar el sistema, implementando un filtro FIR

Se produjo una señal senoidal con una frecuencia de 200Htz y se produjo otra de 1000Htz, ambas se inyectaron a través de un sumador. La salida del sumador se introdujo directamente a la entrada del sistema en donde este muestreaba a una frecuencia de lOKHtz y cortaba a una frecuencia de 205 Htz. La señal de salida del filtro se observa en la figura 29. Se obtuvo a la salida del filtro una señal senoidal de 2OOHt2, tal como lo muestra la figura 29

Page 69: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (Software) 65

. . . . . . . .. , . . . . . . . . . . . .

p - * ~ h , / ~ L / Y ~ \ “-3 : ....................................................................................... ................................

: J v \ r . ~~ .~~ : U ~ ......... ~~

mrm mllz t IKH Traw 2: f h a l o g 1 ................... ./ .................... .,.... ...............

. . . . . . . . . , . . . . . . . . . . . . , . . . . . . . . . . . .

...................... i. .................... t.. .................. ;, .............. I ........................

. . . . . . . . . . . . . ....... . . Trwe 2: smoizwn .LwHz t 1MH malos 1 . . . . . . . . . .

Figura 2 9 . - Señal de salida del Filtro FIR pasabajas capturada y desplegada por una PC

Page 70: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (So-) 66

IMPLEMENTACIbN DE UN FILTRO ADAPTIVO (ALGORITMO LMS)

A un filtro FIR o IIR se le pueden adaptar o ajustar sus coeficientes. Si los coeficientes se actualizan o adaptan con respecto al tiempo, entonces la capacidad computacional del algoritmo se ve afectada por un factor. Este factor es el requisito para adaptar cada uno de los coeficientes, por lo regular esto se hace con cada una de las muestras. Un algoritmo muy usado para la adaptacibn de los coeficientes e s el "Last- Mean-Square (LMS)" dado por la siguiente ecuaci6n:

b (n+l) = bk(n) + B e(n) x(n-k) para k = 0,1,2 ... N-1 k I

De la figura 30 tenemos que:

e(n) = d(n) - Y@) Y d(n) = s(n) + y(n)

donde: y(n) = 1 bk x(n-k)

s(n)=sefial deseada

y(n)=sefial indeseable

y(n)=el valor estimado de y(n)

N-1

k=O

Figura 30.- Representación estructural de un f i l t r o adaptivo

Page 71: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 7 0 Algoritmos de prueba (Software) 67

Los errores de cuantizacih en el ajuste de los coeficientes se pueden minimizar si el resultado se obtiene por redondeo y no por truncamiento. Para cada uno de los coeficientes en el filtro en algún punto dado en el tiempo, el factor ''P e(n)" es una constante. Este valor se puede calcular una vez y luego almacenarse en el registro T para cada uno de los ajustes. Así , lo que se requiere de c6lculo es: el tiempo de multiplicar, acumular, sumar y redondear. La adaptaci6n de cada coeficiente es de cinco instrucciones, correspondiendo a cinco ciclos de reloj. La sección de código que muestra la figura 31, es la responsable de realizar este c6lculo

LARK LARK LARP LT m m m

MPY ZALII APAC ADD SACH m . .

~

AROJJLTAP ; APUNTA HACIA LA MUESTRA AR1,COEFFD ; APUNTA HACIA LOS COEFICIENTES A R O ERRF ;mf=Pe(n)

*-,MI ; P P e(n) x(n-0)

UN0,IS ; bO(n+l) = bO(1) + P ; REDONDEA

*+,o,ARo ; ALMACENA bO(nt1)

Figura 31.-Segmento de código del TMS32010 que muestra los pasos para ajustar los nuevos coeficientes

La figura 32 muestra todo el código que se empleó para implementar el filtro adaptivo en el TMS. El programa muestra la sección del filtro. F I R y la adaptación de los coeficientes.

Page 72: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (Software) 68

NOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.184.107 01:16:42 01-01-80

*****.***********.******00****0*************************00**00*0*0*0*0000**0000**00****

*FILTRO ADAPTIVO IMPLEMENTANDO EL AuHlRlTMO (LhíS)

*LONGITUD DEL FILTRO 16 COEFICIENTES

'FACTOR f3 = 0.0003

*FRECUENCIA DE MUESTRE0 = IOKHZ

PAGE 0001

* *

* I***************** *************0**********0**00*****0*****0******0*******0*************

LOS COEFICIENTES SE INICIAN A CERO. 0 0 0 1 0078 COEFICIENTES Y 0002 0079 0003 007A O 0 0 4 007B 0005 007c O006 007D 0007 007E 0008 0010 0009 OOlF 0010 oooo 0011 0000 0012 0000 00 I3 0000 F900

0 0 0 1 O 0 0 6 O014 0002 0 0 1 5 00020000 0016 0003 0000 001700040001 00180005 0009 0019 0006 0020 0006 7F8D 002 I 0007 7F89 0022 o008 0023 o008 6880 002400095088 0025 OOOA F400

OOOl3 0009 0026 00OC 0027 00OC 6E00 O028 OOOD 7F89 0029 WOE 0030 OOOE 7E04 0031000F6778 0032 0010 7E05 003300116779 0034 0012 0035 00 12 7E03 0036 0013 677E 00370014497E 0038 0015 00390015F600

O016 0019 0040 0017 F900

00l80015 0041 O019 004200194010 0043 O0 1 A 7F89 0047 0 0 1 B 0048 00 1 B 7E02

0049 OOlC 6778

0 0 5 1 00lE O050 O 0 1 D 4978

0052 00lE 4A7E

UNO EQU I20 ;RESERVA ESPACIO EN MEMORIA PARA MUESTRAS. BETA EQU 12 1 ; OTRAS CONSTANTES Y VARIABLES. ERR EQU 122 ERRF EQU 123 Y EQU 124 D EQU 125 SACA EQU 126 PERTAP EQU 16 ULTAP EQU 31 COEFFD EQU O

AORG O B MICIA

CANAU) DATA O ;DATO PARA SELECCIONAR CANAL CERO DEL MUX. CANAL1 DATA 1 ; DATO PARA SELECCIONAR CANAL UNO DEL MUX crE FACTD

NlClA

LOOP

AQUl

WAIT

MECO

DATA 1 DATA 3 0 0 9 ;BETA = 0.0003 ; FACTOR DE BETA = 0.0003

SOVM ZAC

1.ARP o SACL DANZ

LDPK O ZAC

I.ACK TB1.R LACK TBLR

LACK '1 ULR OUT

UlOZ

B

IN ZAC

;HABILITA MODO DE SOBREFLUJO

;INICIALIZA TODA LA MEMORIA DE DATOS A CERO

LOOP

;UTILIZA PAGINA CERO

CTE UNO FACTB ; CARGA EN MEMORIA DE DATOS EL FACTOR DE BETA BETA

CANAL1 ;SELECCIONA CANAL 1 PARA MUESTRA MATERNA SACA SAC41

MECO ; SI DIO = O, VE A OBTENER MUESTRA MATERNA

WAIT

PEKTAP,O ;LEE DESDE PERIFdRlCO DIRECCIONADO POR PA0 ;LA MUESTRA MATERNA Y PONLA EN PERTAP.

LACK CANALB ;SELECCIONA CANAL O PARA MUESTRA MATERNO-

TBLR SACA OUT SACA1

;FETAL

OUT SACA,? ;INICIO DE CONVERSIÓN PARA MUESTRA MFECG 0053 OOlF

~~

figura 32.- C6digo de un filtro adaptivo (LMS) para implementarse en el DSP TMS32010

Page 73: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capitulo 7 Algoritmos de prueba (Solbvare) 69

NOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.184.107 01:16:42 0141-80 PAGE 0002

~~~~~~~~~~~~~

0054 00lF F600 ESPERA BlOZ MFECG 0020 0023

0055 0021 F900 B ESPERA 0022001F

0056 0023 00570023 407D MFECO IN D.0 ;OBT~N MUESTRA MFECG DESDE EL

005800247F89 0059 0025 0060 0025 6 F m ADPFIR LDPE O :USA PAGINA DE DATOS CERO.

;SI BIO ES CERO VE A LEER MUESTRA ;METERNO-=TAL

PERIFÉRICO ZAC ;DIRECCIONADO POR PA0 Y PONU) EN D.

0061 0026 7100 LARK AR1,COEFFD ;CARGA APUNTADOR CON LA TABLA DE COEFICIENTE. LARK AROJLTAP ;CARGA APUNTADOR PARA MUESTRAS. 0062 0027 701F

006300288000 O 0 6 4 0029 2878 0065 002A 6880 0066 002B 0067 0026 6A91 FIR MATERNA 0068 002C 6DA0 ’OEFICIENTE. 0069 OOZD 0070 002D 6B91 0071 OOZE 6DA0 2OEFICIENTE. 0072 002F 0073 002F 6B9 1 0074 0030 6DA0 2OEFICIENTE. 0075 003 1 0076 003 1 609 I 0077 0032 6DA0 0078 0033 0079 0033 6B9 I ongo 0034 GDAO 008 I on35 00x2 0035 6091 O083 0036 6DA0 O084 0037

0086 0038 6DAO 00x7 O039 0088 0039 6B9 1 0089 003A 6DA0 0090 003B

0092 003C 6DA0 O093 003D 0094 003D 6691 0095 OOlE 6DA0 0096 003F 0097 003F 66991 0098 0040 6DA0 0099 004 1 01000041 6B91 O 1 0 1 0042 6DA0 O 102 0043

0104 0044 6DA0

0106 0045 6891 O105 0045

O I07 0046 6DA0 O 1 08 0047

o085 o037 6091

0091 0 0 3 ~ 6 ~ 9 1

o103 0043 6 ~ 9 1

MPYK O LAC UN0.14 LARP A R O

LT *;ARI

MPY *+.ARO

LTD * - . A R I MPY * + , A R O

LTD . - ,ARI MPY *+,ARO

LTD *;ARl MPY *+.ARO

LTD *-,ARI MPY *+ ,ARO

LID *-,m1 MPY *+.ARO

LTD * - . A R I MPY *+,ARO

LI’D *-,ARI MPY *+,ARO

LTD *-,ARI MPY * + , A R O

LTD *-,ARl MPY *+,ARO

LTD *-,ARI MPY *+.ARO

MPY *+,ARO LTD *-,ARI

LTD * - , A R I MPY *+,ARO

LTD *-,ARl MPY *+,ARO

;LIMPIA EL REGISTRO P. ;CARGA SALIDA REDONDEANDOIA UN BIT.

;CARGA EL REGISTRO T CON MUESTRA

;MULTlPLfCALO POR EL ULTIMO

;CARGA SlGUlENTE MUESTRA ;hlULTIPLfCALA CON SIGUIENTE

;CARGA SIGUIENTE MUESTRA ;MULTIPLfCALA CON SIGUIENTE

;SEMEJANTE A IO ANTERIOR.

___”_

Continuación de la figura 32

Page 74: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (Software) 70

NOSIDT 32010 FAMILY MACRO ASSEMBLER PC2.I 84.107 01:1642 01-01-80 PAGE 0003

O109 0047 6B9l LTD *-,ARI O1 IO 0048 6DAO MPY *+,ARO 01110049 O1 12 0049 6891 LTD *-,ARI O1 I3 004A 6DA0 MPY *+,ARO O1 I4 0048 O1 I5 004B 7F8F APAC ;SUMA EL ACC CON EL REO. P. O1 16 004C 597C SACH Y,1 ;ALMACENA LA SALIDA DEL FILTRO EN "Y". O1 17 004D 7F89 ZAC O1 18 004E 107C SUB Y O1 19 004F 007D ADD D ;SUMA LA MUESTRA MFECG A SALIDA DEL FILTRO y(n) 0120 0050 507A SACL ERR O121 0051 487A OUT ERRO ;SACA LA SEÑAL DE ERROR A TRAWk3 DEL PERIF&RK!O O122 0052 ;DIRECCIONADO POR PAO. 0123 0052 6A7A LT ERR ;MULTIPLICA EL ERROR POR FACTOR DE BETA 0124 0053 6D79 MPY BETA 0125 0054 7F8E PAC O126 0055 OE78 ES 0127 0056 597B SACH ERRF.1 ;RECORRIDO A LA IZQUIERDA Y SUMADO AL ACC.

;ACC = -y(n)

; m(n) = x@) - fin)

; m n ) = BETA m(n). ADD UN0,I 4 ;REDONDEA EL RESULTADO. EL CONTENlDO DE UNO

01280057701F 01290058 7100 0130 0059 6A7B 0131 OOSA 0132OOSA6D9l O133 005B6588 O134 OOSC 7F8F Ol35005DOF78 0136 OO5E 58AO 0137 OO5F 0138 005F 6D91 O13900606588 014000617F8F 0141 0062 OF78 O I42 0063 58AO O I43 0064 O144 0064 6 m l 014500656588 014600667F8F 014700670F78 014X 0068 58AO O I49 0069 O I50 0069 6D1 O151 006A6588 0152 006B 7F8F 01 5.1 OOGC OF78 0154 006D 58AO 0155 006E 0156006E6D91 0157006F6588 0158 0070 7F8F 015900710F78

016300746588 01640075 7F8F 0165 0076 OF78

LARK AR0,ULTAP LARK ARI,COEFFD LT ERRF

ADAPT MPY * - , M I ZAIJI APAC ADD UNO.15 SACH *+.O.ARO

MPY *-,ARI ZALH APAC ADD UNO.15 SACH *+,O,ARO

MPY *-,ARI ZALH ' APAC ADD UN0 , IS SACH *+,O,ARO

MPY *-,ARI ZALH * APAC A1)D UNO, I5 SAC11 *+,o,ARo

MPY *-,ARI ZALH M A C ADDUNO.15

SACH *+,O,ARO

MPY *;ARI ZALH APAC ADD UNO, 1 5

;APUNTA HACIA LAS MUESTRAS. ;APUNTA HACIA LOS COEFICIENTES. ;MANTEN LA FUNCION DE ERROR EN REGISTRO T.

;P = BETA err(n) x(n-30).

;b3I(n+l)-b3l(n)+P ;REDONDEA ;ALMACENA b3 I(n+ 1).

;P = BETA err(n) x(n+30).

;b30(n+l) = b3qn) + P ;REDONDEA ;ALMACENA b30(n+ I )

;SEMEJANTE A LOS PASOS ANTERIORES.

NOIGIDT 32010 FAMILY MACRO ASSEMBLER PC2.184.107 01:16:42 01-01-80 PAGE 0004

O166 0077 58AO SACH *+,O,ARO 0167 0078

0169 0079 6588 ZALH O1 70 007A 7F8F APAC

0168 0078 6D91 MPY *-,ARI

Continuación de la figura 32

Page 75: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (Sohare) 71

0172 007C 58AO 0173 007D 0174007D6D91 0175 007E 6588 0176007F78F 017700800F78 01780081 58AO 01790082 0180 0082 6D91 018100836588 018200847F8F 018300850F78 0184 0086 58AO 0185 0087 O186 0087 6D91 0187 0088 6588 018800897F8F 0189 008AOF78 O190 0088 58AO 0191 008C 0192 008C 6D91 0193 008D6588 0194 008E 7F8F 0195OORFOF78 0196 0090 58AO 01970091 0198 0091 6D91 019900926588 020000937F8F 020100940F78 0202 0095 58AO 0203 0096 0204 0096 6D9 1 020500976588 020600987FXF 020700990F78 0208 009A 58AO 0209 0090 02lO0091%6D91 021 1 009C 6588 0212 009D 7F8F 02 I3 OO9E OF78 02 14 0O9F 58AO 02 15 OOAO 0216 OOAO 6JMI 021700AI 6588 02 I8 O O A 2 7FXF 02 19 O O A 3 OF78 0220 00A4 58AO 022 I OOA5 0222 O O N 6D!!I

3171 007BOF78 ADD UN0.15 SACH *+,O,ARO

MPY *-,ARl ZALH APAC ADD UNO,l5 SACH *+.O,ARO

MPY *- ,ARI ZALH APAC ADD UN0,15 SACH *+ ,OAR0

ZALH APAC ADD UNO,l5 SACH *+,O,ARO

MPY *;ARl

MPY *-@I ZALH APAC ADD UN0.15 SACH *+,O,ARO

ZALH * APAC ADD UNO.15 SACH *+,O,ARO

MPY *-,ARI

MPY *-,ARI ZA1.H * APAC ADD UNO.15

SACH *+.O.ARO

MPY *-,/\Kl ZAI.11 * APAC ADD UNO. 15 SACtI * + , O , r W 0

hlPY *-,AR I ZALH WAC ADD UNO, 15 SACH *+,OM0

MPY * - , A R I NOSIDT 32010 FAMILY MACROASSEL.IIU,ER PC2.1 84.107 01:16:42 01-01-80

PAGE 0005

0223 00A6 6588 ZALH 0224 00A7 7F8F APAC 0225 00A8 OF78 ADD UNO.15 0226 00.49 58AO SAC11 *+,O,ARO 0227 O O A A 0228 O O A A F 9 0 0 B AQUl

0229 END NO ERRORS, NO WARNINGS

OOABool2 ;VUELVE A SELECCIONAR CANAL 1 PARA MUESTRA LA

;SIGUIENTE MUESTRA MATERNA ;FIN DEL PROGRAMA

NOSIDT 32010 FAMILY MACROASSEhIRI.ER PC2.I 84.107 01:16:54 01-1-80 “I

PAGE O 0 0 6

O001 O000 NO ERRORS. NO WARNINGS

~~ ~~

Final de la figura 32

Page 76: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (Software) 72 ~~~~~ ~ ~~~~~ ~

Si observamos la figura 30, vemos que para cada muestra x(n), se obtiene una respuesta a la salida del F I R en y(n) . Lo que se quiere obtener en y(n) es una aproximación de y(n) mediante el ajuste de los coeficientes en FIR. Esto se logra obteniendo un error mínimo a la salida para cada iteración del sistema y calculando los nuevos coeficientes (todo el vector) para cada una de las muestras de entrada x(n) . El diagrama 2 muestra los pasos que se deben ejecutar para este algoritmo en el TMS32010.

Q inicio

para muestras de entrada [x(n) ... x(n-20)l

reserva memoria para coeficientes

[h(O) ... h(20)]

inicializa todos los coeficientes a cero

inicializa memoria de datos a cero

- \ /

selecciona canal X1 para mustra x(n) "materna"

lee muestra x(n) "matema"

selecciona canal x0 para muestra d(n) "materno fet I

saca inicio de conversi6n par

8 Diagrama 2.- I)i:qyama de flujo para el filtro adaptivo

Page 77: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

capítulo 7 Algoritmos de prueba (software) 73

l lee mustra d(n) "mareno fetal" I

captura la siguiente muestra x(n) y guhrdala en memoria

k=O, suma=O 1 \

suma=suma + [ h(k) x(n-k) ]

err(n)=d(n)-y(n) ~~

h

saca el error por puerto PA0

k=O / \

J

calcula nuevos coeficientes bk(n+l)=bk(n)+Be(n)x(n-k)

k= k+ 1

no

n=n+l

Continuación del diagrama 2

Page 78: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

capítulo 7 Algontmos de prueba ( s o f t w a r e ) 74

Resultados experimentales de:

"Dos senales senoidales de iaual frecuencia La figura 33 muestra el procedimiento que se llevó a cabo para probar el sistema con la implementación del filtrado adaptivo para dos señales senoidales de la misma frecuencia.

senoide de 60Hz f \

sistema implementado

1 den))

Long. del filtro=l6 I x(n'

Fm=l OKHz para filtrado adaptivo -

factor B= senoide de 60Hlz J y de 120Hz

Figura 3 3 . - Bloques que muestran el procedimiento para probar el ~istema como f i l t r o adaptivo

Una señal senoidal de 60Hz se inyectó en el canal d(n) del sistema y otra senoidal, también de 60 Hz se inyectó al canal x(n) . Lo que se observó a la salida del sistema fue que cuando las sefiales senoidales de entrada se encontraban completamente con la misma frecuencia la salida era casi de cero. La salida en el filtro adaptivo no fué exactamente de cero porque las señales senoidales que entraban al sistema provenían de diferentes fuentes (ver figura 33) y fué muy difícil sacar de los generadores señales exactamente iguales. La cancelación en esta prueba fué del 90%. La figura 34 muestra los resultados de esta prueba.

Page 79: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 o Algoritmos de prueba (Software) 75

Figura 34. - Resultados experimentales de dos señales senoidales de igual frecuencia

Page 80: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (Software) 76

0 Dos setiales cardiacas altamente correlacionadas

La figura 35 muestra otro procedimiento que se siguió para probar el sistema como filtro adaptivo.

I \ sistema implementado como filtro adaptivo Fm=l OKHz long. del filtro = 16 factor B = 0.0003

_.

J

Figura 3 5 . - Esquema que muestra e l procedimiento para probar e l sistema como f i l tro adaptivo con senales

cardiacas

Mediante dos electrocardiógrafos se tomaron dos derivaciones cardiacas de pecho (vl y v 2 ) , tal como se muestra en la figura 35. Estas señales fisiológicas se tomaron de tal manera que su correlación fuera muy alta. V1 se inyectó al canal d(n) y v2 hacia el canal x(n). Cada vez que el sistema recibía una señal de reset, este presentaba en su salida una serie de picos que iban disminuyendo en su amplitud conforme l o s coeficientes del filtro iban adaptándose o bien el error disminuyendo. Esto se muestra en la figura 36.

Page 81: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (Software) 77

I :

.... J. . . . . . . . . . . ,.;/ ....... di

1. ..

: m 1

7: 12 - 6 . -3.

3 3

J

....

................ ., ................................... , ....................... , ....................... t ....

Figura 36.- Resultados experimentales en el filtro adaptivo con señales cardiacas altamente

correlacionadas

Page 82: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 0 Algoritmos de prueba (sOf€wiue) 78

ODOS setiales cardiacas debilmente correlacionadas

El procedimiento que se siguió para esta prueba fue el mismo que el anterior, sólo que esta vez las seliales fisiológicas se tomaron en puntos lejanos uno con respecto del otro para obtener sefiales débilmente correlacionadas (ver figura 3 5 ) . En esta prueba, cada vez que el sistema recibía la señal de reset, este presentaba en la salida picos de mayor intensidad que disminuían conforme los coeficientes convergían a su valor mínimo, pero estos picos nunca llegaban a ser cero, a diferencia del caso anterior (para señales altamente correlacionadas) en donde el valor de los picos llegaban a ser casi de cero. El principio básico del funcionamiento del sistema que se muestra en la figura 30 es que el componente no deseable y (n) de la señal de entrada d (n) =s (n) + y (n) debe tener correlación con la señal de referencia x(n) para que el estimado de la señal de entrada y(n) pueda provocar la modificación de los coeficientes del filtro FIR. Con las pruebas anteriores se demuestra que el sistema cumple con este principio básico de funcionamiento. La figura 37 muestra l o s resultados que se obtuvieron con esta prueba.

Page 83: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Capítulo 7 Algoritmos de prueba (Software) 79

L . . . . . . . . . . . . . . . . . . .

: 56 -7 -?

Figura 37.- Resultados a la salida del sistema implementado como filtro adaptivo mediante dos señales

cardiacas débilmente correlacionadas

Page 84: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

o Conclusiones 80

CONCLUSIONES:

o El sistema cuenta con memoria ROM y RAM externas, que le permite la implementaci6n de programas relativamente grandes y le permite tambi6n el almacenamiento de datos en la RAM externa, en caso de que la RAM interna llegue a saturarse.

0 Los programas se pueden implementar para el procesamiento de las sefíales en tiempo real.

o La frecuencia de muestre0 puede variarse en un rango considerablemente amplio mediante una simple combinación de los "Dip Switch"

o Las medidas físicas del prototipo del sistema es compacto (ver fotografía de página 50).

o En las pruebas de cancelacih por filtardo adaptivo se observó que el sistema es capaz de atenuar en un porcentaje del 85 al 90%.

Page 85: UNIVERSIDAD AUTONOMA METROPOLITANA148.206.53.84/tesiuami/UAM5372.pdf · Unidad Lógica Aritmética (ULA) y el acumulador 19 Multiplicador, Registro T y P 20 4 CONTROL DEL, SISTEMA

Bibliografia 81

BIBLIOGRAFÍA

(1) .- First-Generation TMS320 User's Guide, Digital Signal Processor Products, Texas Instruments 1988.

(2) .- DSPlay Burr-Brown Corp. 1988.

(3) .- Digital Signal Processing Applications with the TMS320 Family, Theory, Algorithms, and Implementations (Volumen l), Texas Instruments 1989.

(4) .- C. Cowan and P. Grant, "Adaptive Filters", Prentice Hall, 1985.

( 5 ) .- Simon Haykin, Adaptive Filter Theory, Prentice Hall Information and System Sciences series, 1989.

(6) .- Real Time Digital Signal Processing Aplications with Motorola DSP, Prentice Hall, 1989.

(7) .- TMS32010 Analog Interface Board User's Guide, Texas Instruments,

( 8 ) .- Interfaz Analógica PC-DSP-UA"TMS32010, Proyecto terminal de David de la LLave Lara, sept. 199 1.