Labview usb

Solo disponible en BuenasTareas
  • Páginas : 9 (2106 palabras )
  • Descarga(s) : 0
  • Publicado : 22 de noviembre de 2011
Leer documento completo
Vista previa del texto
Practica N° 1
Secuencia de leds
Introducción
Se describirá como se realizo una secuencia de leds en un byte utilizando programación en lenguaje G utilizando Labview.
Objetivo
Realizar una secuencia en leds gráficos con la utilización de lenguaje G en Labview y después ser visualizada en una interface física.

Desarrollo

La secuencia que debe realizar es el desplazamiento de unbit en un byte de LSB a MSB y viceversa se visualizara en un array booleano el cual representa un byte de leds u ocho bits Figura 1.1.

Figura 1.1
La secuencia en número decimal es 1, 2, 4, 8, 16, 32, 64 y 128 para obtenerla se ocupa la función 2n donde n es numero de incremento 1 , el incremento n+1 se logra con una estructura FOR y para el decremento una estructura case. Después de obtenerla secuencia numérica se hace una “conversión decimal a binario” con esto se obtiene código Figura1.2

Figura 1.3

Descripción de funciones utilizadas en el código
Inversor de la variable x
Comparador mayor de las variables x y
Potencia 2n
Diferencia de variables x y
Realiza operaciones aritméticas y booleano  Para seleccionar la operación (sumar,multiplicar, AND, OR o XOR), haga clic en la función y seleccione Cambiar el modo en el menú contextual

Convertidor numero a booleano
Swap Data
Intercambia el orden superior de 8 bits y el de bajo orden de 8 bits para cada palabra de datos.
Estructura Case
Estructura For
Estructura While
Interface USB
La interface se realiza a partir de un microcotrolador PIC de Microchip la cual proporcionauna librería dinámica mpusbapi.dll para la conexión de la famila 18FXX50 la cual posee conexión usb 2.0 esta librería proporciona funciones a continuación descritas
MPUSBGETDLLVERSION(VOID)
Lee el nivel de revisión del MPUSAPI.dll. Es un nivel de revisión de 32bits.
Esta función no devuelve la versión del código, no realiza nada con el USB.
Devuelve la versión de la dll en formato hexadecimalde 32bits.

MPUSBGETDEVICECOUNT(PVID_PID)
Devuelve el número de dispositivo con VID_PID asignado.
pVID_PID: Input: cadena de caracteres del número de identificación asignado

MPUSBOPEN(INSTANCE, PVID_PID, PEP, DWDIR, DWRESERVED)
Devuelve el acceso al pipe del Endpoint con el VID_PID asignado.
Todas las pipes se abren con el atributo FILE_FLAG_OVERLAPPED. Esto permite que MPUSBRead,MPUSBWrite y MPUSBReadInt tengan un valor de time-out.
Nota: el valor del time-out no tiene sentido en una pipe síncrona.
instance: Input: Un número de dispositivo para abrir. Normalmente, se utiliza primero la llamada de MPUSBGetDeviceCount para saber cuantos dispositivos hay.
Es importante entender que el driver lo comparten distintos dispositivos. El número devuelto por el MPUSBGetDeviceCounttiene que ser igual o menor que el número de todos los dispositivos actualmente conectados y usando el driver genérico.
Ejemplo:
Si hay tres dispositivos con los siguientes PID_VID conectados:
Dispositivo tipo 0, VID 0x04d8, PID 0x0001
Dispositivo tipo 1, VID 0x04d8, PID 0x0002
Dispositivo tipo 2, VID 0x04d8, PID 0x0003
Si el dispositivo que nos interesa tiene VID=0x04d8 y PID=0x0002 elMPUSBGetDeviceCount devolverá un ‘1’.
Al llamar la función tiene que haber un mecanismo que intente llamar MPUSOpen() desde 0 hasta MAX_NUM_MPUSB_DEV. Se tiene que contar el número de llamadas exitosas. Cuando este número sea igual al número devuelto por MPUSBGetDeviceCount, hay que dejar de hacer las llamadas porque no puede haber más dispositivos con el mismo VID_PID.
pVID_PID: Input: String quecontiene el PID&VID del dispositivo objetivo. El formato es “vid_xxxx&pid_yyyy”. Donde xxxx es el valor del VID y el yyyy el del PID, los dos en hexadecimal.
Ejemplo:
Si un dispositivo tiene un VID=0x04d8 y un PID=0x000b, el string de entrada es: “vid_0x04d8&pid_0x000b”.
pEP: Input: String con el número del Endpoint que se va a abrir. El formato es “\MCHP_EPz” o “\MCHP_EPz”...
tracking img