You are on page 1of 4

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


Osuna Romero, Juan Carlos. josunaromero@yahoo.es ITFIP
Quimbayo, Adolfo. adolfo.quimba@hotmail.com ITFIP
Surez Sierra, Miguel. misusibu@hotmail.com ITFIP


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];

void main() {
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

setup_ccp1(CCP_PWM); // Configurar CCP1
como PWM

// 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

Arquitectura de Computadores

// Frecuencias: //
T2_DIV_BY_1 -> 128us -> 7,81KHz
// T2_DIV_BY_4 -> 512us -> 1,95KHz
// T2_DIV_BY_16 -> 2,05ms -> 487,8Hz

setup_timer_2(T2_DIV_BY_16, 127, 1);

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

You might also like