Sie sind auf Seite 1von 5

d Ingeniera Ele

ectrnica del Golfo CONAGOL


LFO 2009
Congreso Nacional de
Instituto Tecno
olgico de Oriza
aba

Comuniccacin USB de Alta Velocidad


d entre LABVIEW
L
W y un
Microcon
ntrolador para
p
la Ad
dquisicin
n de Datos en Tiemp
po Real
J. A. Prez Cuueto, F.R Lpeez Estrada
Departaamento de elecctrnica, Instituuto Tecnolgicco De Tuxtla Gutirrez,
G
Mxiico
Telfonoo: 961 12415922 E-mail: adriaanjpca@gmail.com
Resumen
En este artcu
ulo se presenta una metodolooga
para realizar la comunica
p
acin entre LabVIEW
L
y un
m
microcontrolado
or PIC18F455
50
de Micrrochip. Con las
h
herramientas
prresentadas en este
e trabajo se pueden
p
adquiriir y
e
enviar
datos masivos
m
de inforrmacin hasta una velocidad de
1
12Mb/s.
La com
municacin se realiza
r
median
nte la herramieenta
C
Call
Library Fuction
F
de Lab
bVIEW, la cuaal hace uso dee la
liibrera mpusbaapi que nos proporciona Miccrochip. El pueente
q establece laa comunicacin
que
n entre el micrrocontrolador y la
P se realiza mediante
PC
m
las lib
breras usb del software CCS
SC
C
Compiler
y el driver
d
mchpusb
b para Microssoft Windows XP.
X
P ltimo se reealizan pruebas de adquisicin y envi de dattos.
Por

Connsiderando
las
problemticas
planteadas
anteriorrmente, en estee artculo se prresenta una metodologa
m
para esttablecer la com
municacin vaa USB entre LaabVIEW y
un miccrocontrolador. El artcullo est dividiido de la
siguientte forma: en laa seccin II se presenta el deesarrollo de
la comuunicacin entre la PC y el microcontrolaador. En la
seccinn III contiene laa va y tipo de comunicacinn USB y en
la IV se
s presenta el funcionamiento de librera mpusbapi 1
de micrrochip y la com
municacin conn LabVIEW, Por
P ltimo,
en la seeccin V se hace
h
la validaccin de la com
municacin
USB, censando
c
datoss de temperatuura y activandoo leds, que
simbolizan unas electrrovlvulas.

Palabras cllave: Call Libra


ary Function, Mpusbapi.dll,
M
USB,
Bulk Transfers USB, LabVIEW
B
W-USB.
N ENTRE LA
II. COMUNICACIN

I. INTRO
ODUCCIN
Muchas coompaas en la
l industria dee la manufacttura
uusan computaddoras personalees en sus planttas y laboratorrios
p
para
probar suss productos, to
omar medicionnes y automatiizar
p
procesos.
Al crear
c
sistemass basados en computador, los
u
usuarios
estn aprovechando las ventajas de
d las tecnologgas
d la computaacin ms reccientes tales como
de
c
tarjetas de
a
adquisicin
de datos.
La tcnicaa de instrumen
ntos virtuales mediante tarjeetas
dde adquisicinn de datos, es cada vez ms utilizada enn la
inndustria. Esta metodologa consiste
c
en realizar paneles de
c
control
en computador, tradicionalmeente hechas por
p
s
software
que uttiliza instrumen
ntos virtuales como LabVIE
EW.
A travs de estos instrumen
ntos virtuales (Vis) se puedden
s
supervisar
en tiempo reall las variablles del proceeso
(Temperatura, Humedad, Preesin, entre ottros.) y controolar
a
actuadores
(vlvulas, termorresistencias, enntre otros). Esstos
V brindan al usuario una gran flexibiliddad de operacin
VIs
d
debido
a que no requieren
n de ninguna circuitera para
p
r
realizar
compliicados procediimientos de coontrol, simulacin
y supervisin.
n de datos en
e LabVIEW, se
Actualmennte la obtenci
rrealiza mediantte tarjetas de adquisicin
a
(TA
AD) que Natioonal
Instrument dessarrolla. Estas TAD generaalmente son muy
m
c
costosas
y de uso
u limitado, esto
e
es, que noo puede utilizaarse
e ningn otroo software. El costo es la prrincipal limitaante
en
q hace difciil adquirirlas por
que
p estudiantess, universidadees y
c
centros
de inveestigacin.

