Jump to content

USB-коммуникации

(Перенаправлено с USB (Связь) )

В этой статье представлена ​​информация об коммуникационных аспектах универсальной последовательной шины ( USB ): сигнализация , протоколы , транзакции . USB — это отраслевой стандарт, используемый для определения кабелей, разъемов и протоколов, используемых для связи между электронными устройствами . USB-порты и кабели используются для подключения такого оборудования, как принтеры , сканеры , клавиатуры, мыши, флэш-накопители , внешние жесткие диски , джойстики , камеры , мониторы и многое другое, к компьютерам всех типов. USB также поддерживает скорость передачи данных от 1,5 Мбит/с (низкая скорость) до 80 Гбит/с (USB4 2.0) в зависимости от версии стандарта. В статье объясняется, как USB-устройства передают и получают данные с помощью электрических сигналов на физическом уровне, как они идентифицируют себя и согласовывают такие параметры, как скорость и мощность, с хостом или другими устройствами, используя стандартные протоколы, такие как USB Device Framework и USB Power Delivery, а также как они обмениваются данными, используя пакеты разных типов и форматов, такие как токены, данные, рукопожатие и специальные пакеты.

Сигнализация (USB PHY)

[ редактировать ]

Скорость передачи сигналов (скорость передачи)

[ редактировать ]
Режим [1] Сокращение. Скорость передачи сигналов Типичные скорости передачи данных Представлен в
Низкая скорость ЛС 1,5 Мбит/с (187,5 КБ/с) USB 1.0
Полная скорость ФС 12 Мбит/с (1,5 МБ/с) USB 1.0
Высокоскоростной;
также, Привет-скорость
HS 480 Мбит/с (60 МБ/с) ж: 25–30 МБ/с
р: 30–42 МБ/с
USB 2.0
СуперСкорость SS 5 Гбит/с (625 МБ/с) ж: 70–90 МБ/с
р: 90–110 МБ/с
USB 3.0
СуперСкорость+ СС+ 10 Гбит/с (1,25 ГБ/с) USB 3.1
СуперСкорость+ СС+ 20 Гбит/с (2,5 ГБ/с) USBc3.2
USB4 3-го поколения ? 40 Гбит/с (5 ГБ/с) USB4
USB4 четвертого поколения ? 80 Гбит/с (10 ГБ/с) USB4 2.0

Максимальная скорость передачи сигналов в USB 2.0 составляет 480 Мбит/с (60 МБ/с) на каждый контроллер и распределяется между всеми подключенными устройствами. Некоторые производители наборов микросхем для персональных компьютеров преодолевают это узкое место, предоставляя несколько контроллеров USB 2.0 в южном мосту .

На практике, учитывая накладные расходы протокола USB, скорость передачи данных 320 Мбит/с (38 МБ/с) является устойчивой для высокоскоростной массовой конечной точки. [2] На пропускную способность могут влиять дополнительные узкие места, такие как жесткий диск , как видно из планового тестирования, проведенного CNet , где операции записи на типичные высокоскоростные жесткие диски поддерживают скорость 25–30 МБ/с, а операции чтения — 30–30 МБ/с. 42 МБ/с; [3] это 70% от общей доступной пропускной способности шины. Для USB 3.0 типичная скорость записи составляет 70–90 МБ/с, а скорость чтения — 90–110 МБ/с. [3] Тесты по маске, также известные как тесты глазковых диаграмм , используются для определения качества сигнала во временной области. Они определены в ссылочном документе как часть описания электрических испытаний для высокоскоростного режима (HS) со скоростью 480 Мбит/с. [ нужна ссылка ]

По словам председателя USB-IF, «по крайней мере 10–15 процентов заявленной пиковой скорости 60 МБ/с (480 Мбит/с) высокоскоростного USB уходит на служебные расходы — протокол связи между картой и периферийным устройством. компонент всех стандартов связи». [1] Таблицы, иллюстрирующие ограничения передачи, приведены в главе 5 спецификации USB.

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

  • Низкая скорость (LS) 1,5 Мбит/с определяется USB 1.0. Это очень похоже на работу с полной полосой пропускания, за исключением того, что передача каждого бита занимает в 8 раз больше времени. Он предназначен в первую очередь для экономии затрат на устройства HID с низкой пропускной способностью, такие как клавиатуры, мыши и джойстики.
  • Полная скорость (FS) 12 Мбит/с — это базовая скорость передачи сигналов USB, определенная USB 1.0. Все USB-концентраторы могут работать с такой скоростью.
  • Высокая скорость (HS) 480 Мбит/с была представлена ​​в 2001 году USB 2.0. Высокоскоростные устройства также должны иметь возможность возврата к полной скорости, что обеспечивает обратную совместимость высокоскоростных устройств с хостами USB 1.1. Разъемы идентичны для USB 2.0 и USB 1.x.
  • SuperSpeed ​​(SS) Скорость 5,0 Гбит/с. Письменная спецификация USB 3.0 была выпущена Intel и ее партнерами в августе 2008 года. Первые микросхемы контроллера USB 3.0 были протестированы компанией NEC в мае 2009 года. [4] а первые продукты, использующие спецификацию USB 3.0, появились в январе 2010 года. [5] Разъемы USB 3.0, как правило, обратно совместимы, но включают новую проводку и полнодуплексную работу.
  • Скорость SuperSpeed+ (SS+) 10 Гбит/с определяется USB 3.1, а скорость 20 Гбит/с с использованием двух линий определяется USB 3.2.

