Отключение питания USB-устройства Windows

Отключение питания USB-устройства Windows

У меня есть оборудование, которое взаимодействует через COM-порт и питается от USB-порта. Проблема в том, что при перезагрузке ПК питание сохраняется, но связь с COM-портом прекращается. Единственный способ перезагрузиться — это вынуть и вставить USB-кабель.

Я разрабатываю приложение Delphi, которое отключает питание USB. Я попробовал использовать devcon, чтобы сделать это:

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

Но это только останавливает связь с COM-портом. Питание USB сохраняется.

Есть ли способ отключить питание USB-порта, чтобы оборудование также выключилось?

Любой совет будет очень полезен.

решение1

Для большинства ПК питание USB VBUS на портах ROOT не имеет никаких аппаратных переключателей верхнего уровня для управления VBUS, поэтому нет возможности включать/выключать VBUS программным способом. VBUS подключен практически напрямую к системному PS, к шине +5VSB (режим ожидания), поэтому даже если ПК выключен, VBUS остается. Это делается таким образом, чтобы клавиатура или мышь могли разбудить ПК. (Ноутбуки немного отличаются, это зависит от обстоятельств). Поэтому у вас есть три варианта:

(1) Используйте хороший (сертифицированный и дорогой) концентратор с портами, имеющими переключатели верхнего уровня, для подключения к вашим COM-устройствам. Когда ПК перезагружается, новый цикл перечисления для концентратора USB будет иметь состояние USB_RESET, а переключатели верхнего уровня выключатся и снова включатся. Найти такой концентратор может быть непросто, поскольку производители обычно имеют опции на своих печатных платах, чтобы либо использовать переключатели верхнего уровня (добавление стоимости), либо обойти их с помощью сбрасываемого полипредохранителя (дешево) на этапе сборки.

(2) Используйте отдельный контролируемый источник питания, например такойSPDT USB-переключательмежду USB-портом и вашим оборудованием.

(3) Исправьте оборудование COM-порта и/или драйвер хоста для реализации протокола «сброса/инициализации».

Связанный контент