PC Y EL DISPOSITIVO USB

Exiisten tres maneeras de estableecer la comuniicacin por


USB (B
Bus Universal en
e Serie):
1. Bulk Transferrs: transferenccia bidireccionnal masiva
de informacin.
2. CDC: clase de disposittivos de com
municacin
S232).
(emulacin deel protocolo RS
3. HID: disposiitivos de interrfaz humana (plug-andplay).
En este trabajo se
s opto por laa opcin Bulk Transfers,
debido a que permiite la transm
misin de datoos de alta
velocidaad (Full Speedd) de 12Mb/s. Las transferenncias Bulk
estn diseadas
d
paraa soportar aquuellos disposittivos que
precisann enviar o recibbir grandes canntidades de dattos.
Interconexin
PC

Dispositivo USB
B

LabVIEW

Funcin

Librera Mpusbaapi

TAD

Controlador dell
dispositivo USB
B
Host USB

Firmware
M
Microcontrolad
dor

Fig. 1. Etapas de comuunicacin entre la PC y el Dispositivvo USB.

s ilustra el flujjo de datos


En el diagrama dee la Figura. 1 se
s
LabV
VIEW que manipula
m
al
USB a partir del software
1

Mpuusbapi es una liibrera creada poor Microchip parra utilizar el


microconntrolador.

ISBN:

-1 / 1-

CONAGO
OLFO 2009

ddispositivo USB
B a travs de la
l librera mpuusbapi. La libreera
r
realiza
la transm
misin de dato
os a la direccin del disposittivo
q
que
el host USB
U
configuro
o al usar el driver.
d
El driver
e
establece
el pueente entre la PC
C y el microcoontrolador. Denntro
d microcontrrolador se ejeecuta el firmw
del
ware el cual se
c
comunica
con elementos de la TAD, que realizan algunnas
f
funciones
tiless para el usuariio o lo que se desea
d
controlarr.
Una descripcin formal dee los principales procesoss o
U
e
elementos
que realizan la com
municacin enntre el disposittivo
U y la PC see enumeran a continuacin.
USB
c
A Interconexin
A.
El disposittivo USB dispo
one de 2 tipos de conectores (A
y B) como se observa
o
en la fiigura 2, que puueden ser a su vez
v
m
macho
o hembrra [2].
2
1

de cm
mo los bytes dee informacin debe ser inteerpretado o
tratadoss. Y por ultim
mo esta la opciional donde coontiene los
datos ennviados y reciibidos, que vaa desde 1 byte hasta 124
bytes.
B. Micrrocontrolador PIC
P
Parra establecer la
l interfaz dee comunicacinn USB se
seleccioono el miicrocontroladorr PIC18F4550. Este
disposittivo soporta la comunicacin va USB,, es decir,
incluyenn un controladdor USB internoo y cuenta conn pines para
conectaarse a la PC siin la necesidadd de pull-ups o circuitera
externa [5]. En la Figgura. 4 se obseerva la estructuura interna
del conttrolador de perrifrico USB.

Full Speed
Interfaz USB 2.0

4
3

U Regulador dee
USB
Voltaje

B
Fig. 2. Conectores
C
USB

fo
el tpico
o cable USB sera el moddelo
De esta forma
US09. La veloocidad soportaada por estos cables es de 12
U
M
Mbps,
hasta 480Mbps
4
en el caso de los cables para USB
U
2 El cable est
2.0.
e compuesto
o por solo cuaatro cables, Vbbus,
D D- y GND
D+,
D (Ver Tabla1). La informaciin y los datoss se
m
mueven
por loss cables D+ y D-.
D
TAB
BLA 1.
Pines de conexin
c
USB

Pin
1
2
3
4

Nombre
+5.0V
DataData+
Tierra

Transferencia USB
T
B
Full Speed

PIC18F45550
MCU Corre
12MIPS
48MHZ
32 Kbytees
Enhanced Fllash
2 Kbytess
RAM

LIN-UA
ART

I2C/SP
PI
16-bit Capptura
Quad. PW
WM
10-biit

ADC
C

256 Bytes
M
EEPROM

Fig. 4. Caracterstica
C
del PIC18F4550
P

q se implem
mento en el PIIC18F4550
El firmware 2 que
para esttablecer la com
municacin USB con la PC, se
s realizo a
travs de
d las siguientees instruccioness de programaccin.
Inicioo

Coloor de cable
Rojo
B
Blanco
Verde
Negro

Inicializar el
e USB
Habilitar el Perifrico USB
Esppera que sea configgurado por la PC

A travs de
d esos cabless se genera un
u tipo de seeal
ddiferencial. Laa transferencia de informaciin lo realiza de
m
manera
bidirecccional, pero no
o al mismo tiem
mpo. En la missma
s
seal
diferenciial entre D+ y D- se envaa y se recibe las
trramas de datoos. Dentro de esta
e seal se observa
o
una seeal
S
Sync,
PID y Oppcional, estas tres
t forman el paquete de traama
d
donde
va incluiida la informaccin que se desea trasmitir (V
Ver
F 3).
Fig.

Datoos
Recibiddo?

No

Si
Almacenamos el dato recibido
Toma de decisiones del
d dato recibido
Control y Adquisicin de datos
Trasmisin de datos
d
a la PC

Si

Conexxin con
Windows Xp?

No
Fin
Fig.55. Diagrama de fluj
ujo del firmware

Fig. 3. Composicin
C
de un paquete de innformacin

La seal Sync es utilizada por


L
p receptor para
p
sincronizaarse
c el host. El PID es un paq
con
quete identificaador, que definnir

Firmw
ware: instruccionees de programa quue establece la lgica de bajo
nivel paraa el control de circcuitos electrnicos.

-2 / 2-

CONAGOLFO 2009

El firmware hace uso de las libreras usb de CCS C


Compiler, para configurar el dispositivo y establecer la
comunicacin entre la PC.
Para que el host USB rena la informacin necesaria e
identifique al dispositivo y lo configure, el firmware debe
contener descriptores. Los descriptores contienen
informacin bsica del dispositivo como el nmero de serie,
la clase de dispositivo, el protocolo soportado, la capacidad
de transmisin, las funciones del dispositivo, entre otros.
Con el propsito de que el sistema identifique al dispositivo
y encuentre al driver que debe utilizar.
C. Driver del dispositivo
Cuando el dispositivo se conecta por primera vez a la
PC, el sistema pedir el controlador (driver) correspondiente,
en este caso el driver mchpusb creado por Microchip. Para
que el dispositivo sea reconocido por el sistema, este driver
debe contener los mismos descriptores que el firmware.
III.VIA DE COMUNICACIN Y TIPO DE TRANSFERENCIAS
La interfaz de tipo USB 2.0 define las vas de
comunicacin entre las aplicaciones que se ejecutan en el
host (clientes) y los distintos endpoint 3 en los dispositivos
USB (servidores), y las denomina Pipes 4 . Cuando un
dispositivo USB se conecta a un sistema, y el sistema lo
reconoce y lo configura, el dispositivo queda organizado
como un cierto conjunto de endpoints. El sistema establece
todas las vas de comunicacin (pipes) necesaria entre el
sistema y cada uno de los endpoint disponible en dicha
configuracin. El sistema elige una cierta configuracin en
funcin de la funcionalidad particular que se precise del
dispositivo.
Existen 4 tipos de endpoints (Bulk, Control, Interrupcion e
Isocrono) y 2 tipos de pipe (Conrol o Mensaje y Stream), de
las cuales se utiliza la Pipe Stream y Endpoint Bulk. A
continuacin se describe cada una de ellas.

B. Transferencia Bulk
Las transferencias Bulk estn diseadas para soportar
aquellos dispositivos que precisan enviar o recibir grandes
cantidades de datos con latencias que pueden tener amplias
variaciones, y en que las transacciones pueden utilizar
cualquier ancho de banda disponible. Para ellos las
transacciones Bulk proporcionan:
Acceso al bus en funcin del ancho de banda disponible.
Reintento de trasferencias en caso de errores de entrega.
Entrega garantizada de datos, pero sin garanta de
latencia mxima ni de ancho de banda.
Las transferencias Bulk se realizan relativamente rpidas si
el bus dispone de mucho ancho de banda libre. En un bus
USB con mucho ancho de banda reservado, la transferencia
puede alargarse durante periodos de tiempo relativamente
grandes.

IV. LIBRERA MPUSBAPI


Como se menciono en la seccin II, las funciones de
acceso al puerto USB con el microcontrolador PIC18F4550
se realizan mediante la librera mpusbapi. Para hacer uso de
esta librera en labview se utiliza el VI Call Library Fuction
Node (Ver Fig.6).

Fig. 6. Call Library Fuction Node

Con este VI podemos asignarle parmetros a las


funciones que contiene la librera mpusbapi para enviar y
recibir datos. Los pasos para utilizar la librera mpusbapi en
LabVIEW se muestran en el diagrama siguiente.
Inicio

A. Pipe Stream
La Pipe Stream es una va de comunicacin
unidireccional entre el host y el endpoint de los tipos Bulk,
Interrupcin o Iscrono. Si un dispositivo necesita realizar
transferencias bidireccionales de un tipo de endpoint
concreto el sistema debe establecer dos pipes, una de salida
y una pipe de entrada. A travs de estas pipes, el sistema
puede leer del dispositivo toda la informacin descriptiva
necesaria para identificar el tipo de dispositivo, posibles
configuraciones, protocolo que soporta, nmero y tipos de
enpoints que soporta en cada posible configuracin, etc.

mpusbopen
mpusbwrite
mpusbread
mpusbclose
Si
Continuar?
No
Fin
Fig. 7. Diagrama de configuracin de librera mpusbapi

Las funciones de la librera mpusbapi se analizan a


continuacin:
3

Endpoint: Buffer (bloque de datos) o un registro que almacena


bytes que se encuentran en el dispositivo.
4
Pipes: Enlace virtual o Asociacin entre el host y el Endpoints.

Mpusbopen:
dwReserved)

