UAC开发调试笔记
+ -

UAC音频设备拓扑单元bSourceID错误导致设备启动失败(代码10)

2024-07-11 59 0

正常情况下,一个UAC类型的设备如麦克风或者扬声器,一般都会有三个或者两个拓扑节终端。

如对于麦克风,其拓扑结是:输入终端->音频控制特征单元->输出终端 ,然后再通过音频流接口描述符中通过bTerminalLink指 定输出终端,最终连到的是USB主机端。

而对于扬声器:拓扑结构是:输入终端->音频控制特征单元->输出终端,然后再通过音频流接口描述符中通过bTerminalLink指 定输入终端,这样表示音频数据流来源于USB主机端。

以上的拓扑结构其实是通过每个终端单元的bSourceID来连接的,而bSourceID的内容就是与其连接的上一个拓扑结构的ID,这个ID在每个拓扑结构单元的ID由bTerminalID指定。

UAC规定,这个ID在配置描述符中应惟一,不能重复。

但是,有的时候,可能因为我们指定了错误的源ID,导致拓扑结构连接失败。如我们的麦克风的一个示例如下:

  • 输入终端[bTerminalID:1]
  • 音频控制特征单元[bTerminalID:2]
  • 输出终端[bTerminalID:3]

正常情况下,音频控制特征单元的bSourceID应为1,输出终端bSourceID应为2。这样组成了:
输入终端[bTerminalID:1] -> 音频控制特征单元[bTerminalID:2] -> 输出终端[bTerminalID:3]

但假设,我们将输入终端的bSourceID指定一个不存在的单元,如5。则会在Windows设备管理器中因指定了一个未知的设备而引起的拓扑结构连接失败,而导致音频设备无法正常使用。
102401767758
这个错误状态如下:
145727255363

翻译过来就是:
此设备无法启动。(代码10)
找不到对象。

找不到对象,这里指的是编号ID为5的源对象找不到。

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

0 篇笔记 写笔记

UVC 拓扑结构
UVC规范描述了以下类型的标准单元和终端,这些单元和终端被认为足以代表当前和近期可用的大多数视频功能:输入端子(ST)输出端子(OT)选择器单元(SU)处理单元(PU)编码单元(EU)扩展单元(XU)此外,还有一些特殊的终端扩展了基本输入和输出终端的功能。这些特殊终端支持特定于这些终端提供的扩展功能......
USB的拓扑结构
USB的拓扑结构结可以从三个视图来解释,分别为物理拓扑,逻辑拓扑和软件编程拓扑USB的物理拓扑结构USB的物理拓扑指的是USB总线的实际物理设备连接关系。主机端提供USB根集线器,USB根集线器可外接USB外设,也可的外接USB的集线器HUB,用于拓展USB端点接口,拓展的USB集线器上的端口也可以......
UAC 拓扑结构
UAC规范描述了以下类型的标准单元和终端,这些单元和终端被认为足以代表当前和近期可用的大多数视频功能:输入终端 - Input Terminal (IT)输出终端 - Output Terminal (OT)混音器单元 - Mixer Unit (MU)选择器单元 - Selector Uni......
USB设备与集线器最大可以级联多少层
在USB2.0规范中,定义了USB设备与集线器最大可以级联7层(包括根集线器),即根集线器之设备之间最多有5个继集线器。注意:有一个USB复合(compound)设备,其本身是一个USB集线器并接连1个或多个USB功能设备,这里需要将这个USB集线器算在内。......
UVC摄像头实现的拓扑结构
UVC视备内部表示为多个可寻址实体或终端的互连。每个实体/终端代表一种功能,并具有由USB主机控制的属性。这些UVC设备内部互联的结构叫做UVC设备的内部拓扑结构。一个最简单的UVC拓扑结构如下图所示:数据由CAMERA Sensor采集,首先通过输入终端,再通过输出终端,最后通过USB的视频流端点......
UVC扩展单元描述符和设置不当会引起的设备启动失败(code:10)
UVC扩展单元用于UVC设备的自定义通讯,通过UVC扩展单元可以实现一些厂商自定义的通讯和设备特性。在一般的UVC摄像头的描述符布局中,其拓扑结构一般如下:可以看到,这上面的拓扑结构中支持2个扩展单元,所以在USB配置描述符的视频控制接口中就有两个独立的扩展单元描述符。这两件扩展单元的bSource......
UVC相机拓扑结构配置要点总结
做UVC相机开发的人经常是需要编写UVC相机配置描述符的,这个USB配置描述符包括两部分的内容,分别为视频控制接口部分和视频流接口部分。视频控制部分包括的内容主要描述了UVC相机的拓扑结构。一般情况下的相机拓扑结构是这样子的:不过有的时候,我们也需要扩展单元,所以加上扩展单元描述符就如下:这里......
USB设备总线拓扑结构生成原理及方法
在Windows系统的内核中,USB堆栈提供了一系列的API接口。内核或者应用程序可以使用这些API接口来确定USB总线的拓扑结构和相关的USB设备信息。我们常用的USBTreeViewe是基于微软开源usbview二次开发的,而usbview就是使用这些API接口来实现USB总线拓扑结构和US......
uvc_parse_control解析拓扑结构uvc_parse_standard_control
对于大部分的UVC设备,都不会存在厂家自定义的所谓“自定义扩展单元”,都是很规矩的使用UVC标准的扩展单元。当然扩展单元在UVC的控制接口描述符中混着,所以LINUX&UVC驱动就使用uvc_parse_standard_control函数解析这些标准的UVC描述符。在分析代码之前,先回顾......
LINUX&UVC视频控制描述符拓扑结构类型映射
LINUX&UVC驱动在解析UVC设备配置描述符中的UVC控制接口描述符中的各个拓扑结构时,对找到的每一种拓扑结构,都会使用uvc_alloc_entity函数申请一个对象,然后使用函数list_add_tail挂入链表中。 list_add_tail(&term->l......
UAC音频设备拓扑单元bSourceID错误导致设备启动失败(代码10)
正常情况下,一个UAC类型的设备如麦克风或者扬声器,一般都会有三个或者两个拓扑节终端。如对于麦克风,其拓扑结是:输入终端->音频控制特征单元->输出终端 ,然后再通过音频流接口描述符中通过bTerminalLink指 定输出终端,最终连到的是USB主机端。而对于扬声器:拓扑结构是:输......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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