一、简介
UAC是USB Audio Class的缩写,有时也叫UAD,UAD是USB Audio Device的缩写。
UAC/UAD定义了在USB规范下实现音频的设备的实现和控制功能,这些功能包括不仅音频数字部分的,也包括模拟部分。这些音频数据(模拟和数字)和用于直接控制音频环境的功能,如音量和音调控制。这个音频设备类不包括操作与音频数据的复制,如磁带传输机制或CD-ROM驱动器控制。 UAC 目前的发展已经经历了1.0 ,2.0 到现在的3.0. win10目前只支持到UAC2.0
注意:UAC3.0不兼容以前的任何版本。
UAC2.0 和UAC1.0 支持的功能对比图
二、UAC 传输速率
UAC1 最高实际速度: ≤ 7.8Mbs(1024 x 8 x 1000 )bit/s UAC2 标准实际速度: ≤ 62.5Mbs(1024 x 8 x 1000 x 8 )bit/s 最高实际速度: ≤187.5Mbs(1024 x 8 x 1000 x 8 x 3)Mb/s 注意:UAC1.0 spec 规定每隔1ms 可以发送一笔数据, High speed 下单笔数据是1024Byte, 因此最大为 (1024 x 8 x 1000 )bit/s
UAC2.0 spec 是可以每隔125us 发送一笔数据, High speed 下标准为单笔数据是1024Byte, 因此最大为 (1024 x 8 x 1000 x 8 )bit/s 最大情况: 单次可以发送 3 笔数据, 所以为(1024 x 8 x 1000 x 8 x 3)bit/s
三、UAC音频设备的接口的分类
对于每一个USB配置描述符,可能含有多个USB接口描述描述符,同时这些接口描述符可能每个接口描述符又包含多个转换接口描述符。 这些接口描述符可能每一个接口描述符实现的是不同的独立的功能或者多个接口描述符组合实现一些设备功能。
UAC 音频设置也有独立的接口描述符,这些多接口配合实现的UAC设备接口,分为两种,分别叫做UAC音频控制接口和UAC音频流接口。
UAC音频控制接口:用于实现UAC音频控制接口及拓扑结构的枚举。 UAC音频流接口:用于音频数据流的传输。
UAC音频控制接口 为了控制特定音频功能的功能行为,主机可以操纵时钟实体、单元以及音频功能内部的终端。为了使这些对象可访问,音频功能应提供单音频控制接口。
UAC音频流接口 UAC音频流接口用于传输音频流数据。一个UAC音频设备可以有多个音频流接口,每个音频流接口可以传输不同的音频数据格式。每一个音频流接口只能有一个等时传输端点,这样保证的是数据的传输与端点相关。 音频流接口包含转换接口进行音频流的切换。但至少包含一个转换接口为0的零带宽即不传输音频流接口和一个包含实际传输数据的转换接口1。
音频控制(AC)接口描述符 UAC1.0
特有类AC接口描述符 UAC1.0
特有类音频接口控制描述并不是指某个特定的描述符,而是一系列描述音频功能的描述符集合的总称。
这些描述符包括:单元描述符(UD)、以及终端描述符(TD)。这些描述符是UAC特有类的描述符,由UAC协议定义。因此,描述符集合的总长度与音频功能中定义的时钟实体、单元实体和终端的个数有关。
特有类AC接口描述符集合用一个头描述符作为开头,头描述符描述了集合的总长、音频设备类规范版本、功能类型等。所以,首先要解析的是特有类AC接口头描述符。
|