Обрамление

[ редактировать ]

Хост-контроллер делит время шины на кадры по 1 мс при использовании низкой скорости (1,5 Мбит/с) и полной скорости (12 Мбит/с) или микрокадры по 125 мкс при использовании высокой скорости (480 Мбит/с), в течение которых может произойти несколько транзакций. иметь место. [ нужна ссылка ]

Электрические характеристики

[ редактировать ]

Сигналы USB передаются с использованием дифференциальной сигнализации по витой паре кабеля передачи данных с 90 Ом ± 15 % характеристическим сопротивлением . [6]

  • В режимах низкой скорости (LS) и полной скорости (FS) используется одна пара данных, обозначенная D+ и D-, в полудуплексном режиме . Уровни передаваемого сигнала составляют 0,0–0,3 В для логического низкого уровня и 2,8–3,6 В для логического высокого уровня. Сигнальные линии не оконцованы .
  • В высокоскоростном режиме (HS) используется та же пара проводов, но с другими электрическими соглашениями. Более низкое напряжение сигнала от -10 до 10 мВ для низкого уровня и от 360 до 440 мВ для логического высокого уровня, а также оконечная нагрузка 45 Ом на землю или дифференциальное сопротивление 90 Ом для соответствия импедансу кабеля передачи данных.
  • SuperSpeed ​​(SS) добавляет две дополнительные пары экранированных витых проводов (и новые, в основном совместимые расширенные разъемы). Они предназначены для полнодуплексной работы SuperSpeed. Полудуплексные линии по-прежнему используются для настройки.
  • SuperSpeed+ (SS+) использует повышенную скорость передачи сигналов (режим Gen 2×1) и/или дополнительную полосу в разъеме Type-C (режим Gen 1×2 и Gen 2×2).

USB-соединение всегда осуществляется между хостом или концентратором на конце разъема A портом устройства или концентратора и восходящим на другом конце.

Состояние сигнализации

[ редактировать ]

Хост включает в себя понижающие резисторы сопротивлением 15 кОм на каждой линии данных. Когда ни одно устройство не подключено, это переводит обе линии данных в низкое состояние в так называемое несимметричное нулевое состояние (SE0 в документации USB) и указывает на сброс или разъединение соединения.

Состояние перехода линии

[ редактировать ]

Следующая терминология используется для облегчения технического обсуждения сигнализации USB PHY.

Сигнал Состояние перехода линии Описание Низкая скорость
(D- подтягивание)
Полная скорость
(подтягивание D+)
Д+ Д- Д+ Д-
Дж То же, что и состояние свободной линии Это присутствует во время перехода линии передачи. Альтернативно, он ожидает нового пакета. низкий высокий высокий низкий
К Инверсия состояния J Это присутствует во время перехода линии передачи. высокий низкий низкий высокий
SE0 Несимметричный ноль И D+, и D− низкие. Это может указывать на конец пакетного сигнала или на отсоединенное USB-устройство. низкий низкий низкий низкий
SE1 Односторонний Это незаконное состояние, и оно никогда не должно возникать. Это рассматривается как ошибка. высокий высокий высокий высокий
  • Состояние свободной линии — это когда устройство подключено к хосту с помощью подтягивания D+ (для полноскоростного USB 1.x) или D- (для низкоскоростного USB 1.x), с выходным сигналом передатчика как на хосте, так и на устройство настроено на высокий импеданс (hi-Z) (выход отключен).
  • USB-устройство подтягивает одну из линий данных к высокому уровню с помощью резистора сопротивлением 1,5 кОм. Это подавляет один из понижающих резисторов сопротивлением 15 кОм в хосте и оставляет линии данных в состоянии ожидания, называемом J .
  • Для USB 1.x выбор линии передачи данных указывает, на какую скорость сигнала способно устройство:
    • устройства с полной полосой пропускания повышают уровень D+,
    • Устройства с низкой пропускной способностью повышают уровень D-.
  • Состояние K имеет противоположную полярность J. состоянию

Состояние линии (охватывает USB 1.x и 2.x)

