Esta nota de aplicación describe la clase de dispositivos de interfaz humana USB (HID) de hosts integrados. Este documento incluye una descripción general de la clase HID, sus funciones principales, los controladores de cliente de HID, la regeneración de eventos, la inicialización del controlador de cliente y los detalles del analizador de HID.
prólogo
Con la introducción de los microcontroladores de Microchip con periféricos USB OTG, las aplicaciones de microcontroladores pueden admitir fácilmente la funcionalidad USB Embedded Host. Tradicionalmente, las PC se usaban como hosts para redes USB. Los microcontroladores de Microchip con funcionalidad de host ahora se pueden usar para implementar hosts en sistemas integrados. Algunos de los usos más comunes de esta función son la interfaz con dispositivos de interfaz humana (HID).
Clase de dispositivo de interfaz humana USB (HID)
La clase HID consiste principalmente en dispositivos que se utilizan para controlar aplicaciones específicas.
Ejemplos típicos de dispositivos de clase HID son:
- teclado y dispositivo señalador
- Interruptores de control, deslizadores, etc.
- Joysticks, dirección y otras entradas de control del juego
- Escáner de código de barras POS y lector de tarjetas magnéticas con modo de emulación de teclado HID
La clase HID también se puede utilizar para dispositivos sin interfaz humana. Tales aplicaciones deben funcionar dentro de los límites de la especificación de clase HID.
Características clave de la clase HID
- Los datos se intercambian entre el host y el dispositivo en forma de informes. El formato del informe está definido por un descriptor de informe definido por el dispositivo en función de sus necesidades.
- Las interfaces HID utilizan el modo de transferencia de interrupción para mover datos.
- Una interfaz HID debe tener al menos un punto final de entrada de interrupción para enviar informes de entrada. La interfaz HID también tiene un punto final de salida de interrupción opcional. Si no se define un punto final de SALIDA de interrupción, los informes de salida se pueden enviar a través del punto final de SALIDA de control. Sin embargo, las aplicaciones deben evitar transferencias frecuentes a través del punto final de control.
- La clase HID utiliza el modo de transferencia de interrupción, por lo que se pueden transferir hasta 64 bytes en un cuadro (es decir, 64 Kbytes/seg. por punto final cuando se ejecuta en modo de velocidad máxima).
Los especificadores de protocolo, subclase y clase de dispositivo HID no se incluyen en los campos bDeviceClass, bDeviceSubClass y bDeviceProtocol del descriptor de dispositivo. En su lugar, todos estos campos se establecen en 0x00 y los especificadores se especifican en los campos bInterfaceClass, bInterfaceSubClass y bInterfaceProtocol del descriptor de interfaz. Las configuraciones más comunes para dispositivos de clase HID son:
- bClase de interfaz –
- bSubclase de interfaz –
- 0x00 (sin subclase)
- 0x01 (subclase de interfaz de arranque)
- 0x02-0xFF (reservado)
- bProtocolo de interfaz –
- 0x00 (ninguno)
- 0x01 (teclado)
- 0x02 (ratón)
- 0x03-0xFF (reservado)
El host se comunica con los dispositivos de clase HID mediante el conducto de control (predeterminado) o el conducto de interrupción.
Los tubos de control se utilizan para:
- Transmisión y recepción de datos de transferencia de control.
- Envío y recepción de informes cuando el dispositivo no utiliza el extremo de interrupción.
Las tuberías de interrupción se utilizan para:
- Envíe y reciba informes desde y hacia los dispositivos.
- Envíe datos de latencia fija hacia y desde su dispositivo.
La tubería de SALIDA de interrupción es opcional. Si el dispositivo declara un punto final de SALIDA de interrupción, el host envía el informe de salida al dispositivo a través del punto final de SALIDA de interrupción. Si no se declara ningún punto final de SALIDA de interrupción, los informes de salida se envían al dispositivo a través del punto final de control.
Controlador de cliente HID
Arquitectura de controlador de cliente HID
Las aplicaciones no interactúan directamente con el controlador del cliente USB HID. En su lugar, use una capa de interfaz de aplicación que interactúe con el controlador del cliente, y el controlador del cliente usa la capa de alojamiento. La Figura 1 muestra las funciones de la interfaz de la aplicación host USB HID.
La capa de interfaz HID consta de la interfaz HID Parser y las funciones de interfaz para enviar y recibir respuestas hacia y desde el dispositivo. El descriptor del informe se analiza y los datos se almacenan en estructuras predefinidas. El analizador rellena estas estructuras de datos con información extraída del descriptor de informe. Las aplicaciones pueden comprender los descriptores de informes utilizando funciones definidas en la capa de interfaz.