Librerias usb

Solo disponible en BuenasTareas
  • Páginas : 6 (1474 palabras )
  • Descarga(s) : 0
  • Publicado : 1 de mayo de 2011
Leer documento completo
Vista previa del texto
1.
1.1.

LIBRERÍA DEL USB: MPUSBAPI.DLL
INRODUCCIÓN

Para una mayor facilidad de desarrollo de aplicaciones basadas en el bus USB, Microchip ha creado un archivo dll en el que proporciona las funciones de acceso al puerto USB con un microcontrolador de la familia PIC18Fxx5x. Para un funcionamiento correcto, se necesita el driver mchpusb.sys. Este archivo sirve tanto para Visual Basic comopara Visual C, entre otros.

1.2.
1.2.1.

FUNCIONES
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 hexadecimal de 32bits.

MPUSBGetDLLVersion()

1.2.2.

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

MPUSBGetDeviceCount(vid_pid)

Documento creado por Slalen para Electronics Strange World

1.2.3. MPUSBOPEN(INSTANCE, DWRESERVED)

PVID_PID,

PEP,

DWDIR,

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 timeout. 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 devueltopor el MPUSBGetDeviceCount tiene 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=0x04d8y PID=0x0002 el MPUSBGetDeviceCount 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 que contiene 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”dependiendo del lenguaje de programación. Donde z es el número del Endpoint en decimal. Ejemplo: “\MCHP_EP1” o “\MCHP_EP1” Este argumento puede ser NULL (nulo) para crear lazos con Endpoints de funciones no específicas. Las funciones MPUSBReadInt. específicas son: MPUSBRead, MPUSBWrite,

2

Librería MPUSBApi Nota: Para utilizar MPUSBReadInt(), el formato de pEP tiene que ser “\MCHP_EPz_ASYNC”. Estaopción sólo está disponible para un Endpoint interrupción IN. La pipe de datos abierta con “_ASYNC” debe almacenar datos con el intervalo especificado en el Endpoint descriptor con un máximo de 100 recepciones. Cualquier otro dato recibido después de llenar el buffer del driver se ignora. La aplicación del usuario tiene que llamar MPUSBReadInt() a menudo sin superar el máximo de 100. dwDir:Especifica la dirección del Endpoint: MP_READ: para MPUSBRead y MPUSBReadInt MP_Write: para MPUSBWrite dwReserved: por ahora nada.
MPUSBOpen(0, vid_pid, out_pipe, MP_WRITE, 0)

1.2.4. MPUSBREAD(HANDLE, DWMILLISECONDS)

PDATA,

DWLEN,

PLENGTH,

handle: Input: Identifica la pipe del Endpoint que se va a leer. La pipe unida tiene que crearse con el atributo de acceso MP_READ. pData: Output:...
tracking img