[ редактировать ]
Состояние/сигнал линии Описание Низкая скорость Полная скорость Высокоскоростной
Отдельностоящий Устройство не обнаружено. Обе линии подтягиваются понижающими резисторами сопротивлением 15 кОм на стороне хоста. SE0 ≥ 2 мкс
Соединять USB-устройство подтягивает D+ или D-, чтобы вывести хост из состояния отключенной линии. Это запустит процесс нумерации USB. Это устанавливает состояние ожидания. D- подтягивание D+ подтягивание Как полная скорость, затем чириканье при сбросе
Холостой ход / Дж Хост и передатчик устройства в Hi-Z. Состояние сенсорной линии в случае отсоединения. В состоянии отсоединения или подключения.
Синхронизировать Начало шаблона перехода пакетной линии. КДЖКДЖККК 15 × KJ, затем KK, всего 32 символа.
ЕОП Конец шаблона перехода линии пакета. ЮЭ0, ЮЭ0, Дж
Перезагрузить Сбросьте USB-устройство в известное исходное состояние. SE0 ≥ 2,5 мс
Приостановить Выключите устройство так, чтобы оно потребляло только 0,5 мА от V BUS . Выход из этого состояния только после получения сигнала возобновления или сброса. Чтобы избежать этого состояния, подается пакет SOF (высокая скорость) или сигнал поддержания активности (низкая скорость). Дж ≥ 3 мс
Резюме (ведущий) Хост хочет разбудить устройство. K ≥ 20 мс, затем шаблон EOP
Возобновить (устройство) Устройство хочет проснуться. (Должен находиться в режиме ожидания не менее 5 мс.) Устройство управляет K ≥ 1 мс
Затем хост отправляет сигнал возобновления.
Оставайся в живых Хост хочет сказать низкоскоростному устройству, чтобы оно не уснуло. Шаблон EOP раз в миллисекунду.

Передача инфекции

[ редактировать ]

Данные USB передаются путем переключения линий данных между состоянием J и противоположным состоянием K. USB кодирует данные с использованием NRZI линейного кодирования :

  • Бит 0 передается путем переключения линий данных с J на ​​K или наоборот.
  • 1 бит передается, оставляя линии данных как есть.

Чтобы обеспечить достаточное количество переходов сигнала для восстановления тактового сигнала в потоке битов , к потоку данных применяется метод вставки битов : дополнительный бит 0 вставляется в поток данных после любого появления шести последовательных битов 1. (Таким образом, гарантируется наличие бита 0, вызывающего переход состояния передачи.) Семь последовательно полученных битов 1 всегда являются ошибкой. Для USB 3.0 используется дополнительное кодирование передачи данных для обеспечения более высоких скоростей передачи сигналов.

Пример передачи на полноскоростном устройстве

[ редактировать ]
Пример пакета отрицательного подтверждения, передаваемого полноскоростным устройством USB 1.1, когда больше нет данных для чтения. Он состоит из следующих полей: байт тактовой синхронизации, тип пакета и конец пакета. Пакеты данных будут содержать больше информации между типом пакета и концом пакета.
Шаблон синхронизации
Пакет USB начинается с 8-битной последовательности синхронизации 00000001₂. То есть после начального состояния ожидания J линии данных переключаются на KJKJKJKK. Последний бит (повторяющееся состояние K) отмечает конец шаблона синхронизации и начало кадра USB. Для USB с высокой пропускной способностью пакет начинается с 32-битной последовательности синхронизации.
Конец пакета (EOP)
EOP обозначается передатчиком, управляющим 2 битами SE0 (D+ и D- оба ниже максимального) и 1 битом состояния J. После этого передатчик перестает управлять линиями D+/D-, а вышеупомянутые подтягивающие резисторы удерживают его в состоянии J (холостого хода). Иногда асимметрия из-за концентраторов может добавить время до одного бита до SE0 конца пакета. Этот дополнительный бит также может привести к нарушению битового заполнения , если шесть бит перед ним в CRC равны 1. Этот бит должен игнорироваться получателем.
Сброс шины
Шина USB сбрасывается с помощью длительного (от 10 до 20 миллисекунд) сигнала SE0.

Высокая скорость переговоров

[ редактировать ]

Специальный протокол во время сброса, называемый chirring , используется для согласования высокоскоростного режима с хостом или концентратором. Устройство, способное работать на высокой скорости, сначала подключается как полноскоростное устройство (D+ поднят на высокий уровень), но после получения USB RESET (как D+, так и D- управляются хостом в низком состоянии в течение 10–20 мс) оно поднимает линию D- на высокий уровень, известный как chirp K. Это указывает хосту, что устройство имеет высокую пропускную способность. Если хост/концентратор также поддерживает HS, он подает звуковой сигнал (возвращает попеременные состояния J и K на линиях D- и D+), сообщая устройству, что концентратор работает с высокой пропускной способностью. Устройство должно получить как минимум три набора импульсов KJ, прежде чем оно переключится на высокоскоростное завершение и начнет высокоскоростную передачу сигналов. Поскольку SuperSpeed ​​и последующие версии используют отдельную и дополнительную проводку по сравнению с той, которая использовалась в предыдущих режимах, такое согласование полосы пропускания не требуется.

