Пассивное прослушивание USB-коммуникаций

Можно ли пассивно прослушивать низкоскоростную связь USB?

Предположим, я подключаю логический анализатор к линии D+ или D-, увижу ли я достоверные данные?

Ответы (3)

Я не уверен в этом, но я считаю, что если вы посмотрите на дифференциальное напряжение между двумя линиями, вы увидите данные, но они будут закодированы NRZI. Это означает, что биты кодируются независимо от того, изменяется уровень шины или нет. Изменение (в любом направлении) означает 0, а отсутствие изменений (в течение одного битового времени) означает 1.

Я полагаю, что в начале и в конце пакетов также есть CRC и другие байты сигнализации.

Все дело в спецификации USB. Обычные биты являются дифференциальными, но сигнал «конец пакета» - это обе линии с низким уровнем, поэтому вам действительно нужно смотреть на оба.
Вот неплохой обзор используемых пакетов: Beyondlogic.org/usbnutshell/usb3.htm
Не забывайте о битовой начинке!

Это то, что вам нужно http://www.totalphase.com/products/beagle_usb480/ , это анализатор протокола USB 2.0, поставляется с программным обеспечением, которое анализирует USB-трафик, и будет намного проще в использовании, чем логический анализатор. У меня есть один из них для I2C/SPI, и он хорошо работает, плюс Банни использует его http://andrew.huang.usesthis.com/

Да, это должно работать. В идеале вы должны использовать логический анализатор, который может захватывать и декодировать USB-трафик, иначе у вас возникнут проблемы с поиском интересующих вас данных.