Diseño de dispositivos USB
Un dispositivo Universal Serial Bus (USB) define sus funcionalidades y características a través de configuraciones, interfaces, opciones alternativas y puntos de conexión. En este artículo se proporciona información general de alto nivel de esos conceptos.
Una configuración USB define las funcionalidades y características de un dispositivo, principalmente sus capacidades de potencia e interfaces. El dispositivo puede tener varias configuraciones, pero solo una está activa a la vez. La pila de controladores USB no elige la configuración activa, pero una aplicación, un controlador, el controlador del dispositivo puede iniciarla. El controlador de dispositivo selecciona una configuración activa.
Una configuración puede tener una o varias interfaces USB que definan la funcionalidad del dispositivo. Normalmente, hay una correlación uno a uno entre una función y una interfaz. Sin embargo, algunos dispositivos exponen varias interfaces relacionadas con una función. En ese caso, el dispositivo puede tener un descriptor de asociación de interfaz (IAD). Un IAD agrupa interfaces que pertenecen a una función determinada.
Cada interfaz contiene uno o varios puntos de conexión, que se usan para transferir datos hacia y desde el dispositivo. Además, la interfaz contiene configuraciones alternativas que definen los requisitos de ancho de banda de la función asociada a la interfaz. Para resumir, un grupo de puntos de conexión forman una interfaz y un conjunto de interfaces constituye una configuración en el dispositivo.
Por lo tanto, ¿qué significa seleccionar una configuración activa? Durante la inicialización del dispositivo, el controlador de dispositivo para el dispositivo USB debe seleccionar una configuración, una o varias interfaces dentro de esa configuración y una configuración alternativa para cada interfaz. La mayoría de los dispositivos USB no proporcionan varias interfaces ni varias configuraciones alternativas. Por ejemplo, el dispositivo OSR USB FX2 Learning Kit tiene una interfaz con una configuración alternativa y tres puntos de conexión. Para obtener más información sobre el kit de aprendizaje, consulte OSR Online.
Dispositivo de interfaz única
En este diagrama se muestra la configuración de un dispositivo con una sola interfaz:
En este ejemplo, el diagrama muestra el punto de conexión 0, denominado punto de conexión predeterminado. Todos los dispositivos USB deben tener un punto de conexión predeterminado que se use para las transferencias de control (consulte Transferencia de control USB). La configuración 0 tiene una interfaz: interfaz 0 con un valor alternativo. La configuración alternativa 0 usa los tres puntos de conexión de la interfaz.
Dispositivo de varias interfaces
Para dispositivos multifunción, el dispositivo tiene varias interfaces. Para usar una función determinada o una interfaz, el controlador cliente selecciona la interfaz y una configuración alternativa asociada. Considere la posibilidad de usar un dispositivo USB de varias funciones, como una cámara web. El dispositivo tiene dos funciones, captura de vídeo (cámara) y entrada de audio (micrófono). El dispositivo define un punto de conexión en una interfaz de vídeo que transmite vídeo. El dispositivo tiene otro punto de conexión en una interfaz independiente que toma la entrada de audio a través del micrófono. La configuración del dispositivo incluye ambas interfaces.
En este diagrama se muestra la configuración del dispositivo webcam:
En este ejemplo, el diagrama muestra el punto de conexión predeterminado. La configuración 0 tiene dos interfaces: Interfaz 0 e Interfaz 1. La interfaz 0 tiene tres configuraciones alternativas. Solo una de las opciones alternativas está activa en un momento dado. Tenga en cuenta que la configuración alternativa 0 no usa un punto de conexión, mientras que la configuración alternativa 1 y 2 usan el punto de conexión 1. Normalmente, una cámara de vídeo usa un punto de conexión isócrono para el streaming. Para ese tipo de punto de conexión, cuando el punto de conexión está en uso, el ancho de banda se reserva en el bus. Cuando la cámara no transmite vídeo, el controlador cliente puede seleccionar Configuración alternativa 0 para conservar el ancho de banda. Cuando la cámara web está transmitiendo vídeo, el controlador cliente puede cambiar a configuración alternativa 1 o configuración alternativa 2, lo que proporciona niveles crecientes de calidad y consume el aumento del ancho de banda de bus. La interfaz 1 tiene dos configuraciones alternativas. De forma similar a la interfaz 0, la configuración alternativa 0 no usa un punto de conexión. La configuración alternativa 1 se define para usar el punto de conexión 4.
Los puntos de conexión no se pueden compartir entre dos interfaces dentro de una configuración. El dispositivo usa la dirección del punto de conexión para determinar el punto de conexión de destino para una operación de transferencia de datos o punto de conexión, como el restablecimiento de canalización. El host inicia todas esas operaciones.
Antes de empezar a usar el dispositivo, obtenga información sobre el diseño del dispositivo. USBView es una aplicación que permite examinar todos los controladores USB y los dispositivos USB que están conectados a ellos. Para cada dispositivo conectado, puede ver los descriptores de dispositivo, configuración, interfaz y punto de conexión para obtener una idea sobre la funcionalidad del dispositivo.
A continuación, consulte Descriptores USB estándar.