Допуск тактовой частоты составляет 480,00±0,24 Мбит/с, 12,00±0,03 Мбит/с и 1,50±0,18 Мбит/с.

В USB 3 используются луженые медные многожильные кабели AWG-28. [7] с сопротивлением 90 ± 7 Ом для высокоскоростных дифференциальных пар. Электрическая сигнализация использует сдвиговый регистр с линейной обратной связью и кодирование 8b/10b с синхронизацией расширенного спектра , передаваемое при номинальном напряжении 1 Вольт с порогом приемника 100 мВ; приемник использует тренировку выравнивания. Заголовки пакетов защищены CRC-16, а полезная нагрузка данных — CRC-32. Можно использовать мощность до 3,6 Вт. Одна единица нагрузки в режиме Super Speed ​​равна 150 мА. [8]

Уровень протокола

[ редактировать ]

Во время USB-соединения данные передаются в виде пакетов . Первоначально все пакеты отправляются с хоста через корневой концентратор и, возможно, через несколько концентраторов на устройства. Некоторые из этих пакетов предписывают устройству отправить несколько пакетов в ответ.

После поля синхронизации все пакеты состоят из 8-битных байтов, причем первым передается младший бит . Первый байт представляет собой байт идентификатора пакета (PID). PID на самом деле имеет 4 бита; байт состоит из 4-битного PID, за которым следует его побитовое дополнение. Эта избыточность помогает обнаруживать ошибки. (Байт PID содержит не более четырех последовательных битов 1 и, следовательно, никогда не требует вставки битов , даже в сочетании с последним битом 1 в поле синхронизации. Однако конечные биты 1 в PID могут потребовать вставки битов в пределах первых нескольких битов. части полезной нагрузки.)

Байты PID USB
Тип Значение ПИД
( старший бит - первый)
Передаваемый байт
( младший младший разряд - первый)
Имя Описание
Сдержанный 0000 0000 1111
Токен 1000 0001 1110 РАСКОЛОТЬ Разделенная транзакция с высокой пропускной способностью (USB 2.0)
0100 0010 1101 ПИНГ Проверьте, может ли конечная точка принимать данные (USB 2.0)
Особенный 1100 0011 1100 ПРЕДВАРИТЕЛЬНО Преамбула USB с низкой пропускной способностью
Рукопожатие ОШИБКА Ошибка разделенной транзакции (USB 2.0)
0010 0100 1011 ПОДТВЕРЖДЕНИЕ Пакет данных принят
1010 0101 1010 ХОТЕТЬ Пакет данных не принят; пожалуйста, повторите передачу
0110 0110 1001 NYET Данные еще не готовы (USB 2.0)
1110 0111 1000 ЛАРЕК Передача невозможна; выполнить восстановление ошибок
Токен 0001 1000 0111 ВНЕ Адрес для передачи с хоста на устройство
1001 1001 0110 В Адрес для передачи с устройства на хост
0101 1010 0101 ССО Маркер начала кадра (отправляется каждую мс)
1101 1011 0100 НАСТРАИВАТЬ Адрес для передачи управления от хоста к устройству
Данные 0011 1100 0011 ДАТА0 Пакет данных с четным номером
1011 1101 0010 ДАТЫ1 Пакет данных с нечетным номером
0111 1110 0001 ДАННЫЕ2 Пакет данных для изохронной передачи с высокой пропускной способностью (USB 2.0)
1111 1111 0000 МДАТА Пакет данных для изохронной передачи с высокой пропускной способностью (USB 2.0)

Пакеты бывают трех основных типов, каждый из которых имеет свой формат и CRC ( проверка циклическим избыточным кодом ):

Пакеты рукопожатия

[ редактировать ]
Поле Синхронизировать ПИД ЕОП
Биты 8
Сигнал КДж КДж КДж КК ХХХХ ХХХХ SE0 SE0 Дж

Пакеты подтверждения состоят только из одного байта PID и обычно отправляются в ответ на пакеты данных. Обнаружение ошибок обеспечивается путем передачи четырех битов, которые дважды представляют тип пакета, в одном байте PID в дополненной форме. Три основных типа: ACK , указывающий, что данные были успешно получены; NAK , указывающий, что данные не могут быть получены и их следует повторить; и STALL , указывающие на то, что в устройстве возникла ошибка и оно не может передавать данные до тех пор, пока не будет выполнено какое-либо корректирующее действие (например, инициализация устройства). [9] [10]

