UAC开发调试笔记
+ -

UAC配置描述符拓扑结构麦克风和扬声器判断

2025-11-27 本文链接为:http://www.usbzh.com/article/detail-1599.html ,欢迎转载,转载请附上本文链接。

UAC的配置描述符说明了UAC设备的拓扑结构。
而拓扑结构中最主重要的就是输入终端和输出终端。
输入终端和输出终端和其它的拓扑单元构成了最基本的UAC拓扑结构和数据流向。
但是通过输入终端的类型可以判断是数据流输入到主机还是到设备,这就可以判断是麦克风还是扬声器。

扬声器

如有如下的拓扑结构,描述符如下:

        ------- Audio Control Input Terminal Descriptor -------
bLength                  : 0x0C (12 bytes)
bDescriptorType          : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype       : 0x02 (Input Terminal)
bTerminalID              : 0x01
wTerminalType            : 0x0101 (USB Streaming)
bAssocTerminal           : 0x00
bNrChannels              : 0x02 (2 channels)
wChannelConfig           : 0x0003 (L, R)
iChannelNames            : 0x08 (String Descriptor 8)
 Language 0x0409         : "Playback Channels"
iTerminal                : 0x07 (String Descriptor 7)
 Language 0x0409         : "Playback Input terminal"
Data (HexDump)           : 0C 24 02 01 01 01 00 02 03 00 08 07               .$..........

        ------- Audio Control Output Terminal Descriptor ------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype       : 0x03 (Output Terminal)
bTerminalID              : 0x03
wTerminalType            : 0x0405 (Echo-canceling speakerphone)
bAssocTerminal           : 0x00 (0)
bSourceID                : 0x01 (1)
iTerminal                : 0x09 (String Descriptor 9)
 Language 0x0409         : "USBZH Audio"
Data (HexDump)           : 09 24 03 03 05 04 00 01 09                        .$.......

其拓扑结构如下:
173301918198
可以看到,输入终端的类型为0x0101 (USB Streaming),表示数据来源于USB端,所以这就是一个扬声器。

麦克风

        ------- Audio Control Input Terminal Descriptor -------
bLength                  : 0x0C (12 bytes)
bDescriptorType          : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype       : 0x02 (Input Terminal)
bTerminalID              : 0x02
wTerminalType            : 0x0405 (Echo-canceling speakerphone)
bAssocTerminal           : 0x00
bNrChannels              : 0x01 (1 channel)
wChannelConfig           : 0x0001 (L)
iChannelNames            : 0x0B (String Descriptor 11)
 Language 0x0409         : "Capture Channels"
iTerminal                : 0x0A (String Descriptor 10)
 Language 0x0409         : "USBZH Audio"
Data (HexDump)           : 0C 24 02 02 05 04 00 01 01 00 0B 0A               .$..........

        ------- Audio Control Output Terminal Descriptor ------
bLength                  : 0x09 (9 bytes)
bDescriptorType          : 0x24 (Audio Interface Descriptor)
bDescriptorSubtype       : 0x03 (Output Terminal)
bTerminalID              : 0x04
wTerminalType            : 0x0101 (USB Streaming)
bAssocTerminal           : 0x00 (0)
bSourceID                : 0x02 (2)
iTerminal                : 0x0C (String Descriptor 12)
 Language 0x0409         : "Capture Output terminal"
Data (HexDump)           : 09 24 03 04 01 01 00 02 0C

其拓扑结构如下:
173417270079
可以看到,其输出终端的类型为0x0101 (USB Streaming),表示数据流向到USB,所以这是一个麦克风。

本文链接为:http://www.usbzh.com/article/detail-1599.html ,欢迎转载,转载请附上本文链接。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936     USB技术交流3:1031974172

0 篇笔记 写笔记

