Sei sulla pagina 1di 7

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/260245881

Comunicación USB de Alta Velocidad entre


LABVIEW y un Microcontrolador para la
Adquisición de Datos en Tiempo Real

Conference Paper · October 2009

CITATIONS READS

0 4,965

6 authors, including:

Hector Hernandez-De-Leon
Instituto Tecnológico de Tuxtla Gutiérrez
14 PUBLICATIONS 44 CITATIONS

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Energía Renovable View project

photobioreactor View project

All content following this page was uploaded by Francisco-Ronay López-Estrada on 10 October 2017.

The user has requested enhancement of the downloaded file.


Congreso Nacional de Ingeniería Electrónica del Golfo CONAGOLFO 2009
Instituto Tecnológico de Orizaba

Comunicación USB de Alta Velocidad entre LABVIEW y un


Microcontrolador para la Adquisición de Datos en Tiempo Real
J. A. Pérez Cueto, F.R López Estrada
Departamento de electrónica, Instituto Tecnológico De Tuxtla Gutiérrez, México
Teléfono: 961 1241592 E-mail: adrianjpca@gmail.com

Resumen—En este artículo se presenta una metodología


para realizar la comunicación entre LabVIEW y un Considerando las problemáticas planteadas
microcontrolador PIC18F4550 de Microchip. Con las anteriormente, en este artículo se presenta una metodología
herramientas presentadas en este trabajo se pueden adquirir y para establecer la comunicación vía USB entre LabVIEW y
enviar datos masivos de información hasta una velocidad de un microcontrolador. El artículo está dividido de la
12Mb/s. La comunicación se realiza mediante la herramienta
siguiente forma: en la sección II se presenta el desarrollo de
Call Library Fuction de LabVIEW, la cual hace uso de la
librería mpusbapi que nos proporciona Microchip. El puente la comunicación entre la PC y el microcontrolador. En la
que establece la comunicación entre el microcontrolador y la sección III contiene la vía y tipo de comunicación USB y en
PC se realiza mediante las librerías usb del software CCS C la IV se presenta el funcionamiento de librería mpusbapi1 de
Compiler y el driver mchpusb para Microsoft Windows XP y microchip y la comunicación con LabVIEW, Por último, en
Windows 7. Por último se realizan pruebas de adquisición y la sección V se hace la validación de la comunicación USB,
envió de datos. utilizando el sensor RSF05 para medir distancia y activando
leds, que simbolizan electroválvulas.
Palabras clave: Call Library Function, Mpusbapi.dll, USB,
Bulk Transfers USB, LabVIEW-USB.
II.VIA DE COMUNICACIÓN Y TIPO DE TRANSFERENCIAS
I. INTRODUCCIÓN
La interfaz de tipo USB 2.0 define las vías de
Muchas compañías en la industria de la manufactura comunicación entre las aplicaciones que se ejecutan en el
usan computadoras personales en sus plantas y laboratorios host (clientes) y los distintos endpoint2 en los dispositivos
para probar sus productos, tomar mediciones y automatizar USB (servidores), y las denomina pipes3. Cuando un
procesos. Al crear sistemas basados en computador, los dispositivo USB se conecta a un sistema, y el sistema lo
usuarios están aprovechando las ventajas de las tecnologías reconoce y lo configura, el dispositivo queda organizado
de la computación más recientes tales como tarjetas de como un cierto conjunto de endpoints. El sistema establece
adquisición de datos. todas las vías de comunicación (pipes) necesaria entre el
sistema y cada uno de los endpoint disponible en dicha
La técnica de instrumentos virtuales mediante tarjetas configuración. El sistema elige una cierta configuración en
de adquisición de datos, es cada vez más utilizada en la función de la funcionalidad particular que se precise del
industria. Esta metodología consiste en realizar paneles de dispositivo.
control en computador, tradicionalmente hechas por Existen 4 tipos de endpoints (Bulk, Control, Interrupcion e
software que utiliza instrumentos virtuales como LabVIEW. Isocrono) y 2 tipos de pipe (Conrol o Mensaje y Stream), de
A través de estos instrumentos virtuales (Vis) se pueden las cuales se utiliza la Pipe Stream y Endpoint Bulk para la
supervisar en tiempo real las variables del proceso trasmisión de datos. A continuación se describe cada una de
(Temperatura, Humedad, Presión, entre otros.) y controlar ellas.
actuadores (válvulas, termoresistencias, entre otros). Estos
VIs brindan al usuario una gran flexibilidad de operación A. Pipe Stream
debido a que no requieren de ninguna circuitería para La Pipe Stream es una vía de comunicación
realizar complicados procedimientos de control, simulación unidireccional entre el host y el endpoint de los tipos Bulk,
y supervisión. Interrupción o Isócrono. Si un dispositivo necesita realizar
transferencias bidireccionales de un tipo de endpoint
Actualmente la obtención de datos en LabVIEW, se concreto el sistema debe establecer dos pipes, una de salida
realiza mediante tarjetas de adquisición (TAD) que National y un pipe de entrada. A través de estas pipes, el sistema
Instrument desarrolla. Estas TAD generalmente son muy puede leer del dispositivo toda la información descriptiva
costosas y de uso limitado, esto es, que no puede utilizarse necesaria para identificar el tipo de dispositivo, posibles
en ningún otro software. El costo es la principal limitante configuraciones, protocolo que soporta, número y tipos de
que hace difícil adquirirlas por estudiantes, universidades y enpoints que soporta en cada posible configuración, etc.
centros de investigación.
1
Es una librería creada por Microchip para utilizar el microcontrolador.
2
Buffer (bloque de datos) o un registro que almacena bytes, que se
encuentran en el dispositivo.
3
Enlace virtual o Asociación entre el host y el Endpoints.