В USB 2.0 добавлены два дополнительных пакета рукопожатия: NYET и ERR . NYET указывает, что разделенная транзакция еще не завершена, а подтверждение ERR указывает, что разделенная транзакция не удалась. Второе использование пакета NYET — сообщить хосту, что устройство приняло пакет данных, но не может принимать больше из-за переполнения буферов. Это позволяет хосту переключиться на отправку небольших токенов PING, чтобы узнать о готовности устройства, а не отправлять весь нежелательный пакет ДАННЫХ только для получения NAK. [9] [10]

Единственный пакет подтверждения, который может сгенерировать USB-хост, — это ACK. Если он не готов принимать данные, он не должен давать устройству указание на отправку.

Пакеты токенов

[ редактировать ]

Пакеты токенов состоят из байта PID, за которым следуют два байта полезной нагрузки: 11 бит адреса и пятибитный CRC. Токены отправляются только хостом, а не устройством. Ниже представлены токены USB 1.0:

  • Токены IN и OUT содержат семибитный номер устройства и четырехбитный номер функции (для многофункциональных устройств) и дают команду устройству передавать пакеты DATAx или получать следующие пакеты DATAx соответственно.
    • Токен IN ожидает ответа от устройства. Ответом может быть ответ NAK или STALL или кадр DATAx . В последнем случае хост выдает подтверждение подтверждения, если это необходимо.
    • За токеном OUT сразу следует кадр DATAx . Устройство отвечает ACK, NAK, NYET или STALL в зависимости от ситуации.
  • SETUP работает так же, как токен OUT, но используется для первоначальной настройки устройства. За ним следует восьмибайтовый кадр DATA0 стандартизированного формата.
  • SOF (начало кадра). Каждую миллисекунду (12000 битовых раз при полной пропускной способности) USB-хост передает специальный маркер SOF (начало кадра), содержащий 11-битный увеличивающийся номер кадра вместо адреса устройства. Это используется для синхронизации изохронной передачи данных и прерывания передачи данных. Высокоскоростные устройства USB 2.0 получают семь дополнительных токенов SOF за кадр, каждый из которых представляет микрокадр длительностью 125 мкс (каждый по 60 000 битов с высокой пропускной способностью).

В USB 2.0 также добавлен токен PING и более крупный трехбайтовый токен SPLIT :

  • PING спрашивает устройство, готово ли оно получить пару пакетов OUT/DATA. PING обычно отправляется хостом при опросе устройства, которое последним ответило NAK или NYET. Это позволяет избежать необходимости отправлять большой пакет данных на устройство, которое, как подозревает хост, не желает его принимать. [11] Устройство отвечает ACK, NAK или STALL, в зависимости от ситуации.
  • SPLIT используется для выполнения разделенных транзакций. Вместо того, чтобы связывать высокоскоростную шину USB, отправляющую данные на более медленное USB-устройство, ближайший концентратор с высокой пропускной способностью получает токен SPLIT, за которым следуют один или два USB-пакета с высокой пропускной способностью, и выполняет передачу данных на полной или низкой скорости. -bandwidth и обеспечивает ответ с высокой пропускной способностью при запросе второго токена SPLIT. Он содержит семибитный номер концентратора, 12 бит управляющих флагов и пятибитный CRC.

Пакеты токенов OUT, IN, SETUP и PING

[ редактировать ]
Поле Синхронизировать ПИД АДРЕС ЕНДП CRC5 ЕОП
Биты 8 7 4 5
Сигнал КДж КДж КДж КК ХХХХ ХХХХ ХХХХ ХХХ ХХХХ ХХХХХ SE0 SE0 Дж
  • ADDR: Адрес USB-устройства (максимум 127 устройств).
  • ENDP: выберите аппаратный буфер источника/приемника конечной точки на устройстве. (Например, PID OUT предназначен для отправки данных из буфера источника хоста в буфер приемника USB-устройства.)
    • По умолчанию все USB-устройства должны поддерживать как минимум буфер конечной точки 0 (EP0). Это связано с тем, что EP0 используется для управления устройством и информации о состоянии во время перечисления и нормальной работы.


SOF: начало кадра

[ редактировать ]
Поле Синхронизировать ПИД Номер кадра CRC5 ЕОП
Биты 8 11 5
Сигнал КДж КДж КДж КК ХХХХ ХХХХ ХХХХ ХХХ ХХ ХХХХХ SE0 SE0 Дж

Использование: первая транзакция в каждом (микро)кадре. SOF позволяет конечным точкам идентифицировать начало (микро)кадра и синхронизировать внутренние часы конечной точки с хостом.

  • Номер кадра: это номер кадра, который периодически увеличивается хостом, чтобы позволить конечным точкам идентифицировать начало кадра (или микрокадра) и синхронизировать внутренние часы конечной точки с часами хоста.

SSPLIT и CSPLIT: начало транзакции разделения и завершение транзакции разделения.

