Estoy intentando crear un registrador de datos USB y me gustaría comenzar primero con la creación de un programa que transmita Hello World a través de USB sin usar algún tipo de comunicación CDC. Estoy tratando de averiguar qué clase de dispositivo debo usar. ¿Hago bien en intentar configurarlo como un dispositivo HID? Para su información, planeo usar el kit de inicio USB PIC32 para esto.
Como ya se discutió, la clase de dispositivo de comunicaciones (CDC) es probablemente una mejor opción que 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 controladores del sistema operativo host.
Windows proporciona una interfaz de programación genérica para dispositivos HID que le permite acceder a cualquier dispositivo que utilice la clase HID sin controladores especiales. Si se trata de un producto comercial, el uso de un HID evita la necesidad de tener un controlador firmado como el que se requeriría si se usara CDC. Dado que un dispositivo HID no requiere un controlador para distribuirlo con su producto, la experiencia del usuario final también puede ser más sencilla.
Sin embargo, existen 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 host sondeará los datos (informes) y felizmente eliminará 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 además de los informes HID proporcionados en la capa de aplicación para proporcionar un transporte confiable utilizando los paquetes de longitud fija del informe de entrada y salida para la transferencia de datos. El rendimiento de datos con este método será significativamente más lento que con un protocolo basado en secuencias como CDC.
Algunos datos útiles sobre USB HID se pueden encontrar en http://www.lvr.com/hidpage.htm
Recomendaría usar CDC como se indica arriba. Si eso no funciona para usted, la clase MSD podría hacerlo. La última opción de recurso sería codificar el suyo propio, pero eso requerirá escribir un controlador de dispositivo para el sistema operativo host con el que planea usar su dispositivo.
kenny
chris stratton
Cristóbal Felton