USB-UAC麦克风 音频控制接口
音频控制接口描述符描述了设备的结构(拓扑结构),并通过特定类请求对音频的控制。UAC麦克风 音频控制接口描述符偏移地址字段长度值描述0bLength10x09接口描术符的长度1bDescriptorType10x04描述符的类型接口描述符2bInterfaceNumber10x00接口ID号3bA......
USB-UAC麦克风 配置描述符
UAC麦克风采用的配置描述符结构和USB配置描述符的结构一致.偏移地址字段长度值描述0bLength10x09配置描述符的长度1bDescriptorType10x02描述符类型,配置描述符类型2wTotalLength20x0064配置描述符的总长度(包括后续的UAC音频控制和UAC音频流接口描述......
华为UAC麦克风的工作过程数据分析
看完了耳机的数据分析,再来分析麦克风,就相对来说很简单了,这是因为:第一:麦克风没有音频控制特效单元描述符,所以少了很多特定类请求。第二:麦克风只有一个音频流转换接口,且只支持采样率为48000HZ 16位。具体的过程见下:Length Phase Data-------- --......
USB-UAC麦克风 功能简介
这里描述的设备是一个USB麦克风。这是一个非常简单的设备,没有音频控制合并等其它功能。它通过音频流接口向主机提供单声道音频数据流。这个使用的音频数据格式是16位8KHz PCM。同步类型为异步源。它使用内部时钟作为参考源。本章要介绍的是UAC1.0规范附录B自带的USB麦克风的内容。从拓年图上可以看......
USB-UAC麦克风 字符串描述符
偏移地址字段长度值描述0bLength10x18描述符长度1bDescriptorType10x03描述符类型:字符串描述符2bString10x00540x00480x00450x00200x00430x004F0x004D0x00500x00410x004E0x0059“THE COMPANY”......
USB通用父驱动usbccgp.sys的过滤UVC摄像头、UAC麦克风和HID设备硬件ID
激动的心情,无溢言表。。虽然只是一个很简单的东西。。但相于折腾了这么久,还是很开心的了。最近有个需求,功能是这样的:有一个USB复合设备,连接到windows系统中它在windows下的设备树如下:USB Composite Device(usbccgp.sys)UVC CameraUAC ......
USB-UAC麦克风 音频流接口
音频流接口有2个转换接口。UAC麦克风 零带宽转换接口转换接口0是零带宽设置,用于在麦克风未使用。这是通电后的默认设置。实现了零带宽通过指定接口的此备用设置没有与之关联的端点(bNumEndpoints=0)。偏移地址字段长度值描述0bLength10x091bDescriptorType10x04......
UVC 静止图像触发控制
静止图像触发控制通知设备开始通过相关的同步或大容量管道发送静态图像数据。专用的静态图像大容量管道仅用于静态图像捕获的方法3。此控制只能在流式传输时设置,并且在发送静态图像后,硬件应将其重置为“正常操作”模式。仅当设备支持静态图像检索的方法2或方法3时,才需要此控件。控制选择子VS_STILL_IMA......
USB-UAC麦克风 设备描述符
UAC麦克风采用的设备描述符结构和USB设备描述符的结构一致,只是有些字段的值有所要求。偏移地址字段长度值描述0bLength10x12设备描述符的总和长度1bDescriptorType10x01设备描述符类型2bcdUSB 20x01001.00使用的USB版本号4bDeviceClass10x......
UAC麦克风拓扑图
UAC麦克风是UAC规范中的USB音频输入设备,它的拓扑图如下:可以看到,在UAC域内,这个拓扑图是一个最简单的UAC麦克风拓扑图,只包括一个输入终端和一个输出终端,输入终端对应的是拾音端,而输出终端将最终的音频数据打包通过USB端点传输给主机。当然,不管是不是最简单的麦克风,最基本的东西都是......
UAC麦克风设备描述符
所有的USB设备第一个要设计的描述符基本都是设备描述符。这里的UAC音频设备描述符数据配置如下:结构体定义如下:/* USB_DT_DEVICE: Device descriptor */struct usb_device_descriptor { __u8 bLength; ......
UAC麦克风配置描述符
配置描述符包含了设备的配置信息,随配置描述符一起返回给主机的其它描述符代表了该设备的特性。UAC麦克风配置描述符的数据配置如下:数据结构定义如下:struct usb_config_descriptor { __u8 bLength; __u8 bDescriptorType; ......
UAC麦克风音频控制的接口描述符
UAC麦克风包含一个音频控制接口,其以接口描述符为起始描述符。描述符的关系如下:接口描述符 //音频控制接口类特定音频流接口描述符输入终端描棕符输出终端描述符接口描述符的内容详见:USB接口描述符 http://www.usbzh.com/article/detail-64.ht......
UAC麦克风类特定音频控制接口描述符
UAC的类特定音频控制接口描述符又叫类特定音频控制接口头描述符,包含了UAC音频控制各终端,单元的描述符信息。在UAC规范中,其包含的描述符有:关于类特定音频控制接口描述符可详见本站:http://www.usbzh.com/article/detail-222.html由于该UAC麦克风是基于......
UAC麦克风输入终端描述符
输入终端描述符在拓扑结构中表示数据的来源端。该UAC麦克风输入终端描述符的数据配置如下:关于输入终端描述符的解释见:http://www.usbzh.com/article/detail-180.html输入终端描述符结构体和数据初始化代码如下:/* 4.3.2.1 Input Termina......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!