J. Ortega et al. Síntesis
Tecnológica. N° 1 (2004) 39-44
DOI:10.4206/sint.tecnol.2004.n1-07
DESARROLLO DE UNA INTERFAZ INTERACTIVA DE COMUNICACIONES ENTRE UN DSP Y MATLAB
JUAN ORTEGA TERZÁN
NÉSTOR FIERRO MORINEAUD
Universidad Austral de
Chile, Egresado de Ingeniería Electrónica, Casilla 561 - Valdivia.
Universidad Austral de Chile, Ingeniero Electrónico, nfierro@uach.cl,
Casilla 561 - Valdivia.
Resumen
El objetivo de este trabajo, tiene por finalidad dar a conocer el desarrollo de una interface para el Tratamiento Digital de Señales, que fue desarrollada utilizando una herramienta interactiva que dispone Matlab como es el SPTool y el DSP TMS320C31, con la cual se crean e implementan señales y especialmente filtros los que pueden ser diseñados y modelados, de acuerdo a los requerimientos que el usuario tenga. El ambiente gráfico que se maneja, la evaluación de algoritmos, la potencialidad del sistema, ejemplos y resultados son mostrados también en el presente trabajo.
Abstract
The objective of this work, has for purpose to give to know the development of an interface for the Digital Treatment of Signals, that was developed using an interactive tool that Matlab prepares like it is the SPTool and the DSP TMS320C31, with which you/they are believed and they implement signs and especially filters those that can be designed and modeling, according to the requirements that the user has. The graphic atmosphere that is managed, the evaluation of algorithms, the potentiality of the system, examples and results are also shown presently work.
1. INTRODUCCIÓN
En toda realización de sistemas de Procesamiento Digital de Señales se debe contemplar tanto el hardware como el software. Aún cuando se pueden realizar estos sistemas en computadores de propósito general, la realización de sistemas de gran velocidad y eficiencia requieren el empleo de circuitería de muy alta escala de integración (VLSI) y de propósito especial. De hecho estos circuitos son diseñados tomando en cuenta las necesidades de paralelismo de los algoritmos y cuentan con estructuras que permiten una gran conectividad local y modularidad. Este campo tecnológico está experimentando un gran crecimiento gracias al desarrollo de la computación y de la microelectrónica al desarrollar circuitos que pueden manejar eficientemente grandes cantidades de datos.
Ante una revolución técnica de tal magnitud, un nuevo problema aparece casi inevitablemente. Es la forma en que los usuarios enfrentan una nueva herramienta, muchas veces por lo complejo o tedioso que resulta trabajar con un manual ya sea en la programación o diseño, los cuales casi siempre dirigidos a gente más experimentada, resultando frustrante en muchos casos caso a los estudiantes. Por esta razón, resulta imperativo el desarrollo de utilidades de índole eminentemente didáctica que faciliten el manejo y la asimilación de los conceptos fundamentales de esta materia y a su vez puedan implementarse sin dificultad los esquemas propuestos.
Por otra parte MATLAB, plataforma computacional de amplia cobertura, incluye una interfaz gráfica interactiva (SPTool) en la que se puede analizar y manipular señales digitales, filtros y espectros, sin necesidad de usar programación.
El principal objetivo de este trabajo está dirigido, pues, a la creación de una herramienta de prácticas simple de usar e interactiva, que permita al estudiante y/o usuario que pretenda iniciarse en esta materia la implementación de algoritmos básicos de procesamiento de señales sobre un procesador específico, el TMS320C31, de una manera fácil e intuitiva, sin necesidad de conocer a profundidad el lenguaje de programación del DSP del que se dispone, y comparar los resultados obtenidos en un sistema real, con los que en teoría habrían de lograrse.
2. DESARROLLO
El desarrollo de este trabajo se estructura en cuatro partes que describimos a continuación:
a) Tarjeta DSP Starter
Kit TMS320C3X (DSK).
b) MATLAB-SPTool.
c) Interface MATLAB -DSK.
d) Diseño e implementación de Filtros.
a) Tarjeta DSP Starter Kit TMS320C3X (DSK): La tarjeta que se ha tomado como base hardware de la plataforma está alimentada por una fuente interna, en que está presente el DSP TMS320C31 de Texas Instruments, un procesador de 32 bits de punto flotante. Cuenta con un multiplicador en paralelo con la ALU y de dos unidades generadoras de direcciones. Es posible realizar varios accesos a memoria en un ciclo de instrucción, debido a que tiene memoria multipuerto. La memoria está dividida en dos bloques independientes que pueden soportar dos accesos por ciclo de instrucción; incluye una caché de instrucciones de 64x32bits. El TMS320C31 dispone de buses independientes para instrucciones, datos y DMA. Incorpora 2 temporizadores, un puerto serie y un controlador de DMA. Otras de sus características son: 60_ns, tiempo de ejecución por ciclo de instrucción; 33,3 MFLOPS y 16,7 MIPS.
La DSK contiene, además del microprocesador TMS320C31, un circuito de interfaz analógica (AIC), el TI TLC32040. Este elemento constituye un completo sistema de entrada / salida chip CMOS monolítico. El dispositivo se conecta directamente al puerto serie del TMS320C31. La referencia de reloj y la señal de reset le son suministrada por el ´C31. Para mayor flexibilidad y expansibilidad se puede prescindir del uso del AIC cuando se utiliza un CODEC codificador-decodificador. El AIC integra un filtro de entrada anti-aliasing paso-banda de condensador conmutado, cuatro modos de puerto serie compatibles con el microprocesador, un conversor digital-analógico de 14 bits de resolución y un filtro de reconstrucción de salida paso-bajo, de condensador conmutado. Ofrece numerosas combinaciones de frecuencias de entrada del reloj patrón y frecuencias de conversión-muestreo que pueden cambiarse mediante el control digital del procesador. El TLC32040 soporta velocidades de muestreo variables, de conversión analógica-digital y digital-analógica, que llegan a las 20.000 muestras por segundo. La tarjeta del DSP se conecta al PC mediante una interfaz de puerto paralelo estándar o bidireccional.
Estas características convierten a la tarjeta en un potente instrumento para desarrollar aplicaciones de procesado digital de señales
b) MATLAB-SPTool: En MATLAB el Toolbox de Procesamiento Digital de Señales incluye una interfaz gráfica interactiva, llamada SPTool-Signal Processing Environment, en la Figura 1, se muestran las funciones básicas de esta. Usando el mouse y los mandos presentes en la pantalla, se puede importar, ver, medir e imprimir señales digitales; diseñar, ver e implementar filtros digitales; y analizar el contenido espectral de señales. La asimilación de los conceptos se apoya en la modularidad de las aplicaciones, ya que se acentúa la importancia del diseño frente a la dificultad inherente de un lenguaje de programación.
Presenta cuatro ambientes para el procesado interactivo de señales:
· Signal Browser. El cual proporciona una vista gráfica de las señales diseñadas y seleccionadas con el SPTool, permitiendo su despliegue, medidas, análisis y la impresión de estas señales interactivamente.
· Filter Designer. Permite crear y editar filtros digitales pasa-bajos, pasa-altos, pasa-banda y rechaza-banda del tipo FIR e IIR, con el algoritmo y longitud deseada usando las funciones de diseño de filtros del Toolbox de Procesamiento de Señales.
· Filter Viewer. Permite ver varias características de un filtro que sé a importado o diseñado, incluyendo las respuestas de magnitud y fase, retardo de grupo, plano de polos y ceros, respuesta al impulso y al escalón.
· Spectrum Viewer. Permite crear, ver modificar e imprimir espectros interactivamente, y realizar análisis gráfico de datos en el dominio de la frecuencia usando una variedad de métodos comunes de estimación espectral.
c) Interfaz MATLAB-DSK: El objetivo principal de la plataforma estaba orientado al desarrollo de algoritmos de simulación, con la capacidad de manejar señales reales de audio mediante el DSK, y de poder ver los resultados de la misma, sin necesidad de salirse de ella. Se necesitaba entonces una comunicación de datos entre el DSK y MATLAB, requiriéndose un protocolo de control entre ambos para garantizar la integridad de los mismos. La no-existencia de drivers específicos de la tarjeta con el software determinó la necesidad de implementar la interfaz de comunicaciones, con la ventaja añadida de poder realizar el diseño a la medida de los objetivos a cumplir.
Considerando el entorno Windows que ofrece la herramienta SPTool pasaremos a explicar como es la interacción de este programa, con el procesador. La forma más adecuada de describir esta interacción, es definirla, a través de un programa, que a diferencia de los métodos más conocidos, por ejemplo un programa en assembler o C ++, se realiza por medio del mismo programa MATLAB, utilizando su editor gráfico y su propio lenguaje de programación, la estructura de la interfaz la dio el diseño de un programa principal al que llamamos nextstep.
Figura
1. Funciones Básica de SPTool. |
Para llegar a este programa
primero se partió con una serie de sub-programas los cuales se dividen
en tres cuerpos fundamentales:
· Las interfaces de comunicación
por la puerta paralela entre MATLAB y el Kit del DSP.
· Programa que une SPTool, con el
mismo Nextstep.
· La implementación de un programa que controla la presentación visual,
el cual esta unido a los dos cuerpos, anteriores de sub programas antes
mencionados.
La implementación del programa, Nextstep, fue desarrollado, en lenguaje de programación Matlab, que es de forma muy similar al lenguaje Visual Basic, sin embargo Matlab, ofrece guías para trabajar en entorno gráfico, entre elles destaco, el Graphics Property Editor, y el programa, editor Debugger, de Matlab, que es donde se ínter conectan, los programas exportados de SPTool, que son cargados, en el Nextstep, y la exportación desde Nextstep, de los coeficientes, de los filtros que son llevados, finalmente al DSP.
Todos estos bloques fueron compilados en el directorio que es el Nextstep y creando un path se puede empezar a interactuar con la tarjeta.
La interacción del usuario con el procesador permite que se realice desde el PC y desde este se logra visualizar el funcionamiento del programa ejecutado así como también cambiar una serie de parámetros de su diseño en tiempo real sin interrumpir al DSP.
d) Diseño e implementación de Filtros: Para el diseño de un filtro se invoca a la pantalla que muestra la Figura 1, se elige la opción filt1 y se pincha Edit Design donde aparece la ventana de la Figura 2.
Figura
2. Ventana Visualizadora para el Diseño de Filtros. |
En ella se puede elegir: Algoritmo (FIR,...); Tipo (Pasabajo,...); Especificaciones (Banda de Paso, Banda de Rechazo, Ripple, Orden del Filtro,...); Frecuencia de Muestreo, etc. finalmente Aplicar. Una vez terminado se retoma la pantalla de la Figura 1, se selecciona File y se exporta a workspace. Esto se realiza para cargar el programa, hacia lo que será nuestro Nextstep.
Realizados los pasos previos en el SPTool y seleccionado el filtro con los datos creados, se da la orden a Nextstep la cual tiene la presentación de la Figura 3, en esta se puede apreciar que existen varios bloques gracias a la característica modular del entorno de MATLAB, tales como:
· Aplicar. Cumple la función de exportar los parámetros del filtro diseñado en el SPTool en el que sé a seleccionado método de cuantización, método a graficar y el número de bits, regraficándose la respuesta de frecuencia, permite además el control del DSK eligiendo los puertos de entrada-salida, frecuencia de muestreo, filtro de control anti-aliasing, regulación para ganancia de entrada y salida también son proporcionados.
· Cargar DSK. Carga los coeficientes del filtro seleccionado de manera que el procesador de señal responda como un filtro en tiempo real de la señal de entrada, pudiéndose observar la señal de salida con la instrumentación adecuada.
· Grillar Si/No: Permite la opción de subdividir la pantalla en cuadrantes, con el objeto de diferenciar de mejor manera, medidas, y frecuencias, de corte en los filtros.
· Información: Da características generales del programa y se complementa con un índice de ayudas.
· Zoom: Permite la operación del cambio de los ejes, acercándose a una zona específica de trabajo.
· Simulink: Herramienta de extensión de MATLAB para la modelación, análisis y simulación física y matemática de sistemas.
· Señales: Permite una exploración interactiva de una señal, analizarla, cargarla y aplicarla sobre el DSK.
También la misma interfaz tiene una serie de ventajas añadidas, como se trabaja con MATLAB, se abren las puertas a la utilización de la tarjeta por medio de otras herramientas en este entorno. Por ejemplo se tiene la posibilidad de diseñar sus propios filtros sin la necesidad de llamar a SPTool, y esto se logra mediante el enlace a Polos y Ceros la que esta incorporado, como opción directa, este programa activa una interfaz grafica para el trazado de rutinas de polos y ceros, tal como lo muestra la Figura 4, la que fácilmente permite al usuario agregar, anular y/o mover polos y ceros ya sean reales o imaginarios. El resultado es la respuesta de frecuencia la que es dibuja y asociada con la función de transferencia puede ser ejecutada en tiempo real en el DSK, el que esta conectado al puerto paralelo del PC. Para agregar un polo o cero basta con teclear el botón y estos aparecen en el origen, los cuales pueden ser arrastrados a la posición deseada mediante el mouse.
Figura
3. Ventana principal de la interfaz. |
Figura 4. Ventana
de diseño y gráfica de polos y ceros. |
3. CONCLUSIONES
Se ha presentado una aplicación, formada por un entorno gráfico de simulación y una tarjeta de procesado de señal, y de manera particular la interfaz de comunicación entre ambos niveles.
Somos conscientes de que el trabajo con la tarjeta DSP Starter Kit TMS320C3X abre un gran espectro de posibilidades para la implementación de aplicaciones tan o más complejas que las abordadas en este proyecto. Sin embargo, la interfaz desarrollada puede constituirse como núcleo fundamental en el aprovechamiento de dicha tarjeta para tareas que involucren una necesidad gráfica y de procesamiento compartido. Esta aplicación es susceptible de ser ampliada con módulos que no se limiten al mero uso didáctico, pues sus potencialidades son muy grandes.
Finalmente, hemos de manifestar nuestra confianza en que esta aportación ayude a los estudiantes a involucrarse más con los procesadores digitales de señales y, a partir de los diseños básicos que puedan implementar por medio de las herramientas aquí brindadas, visualicen las posibilidades que estos ofrecen.
REFERENCIAS
[1] TMS320C3x User’ Guide, Texas Instruments, INC. Dallas Texas, 1995.
[2] Signal Processing Toolbox For Use with MATLAB. The Math Works. 1997.
[3] Craig Marven&Gillian Ewers, “ Digital Signal Processing ”. Texas Instruments 1993.
[4] Alan V. Oppenheim&Ronald W. Schafer “Discrete-Time Signal Processing ”. Prentice-Hall, Inc 1989.
[5] Joseph Mathai, “ Real - Time Systems Specification, Verification and Analysis ”. Prentice-Hall , Inc 1996.
[6] B.P. Lathi “ Sistemas de Comunicación ”. Editorial Interamericana S.A. 1986.
[7] Matlab User’s Guide, The Math Works, Inc. 1993.
[8] Sanjit K. Mitra&James F. Kaiser “ Handbook For Digital Signal Processing ”. John Wiley & Sons. 1993.
[9] J.G. Proakis, D. G. Manolakis “ Tratamiento digital de Señales: Principios, Algoritmos y Aplicaciones ”. 3º Ed. Prentice Hall 1998.
[10] Néstor Fierro Morineaud y Pedro Rey Clericus “ La Tecnología de los Procesadores Digitales de Señales en el Laboratorio ”. XII Congreso Chileno de Educación en Ingeniería. 1998.
[11] S.S. Soliman, M. D. Srinath “ Continuous and Discrete Signals and Systems ”. 2º Ed. Prentice Hall 1994.
[12] Néstor Fierro Morineaud y Alberto Izquierdo Fuente “ Procesado de Señal en Tiempo Real: Esquemas de Modulación/Demodulación ”. XII Congreso Chileno de Ingeniería Eléctrica. 1997.
[13] Néstor Fierro Morineaud “ Diseño de un Modem multiportadoras COFDM con el DSP TMS320C31 ”. VIII Seminario Nacional y 2º Congreso Internacional en Telecomunicaciones Senacitel98.
Reseñas bibliográficas
Juan Ortega Terzán: Ingeniero
Electrónico, actualmente se desempeña en el Centro de Operación de Red
de la Empresa Gtd Teleductos.
Néstor Fierro Morineaud: Docente del Instituto de Electricidad y Electrónica
de la UACH.