Vous êtes sur la page 1sur 17

Tarjeta de interfaz USB Labview - PIC18F4550 a través de

comunicación HID

http://www.technologuepro.com/montages-electroniques/USB-Labview-PIC18F4550-
22.html

Categoría: Realización de tarjetas electrónicas Actualizado: 12/08/2013 21:46


Agregado por: Technologuepro Lecturas: 40110
Comentarios: 3 [ Publicar un comentario ] Nota:

Este conjunto consiste en crear una tarjeta de interfaz USB con una
interfaz gráfica hecha con LABVIEW basada en el microcontrolador
PIC18F4550 para controlar las salidasdigitales y adquirir entradas
digitales y analógicas a través del convertidor PIC .

Esta tarjeta de interfaz propuesta por nuestro querido amigo CHEDLI


BOU THAALAB, requiere dos programas: un lado PIC18F4550 editado con
Mikropascal y otro lado PC hecho con Labview.

Comenzaremos con un tutorial en USB en Labview;


1. Introducción
Este tutorial es un punto de partida para usar NI-VISA para comunicarse
con el hardware USB. Sin embargo, esto no es una introducción a la
arquitectura USB o los diferentes protocolos utilizados en las
comunicaciones USB. Después de leer este tutorial, podrá instalar
hardware USB y usar NI-VISA para comunicarse con este hardware,
habiendo asimilado el funcionamiento del protocolo de comunicación.
2. Conocimiento básico de USB y VISA
VISA es una interfaz de programación de aplicaciones (API) de alto nivel
utilizada para comunicarse con los buses de instrumentación. Es
independiente de la plataforma, el autobús y el medio ambiente. En otras
palabras, la misma API se usa para crear un programa de comunicación con
hardware USB a través de LabVIEW en una máquina con Windows.
USB es un bus de comunicación basado en mensajes. Esto significa que una
PC y un hardware USB se comunican enviando comandos y datos en el bus
como texto o datos binarios.
Cada dispositivo USB tiene su propio conjunto de comandos. Las funciones
de lectura y escritura de NI-VISA le permiten enviar y leer estos
comandos. Puede obtener pedidos de su instrumento poniéndose en
contacto con su fabricante o creando sus propios pedidos.
NI-VISA admite comunicaciones USB desde la versión 3.0. Se admiten dos
clases de recursos de VISA: USB INSTR y USB RAW.
Los dispositivos USB del protocolo USB de la clase de prueba y medición
(USBTMC) utilizan los recursos de la clase USB INSTR. Los dispositivos
USBTMC cumplen con un protocolo que la clase de recursos VISA USB
INSTR puede comprender. Para comunicarse con el hardware USBTMC, no
es necesaria ninguna configuración.
Cualquier instrumento USB que no se ajuste específicamente a la
especificación USBTMC es un instrumento USB RAW.
Para obtener más información sobre la NI-VISA API, consulte la Ayuda de
NI-VISA. Este documento está incluido con NI-VISA y se puede obtener
siguiendo el siguiente enlace .

3. Configuración de NI-VISA para controlar un bus USB


Esta sección describe los pasos para configurar el hardware USB RAW
para su control NI-VISA 3.0 desde una computadora con Windows. Para
hardware compatible con USBTMC, conecte el hardware y vaya
directamente al párrafo 4.
En este punto, NI-VISA ya debe estar instalado en la computadora y el
hardware USB no debe estar conectado. Además, el controlador de
hardware USB no debe estar instalado. Se requieren tres pasos para
configurar el hardware USB para usar NI-VISA:

 Cree un archivo INF usando el Driver Development Wizard (DDW).


 Instalar el archivo INF y el hardware USB con el archivo INF.
 Pruebas de hardware con NI-VISA Interactive Control.
A lo largo de este tutorial, usted usa un paquete NI DAQPad-6020E
instalado en un sistema Windows XP, como un ejemplo de hardware
USB. Como este tutorial está destinado a explicar la configuración del
hardware USB genérico, aquí no se detallan las especificaciones detalladas
del DAQPad-6020E. Recuerde que NI-DAQ es el único controlador
admitido para controlar un DAQPad-6020E.

3.1. Crear un archivo INF utilizando el Asistente de desarrollo de


