USB 获取设备描述符 问题

发布于 2022-10-15 08:50:49 字数 252 浏览 21 评论 0

在向设备发送 请求获取设备描述符过程中,使用的是设备的地址0,成功获取设备描述符后 调用 hub_set_address() 发送请求设置设备的地址!
我的问题是,此时有两个USB 设备连接上来,那么针对每个设备我们必须获得设备描述符,发送 setup token packet,在此包中包含设备的地址(0),而问题是 Host Controller 怎样根据设备地址(0)将packet 发送到具体的设备中去呢?设备的地址应该是不同的啊!请指教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

明媚如初 2022-10-22 08:50:49

lz 是在做Wireless USB相关的东西么?
看了下hub.c里面的这个hub_set_address(),只有在WUSB的时候才会用到。

如果不是WUSB的话,那么 set_address()这个动作并不是由Hub所完成的,是在usbcore里面去实现的。

关于你的问题,两个USB device连接上来的话,他们初始的地址的确都是0,不过他们连接一定有先后顺序,所以对应的USB Enumeration的动作也是有先后的,即使你先在hub上接好device也一样,所以Enumeration的时候不会出问题。

上面只是大致的解释,具体的话请参考fundan_abc的Linux那些事 。

宛菡 2022-10-22 08:50:49

回复 2# wyqt

    谢谢您的回复,我已经解决了上述问题!
    主机一次 只能列举一个USB设备,所以同一时刻只能有一个USB设备使用缺省地址0!

︶ ̄淡然 2022-10-22 08:50:49

路过

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文