USB2.0物理层的电信号
+ -

USB设备复位、挂起和恢复命令

2022-03-14 5010 0

USB主机除了在正常的操作期间发送到设备的控制命令外,主机还可以发出三种独特的信号条件:复位、挂起或恢复挂起的设备。

设备复位RESET

在枚举过程中,主机向设备发出复位信号。注意此USB 复位与硬件或上电复位不相同,是两个概念。USB 复位的目的是设置设备的软件状态,以便进行枚举。

当 D- 和 D+ 都保持低电平 (SE0) 10 ms 时,器件会识别复位条件。在某些情况下,器件能够在 2.5 µs 内检测到复位,但是,主机将在整个 10 ms 内保持复位条件。

USB设备复位

为了初始化复位,集线器将 D+ 和 D- 保持在低电平。让集线器将数据线保持在低电平允许主机持续为其他设备提供服务,并避免设备因 D+ 和 D- 上缺乏活动而进入挂起模式。主机通过向集线器发出SET_PORT_FEATURE(PORT_RESET)控制命令使集线器复位设备。

挂起Suspend

当连续三个帧都没有接收到帧开始信号时,设备将进入挂起状态。当发生挂起时,设备中运行的应用软件通常会收到通知,并可能会采取措施降低功耗。在挂起模式下,设备将吸取不超过 50 毫安的电流。挂起的设备能够响应重置和恢复命令。

挂起Suspend

主机可以通过向连接到要挂起的设备的集线器发出
SET_PORT_FEATURE(PORT_SUSPEND)控制命令来使一个枚举设备挂起。

Resume恢复

当设备处于#挂起Suspend状态时,设备端口上的数据K状态意味着从暂停状态恢复。这意味着恢复信号是全速段中从数据J状态到数据K状态的变化。

恢复设备操作的顺序是在 D+ 和 D- 上产生 K 状态 20 ms。K 状态在 USB 规范中定义,由 USB 速度决定。
Resume恢复

暂停的设备可以通过以下两种方式之一返回到运行状态(即恢复):

  • 如果设备在 Suspend 状态至少 5 ms 后设置了远程恢复功能,则设备可以启动恢复正常操作的过程。要开始恢复,器件会在 D+ 和 D- 上断言 K 状态 1 到 15 ms。主机(即 HUB)将检测到此状态并在 1 毫秒内接管控制 D+ 和 D- 20 毫秒的剩余时间。20 ms 后,设备将恢复正常运行。
  • 主机可以通过向连接到设备的集线器发送CLEAR_PORT_FEATURE(PORT_SUSPSEND)来恢复设备。这将导致集线器在 D+ 和 D- 上驱动 K 状态 20 毫秒。

下图显示了在运行暂停和恢复 HID 演示时捕获的 USB抓包日志。 在 PC 主机停止发送 SOF 使 USB 总线进入挂起状态之前,它会发出 Set Feature 请求以在 USB 设备上启用远程唤醒。 恢复信号的时序显示为 10 ms,如在 USB 堆栈中实现的那样。
Resume抓包

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 篇笔记 写笔记

