USB3.2超高速协议规范
+ -

USB3.2超高速的设备总线枚举

2021-06-07 2528 0

USB3.2超高速定义了7种设备状态,比以往多了一个错误状态。
USB3.2超高速设备状态图

USB的设备状态图代表着从USB设备的状态转换过程。要进行状态转换,当然必须是先将USB设备插入到USB接口中,这个USB接口可以是USB集线接口,也可以是根集线器的接口。当USB设备插入USB接口后,USB设备进入Attached状态。在这个时候,USB设备还没有上电,即VBus还没有对USB设备供电,所以这个Attached状态仅指的是物理连接状态

当USB设备连接到USB接口后,通过VBus开始对设备供电,这时设备开始从USB总线上获取电流,这时设备进入Power状态。进行电源供电状态后,根所Far-end Revciver终端是否存在或被侦察决定是进行USB3的超高速链路训练态还是USB2.0高速的传设备状态。USB集线器一般是双总线结构,就是为了向后兼容USB2.0。

链路训练失败后,这说明USB3.0的超高速通道无法使用了,那么切换至USB2.0状态,让设备还可以用,虽然速度慢了点。

链路训练完成后,进行Defaul状态,这个状态是USB设备枚举的开始。具体过程这里就和USB2.0类似了,如进行为Address状态用于对设备分配通讯地址,配置状对设备选择工作配置。

相比于USB2.0,设备的枚举过程也类似,都是设备插入USB接口后,由USB集线器上报给主机有设备接入,USB主机通过GetPortStatus获取设备状态,有时需要复位。然后通过默认的地址获取设备的描述符,然后设置地址,再获取设备描述符配置描述符,选择配置等。不过由于USB3.2引入了一些新的东西,比如关于延迟的LTM,U1/U2的超时通过SetPortFeature完成。当然这些都是在设备置配前及正式工作前完成。

当然在进行default状后,这时说明物理链路是正常的,这样当设备在分配地址(Address),配置(Congigured)时失败,这时设备会进入错误状态。

错误状态(Error)是指如果设备处于默认、地址、配置或挂起状态,如果由于超时而退出恢复状态,则进入错误状态。如果设备被热复位,拔掉,可将设备从此中状态中恢复。

错误状态(Error)还是比较常见的,比如在设备管理器中显示设备的描述符错误等,这一类错误都是错误状态。这种方法只能通过上述的拨掉设备或换机器来恢复了。

更多参考可见:
USB 枚举/断开过程 http://www.usbzh.com/article/detail-110.html
USB设备的枚举过程分析 http://www.usbzh.com/article/detail-419.html
Windows下USB设备的枚举过程分析 http://www.usbzh.com/article/detail-420.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   

0 篇笔记 写笔记

