USB 集线器状态信息上报
2026-04-23
本文链接为:http://www.usbzh.com/article/detail-1631.html ,欢迎转载,转载请附上本文链接。
USB集线器上报三类信息给主机驱动:
| 信息类型 | 通信协议 | USB管道 | 发起方 | 典型场景/指令 |
|---|---|---|---|---|
| 状态信息 (静态) | 标准设备请求 | 默认控制管道 (Endpoint 0) | 主机 主动查询检测 | GetStatus (获取设备当前是否自供电) |
| 硬件改变信息 | 中断传输 | 状态改变端点 (中断IN管道) | 设备 主动上报 | 设备插入/拔出事件、端口过流 |
| 控制信息 (状态改变) | 标准设备请求 | 默认控制管道 (Endpoint 0) | 主机 根据获取的信息发送指令 | SetFeature (复位端口)、ClearFeature |
上报信息的方式有2种,分别为控制端点和中断端点。

上报信息的路由
USB集线器通过中断方式上报信息,中断上报包括了HUB的变化和端口的变化。根据不同的变化执行不同的控制请求,分别为
- GetStatus获取集线器的状态变化
- GetPortStatus获取端口的状态变化
中断端点数据位图
├─ Bit 0 = 1 → Hub 状态变化
│ └─► GetHubStatus
│ ├─ [LOCAL_POWER] → ClearFeature
│ └─ [OVER_CURRENT] → ClearFeature + IoInvalidateDeviceRelations + ESD恢复
│
└─ Bit N = 1 → Port N 变化
└─► GetPortStatus
├─ [CONNECT] → ClearFeature + IoInvalidateDeviceRelations ◄── 触发PnP枚举
├─ [RESET] → ClearFeature
├─ [ENABLE] → ClearFeature
├─ [SUSPEND] → ClearFeature
└─ [OVER_CURRENT] → ClearFeature
中断端点
USB 集线器端口状态处理方法的,用于描述系统软件如何处理来自 USB 集线器的端口状态变化(如设备插拔、复位、过流等)。
USB中断端点返回的是USB集线器和USB集线器下游端口的状态变化。
- BIT0:Hub change detected
- BIT1:Port 1 change detected
- BIT2:Port 2 change detected
… - BITN:Port N change detected

开始
系统软件请求中断管道(Interrupt Pipe)通知状态变化信息。Hub NAKs 状态变化 IN 令牌
如果当前没有状态变化数据,Hub 会回复 NAK。
→ 判断是否有变化数据可用:- No:回到开始继续请求
- Yes:继续
中断管道返回 Hub 和端口状态变化位图
变化位图告知系统:Hub 本身或哪些端口的状态发生了变化。中断管道通知被清除
一次通知完成。系统软件读取 Hub 或端口状态(针对受影响的端口)
通过标准 Hub 类请求读取具体状态。判断是否有任何状态改变
- Yes:
- 累计变化信息
- 系统软件清除对应的变化状态(写入清除命令)
- No:直接跳到处理累计的变化信息
- Yes:
系统软件处理累计的变化信息
根据变化类型执行相应动作(如枚举新设备、处理断开、过流保护等)。重新初始化中断管道(为状态变化端点)
为下一次中断通知做好准备。回到开始
循环监测后续状态变化。
- 中断管道用于 Hub 向主机异步通知状态变化。
- NAK 机制避免无效查询,提高效率。
- 读取后必须清除变化状态,否则不会产生新通知。
- 这是一个轮询 + 异步通知结合的模型,主机主动发起 IN 事务,Hub 在有数据时响应。
GetStatus
GetStatus是USB集线器在枚举时,通过控制请求获取USB集线状态信息。详见:https://www.usbzh.com/article/detail-1163.html
GetPortStatus
通过中断只知道USB集线器或者端口发生了变化,可以通过GetPortStatus获取具体的变化。详见https://www.usbzh.com/article/detail-1162.html
本文链接为:http://www.usbzh.com/article/detail-1631.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
USB2.0集线器HUB





