P. 1
Comunicación USB de Alta Velocidad entre LABVIEW y un Microcontrolador para la Adquisición de Datos en Tiempo Real

Comunicación USB de Alta Velocidad entre LABVIEW y un Microcontrolador para la Adquisición de Datos en Tiempo Real

|Views: 4.290|Likes:
Publicado porpatrohell

More info:

Published by: patrohell on Feb 10, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/23/2013

pdf

text

original

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 microcontrolador PIC18F4550 de Microchip. Con las herramientas presentadas en este trabajo se pueden adquirir y enviar datos masivos de información hasta una velocidad de 12Mb/s. La comunicación se realiza mediante la herramienta Call Library Fuction de LabVIEW, la cual hace uso de la librería mpusbapi que nos proporciona Microchip. El puente que establece la comunicación entre el microcontrolador y la PC se realiza mediante las librerías usb del software CCS C Compiler y el driver mchpusb para Microsoft Windows XP. Por último se realizan pruebas de adquisición y envió de datos. Palabras clave: Call Library Function, Mpusbapi.dll, USB, Bulk Transfers USB, LabVIEW-USB.

Considerando las problemáticas planteadas anteriormente, en este artículo se presenta una metodología para establecer la comunicación vía USB entre LabVIEW y un microcontrolador. El artículo está dividido de la siguiente forma: en la sección II se presenta el desarrollo de la comunicación entre la PC y el microcontrolador. En la sección III contiene la vía y tipo de comunicación USB y en la IV se presenta el funcionamiento de librería mpusbapi 1 de microchip y la comunicación con LabVIEW, Por último, en la sección V se hace la validación de la comunicación USB, censando datos de temperatura y activando leds, que simbolizan unas electroválvulas.

II. COMUNICACIÓN ENTRE LA PC Y EL DISPOSITIVO USB I. INTRODUCCIÓN Muchas compañías en la industria de la manufactura usan computadoras personales en sus plantas y laboratorios para probar sus productos, tomar mediciones y automatizar procesos. Al crear sistemas basados en computador, los usuarios están aprovechando las ventajas de las tecnologías de la computación más recientes tales como tarjetas de adquisición de datos. La técnica de instrumentos virtuales mediante tarjetas de adquisición de datos, es cada vez más utilizada en la industria. Esta metodología consiste en realizar paneles de control en computador, tradicionalmente hechas por software que utiliza instrumentos virtuales como LabVIEW. A través de estos instrumentos virtuales (Vis) se pueden supervisar en tiempo real las variables del proceso (Temperatura, Humedad, Presión, entre otros.) y controlar actuadores (válvulas, termoresistencias, entre otros). Estos VIs brindan al usuario una gran flexibilidad de operación debido a que no requieren de ninguna circuitería para realizar complicados procedimientos de control, simulación y supervisión. Actualmente la obtención de datos en LabVIEW, se realiza mediante tarjetas de adquisición (TAD) que National Instrument desarrolla. Estas TAD generalmente son muy costosas y de uso limitado, esto es, que no puede utilizarse en ningún otro software. El costo es la principal limitante que hace difícil adquirirlas por estudiantes, universidades y centros de investigación. Existen tres maneras de establecer la comunicación por USB (Bus Universal en Serie): 1. Bulk Transfers: transferencia bidireccional masiva de información. 2. CDC: clase de dispositivos de comunicación (emulación del protocolo RS232). 3. HID: dispositivos de interfaz humana (plug-andplay). En este trabajo se opto por la opción Bulk Transfers, debido a que permite la transmisión de datos de alta velocidad (Full Speed) de 12Mb/s. Las transferencias Bulk están diseñadas para soportar aquellos dispositivos que precisan enviar o recibir grandes cantidades de datos.
Interconexión PC Dispositivo USB

LabVIEW Librería Mpusbapi
Controlador del dispositivo USB Host USB

Tarje Función TAD

Firmware Microcontrolador

Fig. 1. Etapas de comunicación entre la PC y el Dispositivo USB.

En el diagrama de la Figura. 1 se ilustra el flujo de datos USB a partir del software LabVIEW que manipula al
Mpusbapi es una librería creada por Microchip para utilizar el microcontrolador.
1

ISBN:

-1 / 5-