[ редактировать ]
Режим С/К Поле
0, ССПЛИТ Синхронизировать ПИД Центр
адрес
С/К Порт
число
С И EP CRC5 ЕОП
1, КСПЛИТ В
Биты 8 7 1 7 1 1 2 5
Сигнал КДж КДж КДж КК ХХХХ ХХХХ ХХХХ ХХХ Х ХХХХ ХХХ Х Х ХХ ХХХХХ SE0 SE0 Дж
  • S/C, Начало или завершение:
    • 0, SSPLIT, Начать разделенную транзакцию
    • 1, CSPLIT, Полная разделенная транзакция
  • S: 1, низкая скорость; 0, высокая скорость
  • E, Конец полезной нагрузки на полной скорости.
  • Бит U, U зарезервирован/не используется и должен быть сброшен в ноль (0 Б).
  • EP, Конечная точка: тип 00, управление; 01 – изохронный; 10 — объемный; и 11, прерывание.

Пакеты данных

[ редактировать ]
Поле Синхронизировать ПИД ДАННЫЕ CRC16 ЕОП
Биты 8 0–8192 16
Сигнал КДж КДж КДж КК ХХХХ ХХХХ (XXXX XXXX) × byteCount ХХХХ ХХХХ ХХХХ ХХХ SE0 SE0 Дж

Пакет данных состоит из PID, за которым следуют 0–1024 байта полезных данных (до 1024 байтов для высокоскоростных устройств, до 64 байтов для полноскоростных устройств и не более восьми байтов для низкоскоростных устройств). [12] и 16-битный CRC.

Существует две основные формы пакета данных: DATA0 и DATA1 . Пакету данных всегда должен предшествовать токен адреса, а за ним обычно следует токен подтверждения связи от приемника обратно к передатчику. Два типа пакетов предоставляют 1-битный порядковый номер, необходимый для ARQ с остановкой и ожиданием . Если USB-хост не получает ответа (например, ACK) на переданные им данные, он не знает, были ли данные получены или нет; данные могли быть потеряны при передаче или они могли быть получены, но ответ на подтверждение установления связи был потерян.

Чтобы решить эту проблему, устройство отслеживает тип пакета DATAx, который оно приняло последним. Если он получает другой пакет DATAx того же типа, он подтверждается, но игнорируется как дубликат. Фактически принимается только пакет DATAx противоположного типа.

Если данные повреждены во время передачи или получения, проверка CRC не удалась. Когда это происходит, получатель не генерирует ACK, что заставляет отправителя повторно отправить пакет. [13]

Когда устройство сбрасывается с помощью пакета SETUP, оно ожидает следующий 8-байтовый пакет DATA0.

добавлены типы пакетов DATA2 и MDATA В USB 2.0 также . Они используются только устройствами с высокой пропускной способностью, выполняющими изохронную передачу с высокой пропускной способностью, которая должна передавать более 1024 байтов за микрокадр 125 мкс (8192 кБ/с).

Пакет PRE (говорит концентраторам временно переключиться в низкоскоростной режим)

[ редактировать ]

Концентратор может поддерживать устройства с низкой пропускной способностью, смешанные с другими скоростными устройствами, через специальное значение PID, PRE . Это необходимо, поскольку USB-концентратор функционирует как очень простой повторитель, транслируя сообщение хоста на все подключенные устройства независимо от того, предназначен ли для него пакет или нет. Это означает, что в среде со смешанной скоростью существует потенциальная опасность того, что низкая скорость может неправильно интерпретировать сигнал высокой или полной скорости от хоста.

Чтобы устранить эту опасность, если USB-концентратор обнаруживает сочетание высокоскоростных или полноскоростных и низкоскоростных устройств, он по умолчанию отключает связь с низкоскоростным устройством, пока не получит запрос на переключение в низкоскоростной режим. Однако при получении пакета PRE он временно снова включает выходной порт для всех низкоскоростных устройств, чтобы хост мог отправить один низкоскоростной пакет на низкоскоростные устройства. После отправки низкоскоростного пакета сигнал окончания пакета (EOP) сообщает концентратору снова отключить все выходы на низкоскоростные устройства.

Поскольку все байты PID содержат четыре нулевых бита, они покидают шину в состоянии K с полной полосой пропускания, которое совпадает с состоянием J с низкой полосой пропускания. Далее следует короткая пауза, во время которой хабы включают свои низкополосные выходы, уже находящиеся в состоянии J на ​​холостом ходу. Затем следует пакет с низкой пропускной способностью, который начинается с последовательности синхронизации и байта PID и заканчивается коротким периодом SE0. Устройства с полной пропускной способностью, отличные от концентраторов, могут просто игнорировать пакет PRE и его содержимое с низкой пропускной способностью до тех пор, пока окончательный SE0 не укажет, что следует новый пакет.