ISBN: -1 / 6-
CONAGOLFO 2009

comunica con elementos de la TAD, que realizan algunas


funciones útiles para el usuario o lo que se desea controlar.
B. Transferencia Bulk
Las transferencias Bulk están diseñadas para soportar Una descripción formal de los principales procesos o
aquellos dispositivos que precisan enviar o recibir grandes elementos que realizan la comunicación entre el dispositivo
cantidades de datos con latencias que pueden tener amplias USB y la PC se enumeran a continuación.
variaciones, y en que las transacciones pueden utilizar
cualquier ancho de banda disponible. Para ellos las A. Interconexión
transacciones Bulk proporcionan: El dispositivo USB dispone de 2 tipos de conectores (A
 Acceso al bus en función del ancho de banda disponible. y B) como se observa en la figura 2, que pueden ser a su vez
 Reintento de trasferencias en caso de errores de entrega. macho o hembra [2].
 Entrega garantizada de datos, pero sin garantía de
latencia máxima ni de ancho de banda.
2 1
Las transferencias Bulk se realizan relativamente rápidas si 1 2 3 4
el bus dispone de mucho ancho de banda libre. En un bus 3 4
USB con mucho ancho de banda reservado, la transferencia
puede alargarse durante periodos de tiempo relativamente A B
grandes. Fig. 2. Conectores USB

De esta forma el típico cable USB sería el modelo