controladores (DDW)
Antes de usar NI-VISA, debe decirle a Windows que lo use como el
controlador predeterminado para el hardware. En el entorno de Windows,
esto se puede hacer con un archivo ".INF".El controlador NI-VISA 3.0 (y
superior) incluye el Asistente de desarrollo de controladores VISA
(DDW), que le permite crear un archivo INF para hardware USB.
Para abrir DDW, seleccione Inicio »Todos los programas» National
Instruments »VISA» VISA Driver Developer Wizard. La figura 1 muestra
la pantalla de apertura.

Figura n ° 1. Pantalla de selección del bus de hardware VISA DDW


Wizard
Este asistente se puede usar para crear un archivo INF para hardware
PXI / PCI, USB o IEEE 1394. Para crear un controlador de hardware USB,
haga clic en USB y luego en Siguiente.Se abre la ventana VISA DDW
Hardware Basic Information, como se muestra en la Figura 2.

Figura n ° 2. Pantalla de información básica de hardware VISA DDW

En este paso, debe conocer la ID del proveedor de USB y la ID del


producto para el instrumento USB. Estos números identifican el hardware
USB para la instalación y la orientación para que pueda comunicarse con
él. De acuerdo con la especificación USB, estos dos identificadores son
números hexadecimales de 16 bits y deben ser proporcionados por el
fabricante del hardware.
Si no conoce la ID del proveedor de USB o la ID del producto, puede
obtenerlos conectando el hardware a la computadora y permitiendo que la
computadora reconozca el nuevo hardware.
Cancele el Asistente para buscar nuevo hardware si se inicia. Abra el
Administrador de dispositivos de hardware desde el Panel de control y
busque su hardware en la lista, generalmente en el área "Controladores de
bus USB". Se puede mostrar un signo de exclamación amarillo para indicar
que se trata de un material desconocido. Haga doble clic en el hardware
para abrir su ventana de propiedades. Seleccione la pestaña Detalles y
verifique que el "Número de identificación de la instancia del dispositivo"
esté especificado en la lista desplegable de atributos. Se debe mostrar
una cadena similar a la Figura 3. Los cuatro caracteres a la derecha de
"VID_" y "PID_" son la identificación del vendedor y la identificación del
producto, respectivamente. Escriba estos caracteres para su hardware,
cierre el Administrador de dispositivos y desconecte el hardware de la
computadora. Otra solución es ponerse en contacto con el proveedor de
hardware para obtener esta información.

Figura n ° 3. ID de vendedor e ID de producto del Administrador de


dispositivos

Para el DAQPad-6020E, la identificación del proveedor es 0x3923 y la


identificación del producto es 0x12C0. Si su hardware no es un NI
DAQPad-6020E, estos identificadores son diferentes.
Nota: Antes de usar el asistente DDW, asegúrese de que el hardware esté
desconectado de la computadora.
Ingrese la identificación del vendedor, la identificación del producto, el
nombre del fabricante y el nombre del modelo de su hardware en los
campos correspondientes.
Haga clic en Siguiente. La ventana de propiedades del archivo de salida se
muestra como se muestra en la Figura 4.

Figura n ° 4. Pantalla de propiedades del archivo de salida VISA DDW

El prefijo del instrumento USB es simplemente un descriptor para


identificar los archivos utilizados para este hardware. Ingrese un prefijo
de instrumento USB, seleccione el directorio deseado en el que colocar
estos archivos y luego haga clic en Siguiente. La siguiente ventana muestra
las opciones de instalación. De forma predeterminada, la opción propone
instalar la información de instalación para el sistema operativo y, a
menudo, es la mejor opción. Una vez que se selecciona esta opción, haga
clic en Finalizar para salir del asistente. El archivo INF se crea en el
directorio de salida especificado en la pantalla anterior.
3.2. Instalación de archivos INF y hardware USB
La instalación de archivos INF es diferente para cada versión de
Windows. Cuando el asistente DDW crea un archivo INF, las instrucciones
de instalación se incluyen en un encabezado al principio del archivo
INF. Como los archivos INF son archivos de texto ASCII, pueden leerse
con cualquier editor de texto, como el Bloc de notas. Para obtener más
información sobre la instalación de un archivo INF, abra los archivos INF
en un editor de texto y siga las instrucciones al principio del archivo. Este
tutorial supone que utilizamos Windows XP.
Copie el archivo INF en el directorio INF. En Windows XP, la dirección de
este directorio suele ser C: WINDOWSINF. Este directorio puede estar
oculto, lo que puede requerir cambiar las opciones de carpeta para ver los
archivos ocultos.