Windows下枚举系统中所有HID设备
Windows下对任何设备,文件的打开都是通过CreateFile来实现的,不过要打开一个设备得首先知道设备或文件名。由上节可知道,对于HID设备,都会注册一个接口类型为{2ACCFE60-C130-11D2-B082-00A0C91EFB8B}的GUID。我们可以通过Setup系列函数枚举出系统中......
USB 枚举/断开过程
USB设备枚举一般会经过插入、供电、初始化、分配地址,配置,获取设备描述符、获取配置描述符、获取字符串描述符和配置设备这么几个过程。各过程的状态如下表:USB设备的枚举过程USB主机检测到USB设备插入后,就要对设备进行枚举了。枚举的作用就是从设备是那个读取一些信息,知道设备是什么样的设备,然后......
USB设备的枚举过程分析
USB协议定义了设备的6种状态,仅在枚举过程种,设备就经历了4个状态的迁移:上电状态(Powered),默认状态(Default),地址状态(Address)和配置状态(Configured)(其他两种是连接状态和挂起状态(Suspend))详情可见:http://www.usbzh.com/art......
Windows下USB设备的枚举过程分析
1.用户把USB设备插入USB端口或给系统启动时设备上电这里的USB端口指的是主机下的根hub或主机下行端口上的hub端口。Hub给端口供电,连接着的设备处于上电状态。2.Hub监测它各个端口数据线上(D+/D-)的电压在hub端,数据线D+和D-都有一个阻值在14.25k到24.8k的下拉电阻Rp......
USB2.0设备枚举-主机设置设备地址事务
USB主机在首次获取设备描述符后,知道了设备的默认端点大小。后续一个重要的操作是对设备分配地址。对USB设备分配地址是通过标准请求SetAddress来完成后。其具体的过程如下图所示:SetAddress包括2个事务。第一个事务是对主机设置地址,第二个事务是主机对设备返加一个0字节的数据包,用于确......
USB2.0设备枚举-获取设备描述符事务
USB设备与主机进行数据传输或进行设备配置时,有一些常见的术语如事务,令牌,包等。USB设备在枚举过程中有2次获取设备描述符的过程,这里分别标识为首次获取设备描述符和分配地址后的获取描述符。两次获取描述符的过程基本类似,惟一的区别是首次首次获取描述符由于设备尚未分配地址,故使用地址0与主机进行通......
USB3.2超高速的设备总线枚举
USB3.2超高速定义了7种设备状态,比以往多了一个错误状态。USB的设备状态图代表着从USB设备的状态转换过程。要进行状态转换,当然必须是先将USB设备插入到USB接口中,这个USB接口可以是USB集线接口,也可以是根集线器的接口。当USB设备插入USB接口后,USB设备进入Attached状态。......
USB HID键盘设备树及设备枚举过程分析
今天在本站USB中文网微信技术交流群有一个同学在问关于HID设备的报表描述符的东东。但是在问的过程中发现一个很严重的问题,那就是它的它设备是一个复合设备,导致设备树比较复杂,关于报表描述符与接口描述符等之间的相关对应关系不是很清楚。为此,本人手中刚好有一个本人认为USB HID设备中相对比较复杂的设......
USB设备的调试笔记-奇怪枚举失败问题
自己搞了一个USB 触摸屏的驱动,通过对系统的USB触摸屏设备进行更改,这样可以在自己的驱动中过滤来自触摸屏的数据。在不加自定义驱动的情况下,设备管理器树关系如下:USB输入设备USB触摸屏设备而加上自己的设备驱动后,设备管理器树关系如下:自己的驱动程序USB输入设备USB触摸屏设备......
Windows10下开发虚拟USB鼠标之枚举子设备失败(STATUS_DEVICE_DATA_ERROR)
之前发过一篇文章:Win10使用虚拟USB鼠标实现自动挂机测试功能(文章地址:http://www.usbzh.com/article/detail-476.html ) 使用的是虚拟驱动实现的一个虚拟USB鼠标,实现了产品的自动测试功能。生成的设备在设备管理器中如下:但在开发过程中,并不是一帆......
U盘枚举失败-该设备无法启动(GET_MAX_LUN请求)
群里有人用STM32搞了一个U盘,但是U盘在插入电脑后在设备管理器是枚举失败。我让他看一下设备状态:又是熟悉的错误码10,表示设备启动失败。设备的启动失败,一般在设备获取描述符获取之后,初始会失败,我之前在弄USB虚拟鼠标的时候也遇到此类情况。不过由于这个设备是U盘,本人还没有研究USB存储协议,只......
使用SetupApi函数通过GUID枚举系统中所有关联设备
Windows的设备在驱动中大部分都会IoSetRegisterInterface,这其中一个重要的参数是GUID,这样系统会根据这个GUID给设备创建一个symbolicname,这个名字在应用层可以通过CreateFile打开。这里分享一个在应用层通过SetuApi枚举该类型GUID下的所有设备......
USB集线器HUB的枚举过程及集线器状态
USB集线器和其他USB设备一样,都需要在上电时进行配置。在USB协议中,使用默认的端0点。进行上电初期的通信。USB集线器除了配置其自身外,还需要对下行端口连接的其他USB设备进行识别。USB集线器HUB枚举过程USB集线器的上电配置过程如下:USB集线器连接到USB主机的根集线器上。USB......
USBCCGP 复合USB设备的枚举
当新的 USB 设备连接到主机计算机时,USB 总线驱动程序创建设备的物理设备对象 (PDO),并生成报告新 PDO 的即插即用事件。 操作系统然后,查询的硬件 Id 与 PDO 相关联的总线驱动程序。对于所有 USB 设备、 USB 总线驱动程序报告设备 ID具有以下格式:USBVID_xx......
USBCCGP 关联接口功能设备枚举
从上节可知,所有的功能设备都存储在FDO_DEVICE_EXTENSION中的FunctionDescriptor中的,而FunctionDescriptorCount成员记录着子功能数量。typedef struct _USBC_FUNCTION_DESCRIPTOR{ // The 0......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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