Subido por claudiosel

SistemademedicionyadquisiciondedatosmediantemicrocontroladorPICeinterfazUSBparaelanalisisdeseales

Anuncio
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/272831037
Sistema de medición y adquisición de datos mediante microcontrolador PIC e
interfaz USB para el análisis de señales
Conference Paper · November 2005
CITATIONS
READS
0
1,797
3 authors, including:
Ricardo Francisco Martinez-Gonzalez
Veracruz Institute of Technology
20 PUBLICATIONS 47 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Design of Pseudorandom Noise Generators View project
Self-equipment View project
All content following this page was uploaded by Ricardo Francisco Martinez-Gonzalez on 28 February 2015.
The user has requested enhancement of the downloaded file.
Sistema de medición y adquisición de datos mediante
microcontrolador PIC e interfaz USB para el análisis de señales.
Sergio Adrián López Hernández, Ricardo Martínez González, Ing. Miguel Valerio Canales *
*Asesor en la Investigación y Desarrollo del Proyecto
Instituto Tecnológico de Veracruz, Ingeniería Electrónica
Calzada Miguel Ángel de Quevedo No. 2779 Veracruz, Veracruz
C.P. 91860, México
[email protected]
Resumen - En éste artículo se presenta el diseño de un
instrumento virtual capaz de obtener la respuesta de
dispositivos electrónicos en un intervalo discreto de tiempo y
posteriormente representarla en forma gráfica en la pantalla
de la PC, mediante un software de uso especifico, encargado
de controlar el hardware y recibir de él los datos para su
análisis y manejo.
Una de las características principales del proyecto es que tanto
las señales de control como de datos viajan por el puerto USB
de la computadora, el cual es en este momento, uno de los
estándares mas utilizados para la conexión de dispositivos
externos a una PC.
Se analizan también los alcances y limitaciones del proyecto,
así como soluciones para su correcta implementación.
Palabras Clave – Interfaz de control, Microcontrolador PIC,
Interfaz USB, Osciloscopio virtual, Sistema de Adquisición de
Datos.
I. INTRODUCCIÓN
La adquisición de datos es el proceso que involucra la
recopilación de información de forma automatizada a partir
de fuentes de medición análogas y digitales como sensores
y dispositivos bajo prueba [1]. Consiste básicamente en
tomar un conjunto de variables mensurables en forma física
y mediante una etapa de acondicionamiento de señal
adecuarlas a formato digital para procesarlas, almacenarlas
y representarlas de forma gráfica para su análisis posterior.
La adquisición de datos se puede llevar a cabo mediante
tarjetas PCI o ISA exclusivas para computadoras de
escritorio o por tarjetas PCMCIA para computadoras
portátiles, o mediante puertos externos como el RS-232, el
puerto paralelo o los puertos USB.
II. APLICACIONES
El módulo de adquisición de datos desarrollado puede ser
empleado como una herramienta que proporcione las curvas
características de dispositivos electrónicos, brindando al
diseñador, la respuesta del dispositivo de forma particular
de modo tal que realice los ajustes necesarios en los
cálculos para disminuir las probabilidades de error en los
sistemas a implementar, sin la necesidad de recurrir a
instrumentos mas costosos disponibles en el mercado.
El dispositivo puede ser empleado también como
osciloscopio virtual, mediante la obtención de muestras de
la señal de entrada y la representación de forma grafica en
el dominio del tiempo a través del software encargado de la
interfaz de control con el módulo.
El software de control permite además el poder aplicar
filtros digitales a la señal almacenada y observar la
respuesta de los mismos de forma tal que si se le estuviera
aplicando el filtro a la señal de manera directa.
III. OBJETIVOS
Proporcionar al diseñador una herramienta capaz de medir
las características de un dispositivo en particular con el fin
de que estos datos sean considerados en el momento de
realizar los cálculos en el diseño de un sistema y de este
modo evitar que se presenten comportamientos inesperados
o que la precisión se vea afectada.
Emplear lo mas reciente en cuanto a estándares de
comunicación entre dispositivos electrónicos y la PC,
mediante el uso del puerto USB, debido a que el puerto RS232 no se encuentra presente en computadoras portátiles de
modelo reciente, logrando un instrumento capaz de
adaptarse a los sistemas actuales.
Construir un prototipo de un sistema de adquisición de
datos de bajo costo, el cual cuente con la opción a
expandirse en cuanto a hardware y software sin modificar el
diseño original, mediante la elaboración de un diseño con
arquitectura modular en la cual sus componentes y
terminales de interconexión se encuentren distribuidas por
bloques encargados de realizar tareas especificas,
independientes unos de otros y ligados entre si por un
circuito de control mediante un microcontrolador con
numerosas terminales de I/O.
IV. DESCRIPCIÓN DEL MÓDULO
Los componentes que conforman el sistema de medición y
adquisición de datos se ven representados en el diagrama a
bloques que se muestra en la Fig. 1, los cuales se describen
mas adelante.
o viceversa. Los tiempos de establecimiento de nivel bajo a
alto (TPLH) y de nivel alto a bajo (TPHL) se definen como el
tiempo que tarda un nivel de voltaje en cambiar de un nivel
de voltaje considerado como un determinado estado lógico
al nivel de voltaje que representa el estado contrario.
Puesto que la transición no se realiza de forma ideal se
desarrolla un circuito capaz de medir el tiempo que tarda el
pulso en pasar de un estado a otro.
A) Descripción del circuito.
Fig. 1. Diagrama a bloques del módulo.
1) Circuito de control de la interfaz USB.
Consta de un microcontrolador PIC gama media,
PIC16LF877A, el cual se comunica mediante el puerto
USART a través de una conexión serie asíncrona con el
módulo de electrónica híbrida SMD-USB-QS-S de Linx
Technologies encargado de convertir los voltajes TTL al
protocolo USB, comunicándose con el microcontrolador a
una tasa de baudios de 33.6Kbps y con la PC usando el
protocolo USB 2.0 a una tasa máxima de transferencia de
3Mbps.
El PIC es el encargado de recabar la información
proporcionada por los circuitos que complementan al
módulo, haciendo uso de su memoria RAM interna, para
posteriormente enviarla a la PC, en donde se realizaran los
cálculos pertinentes. El circuito cumple entonces con
funciones de interfaz de transmisión, transceptor USB y
almacenamiento de datos.
Fig. 2. Circuito de control de la interfaz USB.
2) Circuito para medir tiempo de respuesta de
dispositivos.
Por lo general los dispositivos electrónicos, aun siendo
parte del mismo lote de producción, tienen diferencias en
cuanto a la respuesta que presentan unos con otros, por lo
que el fabricante establece un rango o tolerancia, el cual
aparece en las hojas de datos. Esto puede ser un factor
despreciable en la mayor parte de las aplicaciones, sin
embargo, en algunos casos, en donde se requiere cierta
precisión, estas variaciones pueden reflejarse en
comportamientos inesperados del sistema.
Los niveles lógicos son representados con niveles de voltaje
y por lo tanto distan mucho de ser cambios ideales de 0 a 1
El circuito además de encargarse de la medición de tiempos
de respuesta es capaz de medir niveles de voltaje de DC,
por lo que puede ser empleado como un voltímetro digital,
además de que si se coloca una resistencia de valor
conocido en serie a la salida de ciertos circuitos, es posible
medir corriente.
La parte medular esta conformada por el DAC7541,
convertidor digital a análogo de 12 bits y su circuito de
control implementado mediante contadores up/ down.
Se emplean contadores ya que los circuitos de carga serial
para el DAC tienen el inconveniente de que las operaciones
son lentas, debido al tiempo que se demora en transferir la
información hacia adentro y hacia fuera de los registros de
desplazamiento, además, si se considera un sistema digital
en modo serie, al momento de pasar los datos en paralelo,
un uno presente en el LSB del DAC, deberá recorrer todas
las posiciones desde la mas significativa hasta llegar a su
destino, lo que origina niveles transitorios de voltaje
indeseables a la salida.
El circuito consta de 2 registros 74LS164 los cuales llevan a
cabo la operación de precarga de contadores, estos últimos
presentan una disposición en cascada, para manejar 12 bits
de resolución. Mediante el microcontrolador se envían
pulsos a las terminales de conteo ascendente o descendente,
para alterar únicamente las terminales del DAC que se ven
afectadas de forma directa, evitando así el problema de la
carga en serie de registros.
El voltaje a la salida del DAC es un nivel de DC que varía
de 0 a 8V, el cual se introduce a la terminal negativa de un
comparador diferencial LM311, para llevar a cabo
mediciones con respecto a una señal de entrada que se
introduce en su terminal positiva. Debido a que el
comparador trabaja en el orden de los nanosegundos, es
ideal para una precisión de los datos que puedan ser
recopilados mediante este circuito, como son mediciones de
voltaje de DC, y tiempos de respuesta de dispositivos en
transiciones ascendentes y descendentes.
Fig. 3. Circuito para medir voltajes y tiempos de respuesta.
1. Algoritmo para la medición de voltaje de salida de
un dispositivo.
Para conocer el voltaje máximo de la señal de salida de un
dispositivo electrónico, se le aplican un nivel de referencia
(inicialmente 0V) y la señal de salida del dispositivo a un
comparador diferencial, el cual presenta un nivel de voltaje
igual a 5V en su terminal de salida, mediante un DAC de 12
bits se va incrementando el voltaje de referencia hasta que
la salida del comparador sea de 0V, el microcontrolador se
encarga de contar la cantidad de pulsos enviados al circuito
del DAC, la computadora recibe el numero de pulsos y
realiza los cálculos de acuerdo a la resolución del DAC y su
voltaje de referencia para conocer el valor de voltaje
máximo de la señal de salida de un dispositivo electrónico
en particular.
2. Algoritmo para medir tiempo en función de niveles
de voltaje.
La señal de salida del dispositivo a analizar es mandada a
estado bajo, mediante el circuito del DAC de 12 bits se fija
un nivel de voltaje DC, se excita al dispositivo para que
realice la transición a nivel alto y se inicia un contador en el
microcontrolador, en el momento del cruce de ambas
señales el comparador diferencial pone su salida a un valor
de 5V y se detiene el contador, el valor del contador se le
envía a la PC, la cual tomando como referencia la
frecuencia de oscilación del microcontrolador realiza los
cálculos del tiempo que toma a la señal en alcanzar el
voltaje predefinido.
3. Algoritmo para calcular el tiempo de respuesta de
un dispositivo.
Fig. 4. Diagrama a bloques del sistema de adquisición de datos por
USB.
Basa su funcionamiento en un convertidor análogo a digital
ADC tipo flash de 4 bits, debido a que este tipo de
convertidor es el que posee el tiempo de respuesta mas
corto, del orden de los nanosegundos, brindando al
microcontrolador una gran cantidad de muestras,
garantizando no perder detalle de cualquier variación que
ocurra en la señal introducida.
A) Funcionamiento del circuito.
Para realizar el ADC tipo Flash es necesario 2n
comparadores, se emplean comparadores diferenciales de
alta velocidad LM311; siendo n el número de bits de
resolución del mismo, por lo cual este tipo de convertidores
es de un costo elevado y de difícil implementación, ya que
para una mayor resolución es necesario generar escalones
mas pequeños y menos notorios, lo que incrementaría de
manera significativa el numero de comparadores a utilizar.
Debido a que se implementa un convertidor con 4 bits de
resolución se requiere de 16 comparadores, presentando una
resolución pequeña aunque con la capacidad de muestrear
señales a altas velocidades.
En la terminal positiva de los comparadores se introduce la
señal a capturar, y en sus terminales negativas se emplea un
arreglo resistivo de divisor de voltaje, proporcionando una
resolución de 0.3333V entre escalones, en base a un voltaje
de referencia máximo de 5V, el cual es una de las variables
a considerar en la etapa de acondicionamiento de la señal,
puesto que si este voltaje es regulable, es posible abrir o
cerrar el rango de los escalones, para ajustarse a los valores
máximos de la señal de entrada que se desee representar. A
continuación en la Fig. 5 se muestra el circuito empleado
para esta etapa del módulo.
La señal de salida del dispositivo a analizar es mandada a
estado alto, posteriormente se calcula su voltaje máximo,
conociendo ese valor se le envía a la PC, la cual se encarga
de calcular el 10% del voltaje total y el 90% del mismo.
Mediante el DAC de 12 bits se fijan esos niveles de voltaje
y se mide el tiempo que tarda la señal en alcanzarlos.
Posteriormente se envían a la computadora dichos tiempos,
la cual se encarga de realizar la diferencia para calcular el
Δt del dispositivo, de esta forma es posible conocer el
tiempo de respuesta para cualquier transición, ya sea de 0 a
1 o viceversa.
3) Circuito de adquisición de datos para graficar la
forma de onda de una señal.
A continuación, en la Fig. 4 se pueden observar las etapas
que conforman el circuito empleado para la adquisición de
datos [2].
Fig. 5. Comparador Flash de 4 bits.
Posteriormente se presenta una etapa de cuantificación del
voltaje de entrada, para ello se recurre a un codificador de
prioridad el cual se encarga de mostrar en sus salidas cual
fue el comparador de mayor peso que esta activo.
Se implementa mediante una GAL20V10, a la cual se le
programa la tabla de verdad que se muestra en la Tabla I.
Las terminales de salida de la GAL se conectan con el
microcontrolador, el almacenamiento de estos valores por
parte del PIC se realiza con el menor número de
instrucciones, brindando un incremento en la velocidad,
favoreciendo el número de muestras de la señal a capturar.
Tabla I. Arreglo programado en una GAL20V10 como codificador de
prioridad.
Entrada
MSB
Salida
MSB
LSB
LSB
0000000000000000
0000000000000001
0000000000000011
0000000000000111
0000000000001111
0000000000011111
0000000000111111
0000000001111111
0000000011111111
0000000111111111
0000001111111111
0000111111111111
0001111111111111
0011111111111111
0111111111111111
1111111111111111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
A. Comunicación con el módulo USB.
En cuento a las consideraciones en la velocidad del circuito,
en el microcontrolador la captura de datos se implementa
mediante 3 instrucciones.
INCF
MOVFW
MOVWF
FSR, 1
PORTC
INDF
; incrementa dirección de memoria
; lee el puerto de entrada de datos
; guarda el dato en memoria
El PIC consume cuatro ciclos de reloj por instrucción, por
lo tanto, se tienen 12 ciclos de instrucción para la toma de
cada muestra [3].
La velocidad de almacenamiento de datos que puede
alcanzar el PIC depende del cristal de oscilación empleado
y se puede calcular mediante la formula:
tm 
12
fosc
tarea de procesamiento al microcontrolador y poder realizar
muestras a velocidades mayores.
V. SOFTWARE DE CONTROL
El software de control esta desarrollado en Visual Basic 6.0
y Measurement Studio 6.0, se encarga de enviar datos desde
la PC hasta el módulo USB, a través de llamados a librerías
dinámicas DLL y de recibir los datos que le envía el
microcontrolador a la PC para su procesamiento, análisis y
representación.
(1)
El
microcontrolador
PIC16LF877A soporta como máximo un cristal de 20Mhz,
en base a la formula (1) se obtiene que el tiempo de
muestreo es de:
tm  0.6s
El microcontrolador va a estar recopilando los códigos que
le envía la GAL de forma continua a una velocidad de
muestreo de 0.6µs (1.66MS/s) durante 25.2µs es decir
recopila 42 muestras de señal, las almacena en la memoria
RAM del microcontrolador y las envía a la PC para que esta
realice el procesamiento de los datos y los represente de
forma grafica mediante software en un osciloscopio virtual,
posteriormente se realiza una nueva toma de muestras y
envío de las mismas; el proceso se repite hasta presionar el
botón de “Detener medición” mediante el software de
control.
El microcontrolador se emplea como un dispositivo
encargado de organizar el almacenamiento, tráfico y
manejo de datos, mientras que el software de la
computadora actúa como interfaz grafica de usuario,
además de realizar los cálculos, conversiones e
interpretación de códigos, con el objetivo de librar de la
La comunicación con el módulo USB se realiza llamando
funciones de la librería FTD2XX.DLL, la cual contiene las
instrucciones para configurar la memoria E2PROM del
módulo, así como instrucciones estándar de manejo de
información.
Para enviar información al módulo USB se utiliza la
instrucción FT_Write( ), la cual escribe el buffer de
transmisión de módulo USB, se cuenta con 128 bytes de
transmisión disponibles, los datos son extraídos
posteriormente por una UART FIFO y transmitidos en
forma asíncrona a una tasa de transferencia definida en el
software de programación. La única limitante de la
velocidad es la tasa de baudios que soporta el oscilador del
PIC, la cual debe proporcionar una transmisión confiable en
cuanto a probabilidad de error se refiere.
Para recibir información de parte del módulo se emplea la
instrucción FT_Read( ), la cual almacena en una variable de
tipo cadena el byte recibido, posteriormente debe ser
representado en binario o en decimal para interpretar su
valor, procesarlo y visualizarlo de forma grafica.
El módulo USB presenta en sus terminales de transmisión
(TX) y recepción (RX) niveles de voltaje TTL, por lo que
no necesitan de circuiteria adicional para interactuar con un
microcontrolador u otro dispositivo que maneje una
comunicación asíncrona.
B. Comunicación con el microcontrolador
El instrumento virtual permite manejar el hardware desde
un sistema de control implementado mediante software, que
se encarga de enviar señales a los circuitos físicos, en los
que se realiza la medición, posteriormente los datos son
almacenados en el microcontrolador, el cual los transmite al
módulo USB a una tasa de transferencia de 33,600 baudios.
El sistema de control se encarga de enviar señales por el
puerto USB de la PC hacia el microcontrolador.
Las acciones se activan cuando ocurre un evento en el
software, en ese momento se escribe el buffer de
transmisión del módulo USB, posteriormente se envían los
datos al microcontrolador, los cuales modifican registros
internos de la RAM del microcontrolador PIC mediante
direccionamiento indirecto.
Cuando ocurre la interrupción por finalización de recepción
asíncrona del puerto USART del microcontrolador se
interpreta el valor recibido como una localidad de memoria,
se activa una bandera que indica que el dato recibido fue
una dirección, la cual se va a almacenar en el registro de
direccionamiento indirecto FSR.
Mediante una tabla de saltos incondicionales se extrae el
dato del FSR, se enmascara y se realiza un salto a la rutina
que afecte los puertos de entrada - salida correspondientes a
la dirección enviada.
El microcontrolador se cicla hasta recibir un nuevo dato
mediante recepción asíncrona; una vez capturado el dato se
ejecuta la acción.
hasta la última etapa de diseño, la implementación en
circuitos impresos, se usó placa de fibra de vidrio de doble
cara, logrando circuitos de dimensiones reducidas.
Fig. 6. Software de control y adquisición de datos “Neo-Q USB”.
VI. RESULTADOS OBTENIDOS
El sistema de medición fue probado mediante la excitación
de dispositivos optoelectrónicos, como son la
fotorresistencia y los fotodiodos OPT101 de Texas
Instruments, en los cuales se compararon los valores
entregados por el circuito y posteriormente representados
en la PC, con los obtenidos por un osciloscopio digital HP
mod: 546028 de 150Mhz, teniendo en ambos una lectura de
tiempo de respuesta del dispositivo optoelectrónico de 3µs.
Para poder observar la lectura en el osciloscopio fue
necesario aplicar un tren de pulsos al fotodiodo mediante un
generador de funciones, mientras que el dispositivo
elaborado tomó la lectura del evento transitorio necesitando
únicamente un pulso, el cual es proporcionado por el
microcontrolador, sin necesidad de aplicar un instrumento
externo.
Se comparó también la lectura de voltaje de DC entregado
por una fuente de alimentación variable, usando un
multímetro autorango, el osciloscopio y el módulo de
medición de voltaje desarrollado, teniendo una lectura
diferente en los tres instrumentos, pero cercana uno de otro
por 0.2V aproximadamente, lo cual se justifica debido a la
resistencia interna que presenta cada dispositivo.
El sistema de adquisición de datos se probó aplicando una
señal cuadrada, senoidal y triangular proveniente de un
generador de funciones, a frecuencias altas y bajas,
teniendo una respuesta muy cercana a la original, siendo
capaz de detectar y medir correctamente la forma de onda,
voltajes pico a pico, ciclo de trabajo y frecuencia de la
señal; al sobrepasar el rango de frecuencia máximo, la señal
perdía su forma de onda, distorsionándose debido a la
limitante del tiempo de muestreo, volviéndose una señal
representativa, de la que solo la frecuencia de la misma es
un valor real.
VII. CONCLUSIONES Y TRABAJO FUTURO
El funcionamiento del módulo cumplió las expectativas
planteadas en su fase de elaboración, por lo que se llego
View publication stats
Fig. 7. Tarjetas del módulo de medición y adquisición de señales.
Para el circuito del comparador flash, que basa su respuesta
en el arreglo de resistencias, se usaron resistencias al 1% de
tolerancia, para asegurar así una distancia entre escalones
prácticamente idéntica.
Como trabajo futuro se pretende elaborar una etapa de
acondicionamiento de señal más robusta en cuanto a
componentes electrónicos capaces de atenuar y amplificar
la señal de forma selectiva, para adecuarla a valores que se
encuentren dentro del rango de medición del módulo, ya sea
mediante el uso de amplificadores operacionales o arreglos
resistivos.
Debido a que se emplea una cantidad pequeña de bits de
resolución para poder tomar muestras a altas velocidades,
es necesario elaborar un circuito con un convertidor AD de
mayor resolución y menor velocidad, que trabaje en forma
paralela con el convertidor flash, el cual sea posible
conmutar para observar la forma de onda proveniente del
mismo, brindando así, para frecuencias de la señal de
entrada menores, una formas de onda con mayor detalle y
calidad y logrando en conjunto un sistema capaz de medir
ya sea altas o bajas frecuencias conservando una alta
confiabilidad en el resultado presentado.
[1]
[2]
[3]
REFERENCIAS
http://www.ni.com/dataacquisition/esa/whatis.htm,
15 de Agosto de 2005.
Carrillo, L.C, Reyes, R., Ponce, M., “Sistema de
Adquisición de Datos para el Análisis de Señales a
través del Puerto USB de una Computadora”,
articulo presentado en el 1er CMICE2005, México,
D.F.
Angulo, J.M. “Microcontroladores PIC Diseño
practico
de
aplicaciones,
Segunda
parte:
PIC16F87X”, McGaw - Hill, España, 2000.
Descargar