(instance,

pVID_PID,

pEP,

dwDir,
-3 / 3-

CONAGOLFO 2009

Devuelve el acceso al pipe del endpoints con el


VID_PID 5 asignado.

Instance (Input): Un nmero de dispositivo para abrir.


Normalmente, se utiliza primero la llamada de
MPUSBGetDeviceCount
para
saber
cuntos
dispositivos hay.
pVID_PID (Input): String que contiene el PID&VID
del
dispositivo
objetivo.
El
formato
es
vid_xxxx&pid_yyyy. Donde xxxx es el valor del
VID el yyyy el del PID, los dos en hexadecimal.
Ejemplo:
Si un dispositivo tiene un VID=0x04d8 y un
PID=0x0010,
el
string
de
entrada
es:
vid_0x04d8&pid_0x0010.
pEP: (Input): String con el nmero del Endpoint que
se va a abrir. El formato es \\MCHP_EPz o
\MCHP_EPz dependiendo del lenguaje de
programacin. Donde z es el nmero del Endpoint en
decimal.
Ejemplo: \\MCHP_EP1 o \MCHP_EP1
Este argumento puede ser NULL (nulo) para crear
lazos con endpoints de funciones no especficas.
dwDir: Especifica la direccin del endpoint:
MP_READ:
para
MPUSBRead
y
MPUSBReadInt. Y MP_Write:paraMPUSBWrite.
dwReserved: indica un nmero reservado para el
dispositivo.

Mpusbwrite:
(handle,
dwMilliseconds)

dwLen,

pData,

dwLen,

Mpusbclose (handle):
Cierra una determinada unin.
handle (Input): Identifica la pipe del endpoint que se
va a cerrar.

VI. ADQUISICION DE DATOS EN LABVIEW


LabVIEW es una herramienta de programacin grfica
que permite realizar simulaciones, pruebas, control y diseo
de procesos y sistema. El lenguaje que usa se llama lenguaje
G (Grfico).Los programas desarrollados con LabVIEW se
llaman Instrumentos Virtuales (Vis).

pLenght,

handle (Input): Identifica la pipe del endpoint que se


va a escribir. La pipe unidad tiene que crearse con el
atributo de acceso MP_WRITE.
pData (Output): Puntero al buffer que contiene los
datos que se van a escribir en la pipe.
dwLen (Input): Especifica el nmero de bytes que se
van a escribir en la pipe.
pLenght (Output): Puntero al nmero de bytes que se
escriben al llamar esta funcin. MPUSBWrite pone
este valor a cero antes de cualquier lectura o de
chequear un error.
dwMilliseconds (Input): Especifica el intervalo de
time-out en milisegundos. La funcin vuelve si
transcurre el intervalo, aunque no se complete la
operacin. Si dwMilliseconds=0, la funcin
comprueba los datos de la pipe y vuelve
inmediatamente. Si dwMilliseconds es infinito, el
intervalo de time-out nunca termina.

Mpusbread
(handle,
dwMilliseconds):

pData,

handle (input): Identifica la pipe del Endpoint que se va


a leer. La pipe unidad tiene que crearse con el atributo
de acceso MP_READ.
pData (output): Puntero al buffer que recibe el dato
ledo de la pipe.
dwLen (input): Especifica el nmero de bytes que hay
que leer de la pipe.
pLenght (output): Puntero al nmero de bytes ledos.
MPUSBRead pone este valor a cero antes de cualquier
lectura o de chequear un error.
dwMilliseconds (input): Especifica el intervalo de timeout en milisegundos. La funcin vuelve si transcurre el
intervalo aunque no se complete la operacin. Si
dwMilliseconds=0, la funcin comprueba los datos de
la pipe y vuelve inmediatamente. Si dwMilliseconds es
infinito, el intervalo de time-out nunca termina.

pLenght,

VID_PID es la unin entre la identificacin del dispositivo (PID) y del


vendedor (VID), en nmero hexadecimal de 16bits.

Para probar la recepcin de datos entre LABVIEW y el


exterior, se realiz la siguiente prueba: Se midi la
temperatura ambiental de forma continua utilizando el
sensor LM35.

Fig. 8. Diagrama electrnico del Proyecto

La transmisin de datos va USB se realizo


manipulando el encendido de forma intencionada de unos
leds(Ver Fig. 8). Estos leds representan el encendido digital
de actuadores como vlvulas de paso.
-4 / 4-

CONAGOLFO 2009

La programacin en LabVIEW se realizo a travs de un


subVI (PicUSB-Labview) que permite manipular de manera
ms fcil al dispositivo. El subVI creado se muestra en la
siguiente figura.

VI. CONCLUSIONES
En este artculo se presento una metodologa que
permite la comunicacin entre un microcontrolador
PIC18F4550 y LabVIEW para tareas de adquisicin de
datos. Los resultados obtenidos demuestran que la
metodologa implementada funciona perfectamente, se logra
trasferir datos de alta velocidad. Con esta tcnica se pretende
que estudiante e investigadores puedan construir una tarjeta
de adquisicin de datos y que pueda implementarse para
tareas de simulacin, supervisin y control.

Fig. 9. VI PicUSB-LabVIEW

REFERENCIAS

En la Figura 10, se muestra la programacin


estructurada con el respectivo subVI creado y en la Figura.
11, se muestran la programacin virtual del proyecto.

[1]
[2]

[3]

[4]
[5]
[6]

Gary W. Johnson, R. J. (2006). LabVIEW Graphical Programming,


Fourth Edition. New York: McGraw-Hill.
Jan Axelson. (2001). USB Complete Everything You Need to
Develop Custom USB Peripherals,Third Edition. Madison, WI:
Lakeview Research.
Lazaro, A. M. (2005). LABVIEW 7.1: PROGRAMACION
GRAFICA PARA EL CONTROL DE INSTRUMENTACION,
Cuarta Edicin. Texas: Thomson.
National Instruments (2008). http://www.ni.com
Universal Serial Bus (2008). http://www.usb.org
Microchip (2008). http://www.microchip.com

Fig. 10. Diagrama Bloque

Fig. 11. Panel Frontal

-5 / 5-

Das könnte Ihnen auch gefallen