D. Full Speed Interfaz USB 2. Este dispositivo soporta la comunicación vía USB. La información y los datos se mueven por los cables D+ y D-. 2 1 2 3 4 3 4 1 de cómo los bytes de información debe ser interpretado o tratados.0 USB Regulador de Voltaje Transferencia USB Full Speed A Fig. que definirá -2 / 5- . es decir. El cable está compuesto por solo cuatro cables. Conectores USB B PIC18F4550 MCU Core 12MIPS 48MHZ 32 Kbytes Enhanced Flash 2 Kbytes RAM 256 Bytes EEPROM LIN-UART I2C/SPI 16-bit Captura Quad. Y por ultimo esta la opcional donde contiene los datos enviados y recibidos. que realizan algunas funciones útiles para el usuario o lo que se desea controlar. Composición de un paquete de información Fig. incluyen un controlador USB interno y cuenta con pines para conectarse a la PC sin la necesidad de pull-ups o circuitería externa [5]. A. que pueden ser a su vez macho o hembra [2].y GND (Ver Tabla1). se realizo a través de las siguientes instrucciones de programación. En la misma señal diferencial entre D+ y D. Inicio Inicializa el USB Habilita el Periférico USB Espera que sea configurado por la PC Pin 1 2 3 4 Nombre +5. que va desde 1 byte hasta 124 bytes.0. Diagrama de flujo del firmware Firmware: instrucciones de programa que establece la lógica de bajo nivel para el control de circuitos electrónicos. Dentro del microcontrolador se ejecuta el firmware el cual se comunica con elementos de la TAD. Una descripción formal de los principales procesos o elementos que realizan la comunicación entre el dispositivo USB y la PC se enumeran a continuación. 4 se observa la estructura interna del controlador de periférico USB. El PID es un paquete identificador. Microcontrolador PIC Para establecer la interfaz de comunicación USB se selecciono el microcontrolador PIC18F4550. B. ¿Datos Recibido? No Si Almacena el dato recibido Toma de decisiones del dato recibido Control y Adquisición de datos Trasmisión de datos a la PC Si ¿Conexión con Windows Xp? No Fin Fig.5. TABLA 1. 4.se envía y se recibe las tramas de datos. Vbus. Interconexión El dispositivo USB dispone de 2 tipos de conectores (A y B) como se observa en la figura 2. La transferencia de información lo realiza de manera bidireccional. Pines de conexión USB Fig. 2 La señal Sync es utilizada por receptor para sincronizarse con el host.0V DataData+ Tierra Color de cable Rojo Blanco Verde Negro A través de esos cables se genera un tipo de señal diferencial. PID y Opcional. hasta 480Mbps en el caso de los cables para USB 2. El driver establece el puente entre la PC y el microcontrolador. Dentro de esta señal se observa una señal Sync. 2. pero no al mismo tiempo. D+.CONAGOLFO 2009 dispositivo USB a través de la librería mpusbapi. En la Figura. PWM 10-bit ADC De esta forma el típico cable USB sería el modelo US09. 3). estas tres forman el paquete de trama donde va incluida la información que se desea trasmitir (Ver Fig. La velocidad soportada por estos cables es de 12 Mbps. Característica del PIC18F4550 El firmware 2 que se implemento en el PIC18F4550 para establecer la comunicación USB con la PC. 3. La librería realiza la transmisión de datos a la dirección del dispositivo que el host USB configuro al usar el driver.

Cuando un dispositivo USB se conecta a un sistema. Para que el dispositivo sea reconocido por el sistema. y en que las transacciones pueden utilizar cualquier ancho de banda disponible. A continuación se describe cada una de ellas.VIA DE COMUNICACIÓN Y TIPO DE TRANSFERENCIAS La interfaz de tipo USB 2. LIBRERÍA MPUSBAPI Como se menciono en la sección II. Inicio mpusbopen mpusbwrite mpusbread mpusbclose Si ¿Continuar? No Fin Fig. para configurar el dispositivo y establecer la comunicación entre la PC. El sistema elige una cierta configuración en función de la funcionalidad particular que se precise del dispositivo. Pipe Stream La Pipe Stream es una vía de comunicación unidireccional entre el host y el endpoint de los tipos Bulk. Para que el host USB reúna la información necesaria e identifique al dispositivo y lo configure. posibles configuraciones. 6.0 define las vías de comunicación entre las aplicaciones que se ejecutan en el host (clientes) y los distintos endpoint3 en los dispositivos USB (servidores). Call Library Fuction Node Con este VI podemos asignarle parámetros a las funciones que contiene la librería mpusbapi para enviar y recibir datos. Control.  Reintento de trasferencias en caso de errores de entrega.6).  Entrega garantizada de datos. el dispositivo queda organizado como un cierto conjunto de endpoints. la transferencia puede alargarse durante periodos de tiempo relativamente grandes. Los pasos para utilizar la librería mpusbapi en LabVIEW se muestran en el diagrama siguiente. las funciones del dispositivo. Si un dispositivo necesita realizar transferencias bidireccionales de un tipo de endpoint concreto el sistema debe establecer dos pipes. -3 / 5- . las funciones de acceso al puerto USB con el microcontrolador PIC18F4550 se realizan mediante la librería mpusbapi. dwDir. la clase de dispositivo.CONAGOLFO 2009 El firmware hace uso de las librerías usb de CCS C Compiler. protocolo que soporta. número y tipos de enpoints que soporta en cada posible configuración. el firmware debe contener descriptores. El sistema establece todas las vías de comunicación (pipes) necesaria entre el sistema y cada uno de los endpoint disponible en dicha configuración. Los descriptores contienen información básica del dispositivo como el número de serie. en este caso el driver mchpusb creado por Microchip. C. una de salida y una pipe de entrada. la capacidad de transmisión. el protocolo soportado. B. Transferencia Bulk Las transferencias Bulk están diseñadas para soportar aquellos dispositivos que precisan enviar o recibir grandes cantidades de datos con latencias que pueden tener amplias variaciones. entre otros. Con el propósito de que el sistema identifique al dispositivo y encuentre al driver que debe utilizar. En un bus USB con mucho ancho de banda reservado. este driver debe contener los mismos descriptores que el firmware. pEP. 3 Mpusbopen: dwReserved) (instance. pVID_PID. de las cuales se utiliza la Pipe Stream y Endpoint Bulk. Driver del dispositivo Cuando el dispositivo se conecta por primera vez a la PC. 7. Existen 4 tipos de endpoints (Bulk. Para hacer uso de esta librería en labview se utiliza el VI Call Library Fuction Node (Ver Fig. Las transferencias Bulk se realizan relativamente rápidas si el bus dispone de mucho ancho de banda libre. etc. y las denomina Pipes4. A través de estas pipes. A. III. Para ellos las transacciones Bulk proporcionan:  Acceso al bus en función del ancho de banda disponible. el sistema puede leer del dispositivo toda la información descriptiva necesaria para identificar el tipo de dispositivo. Interrupción o Isócrono. Interrupcion e Isocrono) y 2 tipos de pipe (Conrol o Mensaje y Stream). y el sistema lo reconoce y lo configura. 4 Pipes: Enlace virtual o Asociación entre el host y el Endpoints. Diagrama de configuración de librería mpusbapi Las funciones de la librería mpusbapi se analizan a continuación: Endpoint: Buffer (bloque de datos) o un registro que almacena bytes que se encuentran en el dispositivo. IV. el sistema pedirá el controlador (driver) correspondiente. pero sin garantía de latencia máxima ni de ancho de banda. Fig.

pLenght. Estos leds representan el encendido digital de actuadores como válvulas de paso.  dwLen (input): Especifica el número de bytes que hay que leer de la pipe. MPUSBWrite pone este valor a cero antes de cualquier lectura o de chequear un error. pLenght. MPUSBRead pone este valor a cero antes de cualquier lectura o de chequear un error. los dos en hexadecimal. se utiliza primero la llamada de MPUSBGetDeviceCount para saber cuántos dispositivos hay. 5 La transmisión de datos vía USB se realizo manipulando el encendido de forma intencionada de unos leds(Ver Fig. dwMilliseconds): Fig. dwMilliseconds)      handle (Input): Identifica la pipe del endpoint que se va a escribir. la función comprueba los datos de la pipe y vuelve inmediatamente. el intervalo de time-out nunca termina. dwMilliseconds (Input): Especifica el intervalo de time-out en milisegundos. Y MP_Write: para MPUSBWrite. Si dwMilliseconds=0. aunque no se complete la operación. dwLen. control y diseño de procesos y sistema. Mpusbclose (handle): Cierra una determinada unión. dwDir: Especifica la dirección del endpoint: MP_READ: para MPUSBRead y MPUSBReadInt. Donde xxxx es el valor del VID el yyyy el del PID.   VI. el string de entrada es: “vid_0x04d8&pid_0x0010”.  Instance (Input): Un número de dispositivo para abrir. se realizó la siguiente prueba: Se midió la temperatura ambiental de forma continua utilizando el sensor LM35. dwLen (Input): Especifica el número de bytes que se van a escribir en la pipe. pData (Output): Puntero al buffer que contiene los datos que se van a escribir en la pipe.  pData (output): Puntero al buffer que recibe el dato leído de la pipe. Si dwMilliseconds=0. Ejemplo: “\\MCHP_EP1” o “\MCHP_EP1” Este argumento puede ser NULL (nulo) para crear lazos con endpoints de funciones no específicas. en número hexadecimal de 16bits. Mpusbwrite: (handle.  handle (Input): Identifica la pipe del endpoint que se va a cerrar. Mpusbread (handle. pLenght (Output): Puntero al número de bytes que se escriben al llamar esta función. 8). pVID_PID (Input): String que contiene el PID&VID del dispositivo objetivo. La función vuelve si transcurre el intervalo. pEP: (Input): String con el número del Endpoint que se va a abrir. Donde z es el número del Endpoint en decimal. La función vuelve si transcurre el intervalo aunque no se complete la operación.CONAGOLFO 2009 Devuelve el acceso al pipe del endpoints con el VID_PID5 asignado. El formato es “vid_xxxx&pid_yyyy”. Para probar la recepción de datos entre LABVIEW y el exterior. dwReserved: indica un número reservado para el dispositivo. pData. El formato es “\\MCHP_EPz” o “\MCHP_EPz” dependiendo del lenguaje de programación.  pLenght (output): Puntero al número de bytes leídos.    handle (input): Identifica la pipe del Endpoint que se va a leer. dwLen.  dwMilliseconds (input): Especifica el intervalo de timeout en milisegundos. la función comprueba los datos de la pipe y vuelve inmediatamente. La pipe unidad tiene que crearse con el atributo de acceso MP_WRITE. pruebas.Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales (Vis). -4 / 5- . el intervalo de time-out nunca termina. El lenguaje que usa se llama lenguaje G (Gráfico). pData. Si dwMilliseconds es infinito. La pipe unidad tiene que crearse con el atributo de acceso MP_READ. Normalmente. Si dwMilliseconds es infinito. Diagrama electrónico del Proyecto VID_PID es la unión entre la identificación del dispositivo (PID) y del vendedor (VID). 8. ADQUISICION DE DATOS EN LABVIEW LabVIEW es una herramienta de programación gráfica que permite realizar simulaciones. Ejemplo: Si un dispositivo tiene un VID=0x04d8 y un PID=0x0010.

Lazaro. VI. http://www. se logra trasferir datos de alta velocidad. M.microchip. (2001). supervisión y control. [3] [4] [5] [6] Fig.CONAGOLFO 2009 La programación en LabVIEW se realizo a través de un subVI (PicUSB-Labview) que permite manipular de manera más fácil al dispositivo. 11. Los resultados obtenidos demuestran que la metodología implementada funciona perfectamente. Texas: Thomson.com En la Figura 10. El subVI creado se muestra en la siguiente figura. LABVIEW 7.ni. 10. WI: Lakeview Research.1: PROGRAMACION GRAFICA PARA EL CONTROL DE INSTRUMENTACION. [2] Fourth Edition. USB Complete Everything You Need to Develop Custom USB Peripherals. (2006). Con esta técnica se pretende que estudiante e investigadores puedan construir una tarjeta de adquisición de datos y que pueda implementarse para tareas de simulación. http://www. J. New York: McGraw-Hill. Fig. A. Madison.org Microchip (2008). (2005). se muestra la programación estructurada con el respectivo subVI creado y en la Figura. National Instruments (2008). http://www. 9.com Universal Serial Bus (2008). VI PicUSB-LabVIEW REFERENCIAS [1] Gary W. Diagrama Bloque Fig. 11. se muestran la programación virtual del proyecto. LabVIEW Graphical Programming.usb. R. Jan Axelson. CONCLUSIONES En este artículo se presento una metodología que permite la comunicación entre un microcontrolador PIC18F4550 y LabVIEW para tareas de adquisición de datos. Johnson. Panel Frontal -5 / 5- .Third Edition. Cuarta Edición.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->