调试USB设备驱动程序。解释USB分析器日志

调试USB设备驱动程序。解释USB分析器日志,usb,driver,device-driver,Usb,Driver,Device Driver,我在这儿。我的任务是在我们的一块板上构建一个USB集线器,我选择了TI部件TUSB2077A。除了我断开其中一台设备的连接外,一切似乎都正常工作,但这并非总是发生;我可以有把握地说,大约5%的断开都会发生这种情况 我最初的假设是,这与布局不当、静电放电、浪涌或任何其他你能想到的电气问题有关。我把所有的玩具都拿出来,开始测量、确定范围、切割痕迹、添加组件、移除组件,但不管我做了多少,我总是能够以相同的频率重复出现问题 我决定嗅探一下USB流量,看看能找到什么,但设备驱动程序完全不是我的专长,我无法

我在这儿。我的任务是在我们的一块板上构建一个USB集线器,我选择了TI部件TUSB2077A。除了我断开其中一台设备的连接外,一切似乎都正常工作,但这并非总是发生;我可以有把握地说,大约5%的断开都会发生这种情况

我最初的假设是,这与布局不当、静电放电、浪涌或任何其他你能想到的电气问题有关。我把所有的玩具都拿出来,开始测量、确定范围、切割痕迹、添加组件、移除组件,但不管我做了多少,我总是能够以相同的频率重复出现问题

我决定嗅探一下USB流量,看看能找到什么,但设备驱动程序完全不是我的专长,我无法解释日志。我一直在谷歌搜索我看到的很多东西,它们在两个日志中的差异非常明显,但我仍然无法确定这是一个有故障的设备驱动程序,一个有故障的Windows usbhub.sys驱动程序,还是TI芯片本身的错误。在所有的可能性中,我相信故障设备驱动程序的可能性更大,但在我联系设备提供商之前,我想更好地了解发生了什么

有没有USB专家能看看这些日志,告诉我你能从中解释什么?我捕获了完整的USB堆栈,因此有很多批量传输消息,但是如果你向下滚动大约1.8秒,你就会看到神奇的发生

问题是: 从集线器中拔出设备时,集线器将重置并重新枚举自身以及连接到集线器的设备。我已经检查了集线器中的复位线,它没有被断言,VCC也没有下降到任何可能导致电气故障的水平

我还检查了ESD、浪涌、过流、过压和欠压问题,没有发现任何问题。我的电路板上有保护装置,以及用于数据对的EMI滤波器。所有其他设备工作正常,如果我不拔下设备,我所有的软件工具和我们的商业软件都可以正常运行。只有当你拔掉大约5%的插头时,我们才会出现这个故障

我可以从日志中看到,主机正在发送RESET\u PORT命令/调用或在尝试同步\u RESET\u PIPE\u和\u CLEAR\u STALL后调用的任何命令,但结果不成功。我从日志中注意到,这个调用不是在OK日志上进行的,只是调用设备删除。RESET_PORT调用是集线器上的问题,这使我认为问题出现在设备驱动程序上


轮毂IC是标准TI零件,已经在批量生产中。我的示意图遵循他们的指导原则,我们的电路板布局是由南加州的一家设计公司制作的,该设计公司非常清楚USB设计的良好实践至关重要。

这个问题似乎离题了,因为它不是一个编程问题。Gustavo,你对此有过任何解释吗?几天来,我一直把头撞在桌子上,全速运行hub时也遇到了同样的问题。我们使用不同的集线器芯片USB2513B。在高速运行轮毂时没有问题。nuro,对我们来说,这是一个非常过时的驱动程序。制造该设备的公司想要1万美元给我们一个最新版本的驱动程序。那太荒谬了。同时,我注意到一个微芯片部件没有USB2517的这种行为,所以我重新设计了我的集线器,这个问题消失了。