Haga clic con el botón derecho en el archivo INF en C: WINDOWSINF y


haga clic en Instalar. Este proceso crea un archivo PNF para el
hardware. El hardware USB ya está listo para la instalación.
Conecte el hardware USB. Debido a que el hardware USB está conectado
en caliente, Windows debe poder detectarlo, y el Asistente para agregar
nuevo hardware debe iniciarse automáticamente tan pronto como se
conecte al puerto USB. Siga las instrucciones en la pantalla del
asistente. Cuando se le pida que seleccione un controlador para este
hardware, busque el directorio INF y seleccione el archivo INF creado con
el asistente DDW.
Nota: En algunos casos, es posible que Windows ya tenga un controlador
predeterminado asociado con hardware USB. Entonces, Windows primero
intentará instalar este controlador.Una vez que el hardware USB esté
conectado y Windows haya instalado el controlador predeterminado, haga
clic con el botón derecho en Mi PC y seleccione Propiedades. En la ventana
Propiedades del sistema, seleccione la pestaña Hardware y haga clic en
Administrador de dispositivos. Una vez abierto, expanda el árbol
"Dispositivos de interfaz de usuario (HID)".Luego, busque qué instancia de
"Dispositivo de interfaz de usuario" (que se muestra en la Figura 5)
corresponde a su hardware USB haciendo clic derecho, seleccionando
Propiedades y revisando la pestaña Detalles para la ID del vendedor y la
ID del vendedor. producto correspondiente.
Figura n ° 5. Propiedades de instancia de dispositivo de interfaz de
usuario USB

Una vez encontrado, haga clic derecho sobre él y haga clic en Actualizar
controlador, como se muestra en la Figura 6.

Figura n ° 6. Actualice el controlador para su hardware USB


En la primera pantalla, seleccione "No, ahora no / Instalar desde una lista
o ubicación especificada (usuarios avanzados)", y luego haga clic en
Siguiente. En la segunda pantalla, seleccione "Instalar desde una lista o
ubicación especificada (usuarios avanzados)" y haga clic en Siguiente. En la
tercera pantalla, seleccione "No buscar". Elegiré
el controlador para instalar. "La cuarta pantalla se parece a la de la Figura
7, donde el controlador resaltado es el que ha creado, seleccione este
controlador y haga clic en Siguiente. Cuando el controlador finalice la
instalación, haga clic en Terminado.

Figura n ° 7. Seleccionar el controlador VISA para su hardware USB

4. Prueba de comunicaciones con VISA Interactive Control


Abra Measurement & Automation Explorer (MAX). Seleccione
Herramientas »Actualizar para actualizar la vista. El hardware USB debe
figurar como hardware USB en Hardware e Interfaces, como se muestra
en la Figura 8. El hardware USB ahora está instalado y configurado para
usar NI-VISA.
Si selecciona hardware USB, la información del hardware se muestra en la
ventana Configuración de USB. Desde esta ventana, se puede acceder a
información como la identificación del proveedor, el código del modelo y el
número de serie del hardware.
Figura n ° 8. Hardware USB visto en MAX

Para comunicarse con el hardware a través de VISA, use el descriptor de


instrumento VISA para su hardware. El formato del descriptor del
instrumento para un hardware USB INSTR es el siguiente: USB [tarjeta]
:: ID de proveedor :: código de modelo :: número de serie [:: número de
interfaz USB] :: INSTR. El formato del descriptor del instrumento para el
hardware USB RAW es el siguiente:
USB [tarjeta] :: ID de proveedor :: código de modelo :: número de serie [::
número de interfaz USB] :: RAW.
De acuerdo con la especificación USBTMC, todos los dispositivos USBTMC
deben tener un número de serie. Algunos dispositivos USB RAW pueden no
tener un número de serie. En este caso, NI-VISA asigna automáticamente
un número de serie de VISA específico para ese hardware. El formato de
este número de serie es NI-VISA- #, donde # es un número generado
automáticamente.
Algunos dispositivos USB tienen múltiples interfaces, y el hardware PCI
puede tener múltiples funciones. Si su hardware solo admite una interfaz,
no necesita incluir un número de interfaz USB.
El DAQPad-6020E usa la clase RAW, el código del proveedor y el código
del modelo son 0x3923 y 0x12C0, respectivamente. Para el DAQPad-
6020E, el descriptor del instrumento es USB0 :: 0x3923 :: 0x12C0 ::
00B50DAE :: RAW.
Para probar las comunicaciones con este hardware, abra MAX. Seleccione
Herramientas »NI-VISA» Control interactivo VISA. Se debe abrir una
ventana similar a la Figura 9.
Figura 9. Control Interactivo VISA

