Добрый вечер!
Боюсь Вы не совсем представляете как работает USB.
Если не возражаете - расскажу кратко (на примере USB 2.0)
Имеется 4 провода, два из них это +5V и земля, остальные два - данные, называются D+ и D-.
Обнаружение подключения и отключения устройств, сброс устройства, хендшейк, передача данных, засыпание и пробуждение устройства происходит именно по паре D+/D-.
Имеются два неравноправных участника Host - компьютер и Device - подключаемое устройство.
При подключении устройства по шине USB, Device выствляет высокий уровень (3.3V) на D+ если оно Full speed/Hi speed или на D- Low speed. Увидев высокий уровень, Host ждет 100 миллисекунд, затем на 10 миллисекунд опускает D+ и D- в ноль, это означает сброс подключаемого устройства. После этого, если мне не изменяет склероз, устройство готово в течении 10 миллисекунд принимать данные для инициализации. Причем не просто принимать, но и отвечать осмысленно и в строго установленные промежутки времени (довольно жесткие).
При инициализации устройство передает хосту информацию о себе, по которой Host "понимает" кого ему воткнули в разъем, делает соответствующие выводы, проводит повторный сброс устройства и начинает следующую фазу инициализации.
Если Device не отвечает, отвечает некорректно или не во время - процедура инициализации прерывается и, как правило, выводится сообщение что кто-то попытался подключиться по USB, но система не поняла кто это был
Это самое начало, дальше все сложнее и интереснее, поверьте мне. Если не верите, почитайте спецификации на этот протокол.