ITFIP. Juan Carlos Osuna. Adolfo Quimbayo. Miguel Surez Sierra.
ADQUISICION DE DATOS USANDO
COMUNICACIN USB EN MODO HID
Arquitectura de Computadores Abstract Implementing USB HID communication presents a microcontroller PIC18F4550 and LabVIEW. The code programmed to the PIC microcontroller reading cyclically sends its analog-digital converter (ADC) value of an RTD PT100 temperature to a personal computer via the USB bus.
Key words USB HID, data acquisition, bridge Wheatstone, linearization
INTRODUCCION
l protocolo HID realiza la implementacin de los dispositivos de manera sencilla. Los dispositivos definen sus paquetes de datos y luego presentan un descriptor HID al host. El descriptor HID es codificado como un grupo de bytes que describen los paquetes de datos del dispositivo. Esto incluye: cuantos paquetes soporta el dispositivo, el tamao de los paquetes, y el propsito de cada byte y bit en el paquete. En HID, el intercambio de datos se hace a travs de Reports, que son estructuras con formato flexible que pueden manejar muchos tipos de datos. Cada report tiene un tamao fijo. Adems se conoce como responder a los datos de un cierto report, as, saber que report usar para la respuesta. En general hay 3 tipos de reports: de entrada, salida y de caractersticas. Como mencionamos antes, en USB hay distintos tipos de transferencias. En el caso de HID slo se usan las trasferencias de control y por interrupcin.
II. MEDICION DE TEMPERATURA
Se llevara a cabo con la RTD PT-100: Resistencia de 100 a 0C. Para medir los pequeos cambios de resistencia se implmentara dos divisores de tensin en paralelo, uno de los cuales contiene el transductor de temperatura, es decir, la PT100. Diseado de forma que en el valor mnimo a medir de temperatura, ambos divisores den la misma tensin (Vd = 0 V), slo har falta medir la diferencia de tensin entre las salidas para obtener una seal que depender de la variable a medir. Esta estructura se conoce como puente de Wheatstone.
Para el montaje del puente Wheatstone se tiene una fuente de alimentacin de 5 voltios teniendo en cuenta que para una temperatura de 0 C el valor de de la RTD es de 100 y se busca que la corriente a travs de cada una de las ramas sea de 1 mA, para evitar el efecto del autocalentamiento en el sensor, se tiene que:
Rr = V/I = 5 volt / 0.001 amp = 5000
Pero como la RTD tiene 100 entonces la otra resistencia debe ser de 4900 . Comercialmente no se encuentra este valor por lo tanto se hace uso de una resistencia de 4.7K de precisin.
Fig. 1 Puente de Wheatstone con los valores resistivos
Para realizar la operacin de hallar la diferencial de voltaje en el puente Wheatstone se hace uso del amplificador operacional de instrumentacin AD620
Fig.2 Circuito de adecuacin de la PT100
Con el fin de adecuar el voltaje diferencial entre un valor de 0 a 5 voltios se busca el factor de ganancia teniendo en cuenta que el mximo valor de temperatura a medir es de 50 ADQUISICION DE DATOS USANDO COMUNICACIN USB EN MODO HID
E ITFIP. Juan Carlos Osuna. Adolfo Quimbayo. Miguel Surez Sierra. ADQUISICION DE DATOS USANDO COMUNICACIN USB EN MODO HID
Arquitectura de Computadores grados centgrados cuyo valor en el puente de Wheatstone es igual a 17,6 milivoltios, por tanto: Ganancia = 5 volt / 0.0176 volt = 284. Lo cual indica que la resistencia de ganancia para el amplificador segn la ecuacin de la hoja de datos es: RG=49.4k/G-1=49.4k/283=174,5 .
Fig. 3 Circuito implementado para medicin de temperatura
III. PROGRAMACION DEL PIC Se realiza la programacin del PIC18F4550 en lenguaje C con el fin de lograr la lectura de temperatura, teniendo en cuenta para ellos la activacin el convertidor ADC y la comunicacin USB HID que permitir a LABVIEW realizar la adquisicin de los datos para mostrarlos en el computador, asimismo, se requiere que se vare la velocidad de un ventilador de manera proporcional a la temperatura para lo cual se hace uso de la generacin de una seal PWM. El programa queda estructurado como sigue: /*************** VARIADOR VELOCIDAD CON SENSOR TEMPERATURA PT100.C ************* Descripcion: Control de velocidad de motor d.c. por PWM por lectura de temperatura por medio de RTD PT100. Entradas: PT100 puente Wheastone -> pin ra0 ADC Salidas: PWM -> CCP1/RC2 */ #include <18F4550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,P LL5,CPUDIV1,VREGEN #use delay(clock=48M) #DEFINE USB_HID_DEVICE TRUE #define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT //turn on EP1 for IN bulk/interrupt transfers #define USB_EP1_TX_SIZE 8 #define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT //turn on EP1 for OUT bulk/interrupt transfers #define USB_EP1_RX_SIZE 8 #include <pic18_usb.h>//Funciones de bajo nivel(hardware) para la serie PIC 18Fxx5x que serviran en usb.c #include <usb_desc_hid.h>//Aqui es donde van las descripciones de este dispositivo (como lo reconocera windows) #include <usb.c> //libreria para el manejo del usb #define LEDR PIN_C0 //Led rojo para la espera de la conexion USB #define LEDV PIN_C1 //Led verde, se enciende cuando el USB esta conectado #define LED_ON output_low #define LED_OFF output_high int pwm; int8 Salida[8]; int8 Entrada[8];
// Usamos el modulo CCP1 como PWM, para ello configuramos el TMR2 de sus tres // formas distintas mediante el preescales(1,4,16) que nos tres distintas frecuencias. // El ciclo viene determinado por (1/clock)* 4 * t2div * (periodo+1), donde en este caso // clock=4MHz y periodo=127. ITFIP. Juan Carlos Osuna. Adolfo Quimbayo. Miguel Surez Sierra. ADQUISICION DE DATOS USANDO COMUNICACIN USB EN MODO HID
LED_ON(LEDR); LED_OFF(LEDV); usb_init(); usb_task(); //Monitorea el estado de la conexion conectandose y desconectandose automaticamente usb_wait_for_enumeration(); //espera infinitamente hasta que el dispositivo fue enumerado LED_ON(LEDV); LED_OFF(LEDR);
while (TRUE) { usb_task(); if (usb_enumerated()) { Salida[0]=read_adc(); usb_put_packet(1, Salida, 1, USB_DTS_TOGGLE); } pwm=read_adc(); set_pwm1_duty(pwm/2); } }
IV. INSTRUMENTO VIRTUAL El cdigo del VI desarrollado detecta la llegada de un dato al puerto USB de la PC a travs de una interrupcin USB. Una vez conectado el dispositivo de adquisicin de datos el sistema operativo lo detecta, sin embargo, el driver se genera con el NI VISA DRIVE WIZARD para que LABVIEW pueda tener control sobre l. Para la comunicacin con el dispositivo USB es conveniente obtener su resource name. El cual se halla ejecutando la utilidad de LabVIEW llamada Visa Interactive Control, despus de haber instalado el driver. El VI permite obtener el valor de la temperatura ledo por el PIC18F4550 y mostrarlo en una escala, asimismo, se puede graficar, establecer lmites de alarma y guardar en un archivo.
Fig. 4 Diagrama circuito electrnico Antes de ejecutar el VI se debe seleccionar el puerto a leer que corresponde con el resource name y el archivo donde se almacenan los datos obtenidos.
CONCLUSIONES
Fig. 5 Panel frontal del VI
Fig. 6 Diagrama de bloques del VI
CONCLUSIONES
Establecemos el procedimiento a seguir para la implementacin de la comunicacin USB en modo HID con la finalidad de crear un sistema de adquisicin de datos, en este caso temperatura, por medio de un instrumento virtual con el cual se pueda dar manejo a la informacin obtenida.
ITFIP. Juan Carlos Osuna. Adolfo Quimbayo. Miguel Surez Sierra. ADQUISICION DE DATOS USANDO COMUNICACIN USB EN MODO HID
Arquitectura de Computadores Identificamos la facilidad que presenta este tipo de comunicacin para la solicitud de informacin al PIC, sin embargo, no realizamos envo de datos desde LABVIEW, ya que no profundizamos en la forma que se estructura el paquete para permitir establecer el cdigo necesario para leerlo.
El desarrollo de este proyecto nos permite establecer pautas para la creacin de tarjetas de adquisicin de datos que puedan manejar al mismo tiempo otros tipos de variables fsicas y ejercer control sobre actuadores que se encuentren en un proceso determinado.
LITOGRAFIA
[1]http://materias.fi.uba.ar/7609/material/S0307MedicionTe mperatura2.pdf [2] http://www.orbelec.es/prodtienda/datos/08222.pdf [3] http://tec.upc.es/ie/RTDs.pdf [3]http://es.scribd.com/doc/98843574/Usb-Con-Pic18f4550- y-Labview-Rev-2012 [4] C compiler IDE