El programa VISA Interactive Control (VISAIC) es una utilidad que se


utiliza para comunicarse fácilmente con cualquier recurso VISA. Después
de configurar el hardware USB para usar VISA, debería aparecer en la
lista en la categoría USB. Haga doble clic en el hardware para abrir una
sesión VISA en el hardware. Una ventana similar a la Figura 10 debería
está abierto.
Figura n ° 10. Sesión VISA abierta por VISA Interactive Control

Al abrir una sesión VISA con VISAIC, las pestañas Plantilla y Nodo de
propiedad (Conjunto) se seleccionan automáticamente. Para leer una
propiedad, seleccione la pestaña Nodo de propiedad (Obtener) y seleccione
la propiedad deseada, luego haga clic en Ejecutar. El valor actual de la
propiedad especificada en el campo Nombre de atributo se muestra en el
indicador Valor actual. En la Figura 10, se ha leído la propiedad Nombre del
recurso.
Para obtener más información sobre el uso de VISAIC, consulte el
documento Developer Zone: VISA Interactive Control (VISAIC). Para
obtener más información sobre la NI-VISA API, consulte la Ayuda de NI-
VISA. Sus enlaces se encuentran al final de este tutorial. Para obtener
una lista de comandos válidos para su instrumento USB, comuníquese con el
proveedor de su instrumento.
Usando NI-VISA para comunicarse con el hardware USB
Esta sección describe cómo comunicarse con el hardware USB usando NI-
VISA 3.0 y superior. Recuerde que hay dos clases de hardware USB. El
método de comunicación depende de la clase de su material.
Clase USB INSTR (USBTMC)
Los dispositivos compatibles con USB Test and Measurement (USBTMC)
usan la clase NI-VISA USB INSTR. Estos dispositivos usan un estilo de
comunicación 488.2. Para estos dispositivos, es posible simplemente usar
las funciones VISA Open, Close, Read y Write de la misma manera que
para comunicarse con instrumentos GPIB.
La Figura 11 muestra un LabVIEW VI que se comunica con el hardware
USBTMC. En este ejemplo, una sesión VISA está abierta al hardware
USB. Se escribe un comando en el hardware y se lee la respuesta. El
comando específico enviado aquí es la solicitud de identificación de
hardware. Consulte con su proveedor de hardware el conjunto de
comandos. Al final de las comunicaciones, la sesión de VISA está cerrada.

Figura n ° 11. Ejemplo de diagrama de LabVIEW USBTMC

Clase RAW USB


Comunicarse con la clase USB RAW es más complicado porque cada
hardware puede usar su propio protocolo de comunicación. Póngase en
contacto con su proveedor de hardware para obtener más información
sobre su protocolo de comunicación.
El USB se comunica a través de cuatro tipos de canales o puntos finales:
comando, bloque, interrupción e isócrono. Cada tipo de canal transfiere un
tipo diferente de información.
Además, los puntos finales pueden ser de cualquier tipo. Piense en el punto
final de un socket de comunicación. Para obtener más información sobre la
arquitectura USB, consulte la especificación USB en el siguiente enlace.
NI-VISA admite tres tipos de canales USB: control, masivo e
interrupción. Cuando NI-VISA detecta un instrumento USB, escanea
automáticamente el instrumento para encontrar el punto final más bajo
para cada tipo.
Cuando VISA lo detecta, le asigna ese valor al atributo VISA
apropiado. Los puntos finales de entrada y salida masivos se almacenan en
los atributos VI_ATTR_USB_BULK_IN_PIPE y
VI_ATTR_USB_BULK_OUT_PIPE, respectivamente. El punto final de la
entrada de interrupción se almacena en el atributo
VI_ATTR_USB_INTR_IN_PIPE. Un valor de -1 indica que el hardware
USB no admite este tipo de canal. Para el canal de control, solo se admite
el punto final cero. Si usa la API C, la función viSetAttribute le permitirá
modificar los puntos finales. En LabVIEW, use el nodo de propiedad VISA
y la función VISA Write.
NI-VISA incluye cuatro funciones para transferir datos a través de
canales USB. Antes de comunicarse con el hardware a través de estas
funciones, es necesario establecer el protocolo de comunicación utilizando
atributos USB VISA. La siguiente lista describe las funciones disponibles.
Utilice las funciones VISA USB Control In y VISA USB Control Out para
transferir datos a través de un canal de control.
Para transferir datos a través de un canal de bloque, use las funciones
VISA Read y VISA Write.
Con LabVIEW, VISA incluye una característica adicional para usar con el
canal de interrupción: VISA Obtener datos de interrupción USB. En la API
de C, la misma acción se puede realizar mediante el acceso a
VI_ATTR_USB_RECV_INTR_SIZE VI_ATTR_USB_RECV_INTR_DATA
y atributos de objeto evento VI_EVENT_USB_INTR. Vea la ayuda de NI-
VISA para más información sobre eventos
VISA.