USB设备的休眠挂起及远程唤醒
USB协议的第9章讲到USB可见设备状态,分为连接(Attached),上电(Powered),默认(Default),地址(Address),配置(Configured)和挂起(Suspended)6个状态。所谓可见,即USB系统和主机可见的状态,其他状态属于USB设备内部而不可见。其中有关电源的......
BOT MASS_STORAGE_RESET
Bulk-Only Mass Storage Reset类特定请求是USB大容量存储设备独有的。 该特定类请求的功能用于复位大容量存储设备和与之关联的接口。通知设备接下来的批量端点输出数据为命令块包(CBW)。由于该请求是控制请求,所以是通过端点0发送的。在设备完成该请求即复位之前,设备应......
TYPE-C PD供电协议常用功能序列(接口数据包开始SOP,线缆数据包开始SOP''、硬件复位、线缆复位
使用TYPE-C PD供电协议信号-4b5b编码对照表的序列组合,可以组成一些常用的功能序列。硬件复位hard Reset硬件复位信令是为了被物理层识别而发送的一组有序字节。硬复位信号顺序集定义为:三个RST-1 K代码,后跟一个RST-2 K代码。硬件复位的功能是对接口和线缆进行复位K......
USB高速基础知识
USB 2.0 中引入了对规范的高速添加,以响应 Firewire 的更高速度。由于 High Speed 是事后才添加的,并且必须在不影响性能的情况下保持兼容性,所以我们将保留对 High Speed 的描述,直到我们涵盖了原始规范的基础知识数据传输高速实现的数据速率为 480 Mb/s。这需要......
USB设备复位挂起恢复命令
USB主机除了在正常的操作期间发送到设备的控制命令外,主机还可以发出三种独特的信号条件:复位挂起恢复挂起的设备。设备复位RESET在枚举过程中,主机向设备发出复位信号。注意此USB 复位与硬件或上电复位不相同,是两个概念。USB 复位的目的是设置设备的软件状态,以便进行枚举。当 D- 和 D......
HID键盘鼠标复位报告描述符
0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x02, // USAGE (Mouse) 0xa1, 0x01, ......
USB设备通过上位机HID命令重启几次后会出现未识别的USB设备,插拔设备端都没用,而是需要重启电脑才能恢复
群里有个同学提了个问题:自己搞了一个USB复合设备,具体复合了什么设备不清楚,但里面有一个自定义HID设备。当需要设备重启时,使用上位机发送一个命令到固件,固件然后重启,这样设备会重新枚举,不过重启了几次之后,设备竟然不能正确识别了。这时,即使物理断开这个设备,再次插入,也表现为不识别的情况。我......
USB设备远程唤醒RemoteWakeUp
USB设备的Remote Wakeup是可选的,其功能用于远程唤醒待机状态下的主机。USB设备通过配置描述符bmAttributes字段的D5标识其是否支持远程唤醒。支持远程唤醒的USB设备必须支持USB的标准请求CLEAR_FEATURE和SET_FEATURE。USB主机通过SET_FEATU......
USB设备通过BUSHOUND抓包IRP被取消USTS状态为0xC0010000
通过BUSHOUND抓包内容为: 16.0 CTL 80 06 00 02 00 00 20 00 GET DESCRIPTOR 336us 16.0 32 IN 09 02 20 00 ......
Windows系统实现USB设备的拨出与重新插入
最近在搞USBHOUND,原理比较简单,但是涉及的东西还是比较多,这不,为了搞清楚URB之间的传递脉路,又开始进入了USBCCGP淅代码中。USBCCGP是Windows系统中关于USB比较重要的一个驱动,其实原了USB物理复合设备到逻辑设备的基本功能,其中有大量的关于USB相关处理请求,是值得我......
复位USB端口设备IOCTL_USB_HUB_CYCLE_PORT
在设备管理器中通过设备的实例ID查找到设备后,然后确定设备端口中,再根据设备端口号获取其父设备即USB集本器,打开集线器,发送IOCTL_USB_HUB_CYCLE_PORT 请求来复位集线器端口达到复位设备。IOCTL_USB_HUB_CYCLE_PORT在Vista和Windows 7下不支持......
USB全速设备的挂起、唤醒Resume
在介绍USB全速设备挂起Suspend、唤醒Resume之前先介绍USB全速设备的硬件连接方式。USB全速设备的连接USB全速设备的硬件连接和USB高速设备的硬件连接方式一样。区别是全速设备不会触发高速的协商。内容详见:USB2.0设备从全速模式到高速模式的识别过程及速率协商 https://ww......
通过软件层复位重启USB设备源代码
复位USB设备,这样USB设备会重新枚举加载void RestartDevice(char* strHardWareId){ HDEVINFO devs = INVALID_HANDLE_VALUE; devs = SetupDiGetClassDevs(NULL, NULL, ......
USBIP 复位集线器下游端口/IOCTL_INTERNAL_USB_RESET_PORT
向USB集线器下发的IOCTRL之一就是IOCTL_INTERNAL_USB_RESET_PORT。用于复位USB集线器的下游端口。static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req *urbr){... case IO......
USB集线器复位端口
USB集线器复位端口使用的IOCTL为IOCTL_INTERNAL_USB_RESET_PORT,即当需要复位USB集线器的某个端口时,只需要对该USB集线器下发该请求即可。复位端口对应的URB功能号为:USB_REQUEST_SET_FEATURE.对应的USB集线器类请求为:Requ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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