III. COMUNICACIÓN ENTRE LA PC Y EL DISPOSITIVO USB US09. La velocidad soportada por estos cables es de 12
Mbps, hasta 480Mbps en el caso de los cables para USB
Existen tres maneras de establecer la comunicación por 2.0. El cable está compuesto por solo cuatro cables, Vbus,
USB (Bus Universal en Serie): D+, D- y GND (Ver Tabla1). La información y los datos se
1. Bulk Transfers: transferencia bidireccional masiva mueven por los cables D+ y D-.
de información.
TABLA 1.
2. CDC: clase de dispositivos de comunicación Pines de conexión USB
(emulación del protocolo RS232). Pin Nombre Color de cable
3. HID: dispositivos de interfaz humana (plug-and- 1 +5.0V Rojo
play). 2 Data- Blanco
En este trabajo se opto por la opción Bulk Transfers, 3 Data+ Verde
debido a que permite la transmisión de datos de alta 4 Tierra Negro
velocidad (Full Speed) de 12Mb/s. Las transferencias Bulk
están diseñadas para soportar aquellos dispositivos que A través de esos cables se genera un tipo de señal
precisan enviar o recibir grandes cantidades de datos. diferencial. La transferencia de información lo realiza de
manera bidireccional, pero no al mismo tiempo. En la misma
Interconexión señal diferencial entre D+ y D- se envía y se recibe las
tramas de datos. Dentro de esta señal se observa una señal
PC Dispositivo USB
Sync, PID y Opcional, estas tres forman el paquete de trama
Tarje
Función donde va incluida la información que se desea trasmitir (Ver
LabVIEW
Fig. 3).
Librería Mpusbapi
TAD

Controlador del
dispositivo USB
Firmware

Host USB Microcontrolador

Fig. 1. Etapas de comunicación entre la PC y el Dispositivo USB. Fig. 3. Composición de un paquete de información
La señal Sync es utilizada por receptor para sincronizarse
En el diagrama de la Figura. 1 se ilustra el flujo de datos con el host. El PID es un paquete identificador, que definirá
USB a partir del software LabVIEW que manipula al de cómo los bytes de información debe ser interpretado o
dispositivo USB a través de la librería mpusbapi. La librería tratados. Y por ultimo esta la opcional donde contiene los
realiza la transmisión de datos a la dirección del dispositivo datos enviados y recibidos, que va desde 1 byte hasta 124
que el host USB configuro al usar el driver. El driver bytes.
establece el puente entre la PC y el microcontrolador. Dentro
del microcontrolador se ejecuta el firmware el cual se B. Microcontrolador PIC

-2 / 6-
CONAGOLFO 2009

Para establecer la interfaz de comunicación USB se El firmware hace uso de las librerías usb de CCS C
selecciono el microcontrolador PIC18F4550. Este Compiler, para configurar el dispositivo y establecer la
dispositivo soporta la comunicación vía USB, es decir, comunicación entre la PC.
incluyen un controlador USB interno y cuenta con pines para
conectarse a la PC sin la necesidad de pull-ups o circuitería Para que el host USB reúna la información necesaria e
externa [5]. En la Figura. 4 se observa la estructura interna identifique al dispositivo y lo configure, el firmware debe
del controlador de periférico USB. contener descriptores. Los descriptores contienen
información básica del dispositivo como el número de serie,
la clase de dispositivo, el protocolo soportado, la capacidad
de transmisión, las funciones del dispositivo, entre otros.
Con el propósito de que el sistema identifique al dispositivo
PIC18F4550 LIN-UART
Full Speed MCU Core
y encuentre al driver que debe utilizar.
Interfaz USB 2.0 12MIPS I2C/SPI
48MHZ 16-bit Captura C. Driver del dispositivo
USB Regulador de 32 Kbytes Cuando el dispositivo se conecta por primera vez a la
Voltaje Enhanced Flash Quad. PWM PC, el sistema pedirá el controlador (driver) correspondiente,
2 Kbytes 10-bit en este caso el driver mchpusb creado por Microchip. Para
Transferencia USB RAM ADC que el dispositivo sea reconocido por el sistema, este driver
Full Speed 256 Bytes
debe contener los mismos descriptores que el firmware.
EEPROM

Fig. 4. Característica del PIC18F4550


IV. LIBRERÍA MPUSBAPI
El firmware 4 que se implemento en el PIC18F4550
para establecer la comunicación USB con la PC, se realizo a Como se menciono en la sección III, las funciones de
través de las siguientes instrucciones de programación. acceso al puerto USB con el microcontrolador PIC18F4550
se realizan mediante la librería mpusbapi. Para hacer uso de
esta librería en labview se utiliza el VI Call Library Fuction
Inicio
Node (Ver Fig.6).
Inicializar el USB

