controlador de dispositivo compuesto USB

5

Me pregunto si es posible crear un dispositivo USB (en el siguiente the device ) compuesto de

  • un circuito personalizado (por ejemplo, arduino ) y
  • un almacenamiento flash

de tal manera que the device se reconozca como un usb flash storage estándar (y como tal es operable con controladores de sistema operativo estándar), mientras que dicho almacenamiento contiene las utilidades para operar con el circuito personalizado (dispaliendo los datos recopilados por el circuito); y si es así, ¿cómo?

Mi primer pensamiento fue abofetear un usb-hub y usb-pen baratos antes de mi circuito, pero esa solución no me agrada.

Mi objetivo es eliminar la necesidad de llevar una unidad flash adicional solo para el software operativo, y usar los controladores de sistema operativo predeterminados, hacer que sea fácil de usar:

  1. conecto el dispositivo
  2. el sistema operativo (windows) monta una nueva unidad flash sin necesidad de un controlador especial
  3. es el inicio (manualmente o vía ejecución automática) de mi custom.exe desde esa unidad flash
  4. Recibo datos medidos por el circuito
pregunta Valerij

1 respuesta

3

Tu primer paso es encontrar un microcontrolador USB que tenga todos los periféricos que necesitas para realizar tu tarea.

El segundo paso es configurar correctamente los descriptores USB. Los descriptores le dirán a la PC que su dispositivo es un dispositivo compuesto. No he visto mucho soporte para configuraciones múltiples. Así que necesitarás un descriptor de configuración.

Normalmente, los dispositivos compuestos se describen mediante el uso de múltiples descriptores de interfaz. Entonces tu descriptor de configuración dirá que tiene 2 descriptores de interfaz. El primer descriptor de interfaz será para su dispositivo de almacenamiento masivo. El segundo descriptor de interfaz será su interfaz personalizada.

EDITAR: aquí hay un par de enlaces que pueden ayudarte con los descriptores. El controlador genérico USB principal es lo que Windows usa para enumerar dispositivos compuestos. Un montón de cosas buenas aquí. enlace

Aquí hay un enlace a una nota de la aplicación Atmel que muestra un ejemplo de un dispositivo compuesto. enlace

Microchip tiene una pila USB libre para sus microcontroladores. También contiene ejemplos para dispositivos compuestos. Desafortunadamente, el enlace a los ejemplos de Microchip es del tipo que probablemente cambiará a lo largo del tiempo, por lo que su mejor opción es buscar en Google " Bibliotecas de aplicaciones de microchip "

Dicho esto, probablemente no necesite una interfaz personalizada. Si solo está pasando bytes, puede usar controladores HID estándar para transportar sus datos hacia y desde el dispositivo, sin necesidad de controladores personalizados. Sin embargo, se requerirá que el software del lado del host use la interfaz especificada por el sistema operativo para leer / escribir informes HID (en el caso de Windows, esto suele ser ReadFile y WriteFile de la API de Windows)

    
respondido por el ajs410

Lea otras preguntas en las etiquetas