无需拔下并重新连接即可断开 USB 设备

无需拔下并重新连接即可断开 USB 设备

我有一个从 dangerprototypes 购买的 IRTOY。我在 Windows 7 x64 中使用 WinLirc 0.9c 运行它。但有时设备会突然挂起,我需要移除并重新连接它才能使其再次工作。从设备管理器禁用和启用 com 端口通常会导致 Windows 出现错误消息,提示无法激活该设备。

因此,这看起来像是与 IRTOY 相关的硬件问题。现在我正在寻找一种设备来切断通过 USB 传输的电源。它应该能够远程切断设备的电源。它实际上应该模拟从 USB 端口物理移除设备,就像带有公头和母头 USB 连接器的继电器一样。

这个问题有解决办法吗?

答案1

显然 IRTOY 有一个错误,需要完全重启,而关机是唯一的办法。糟糕。

通过软件切换 VBUS 电源的一个解决方案是使用带有可切换端口电源控制器的 USB 集线器(这些通常很难找到,但仍然比找到带有端口电源控制器的 PC 主板更容易)。然后您应该设法向连接 IRTOY 的端口发出 ClearPortFeature(PORT_POWER),然后发出 SetPortFeature(PORT_POWER)。

我不确定如何从应用程序空间做到这一点,但免费的 USB 设备树查看器(由乌韦·西贝尔) 可以使用弹出选项“重新启动设备”关闭和打开端口 VBUS。请记住,USB 端口通常连接有相当大的电容器,因此可能需要一些时间来释放 VBUS,因此清除和设置命令必须在时间上适当分开。不幸的是,USBTreeView 执行得太快了。或者,您可以重新启动整个集线器,关闭下游端口上的 VBUS 需要足够长的时间。

如果 Uwe 没有打开他的源代码,你需要去微软 SDK对于主要的 USBView 源代码,并弄清楚如何向驱动程序发出端口禁用/启用命令。

相关内容