USB设备通过上位机HID命令重启几次后会出现未识别的USB设备,插拔设备端都没用,而是需要重启电脑才能恢复
2022-06-09
2443
0
群里有个同学提了个问题:自己搞了一个USB复合设备,具体复合了什么设备不清楚,但里面有一个自定义HID设备。当需要设备重启时,使用上位机发送一个命令到固件,固件然后重启,这样设备会重新枚举,不过重启了几次之后,设备竟然不能正确识别了。
这时,即使物理断开这个设备,再次插入,也表现为不识别的情况。我让其换了一个USB其它设备如键盘,也不会识别。所马初步判断应该是设备将HUB连接该设备的下游端口给搞挂了,因为换到这个HUB的其它端口,又可以正常工作了。
另外,如果重启电脑,这个端口又可以正常枚举了。
第一的方法想到就是复位该端口。通过USBTREEVIEWER找到该备,然后右键提供的选项进行端口复位,发现并不能成功。
从上面的提示来看,有点像权限的问题,使用管理员运行USBTREEVIEWER,发现也不是行的。
既然复位端口不行,那就只能复位HUB了。
可以看到,Port1端口连接的是该设备,其上一层Port3是其连接的HUB,我们通过禁用再启用该HUB设备,让系统复位HUB,这样其HUB下的端口会重新复位。
经过操作,确实可以。
至于为什么,本人不在现场,也没办测试。不过USB规范中有这样一段:
可能与之有关,不过具体的分析,可能需要总线分析仪配合逻辑分析仪来进行判断,另外也需要熟知USB复位的过程及电平变化。
参考文章:
- Windows10设备管理器USB设备描述符请求失败(未知的usb设备) http://www.usbzh.com/article/detail-395.html
- USB2.0设备从全速模式到高速模式的识别过程及速率协商http://www.usbzh.com/article/detail-672.html
- USB设备复位、挂起和恢复命令 http://www.usbzh.com/article/detail-850.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