通用串行
总线 (USB) 是连接不同
电子设备常用的接口之一。除了主要的 PC 操作系统之外,各种嵌入式系统平台也支持 USB。USB 协议为传输数字音频数据提供本机支持。这种支持及其易用性使 USB 成为互连数字音频设备的流行选择。
开发 USB 音频应用程序提出了多项设计挑战,其中包括 USB 协议复杂性、数字音频数据同步、编解码器配置和主机操作系统兼容性。因此,开发 USB 音频应用程序可能需要大量的开发成本和时间。
功能模型
USB子系统具有主机和设备单元。设备单元通过USB电缆连接至主机。标准 PC 通常承担 USB 主机的角色,而嵌入式设备(PIC32 微控制器)则扮演 USB 设备的角色。USB主机运行USB主机软件库并具有必要的USB音频设备驱动程序。USB 设备运行 USB 设备软件堆栈,并将其自身标识为 USB 主机的 USB 音频设备。
![](https://file3.dzsc.com/news/23/08/21/161331886.jpg)
使用 MPLAB Harmony 在 PIC32
MCU 上创建 USB 音频设备
在USB耳机应用中,音频子系统由音频耳机、音频编解码器和PIC32微控制器组成。音频编解码器在模拟和数字信号域之间进行转换,并允许 PIC32 微控制器以数字格式发送和接收来自耳机的信号。PIC32 微控制器通过串行通信与音频编解码器连接。这包括数据和控制接口。音频编解码器参数,例如音量、静音或均衡,可通过控制接口访问。将音频控制(静音、音量等)从音频子系统转换到 USB 子系统的附加接口也是 USB 音频系统的一部分。
USB操作
USB设备通过USB端口连接到USB主机系统。主机通过 USB 端点 0 上的控制传输与设备进行通信,并检索设备功能相关信息。然后主机加载可以操作设备的驱动程序。检测、识别和加载设备驱动程序的过程称为枚举。
USB 设备在枚举期间使用描述符其属性和其他信息。USB 描述符是具有定义格式的数据结构。每个描述符都以包含描述符中字节总数的字段开头,后跟标识描述符类型的字段。
以下是 USB 主机在枚举期间向设备请求的标准 USB 描述符列表:
设备描述符
配置描述符
接口描述符
端点描述符
字符串描述符
USB 音频操作模型
USB音频设备实现音频功能(耳机、麦克风等),并通过USB接口为主机提供对音频功能的访问。音频功能必须有一个AudioControl(AC)接口,并且可以有多个AudioStreaming(AS)接口,如下图所示。
AC接口用于控制音频功能的音频属性,如音量控制、静音控制等。
AS接口是在主机和设备之间承载音频数据的传输介质。
使用 MPLAB Harmony 在 PIC32 MCU 上创建 USB 音频设备
![](https://file3.dzsc.com/news/23/08/21/161354776.jpg)
AC 接口使用端点 0 进行控制数据通信。
AS 接口使用专用的同步端点在主机和设备之间传输音频数据。