Как я могу проверить вход USB?

8

У меня есть следующий провод, как показано ниже, один конец имеет мужской разъем USB, а другой конец имеет четыре провода. Я знаю, что при подключении к ноутбуку КРАСНЫЙ служит источником напряжения, а ЧЕРНЫЙ - заземлением. Если я дам 2-битный ввод данных в ЗЕЛЕНЫЙ и ЖЕЛТЫЙ, есть ли какое-либо программное обеспечение или API для (Python, C или любой другой язык), чтобы узнать о состоянии этих двух проводов? Я имею в виду проверить, есть ли у ЗЕЛЕНОГО или ЖЕЛТОГО напряжение или нет.

введите описание изображения здесь

Пожалуйста, направьте меня, если я задаю неправильный вопрос.

Divanshu
источник

Ответы:

12

Нет, вы не можете определить состояние USB-кабеля напрямую. USB является гораздо более сложным интерфейсом, чем этот, он не сравнится с последовательным и параллельным портами старого стиля, которые можно использовать для прямого ввода-вывода с помощью простой программы драйвера. Сложное рукопожатие обменивается с ПК еще до того, как может быть отправлен первый байт «реальных» данных / полезных данных.

Может быть, ваш компьютер имеет параллельный порт, который можно использовать? Или вы должны использовать конвертер USB в GPIO, который широко доступен по разным ценам (как чрезвычайно высоким, так и очень низким).

jippie
источник
1
Пример: sparkfun.com/products/718 У меня нет опыта работы с этим модулем, но это похоже на работу. Есть много похожих альтернатив, если вы посмотрите немного.
Джиппи
1
Небольшое дополнение: вы не можете злоупотреблять таким портом USB, потому что рукопожатие происходит на гораздо более низком уровне, чем то, к которому вы можете получить доступ с помощью обычных языков программирования. Части рукопожатия происходят в аппаратных средствах.
Александр
1

Какова ваша конечная цель? Если вы хотите соблюдать протокол USB, вы можете использовать относительно недорогой или относительно дорогой логический анализатор.

Если ваша цель - захватить байты на вашем компьютере, вы можете получить отладчик USB для своей операционной системы (например, в OS X есть бесплатный комплект отладки USB).

Если ваша цель состоит в том, чтобы иметь простой способ определить, подаете ли вы напряжение на вход, вам лучше использовать USB -> GPIO, как предложил Джиппи, или вы можете пойти по (более дорогому) маршруту Arduino. и у вас будет много возможностей для роста, если вы захотите поработать с входными данными до анализа на компьютере.

Если вам действительно нужен сверхпростой способ ввода значения напряжения в ваш компьютер без покупки нового аппаратного обеспечения, предложение Джиппи использовать параллельный порт является хорошим , и вы также можете исследовать использование микрофонного входа в качестве решения, построенного на джерри.

Крис Грегг
источник