PLATAFORMA PARA LA ADQUISICIÓN Y PROCESADO DE SEÑALES DE BAJO COSTE CON INSTRUMENTACIÓN VIRTUAL 1 1 2 2 3 I.J. OLEAGORDIA , R. URRETABIZKAYA , JJ. SAMARTIN Departamento de Tecnología Electrónica. E.U.I.T.I. de Bilbao Universidad del País Vasco UPV/EHU. España. Departamento de Tecnología Electrónica. E.U.I.T.I. de Bilbao Universidad del País Vasco UPV/EHU. España. 3 Departamento de Ingeniería Eléctrica. E.U.I.T.I. de Eibar Universidad del País Vasco UPV/EHU. España. En conjunto la plataforma desarrollada consta de dos módulos: uno software que transforma el PC en un instrumento virtual que conectado vía serie RS232 al otro módulo hardware, consistente en una tarjeta de adquisición, permite la adquisición, monitorización y procesado de señales analógicas (máximo 8) y 22 digitales como máximo. Es posible modificar la frecuencia de muestreo hasta un máximo de 8 KHz empleando un solo canal. Por la arquitectura hardware de la tarjeta el método de adquisición es el de Round-Robin. Las señales captadas pueden almacenarse en fichero. Esta alternativa posibilita la monitorización y procesado cuantas veces desee el usuario. El procesado analógico puede realizarse tanto en el dominio del tiempo como de la frecuencia (FFT, Espectro de Potencia, etc).Para la realización de la tarjeta de adquisición se ha empleado el μC T89C51AC2, el software se ha desarrollado con IDE Keil μ-Visión2, para programar el μC, ISP e IAP, el programa Flip 1.8.8. Para implementar el instrumento virtual el entorno LabVIEW 7.0. 1. Introducción En cualquier proceso industrial se monitorizan y controlan una serie de variables que determinan la operatividad de todo el sistema. Desde la perspectiva didáctica, a nivel universitario, es necesario disponer de entornos de aprendizaje donde se pueda comprobar la funcionalidad de pequeños sistemas que complementados con entornos de simulación ofrezcan una aproximación al mundo real y en los que se pueda llevar a cabo una estrategia de probada eficacia como es la de aprender haciendo tanto en el uso como diseño e implementación del entorno. Con estos propósitos se aborda este trabajo donde además de la propia plataforma se ha implementado diversa instrumentación adicional como generadores de señal analógicos y digitales, placas con transductores y sus circuitos acondicionadores, etc. Esta plataforma está formado por las siguientes unidades básicas: Dos subsistemas hardware. Una que se encargará del tratamiento y acondicionamiento de las señales a medir para ajustarlas a los requerimientos de tensión del conversor AD del microcontrolador así como de los generadores de funciones y circuitería adicional. Otra parte basada en un microcontrolador que hace de interfase entre los circuitos analógicos y digitales, y que vía serie se conecta al instrumento virtual implementado en el PC. La transmisión es bidireccional ya que la tarjeta envía al PC la señales analógicas y digitales y el PC envía señales de control, por ejemplo para controlar la operatividad el generador de funciones basado en el XR2206. Dos módulos software. Uno de ellos será el propio programa que almacenado en el microcontrolador y que contendrá el programa monitor con los algoritmos pertinentes para el correcto funcionamiento según los requerimientos funcionales. El otra módulo es el propio instrumento virtual desarrollado en el entorno LABVIEW en el cual reside toda la capacidad de control, monitorizado y procesado de las señales. En la figura 1 se muestra un diagrama en bloques del sistema. Fig. 1. Estructura general del entorno 2. Especificaciones del sistema Las característica funcionales más definitorias de la plataforma son: Adquisición de hasta un máximo de 8 señales analógicas unipolares para el sistema de adquisición y comprendidas entre 0 y 3v con un ancho de banda de 250 Hz por canal. Posibilidad de adquisición de hasta 2 señales analógicas bipolares , comprendidas entre 0 y +-15v. Aplicación de elementos de protección para que las entradas analógicas del microcontrolador (0 a +3V) queden limitadas y evitar su posible deterioro. Máximo aprovechamiento del puerto serie. El puerto serie del ordenador será una de las mayores limitaciones que nos vamos a encontrar con respecto a la velocidad de transmisión de la información (muestras), y que realmente va a determinar la potencia del sistema. En este sentido se ha diseñado el sistema para que únicamente se mande la información útil solicitada. Es decir, si se programa la adquisición de unos canales concretos , sean las muestras de estos canales las que se transmitan sin dejar información vacía de los canales no solicitados. Flexibilidad respecto a su configuración. El rango de trabajo de recepción de los datos dependerá fundamentalmente de los siguientes aspectos : o o o o numero de canales solicitados. tiempo destinado a la conversión analógico a digital. velocidad de transmisión del puerto serie . numero de instrucciones realizadas por el microcontrolador para el proceso. En este contexto se ha querido dotar de cierta flexibilidad combinando: la elección del tiempo de conversión (valor ADCLK en el microcontrolador ) y la velocidad de transmisión por el puerto serie ( 57600 o 115200 baudios) . Elección entre dos formas de adquisición : o Adquisición continua. o Adquisición de un numero de muestras determinado (desde 1 a 65536 muestras). Posibilidad de archivar en fichero las muestras recibidas, para su posterior tratamiento bajo una aplicación externa. Así mismo existe la posibilidad de adquirir datos a través de la tarjeta del microcontrolador (hardware) o a través de un fichero (software) con información adquirida de experimentos anteriores. Alternativa en que el disparo (trigger) de la adquisición de los datos se realice bien desde el propio instrumento virtual o bien bajo la aparición de un evento (flanco o nivel) producido exteriormente. Posibilidad de elección de un modo de funcionamiento para poder tratar señales de una cierta frecuencia. El desarrollo de este punto es lo que realmente va a dar potencia al sistema al poder medir señales de hasta 8 kHz. Para ello nos apoyaremos en una memoria XRAM que dispone el microcontrolador, y de un modo de trabajo en el que con las mínimas instrucciones posibles tengamos la posibilidad de adquirir por un solo canal hasta 1024 muestras lo mas rápido posible para que luego finalmente sean transmitidas por el puerto serie a la velocidad requerida. Posibilidad de realizar operaciones matemáticas con las señales adquiridas en tiempo real,. Distinta alternativas de aplicar a las señales capturadas filtrado digital FIR o IIR (Butterworth, Chebyshev, Bessel,..) así como de las topologías paso bajo, paso alto, paso banda y rechazo de banda, y la posibilidad de especificar las características de filtraje como: atenuación, rizado, orden, etc. Posibilidad de visualizar las distintas señales adquiridas, así como las señales procesadas, con un alto grado de exactitud respecto a amplitud y periodo de las mismas de forma muy similar a como se representarían en un osciloscopio o analizador lógico. Representación de las señales tanto en el dominio del tiempo como en el dominio de la frecuencia de forma similar a un analizador de espectros de bajo coste. Presentar un entorno de aplicación útil y de uso sencillo e intuitivo, de forma que cualquier usuario no encuentre dificultades a la hora de operar con el sistema. Desde el instrumento virtual se envían 6 palabras con todos los parámetros de configuración del sistema :modo adquisición, numero de muestras, mascara con canales solicitados, modo ejecución X2, y disparo (trigger). Una vez recibida esta información el microcontrolador ejecutará las instrucciones de las funciones que correspondan para transmitir las muestras con el modo de funcionamiento programado. En la figura 2 se muestra, de una forma resumida la operatividad del sistema. La primera tarea a realizar es la configuración del puerto serie. Puesto que los datos pueden adquirirse en tiempo real desde el puesto serie o procedentes de un experimento anterior almacenados en un fichero, la siguiente acción a realizar es determinar la procedencia de los datos. Una vez configurado el sistema la funcionalidad del mismo es intuitiva. 3. Tarjeta de control del sistema. La tarjeta de adquisición y control, con todos sus circuitos auxiliares, se encarga de la captura, el control y la visualización de las variables que se desean controlar. El microcontrolador empleado es el T89C51AC2, de Atmel. Dispone de 32Kbytes de memoria FLASH de código, 128 bytes de memoria RAM interna y 1Kbyte de memoria RAM externa, la posibilidad de emplear sólo 6 ciclos pulsos de reloj por ciclo de máquina y un hardware muy completo y variado, entre los que se incluye un convertidor analógico-digital por aproximaciones sucesivas de 10 bits multiplexado, módulos PWM y contadores - temporizadores. El microcontrolador realiza todas las funciones de control de la tarjeta mediante el empleo de sus interrupciones y módulos hardware. En la figura 3 se muestra el esquema hardware de la tarjeta. Fig. 2. Esquema operativo del sistema JP2 VCC_5 GND 1 2 3 4 5 6 7 8 9 10 U4 GND 1 VCC_3.3 2 3 4 5 6 7 8 9 10 VCC_5 11 12 13 14 15 16 17 18 19 20 21 22 PUERTO 1 JP3 VCC_5 GND 1 2 3 4 5 6 7 8 9 10 PUERTO 3 SW1 SW_SL_SPDT C1 VAGND VAREF P1.0/AN0/T2 P1.1AN1/T2EX P1.2/AN2/ECI P1.3/AN3/CEX0 P1.4/AN4/CEX1 P1.5/AN5/CEX2 P1.6/AN6/CEX3 P1.7/AN7/CEX4 EA P3.0/RxD P3.1/TxD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P4.0 P4.1 P2.7/A15 RESET VSS VCC XTAL1 XTAL2 ALEN PSEN P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 RESET GND VCC_5 GND Y1 CRY STAL 22p C2 1 2 3 VCC_5 GND 22p PUERTO 0 GND VCC_5 VCC_5 GND T89C51AC2 P1 5 9 4 8 3 7 2 6 1 VCC_5 GND 2 VCC_5 C5 1u C1+ VCC VS+ GND C1T1OUT C2+ R1IN C2R1OUT VST1IN T2OUT T2IN R2IN R2OUT VCC_5 GND VCC_3.3 U3 0 U2 1 2 3 4 5 6 7 8 C4 1u JP4 1 2 3 4 5 6 7 8 9 10 PUERTO 2 C6 1u CONNECTOR DB9 C3 1u 10 9 8 7 6 5 4 3 2 1 JP1 16 15 14 13 12 11 10 9 VCC_5 GND MAX232 GND VCC_5 GND 1 2 3 HEADER 3 1 RESET JP5 R1 220 C8 10u R2 8k2 C7 1u GND Fig.3. Esquema hardware de la tarjeta 4. Instrumento virtual. El panel frontal del instrumento virtual, figura 4, es la interfase de usuario y está dividido en siete secciones cada una de ellas con una funcionalidad específica.. Fig.4. Interfase de usuario En esta pantalla también se procede a configurar los parámetros de operación del entorno hardware y software. 4.1. Señales analógicas La pestaña Señales Analógicas se encarga de mostrar en pantalla hasta un máximo de 8 señales analógicas capturadas a través de la tarjeta de adquisición de datos con un ancho de banda de 250Hz.. La adquisición se basa en el método Round-Robin. Así mismo proporciona la posibilidad de configurar los canales que deseamos. Se incorpora también la opción de establecer límites inferiores o superiores, a partir de los cuales se muestre en pantalla si la señal sobrepasa esos valores. También es posible realizar operaciones matemáticas de suma, resta, multiplicación y división entre las señales capturadas. En la gráfica de la figura 4 se muestran diversas señales adquiridas. 4.2. Señales digitales. Esta sección muestra las señales digitales capturadas a través de la tarjeta de adquisición de datos o almacenadas en un fichero. Como máximo se pueden representa hasta 22 señales. Operativamente se comporta como un analizador lógico de bajo coste. Figura 5 Fig.5. Señales digitales capturadas 4.3. Enviar señales. El entorno permita la posibilidad de enviar señales digitales a través de la tarjeta de adquisición de datos. Una aplicación inmediata de esta posibilidad es el análisis funcional de un circuito digital. 4.4. Generador de ondas. En esta sección se generan las señales de control que operan sobre el generador de señales implementado sobre el CI XR2206 seleccionando el tipo de señales y su rango de frecuencia. Así mismo es posible generar señales senoidales, cuadradas y triangulares vía software. En este caso como CDA se emplean los canales PWM del microcontrolador. 4.5. Análisis espectral. El análisis espectral permite estudiar y representar las señales en el dominio de la frecuencia. EL elemento básico de esta sección es la FFT. Para realizar el correspondiente procesado el usuario dispone de la posibilidad de emplear distintas ventanas tales como: Hanning, Hamming, Blackman-Harris, Exact Blackman, Blackman, Flat Top,4 Term B-Harris, 7 Term B-Harris y Low Sidelob .En la figura 6 se muestra una señal triangular representada tanto en el dominio del tiempo como en el de la frecuencia. Dentro del análisis frecuencial además de calcular y representar los armónicos se puede determinar el Espectro de Potencia de una señal. Fig.6. Análisis espectral El diseño de la aplicación se ha realizado con un método “top-down” ya que es el más adecuado a las características de LabVIEW puesto que el lenguaje G puede enmarcarse dentro de los lenguajes procedurales además de ser un lenguaje concurrente. Entendiendo que un método estructurado “top-down” se basa en la subdivisión de programas complejos en subprogramas sencillos, con esta técnica cualquier aplicación por compleja que resulte se estructura en un árbol jerárquico de procedimientos sencillos que en LabVIEW se implementan mediante subVIs. En la figura 7 un subVI empleado en el análisis espectral. Fig.7. SubVI empleado en el Análisis espectral. 4.5. Filtros Digitales En el filtrado digital se puede realizar tanto mediante la topologías FIR e IIR. Entre los tipos de filtro IIR más representativos son: Butterworth:, Chebyshev:, Inverse Chebyshev:, Eliptico y Besse. En esta sección además de comprobarse la acción del filtrado es posible estudiar y conocer las características operativas mas notables del filtro elegido, figura 8. En esta sección también se pueden elegir distintos tipos de ventanas como en el Análisis Espectral. Fig.8. Filtrado digital 4.6. Valores estadísticos Mediante la pestaña Valores Estadísticos se accede al cálculo y representación de distintos valores estadísticos de las señales que son capturadas por la tarjeta de adquisición de datos o leídas desde un fichero. Los valores estadísticos de cada canal son: Media, Varianza, Desviación, Máximo y Mínimo 5. Ampliación. Como ampliación y actualización del entorno se ha optado por el controlador USBN9603, que es un nodo de control USB compatible con las versiones 1.0 y 1.1. El dispositivo incluye soporte DMA, un regulador de 3.3 V, Serial Interface Engine (SIE), modo de funcionamiento paralelo de 8 bits, un generador de reloj y comunicación MICROWIRE/PLUS. Incluye también 7 Endpoints (EP) FIFOs, una de ellas bidireccional de 8 bytes como Endpoint de control y las demás de 64 bytes para la transmisión y recepción. La comunicación de 8 bits paralela soporta tanto Multiplexed Mode como Non-Multiplexed Mode para la comunicación con el microcontrolador. La comunicación MICROWIRE/PLUS permite adaptar la CPU sin buses de direcciones y de datos externos. Una salida de interrupción programable permite adaptarse a diferentes tipos de requerimientos de las señales de interrupción. Utiliza un circuito oscilador con un cristal de 24 MHz, consiguiéndose un reloj interno de 48 MHz. En la figura 9 se muestra el esquema hardware propuesto. U1 VCC_5 SW3 JP1 VCC_5 1 2 3 4 5 6 7 8 9 10 25 24 VCC_5 0 PSEN SW KEY -Y 1011 SW1 MODE0 MODE1 D+ D- 0 26 27 28 SW KEY -Y 1011 SW KEY -Y 1011 0 U2 VCC_3.3 1 2 3 4 5 6 7 8 9 10 11 RXD 12 TXD 13 INT 14 CS 15 RESET_USB 16 ALE 17 WR 18 RD 19 20 21 22 0 HEADER 10 P1 5 9 4 8 3 7 2 6 1 0 VAGND VAREF P1.0/AN0/T2 P1.1AN1/T2EX P1.2/AN2/ECI P1.3/AN3/CEX0 P1.4/AN4/CEX1 P1.5/AN5/CEX2 P1.6/AN6/CEX3 P1.7/AN7/CEX4 EA P3.0/RxD P3.1/TxD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P4.0 P4.1 P2.7/A15 RESET VSS VCC XTAL1 XTAL2 ALEN PSEN P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 SW2 C7 22p RST51 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 VCC_5 X1 0 X2 PSEN D7 D6 D5 D4 D3 D2 D1 D0 RESET_USB16 V3.3 C3 1u C2 1u C1 1u 16 15 14 13 12 11 10 9 0 RESET WR/SK RD CS V3.3 INTR 7 8 9 10 11 12 13 14 15 ALE D0 D1 D2 D3 D4 D5 D6 D7 3 2 1 WR RD CS 4 INT USB1 R9 33 R10 33 D+ D1 2 3 4 5 6 7 8 9 10 C10 4 3 2 1 0 VCC_5 JP2 VCC_5 0 C5 1u 1u U3 18 D+ D- USBN9603 VCC_5 C1+ VCC VS+ GND C1T1OUT C2+ R1IN C2R1OUT VST1IN T2OUT T2IN R2IN R2OUT DRQ DACK C8 22p C4 1 2 3 4 5 6 7 8 5 6 VCC_5 Y1 24 MHz T89C51AC2 CONNECTOR DB9 A0/ALE/SI D0/S0 D1 D2 D3 D4 D5 D6 D7 XIN XOUT CLKOUT 19 20 GND D+ DVCC Conector USB R11 1k V3.3 C6 10u 0 HEADER 10 VCC_5 1n RXD TXD X1 X2 MAX232 R12 220 Y2 CRY STAL 0 R8 10k RST51 C11 0 VCC_5 C9 10u D0 R13 8k2 1n R7 10k D1 R6 10k D2 R5 10k R4 10k D3 D4 R3 10k D5 R2 10k D6 R1 10k D7 0 JP3 VCC_5 1 2 3 0 VCC_3.3 HEADER 3 Fig.9 Esquema de la tarjeta con USB En este contexto otra alternativa es la adaptación RS232 a USB mediante el CI FT232BM. Este CI operativamente consta de dos secciones, una RS232 y otra USB de forma que se puede sustituir el MAX232 de la figura 2 por el FT232BM, figura 10. USB1 GND D+ DVCC R2 27 4 3 2 1 USBDP USBDM C5 10n R3 27 0 Conector USB FB1 1 VCC_5 R8 1k5 2VCC_5 RSOUT TOROIDAL DE FERRITA JP1 1 2 3 4 5 RxD TxD CTS# RTS# POWERDN# Conexiones Microcontrolador 0 C4 33n R1 470 U3 1 2 VCC_5 3 VCC_5 4 RSOUT 5 6 USBDP 7 USBDM 8 9 0 10 11 12 VCC_5 13 14 0 15 16 EESK EEDATA VCC1 RESET# RSOUT 3V3OUT USBDP USBDM GND1 SLEEP# RXLED# TXLED# VCCIO PWRCTL PWREN# TXDEN EECS TEST AVCC AGND XTOUT XTIN VCC2 TXD RXD RTS# CTS# DTR# DSR# DCD# RI# GND2 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 FT232BM Fig.10. Adaptación RS232-USB 0 0 0 VCC_5 TxD RxD RTS# CTS# 0 0,1u C3 6 MHz C2 27p Y1 C1 27p 0 6. Conclusiones A modo de resumen, el instrumento virtual tiene la siguiente funcionalidad: I) Monitorizar en el dominio temporal hasta 8 señales analógicas, en este caso el ancho de banda para cada uno de los 8 canales es de 250 Hz. En la adquisición se emplea el método Round-Robin. II) Monitorizar en el dominio del tiempo hasta 22 señales digitales (analizador lógico). III) Generar por software diversas señales analógicas (senoidal, cuadrada, triangular) y señales digitales patrones para test de circuitos. También es posible generar, vía hardware con el CI XR 2206, controlado desde este instrumento virtual, diversas señales analógicas de test y medida IV)Procesado de señales tanto en el dominio del tiempo como en el dominio de la frecuencia (FFT y Espectro de Potencia), V) Operaciones matemáticas y cálculos estadísticos. Toda la información tanto de adquisición como de procesado puede almacenarse en un fichero. A la abundante información gráfica se accede mediante los correspondientes submenús a los que el usuario tiene fácil acceso a través de la correspondiente interfase gráfica. Se ha diseñado, desarrollado e implementado un entorno de bajo coste donde integrando la funcionalidad de una tarjeta de adquisición basada en un μC y la flexibilidad de la instrumentación virtual se ha logrado crear una aplicación multidisciplinar que permite experimentar sobre una amplia variedad de conceptos teóricos. En este contexto se adopta una estrategia educativa de probada eficacia como es la de aprender haciendo, y un docente debe generar diversas posibilidades de aprendizaje. Aunque dedicado a la docencia, es posible su adecuación al campo industrial por la standarización de su diseño. Este trabajo se ha desarrollado en el marco del proyecto de investigación de la Comunidad Europea dentro del Programa ALFA Nº CRIS 96302, contrato Nº AML/B7311/97/0666/II-0354-A. Referencias [1] M. Barrón, J. Martínez, Aplicaciones prácticas con el μC-8051.Programación en lenguaje C. ISBN: 84699-1512-6. Ed. Artes gráficas Michelena, 1998. [2] J. Essick, Iadvanced LabVIEW Labs, ISBN:0-13-833949-X Ed. Prentice-Hall, S. River USA, 1999. [3] M.L. Chugani, A.R. Samant, and M. Cerna, LabVIEW SignalProcessing, Prentice-Hall, S. River USA, 1998