USB设备接入主机后不停重复枚举最后失败
2022-01-06
1225
0
最近一句流行的话:开局一张图,内容全靠编。二话不说,我们先上图,再编故事。
这个图不是伪造的,是通过接入沁恒的USB总线分析仪,进行数据抓包如下图所示。
可以看到,设备插入主机后,主机端首先复位设备,然后通过SETUP令牌包发送USB标准请求,获取设备描述符,并且数据长度是64字节,这是典型在设备枚举过程中获取设备描述符的内容,不过设备端并返回任保状态响应包,导致主机等待握手包超时,然后重试该事务,可以看到,这里重试了两次,这里总共是三次。
关于上面的内容大家可以参考以下内容:
- Windows和Linux不同主机下USB设备枚举过程中的差别 http://www.usbzh.com/article/detail-713.html
- USB2.0 Setup事务 http://www.usbzh.com/article/detail-693.html
相信大家,看了上面的两篇文章,会对USB的枚举有一个更加深刻的认识的。
我们接着看下图,可以看到,当三个SETUP令牌没有响应之后,主机会再次复位设备,然后重试。由于固件一直没有响应,所以这个复位了几次之后,然后直接把这个设备挂起,不再进行复位重试了。 复位也是有次数的,重试也是有次数的,不能把主机累死不停地这么搞吧。
最后这个问题的定位是固件上电初始化的时问题,问题的细节就不多说了,是固件自己的BUG,也是很小概率的问题,不过遇到了并且抓包了,这个锅也可以甩出去了吧。哈哈。。。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936