Windows USB 电源关闭

Windows USB 电源关闭

我有一台通过 COM 端口通信的设备,它由 USB 端口供电。我的问题是,当 PC 重新启动时,电源保持,但与 COM 端口的通信停止。重新启动的唯一方法是拔下并插入 USB 电缆。

我正在开发一个用于关闭 USB 电源的 Delphi 应用程序。我尝试使用 devcon 来执行此操作:

devcon.exe disable *ID*
devcon.exe enable *ID*
devcon.exe restarts *ID*

但它仅停止与 COM 端口的通信。USB 电源保持不变。

有没有办法关闭 USB 端口,这样设备也会关闭?

任何建议都会非常有帮助。

答案1

对于大多数 PC,ROOT 端口上的 USB VBUS 电源没有任何高端硬件开关来控制 VBUS,因此无法通过软件打开/关闭 VBUS。VBUS 几乎直接连接到系统的 PS,连接到 +5VSB(待机)导轨,因此即使 PC 关闭,VBUS 仍会保留。这样做是为了让键盘或鼠标可以唤醒 PC。(笔记本电脑略有不同,这取决于具体情况)。因此,您有三个选择:

(1) 使用一个好的(经过认证且价格昂贵)集线器,其端口带有高侧开关,用于连接您的 COM 设备。当 PC 重新启动时,USB 集线器的新枚举周期将具有 USB_RESET 状态,并且高侧开关将关闭然后打开。找到这种集线器可能并不容易,因为制造商通常在其 PCB 上提供填充选项,要么使用高侧开关(增加成本),要么在组装点使用可复位保险丝(便宜)绕过它们。

(2)使用像这样的单独控制电源SPDT USB 控制开关USB 端口和设备之间。

(3)修复您的 COM 端口设备和/或主机驱动程序以实现“重置/初始化”协议。

相关内容