Habilitar el Periférico USB

Espera que sea configurado por la PC

Fig. 6. Call Library Fuction Node

Con este VI podemos asignarle parámetros a las


No funciones que contiene la librería mpusbapi para enviar y
¿Datos recibir datos. Los pasos para utilizar la librería en LabVIEW
Recibido?
se muestran en el diagrama siguiente.
Si
Inicio
Almacenamos el dato recibido

Toma de decisiones del dato recibido

Control y Adquisición de datos mpusbopen

Trasmisión de datos a la PC mpusbwrite


Si
¿Conexión con mpusbread
No Windows Xp?
mpusbclose
Fin
Si
¿Continuar?
Fig.5. Diagrama de flujo del firmware
No
Fin

Fig. 7. Diagrama de configuración de librería mpusbapi


4
Firmware: instrucciones de programa que establece la lógica de bajo nivel
para el control de circuitos electrónicos.

-3 / 6-
CONAGOLFO 2009

Las funciones de la librería mpusbapi se analizan a


continuación: Mpusbread (handle, pData, dwLen, pLenght,
dwMilliseconds):
Mpusbopen: (instance, pVID_PID, pEP, dwDir,
dwReserved)  handle (input): Identifica la pipe del Endpoint que se va
a leer. La pipe unidad tiene que crearse con el atributo
Devuelve el acceso al pipe del endpoints con el de acceso MP_READ.
VID_PID5 asignado.  pData (output): Puntero al buffer que recibe el dato
leído de la pipe.
 Instance (Input): Un número de dispositivo para abrir.  dwLen (input): Especifica el número de bytes que hay
Normalmente, se utiliza primero la llamada de que leer de la pipe.
MPUSBGetDeviceCount para saber cuántos  pLenght (output): Puntero al número de bytes leídos.
dispositivos hay. MPUSBRead pone este valor a cero antes de cualquier
 pVID_PID (Input): String que contiene el PID&VID lectura o de chequear un error.
del dispositivo objetivo. El formato es  dwMilliseconds (input): Especifica el intervalo de time-
“vid_xxxx&pid_yyyy”. Donde xxxx es el valor del out en milisegundos. La función vuelve si transcurre el
VID el yyyy el del PID, los dos en hexadecimal. intervalo aunque no se complete la operación. Si
Ejemplo: dwMilliseconds=0, la función comprueba los datos de
Si un dispositivo tiene un VID=0x04d8 y un la pipe y vuelve inmediatamente. Si dwMilliseconds es
PID=0x0010, el string de entrada es: infinito, el intervalo de time-out nunca termina.
“vid_0x04d8&pid_0x0010”.
 pEP: (Input): String con el número del Endpoint que Mpusbclose (handle):
se va a abrir. El formato es “\\MCHP_EPz” o Cierra una determinada unión.
“\MCHP_EPz” dependiendo del lenguaje de  handle (Input): Identifica la pipe del endpoint que se
programación. Donde z es el número del Endpoint en va a cerrar.
decimal.
Ejemplo: “\\MCHP_EP1” o “\MCHP_EP1”
Este argumento puede ser NULL (nulo) para crear VI. ADQUISICION DE DATOS EN LABVIEW
lazos con endpoints de funciones no específicas.
 dwDir: Especifica la dirección del endpoint: LabVIEW es una herramienta de programación gráfica
MP_READ: para MPUSBRead y que permite realizar simulaciones, pruebas, control y diseño
MPUSBReadInt. Y MP_Write: para MPUSBWrite. de procesos y sistema. El lenguaje que usa se llama lenguaje
 dwReserved: indica un número reservado para el G (Gráfico).Los programas desarrollados con LabVIEW se
dispositivo. llaman Instrumentos Virtuales (Vis).

