Primeros pasos para el desarrollo de controladores de cliente USB

En esta sección se presentan los conceptos y herramientas de desarrollo de controladores USB. La sección se aplica a los desarrolladores nuevos en el desarrollo de controladores que desean implementar un controlador para un dispositivo USB para el que Microsoft no proporciona un controlador integrado. Estos controladores se denominan controlador de cliente USB en esta documentación. En los temas de esta sección se describen los conceptos generales de USB y se proporcionan instrucciones paso a paso sobre cómo realizar tareas comunes de un controlador de cliente USB. Para obtener información detallada sobre esos conceptos, consulte Especificaciones USB en Documentos de USB.

Los desarrolladores de controladores deben tener experiencia de codificación en el lenguaje de programación de C++ y comprender los conceptos de punteros de función, funciones de devolución de llamada y controladores de eventos. Si escribe un controlador basado en el marco de controlador modo de usuario, el desarrollador debe estar familiarizado con C++ y COM.

Ruta de aprendizaje para desarrolladores de controladores de cliente USB

  1. Consulte la Especificación de USB 3.2.

    • Obtenga información sobre la especificación del sector y los distintos componentes (dispositivo, controlador de host y concentrador) de la arquitectura. Es importante comprender el modelo de flujo de datos, cómo se comunican el host y el dispositivo entre sí y el formato de las solicitudes que espera el dispositivo.
  2. Obtenga un dispositivo USB de prueba.

    • Obtenga un dispositivo USB y su especificación de hardware. La especificación describe las funcionalidades del dispositivo y los comandos de proveedor admitidos. Use la especificación para determinar la funcionalidad del controlador de dispositivo y las decisiones de diseño relacionadas.

    • Hágase con el kit de aprendizaje USB FX2 de OSR si no está familiarizado con el desarrollo de controladores USB. El kit es el más adecuado para estudiar muestras USB incluidas en este conjunto de documentación.

    • Consiga un dispositivo de la herramienta de prueba USB de Microsoft (MUTT). El hardware MUTT se puede comprar en JJG Technologies. El dispositivo no tiene instalado el firmware instalado. Para instalar el firmware, descargue el paquete de software MUTT. Para obtener más información, consulte la documentación que se incluye con el paquete.

  3. Estudie el diseño del dispositivo USB y los descriptores USB relacionados.

    • Describa las funcionalidades del dispositivo leyendo el descriptor de configuración, los descriptores de interfaz para cada configuración alternativa admitida y sus descriptores de punto de conexión. Mediante USBView, el desarrollador puede examinar todos los controladores USB y los dispositivos USB conectados a ellos e inspeccionar también la configuración del dispositivo.
  4. Elección de un modelo de controlador para desarrollar un controlador de cliente USB

    • Determine si el controlador debe ser un controlador personalizado o use uno de los controladores proporcionados por Microsoft en función del diseño del dispositivo de destino. Elija el mejor modelo de controlador y describa las características compatibles con cada modelo.
  5. Revise los conceptos de desarrollo de controladores y pila de controladores USB proporcionados por Microsoft.

  6. Prepare el entorno de desarrollo y depuración.

  7. Escriba su primer controlador.

  8. Amplíe el controlador mediante el envío de una solicitud de transferencia de control USB.

  9. Amplíe el controlador para usar objetos de destino de E/S USB de WDF para realizar transferencias de datos USB.

Recursos de la comunidad para USB