Преамбула полной скорости, PRE Настройка концентратора, включение вывода
к низкоскоростным устройствам.
Пример низкоскоростного пакета Хаб отключить выход
к низкоскоростным устройствам.
Поле Синхронизировать ПИД (ПРЕ) Синхронизировать ПИД АДРЕС ЕНДП CRC5 ЕОП
Биты 8 8 7 4 5
Сигнал КДж КДж КДж КК ХХХХ ХХХХ КДж КДж КДж КК ХХХХ ХХХХ ХХХХ ХХХ ХХХХ ХХХХХ SE0 SE0 Дж

Транзакции

[ редактировать ]

Пакеты USB организованы в транзакции , состоящие из пакета токена, пакета условных данных и пакета подтверждения.

ВЫХОДНАЯ транзакция

[ редактировать ]
OUT транзакция (всего 3 пакета)
Хозяин Хозяин Устройство
PID пакета ВНЕ ДАННЫЕ ПОДТВЕРЖДЕНИЕ
Тип пакета Токен Данные Рукопожатие
Описание Сообщите устройству о включении
ADDRx
начать прослушивание входящего пакета данных на конечной точке
EPx.
Сообщите USB-устройству данные, которые вы хотите отправить на него. Устройство сообщает хосту, что оно успешно получило и загрузило полезные данные в буфер EPx.

IN транзакция

[ редактировать ]
IN-транзакция (всего 3 пакета)
Хозяин Устройство Хозяин
PID пакета В ДАННЫЕ ПОДТВЕРЖДЕНИЕ
Тип пакета Токен Данные Рукопожатие
Описание Сообщите устройству о включении
ADDRx
отправлять любые данные, которые есть в буфере конечной точки
EPx.
Устройство проверяет свой буфер конечной точки EPx и отправляет запрошенные данные на хост. Хост сообщает устройству, что он успешно получил полезную нагрузку и загрузил ее в свой буфер EPx.

НАСТРОЙКА транзакций

[ редактировать ]

Это используется для перечисления устройств и управления соединениями и информирует устройство о том, что хост хочет начать обмен передачей управления.

Транзакция SETUP (всего 3 пакета)
Хозяин Хозяин Устройство
PID пакета НАСТРАИВАТЬ ДАТА0 ПОДТВЕРЖДЕНИЕ
Тип пакета Токен Данные Рукопожатие
Описание Сообщите устройству о включении
ADDRx
чтобы запустить режим настройки и быть готовым к приему пакета данных.
Отправьте на устройство установочный пакет длиной 8 байт. Устройство подтверждает получение данных SETUP и обновляет свой конечный автомат настройки.
  • В зависимости от установочного пакета может возникнуть дополнительный пакет данных от устройства к хосту или от хоста к устройству.

Установочный пакет

[ редактировать ]

Транзакция установки передает на устройство 8-байтовый установочный пакет. Пакет настройки кодирует направление и длину любых последующих пакетов данных.

Поле Компенсировать Байты Биты Описание
bmRequestType 0 1 0–4 Получатель: адресуемый программный компонент USB
0 = Устройство
1 = Интерфейс
2 = Конечная точка
3 = Другое
4–31 (зарезервировано)
5–6 Тип: используется с байтом bRequest.
0 = стандартный (поддерживается всеми USB-устройствами)
1 = Класс (зависит от класса USB-устройства)
2 = Поставщик
3 (зарезервировано)
7 Направление:
0 = хост-устройство или передача данных отсутствует (wLength == 0)
1 = устройство для хоста (wLength > 0 байт статуса возвращается)
бЗапрос 1 1 Команда настройки: если Получатель = 0 (Устройство) и Тип = 0 (Стандарт), определяются следующие запросы:
0 = GET_STATUS (2-байтовое чтение)
1 = CLEAR_FEATURE (0 байт; функция выбрана wValue)
3 = SET_FEATURE (0 байт; функция выбирается wValue)
5 = SET_ADDRESS (0 байт; адрес в wValue)
6 = GET_DESCRIPTOR (чтение wLength байта; тип и индекс дескриптора в wValue)
7 = SET_DESCRIPTOR (запись wLength байта; тип и индекс дескриптора в wValue)
8 = GET_CONFIGURATION (чтение 1 байта)
9 = SET_CONFIGURATION (0 байт; конфигурация выбирается wValue)
wValue 2 2 Значение параметра: Интерпретация зависит от bRequest
wИндекс 4 2 Вторичный параметр: указывает интерфейс или конечную точку, к которой адресован этот запрос. Для строковых дескрипторов (Получатель = Устройство) это код языка.
wдлина 6 2 Длина передачи данных: количество байтов, которые будут переданы после установочного пакета.

Контрольный обмен обменом

[ редактировать ]

