USB2.0规范
+ -

USB设备描述符、配置描述符、接口描述符和端点描述符的拓扑关系

2020-09-11 8915 42

在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。
每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成。一次只能有一个配置是活动的。

大多数的设备只有一个配置和一个接口,当一个设备第一次插入系统时,windows系统会提示用户选择合适的配置。

每个配置下可以有多个接口,当前配置下的所有接口(和其下的端点)都是活动的。
一个配置中的所有接口可以同时有效,并可被不同的驱动程序连接。每个接口可以有备用接口,以提供不同质量的服务参数。

端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。在USB系统中每一个端点都有唯一的地址,这是由设备地址和端点号给出的。

每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。
一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。端点0通常为控制端点,用于设备初始化参数等。只要设备连接到USB上并且上电端点0就可以被访问。端点1、2等一般用作数据端点,存放主机与设备间往来的数据。
下图给出的USB设备逻辑结构,USB设备的物理连接不影响这个逻辑视图。

USB逻辑图

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)此外,还有一些特殊的终端扩展了基本输入和输出终端的功能。这些特殊终端支持特定于这些终端提供的扩展功能......
HID 体系结构
Windows 中的 HID 驱动程序堆栈的体系结构基于名为 hidclass.sys 的类驱动程序。 客户端和传输微型驱动程序从用户模式或内核模式下访问的类驱动程序。HID类驱动程序在系统提供的 HID 类驱动程序是 WDM 功能驱动程序和总线驱动程序 HID 设备安装程序类 (HIDClass)......
USB超高速(SuperSpeed)体系结构
USB超高速(SuperSpeed)体系结构在协议层分为物理层,数据链路层,协议层。USB3.0定义了超过高USB,USB3.1/USB3.2实现了超高速Plus架构。数据链路层(Link Layer)超高速链路(SuperSpeed link)是两个端口的逻辑和物理连接。被连接的端口(connec......
USB设备描述符、配置描述符、接口描述符和端点描述符的拓扑关系
在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成。一次只能有一个配置是活动的。大多数的设备只有一个配置和一个接口,当一个设备......
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集线器算在内。......
UAC麦克风拓扑
UAC麦克风是UAC规范中的USB音频输入设备,它的拓扑图如下:可以看到,在UAC域内,这个拓扑图是一个最简单的UAC麦克风拓扑图,只包括一个输入终端和一个输出终端,输入终端对应的是拾音端,而输出终端将最终的音频数据打包通过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
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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