Mpusbwrite: (handle, pData, dwLen, pLenght, La programación en LabVIEW se realizo a través de un


dwMilliseconds) subVI (PicUSB-Labview) que permite manipular de manera
más fácil al dispositivo USB. El subVI creado se muestra en
 handle (Input): Identifica la pipe del endpoint que se la siguiente figura.
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 número de bytes que se
van a escribir en la pipe.
 pLenght (Output): Puntero al número de bytes que se
escriben al llamar esta función. MPUSBWrite pone Fig. 9. VI PicUSB-LabVIEW
este valor a cero antes de cualquier lectura o de
chequear un error. Para probar la recepción de datos entre LABVIEW y el
 dwMilliseconds (Input): Especifica el intervalo de exterior, se realizó la siguiente prueba: Se utiliza el sensor
time-out en milisegundos. La función vuelve si SFR05 para calcular la distancia de objetos y la transmisión
transcurre el intervalo, aunque no se complete la manipulando el encendido de forma intencionada de unos
operación. Si dwMilliseconds=0, la función leds(Ver Fig. 8). Estos leds representan el encendido digital
comprueba los datos de la pipe y vuelve de actuadores como válvulas de paso.
inmediatamente. Si dwMilliseconds es infinito, el
intervalo de time-out nunca termina.
5
VID_PID es la unión entre la identificación del dispositivo (PID) y del
vendedor (VID), en número hexadecimal de 16bits.

-4 / 6-
CONAGOLFO 2009

Fig. 10. Diagrama Bloque

Fig. 8. Diagrama electrónico del Proyecto

El sensor medidor de distancia SRF05 es un sensor de US


(Ultrasonidos) capaz de medir distancias de hasta 5 metros. Su
funcionamiento es muy sencillo, tenemos que enviar un pulso de
10us por la patilla del disparador (AN0) para que este active el
sensor y haga la medición. La salida del sensor no es más que otro
pulso de entre 100 us y 25 ms, donde un pulso de duración de 30
ms indicaría que el obstáculo está fuera de rango del sensor. En la
siguiente figura se muestra la configuración del sensor.

Fig. 11. Panel Frontal

VI. CONCLUSIONES
En este artículo se presento una metodología que
permite la comunicación entre un microcontrolador
Fig. 9 Diagrama de tiempo del SRF05
PIC18F4550 y LabVIEW para tareas de adquisición de
datos. Los resultados obtenidos demuestran que la
El sensor tiene como salida un pulso proporcional a la
metodología implementada funciona perfectamente, se logra
distancia, donde la distancia en centímetros es el tiempo de
trasferir datos de alta velocidad. Con esta técnica se pretende
duración del pulso en us entre 58.
que estudiantes e investigadores puedan construir una tarjeta
de adquisición de datos de manera económica y que pueda
 d(cm) = pulso(us)/58 implementarse para tareas de simulación, supervisión y
 d(inches) = pulso(us)/148 control.
Hay que tener en cuenta que el sensor sólo puede hacer una VII. RESULTADO
medida cada 50ms, lo que equivale a que podemos realizar Como resultado a la metodología tenemos la tarjeta de
medidas a una frecuencia de 20Hz. adquisición que se desarrollo (ver Fig.12) para la
implementación del proyecto que se menciono en el capítulo
En la Figura 10, se muestra la programación VI. La tarjeta cuenta con:
estructurada con el respectivo subVI creado y en la Figura.  4 salidas digitales
11, se muestran la programación virtual del proyecto.
 4 salidas para controlar cargas
 2 salidas para PWM
 8 Entradas Digitales
 5 Entradas analógicas
 1 salida externa para expacion (RS232/ I2C)
 Modo Bootloader ( autoprogramable)

-5 / 6-
CONAGOLFO 2009

 Entrada de alimentación de 9V y salida de 5V


a 500mA

Fig 12. Tarjeta de adquisición de datos USB

REFERENCIAS

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


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

-6 / 6-

View publication stats

Potrebbero piacerti anche