Обмен передачей управления состоит из трех отдельных этапов, каждый из которых состоит из своих собственных транзакций:

  • Этап настройки: это команда настройки, отправленная хостом на устройство. Он состоит из токена SETUP, пакета DATA от хоста, содержащего указанную выше структуру «установочного пакета», и пакета подтверждения от устройства. [14]
  • Этап данных (необязательно): содержит информацию, описанную (в случае передачи от хоста к устройству) или запрошенную (в случае передачи от устройства к хосту) на этапе настройки. Он может состоять из нескольких транзакций и прекращается при нескольких условиях: [15]
    • Транзакция, содержащая пакет DATA вообще без полезной нагрузки, называется пакетом нулевой длины.
    • Транзакция, содержащая пакет ДАННЫХ, длина которого меньше максимального размера пакета для этой конечной точки, называется «коротким» пакетом.
    • точный объем данных, указанный в поле wLength установочного пакета. Когда передан
  • Этап состояния: транзакция нулевой длины, противоположного этапу данных, для обозначения завершения передачи и проверки того, что устройство завершило передачу без ошибок. [14]

Это позволяет хосту выполнять действия по управлению шиной, такие как перечисление новых USB-устройств путем получения дескрипторов новых устройств. Получение дескрипторов позволит, в частности, определить класс USB, VID и PID, которые часто используются для определения правильного драйвера USB для устройства.

Кроме того, после получения дескрипторов хост выполняет еще один обмен передачей управления, но вместо этого устанавливает для адреса USB-устройства новый ADDRx.

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б «Реальная сделка USB 2.0» . Новости и тенденции. Мир ПК . 28 февраля 2002 г. Архивировано из оригинала 5 декабря 2010 г.
  2. ^ Чжоу, Цзин; Ци, Синь; Су, Синь; Ян, Хайбин (8 августа 2012 г.). «Исследование USB 2.0 в программно-определяемом радио» . 7-я Международная конференция по коммуникациям и сетям в Китае . стр. 833–837. дои : 10.1109/ChinaCom.2012.6417600 . ISBN  978-1-4673-2699-5 . S2CID   17421546 .
  3. ^ Перейти обратно: а б «Сверхпортативный Seagate FreeAgent GoFlex» (обзор). CNet. Архивировано из оригинала 14 апреля 2011 года . Проверено 22 мая 2011 г.
  4. ^ «NEC готова попробовать «первый в мире» чип контроллера USB 3.0» . Архивировано из оригинала 23 мая 2009 года . Проверено 15 июня 2009 г.
  5. ^ «Когда продукты USB 3.0 появятся на рынке?» . Архивировано из оригинала 30 апреля 2009 года . Проверено 11 мая 2009 г.
  6. ^ «Кратко об USB — Глава 2 — Аппаратное обеспечение» . BeyondLogic.org . Архивировано из оригинала 20 августа 2007 года . Проверено 25 августа 2007 г.
  7. ^ «Технические характеристики сверхскоростных кабелей USB 3.0» . Архивировано из оригинала 14 апреля 2011 года.
  8. ^ «Спецификация универсальной последовательной шины 3.0, версия 1.0, 12 ноября 2008 г.» (PDF) . Архивировано из оригинала (PDF) 13 ноября 2013 года.
  9. ^ Перейти обратно: а б «USB — это просто, часть 3. Поток данных» . usbmadesimple.co.uk . 2008. Архивировано из оригинала 5 октября 2014 года . Проверено 17 августа 2014 г.
  10. ^ Перейти обратно: а б «Кратко об USB, Глава 3. USB-протоколы» . Beyondlogic.org . 17 сентября 2010 г. Архивировано из оригинала 5 августа 2014 г. Проверено 17 августа 2014 г.
  11. ^ «Часть 7. Высокоскоростные транзакции: протокол Ping» . UsbMadeSimple.co.uk . 2008. Архивировано из оригинала 3 октября 2014 года . Проверено 16 августа 2014 г.
  12. ^ «USB в ореховой скорлупе» . Глава 4. Типы конечных точек. Архивировано из оригинала 2 сентября 2014 года . Проверено 5 сентября 2014 г.
  13. ^ «Устранение распространенных проблем с USB» . Архивировано из оригинала 15 июня 2013 года . Проверено 5 июня 2013 г.
  14. ^ Перейти обратно: а б «Кратко об USB – Глава 4 – Типы конечных точек» . BeyondLogic.org . Проверено 12 января 2023 г.
  15. ^ «Спецификация универсальной последовательной шины 2.0, версия 2.0» . USB-IF . 27 апреля 2000 г. Архивировано из оригинала 3 сентября 2019 г. Проверено 12 января 2023 г. Альтернативный URL
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d81c99aaa5a9a485b2213419ae10ab10__1718909940
URL1:https://arc.ask3.ru/arc/aa/d8/10/d81c99aaa5a9a485b2213419ae10ab10.html
Заголовок, (Title) документа по адресу, URL1:
USB communications - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)