Como ya se mencionó, la Clase de Dispositivo de Comunicaciones (CDC) probablemente se adapte mejor a la clase de Dispositivo de Interfaz Humana (HID) para una aplicación de registro de datos. Dicho esto, puede haber algunas razones para usar un protocolo basado en HID en lugar de CDC, como la disponibilidad de los controladores del sistema operativo del host.
Windows proporciona una interfaz de programación genérica para dispositivos HID que le permite acceder a cualquier dispositivo utilizando la clase HID sin ningún controlador especial. Si este es un producto comercial, el uso de un HID evita la necesidad de tener un controlador firmado como el que se requeriría si se usaran los CDC. Dado que un dispositivo HID no requiere que se distribuya un controlador con su producto, la experiencia del usuario final también puede ser más sencilla.
Sin embargo, hay algunos inconvenientes con el uso de un controlador basado en HID. HID no se basa en la transmisión, lo que significa que el sistema operativo del host sondeará los datos (informes) y descartará los paquetes de informes entrantes si la aplicación no lee los datos entrantes lo suficientemente rápido. Esto requiere que implemente su propio protocolo sobre los informes HID proporcionados en la capa de aplicación para proporcionar un transporte confiable utilizando los paquetes de longitud fija de salida y reporte de entrada para la transferencia de datos. El rendimiento de datos que utiliza este método será significativamente más lento que un protocolo basado en flujo como el CDC.
Puede encontrar algunos datos útiles sobre USB HID en enlace