文章目录

  • 一、USB协议概述
  • 二、USB音频功能描述
  • 对于音频播放
  • 对于音频录制
  • 三、USB描述符
  • 四、涉及的硬件


本章概述了USB Audio Class 1.0标准,作为开发X-CUBE-USB-Audio扩展包的参考。

一、USB协议概述

USB通信协议为设备和主机(如PC)之间可靠、快速的数据传输提供了规范。

该协议定义了四种类型的数据传输(批量、中断、控制和同步)。

USB设备类采用适合特定应用程序和系统需要的传输类型。USB规范将具有类似功能的设备分组为设备类。

USB音频类使用同步传输类型在USB链路上传输音频。音频类中定义了三个接口:

  • 音频控制(AC)接口
  • 零个或多个音频流(AS)接口
  • 零个或多个MIDI流(MS)接口(用于MIDI设备)。

USB音频类有两个不兼容的版本:

  • USB Audio Class 1.0
  • USB Audio Class 2.0

本用户手册的内容适用于支持音频类规范1.0的Windows®(7、8和10)和macOS®(a)。

二、USB音频功能描述

UAC 1.0及更高版本定义了音频功能。为了方便地表示音频函数的拓扑和操纵其物理属性,定义了两种类型的通用实体:单元和终端。

音频功能位于设备类层次结构中的接口级别。它由许多接口组成,这些接口将相关管道分组,共同实现音频功能的接口。音频接口类将所有可以与USB兼容音频数据流交互的函数分组。

X-CUBE-USB-audio包的USB音频流功能如下图所示。

X-CUBE-USB-AUDIO 资料篇③——USB音频流概述_USB录音

X-CUBE-USB-AUDIO旨在支持:

  • USB回放设备。
  • USB记录设备。
  • USB播放和记录设备。

对于音频播放

PC(USB主机)会将STM32板识别为USB扬声器。

  1. PC通过USB将音频样本发送到电路板。
  2. STM32 MCU通过I2C配置音频编解码器,并通过I2S传输音频样本。
  3. 编解码器连接到模拟扬声器。

音频播放功能由以下部分组成:

  • 输入终端:USB输入,代表USB输出等时端点,主机在此发送音频样本。当激活反馈同步时,需要额外的同步端点。
  • 输出终端:扬声器,将数据发送至编解码器。
  • 功能单元:提供静音/取消静音和音量变化控制。

对于音频录制

PC会将STM32板识别为USB麦克风。

  1. MEMS话筒将声音捕捉为PDM样本。
  2. STM32将PDM样本转换为PCM格式,
  3. 并通过USB将其传输至PC(USB主机)。

音频录制功能由以下部分组成:

  • 输入终端:麦克风,用于捕获和提供音频样本。
  • 输出终端:USB输出,通过该输出,STM32通过同步端点发送数据。
  • 功能单元:提供静音/取消静音和音量变化控制。

实现USB音频功能的终端和单元如下图所示。

X-CUBE-USB-AUDIO 资料篇③——USB音频流概述_USB音频流_02

三、USB描述符

用于支持此类拓扑的描述符如下图所示。

除了设备描述符和配置描述外,还定义了三个接口:

  1. 音频控制接口:包含所用终端和单元的说明。
  2. 用于播放的音频流接口,具有两种可选设置:
    a. 零带宽备用设置:播放未运行时设置。
    b. 备用设置1:设置为开始播放。它定义了用完的端点和同步端点。它提供支持的格式频率和样本分辨率。
  3. 用于录制的音频流接口,具有两种可选设置:
    a. 零带宽备用设置:录制关闭时设置。
    b. 备用设置1:设置为开始录制。它定义了端点中使用的。它提供支持的格式频率和样本分辨率。

蓝色轮廓描述符用于播放,棕色轮廓描述符用于录制。

X-CUBE-USB-AUDIO 资料篇③——USB音频流概述_USB录音_03

四、涉及的硬件

X-CUBE-USB-AUDIO 资料篇③——USB音频流概述_USB描述符_04