当 USB 端口发生过流时,USB 集线器会自动禁用该端口。每次检测到过流时,都会在集线器的端口状态寄存器中设置过流更改位。
过流事件检测的大致顺序是:
1. 由于设备电流超出了硬件端口电源的限制,VBUS 上会发生过流事件
2 . OCS/PRT_CTL 信号必须连续拉低 5ms,集线器检测到过流事件
3. 端口被集线器禁用,VBUS 被关闭,并且过流变化位被设置
4. 主机从集线器获取端口更改状态的更新值
5. 主机看到过流更改位已设置,并且可以看到该端口不再启用
6. 主机清除过流变化位
7. 主机重新启用端口
8. 集线器重新启用端口并打开 VBUS 电源
|