Tarjeta de Interfaz USB Labview - PIC

Tarjeta de interfaz USB Labview - PIC18F4550 a través de comunicación HID http://www.technologuepro.com/montages-electro

Views 66 Downloads 3 File size 805KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Tarjeta de interfaz USB Labview - PIC18F4550 a través de comunicación HID http://www.technologuepro.com/montages-electroniques/USB-Labview-PIC18F455022.html Categoría: Realización de tarjetas electrónicas

Actualizado: 12/08/2013 21:46

Agregado por: Technologuepro

Lecturas: 40110

Comentarios: 3

Nota:

[ Publicar un comentario ]

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 DAQPad6020E, 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 NIVISA. 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 NIVISA 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 NIVISA 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.

2. 3. 4.

Inicie la Utilidad de terminal Mikropascal HID (Herramientas -> Terminal HID) Pestaña Descriptor Complete la información específica de su interfaz 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