В кабеле USB, нормально ли менять D + и D-провода?

Я слышал, что D + и D- являются дифференциальными сигналами, имеет значение, если я поменяю их при подключении USB-устройства к компьютеру?

48 голосов | спросил Yan King Yin 19 J0000006Europe/Moscow 2013, 08:14:47

2 ответа


53

Резюме

При входе и выходе из состояния ожидания важна полярность, и замена D + и D-линий вызовет проблемы.

Передача данных

Данные USB закодированные NRZ , так что «Один» представлен no изменение физического уровня, а «Ноль» представлено изменением физического уровня (см. рисунок ниже). Поэтому инвертирование сигнала (например, путем замены D + и D-) не приводит к функциональному изменению во время передачи данных. Но могут быть проблемы до и после передачи данных, которые могут убить связь с устройством.

Выход из состояния ожидания

  

В каждой строке данных хост включает в себя резисторы с сопротивлением 15 кО ©. Когда нет   устройство подключено, это приводит к тому, что обе линии передачи данных попадают в так называемый   состояние «одностороннего нуля» (SE0 в документации USB) и   указывает на сброс или отсоединение соединения. Устройство USB вытягивает один   линий данных с высоким сопротивлением 1,5 кОк. Это пересиливает один из   выталкивающие резисторы в хосте и оставляют линии данных в   незанятое состояние, называемое «J». Для USB 1.x выбор строки данных указывает   из каких скоростей сигнала устройство способно; устройства с полной пропускной способностью   потяните D + high, а устройства с низкой пропускной способностью вытащите D'high.

Пока данные кодируются NRZI, последовательность синхронизации и EoP определяются в терминах фиксированных состояний (J /K /SE0). Когда D + и D- переключаются, состояние J переключается с K, а SE0 по-прежнему остается SE0 (обе линии низкие). Таким образом, последовательность синхронизации и EoP станут неверными при инверсии. В USB 1.x, если D + и D- заменены, устройства с полной пропускной способностью распознаются как низкоскоростные и наоборот. Таким образом, устройство не будет обмениваться данными с той же скоростью, что и хост.

Ввод состояния холостого хода

  

Конец USB-пакета, называемый EOP (конец пакета), обозначается   передатчик управляет 2-битовыми временами SE0 (D + и D "как ниже max), так и   1 бит времени состояния J. После этого передатчик перестает управлять   D + /Dâ 'и вышеупомянутые резисторы подтягивания удерживают его в J   (в режиме ожидания).

С драйвером D + /D-swapped хост увидит последовательность (SE0, SE0, K) вместо правильной (SE0, SE0, J). Затем хост может не распознать конец пакета, что может вызвать проблемы.

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

<H2> Заключение </h2>

<p> Если устройство и хост строго придерживаются спецификаций USB, замена D + и D-контактов приведет к сбою. Его можно предположить, что разработчик хоста предвидел такой режим сбоя и встроил в него совместимость. Но независимо от того, будет ли такой обменный кабель функционировать на практике, он, безусловно, не будет соответствовать спецификациям. </p>

<p> Другой член, Andrew Kohlsmith, испытал это, когда контакты USB-концентратора были случайно заменены. Проблема проявилась в том, что подключенные устройства не появились. Устройство USB показало бы, что оно включено, но оно не было распознано компьютером на стороне входа концентратора (который был правильно подключен к хосту). </p>

<p> <a href= Источник: wikipedia

Редактировать: спасибо тем, кто прокомментировал. Я добавил акцент и детали из ваших полезных заметок.

ответил travisbartley 19 J0000006Europe/Moscow 2013, 08:37:50
2

Я видел, что устройства обмениваются данными как низкая скорость только тогда, когда d + и d- заменяются. Это было с устройством полной скорости (12 Мбит /с) и портом на базе чипсета VIA.

ответил Dean Franks 20 J0000006Europe/Moscow 2013, 10:13:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132