Programa ICP;
USB tiene la desventaja de requerir el uso de componentes
particulares. En nuestra aplicación, utilizaremos el microcontrolador
Microchip 18F4550, un chip simple para programar (mikropaskal) y
equipado con todos los componentes de hardware necesarios para la
comunicación en el puerto USB. El esquema de configuración del
componente sigue siendo muy simple:
Figura 12: Tarjeta de comunicación USB de Labview

En el centro del diagrama, encontramos el PIC18F4550, está sincronizado


por un cuarzo a 20MHz. También hemos conectado en este diagrama 4
entradas analógicas: AN0, AN1, AN2, AN3, AN4 y AN5. En los pines Rd0 a
RD7 colocamos los LED que serviremos para nuestra aplicación. El puerto B
no se utiliza para nuestro artículo, pero ofrecemos la posibilidad de
ampliar la funcionalidad de la tarjeta mediante la instalación de bloques de
terminales.
Las capacidades C1 y C2 son 22pf. Tenga cuidado de no ser confundido con
el conector USB. Se trata de un conector hembra tipo B . Para conectarme
a la PC, utilizo un cable de impresora A a B, el mismo que los cables HP.
enrutamiento:
Programación PIC18F4550:
Cree un nuevo proyecto para PIC18F4550, estableciendo la frecuencia de
reloj del PIC (no la frecuencia de resonancia del cuarzo, sino la frecuencia
de salida del PLL proporcionado por la tabla a continuación).

Luego debe configurar el comportamiento del PIC llenando sus


fusibles. Los fusibles son diferentes registros PIC que establecen el tipo
de oscilador, la velocidad del reloj interno, el estado del perro guardián ...
Para hacer esto, Mikropaskal proporciona una interfaz gráfica que
simplifica la configuración de PIC (Proyecto -> Editar Proyecto). Para que
la interfaz HID funcione correctamente, hay algunas reglas a seguir:

Habilita el regulador de voltaje USB


Asegure una frecuencia holográfica de 4MHz a la salida del PLL
Use la salida PLL como un reloj USB
Mikropascal proporciona un conjunto de bibliotecas que facilitan la
implementación del protocolo HID. Estos son los pasos clave para
programar la interfaz:
Genera el descriptor de la interfaz:

1. Inicie la Utilidad de terminal Mikropascal HID (Herramientas ->


Terminal HID)
2. Pestaña Descriptor
3. Complete la información específica de su interfaz
4. Guarde el descriptor para Mikropascal en su carpeta de proyecto
· Importe el descriptor en su proyecto: "usa USBdsc; "
· Inicializar el módulo HID: HID-Enable (y ReadBuf, y WriteBuf);
· Leer información: while (HID_Read () = 0); uu por interrupción
· Para escribir información: HID_Write ();

Para enviar su programa en la interfaz; necesitas usar un programador de


PIC. Yo uso un programador USB. Luego debe importar el archivo .hex
generado por Mikropascal y programar el PIC. El procedimiento difiere
dependiendo del programador.
Para probar la comunicación HID, puede usar el terminal HID
proporcionado por Mikropascal Personalmente, uso Labview, un entorno de
programación gráfica desarrollado por National Instrument, que ofrece
una gran compatibilidad con la mayoría de los protocolos de comunicación.
Aquí hay un ejemplo simple de conmutación HID para controlar el brillo de
los LED en la interfaz y leer la entrada analógica

Descargar:

Tarjeta electrónica + Enrutamiento


Programa Mikropascal
Interfaz de controlador LABVIEW +
Documentación en USB

Vous aimerez peut-être aussi