Universal Serial Bus (USB) es una de las interfaces más utilizadas para conectar varios dispositivos electrónicos. Además de los principales sistemas operativos de PC, varias plataformas de sistemas integrados también admiten USB. El protocolo USB proporciona soporte nativo para transferir datos de audio digital. Este soporte y facilidad de uso hacen de USB una opción popular para interconectar dispositivos de audio digital.
El desarrollo de aplicaciones de audio USB presenta varios desafíos de diseño, incluida la complejidad del protocolo USB, la sincronización de datos de audio digital, la configuración de códecs y la compatibilidad del sistema operativo host. Por lo tanto, desarrollar una aplicación de audio USB puede resultar muy costoso y llevar mucho tiempo.
modelo funcional
El subsistema USB tiene una unidad host y una unidad de dispositivo. La unidad del dispositivo se conecta al host a través de un cable USB. Una PC estándar generalmente actúa como host USB y un dispositivo integrado (un microcontrolador PIC32) actúa como dispositivo USB. Un host USB ejecuta la biblioteca de software del host USB y tiene los controladores de dispositivos de audio USB necesarios. Un dispositivo USB ejecuta la pila de software del dispositivo USB y se identifica ante el host USB como un dispositivo de audio USB.
En una aplicación de auriculares USB, el subsistema de audio consta de los auriculares, el códec de audio y el microcontrolador PIC32. Los códecs de audio se convierten entre los dominios de señal analógica y digital, lo que permite que los microcontroladores PIC32 envíen y reciban señales de auriculares en forma digital. Un microcontrolador PIC32 se conecta al códec de audio a través de comunicación en serie. Esto incluye interfaces de datos y control. Se accede a los parámetros del códec de audio, como el volumen, el silencio y la ecualización, a través de la interfaz de control. Una interfaz adicional que traduce los controles de audio (silencio, volumen, etc.) del subsistema de audio al subsistema USB también forma parte del sistema de audio USB.
operación USB
Un dispositivo USB se conecta a un sistema host USB a través de un puerto USB. El host se comunica con el dispositivo a través de transferencias de control sobre el extremo USB 0 para obtener información relacionada con las capacidades del dispositivo. Luego, el host carga los controladores que pueden operar el dispositivo. Este proceso de búsqueda, identificación y carga de controladores para un dispositivo se denomina enumeración.
Los dispositivos USB usan descriptores para reportar sus atributos y otra información durante la enumeración. Un descriptor USB es una estructura de datos con un formato definido. Cada descriptor comienza con un campo que contiene el número total de bytes en el descriptor, seguido de un campo que identifica el tipo de descriptor.
A continuación se muestra una lista de descriptores USB estándar que el host USB solicita del dispositivo durante la enumeración.
- descriptor de dispositivo
- descriptor de configuración
- descriptor de interfaz
- descriptor de punto final
- descriptor de cadena
Modelo de operación de audio USB
Un dispositivo de audio USB implementa la funcionalidad de audio (auriculares, micrófono, etc.) y brinda acceso a la funcionalidad de audio al host a través de la interfaz USB. Las funciones de audio requieren una interfaz AudioControl (AC) y pueden tener múltiples interfaces AudioStreaming (AS), como se muestra en el siguiente diagrama.
La interfaz de CA se utiliza para controlar las propiedades de audio para funciones de audio como el control de volumen y el control de silencio.
AS-interface es un medio de transporte que transporta datos de audio entre hosts y dispositivos.

La interfaz de CA utiliza el punto final 0 para la comunicación de datos de control.
La interfaz AS utiliza puntos finales isócronos dedicados para transferir datos de audio entre el host y el dispositivo.