USB (связь) - USB (Communications)

В этой статье содержится информация о коммуникационных аспектах универсальной последовательной шины, USB: Сигнализация, протоколы, транзакции.

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

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

[1]РежимАббревиатураПолная скорость передачи данныхПредставлено в
Низкая скоростьLS1,5 Мбит / с (187,5 КБ / с)USB 1.0
На полной скоростиFS12 Мбит / с (1,5 МБ / с)USB 1.0
Высокоскоростной
Также Hi-Speed
HS480 Мбит / с (60 МБ / с)USB 2.0
Супер скоростьSS5 Гбит / с (625 МБ / с)USB 3.0
SuperSpeed ​​+СС +10 Гбит / с (1,25 ГБ / с)USB 3.1
SuperSpeed ​​+СС +20 Гбит / с (2,5 ГБ / с)USB 3.2

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

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

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

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

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

Задержка транзакции

Для низкоскоростных (1,5 Мбит / с) и полноскоростных (12 Мбит / с) устройств минимальное время транзакции в одном направлении составляет 1 мс.[6] Высокоскоростной (480 Мбит / с) использует транзакции в каждом микрокадре (125 мкс)[7] где использование 1-байтового пакета прерывания приводит к минимальному времени отклика 940 нс. 4-байтовый пакет прерывания дает 984 нс.[нужна цитата ]

Электрическая спецификация

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

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

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

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

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

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

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

СигналСостояние перехода линииОписаниеUSB 1.x с низкой скоростью

(Подтяжка 1,5 кОм на D−)

USB 1.x, полная скорость

(Подтяжка 1,5 кОм на D +)

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

Состояние линии (включая USB 1.x и 2.x)

Состояние линии / сигналОписаниеUSB 1.x низкоскоростнойUSB 1.x на полной скоростиUSB 2.x высокоскоростной
ОтдельноУстройств не обнаружено. Обе линии стянуты понижающими резисторами 15 кОм на стороне хоста.SE0 ≥ 2 мксSE0 ≥ 2 мксSE0 ≥ 2 мкс
СоединятьУстройство USB подтягивает D + или D-, выводит хост из состояния отсоединенной линии. Это запустит процесс перечисления USB. Это устанавливает состояние ожидания.D− подтягивается стороной устройства 1,5 кОм.D + подтягивается стороной устройства 1,5 кОм.Специальная последовательность чириканья
Холостой ход / ДжХост и передатчик устройства в Hi-Z.

Определение состояния линии в случае отсоединенного состояния.

То же, что и состояние отсоединения или подключения.То же, что и отключенное состояние или состояние подключения.
СинхронизироватьНачало шаблона перехода линии пакета.Линейные переходы: KJKJKJKKЛинейные переходы: KJKJKJKK15 пар KJ, за которыми следуют 2 K, всего 32 символа.
EOPКонец шаблона перехода линии пакета.Переходы строк: SE0 + SE0 + JПереходы строк: SE0 + SE0 + J
ПерезагрузитьСбросьте USB-устройство в известное начальное состояние.SE0 ≥ 2,5 мсSE0 ≥ 2,5 мс
ПриостановитьВыключите устройство, чтобы оно потребляло только 0,5 мА от напряжения VАвтобус. Выходит из этого состояния только после получения сигнала возобновления или сброса. Чтобы избежать этого состояния, выдается пакет SOF (высокоскоростной) или сигнал поддержания активности (низкоскоростной).J ≥ 3 мсJ ≥ 3 мс
Резюме (ведущий)Хост хочет разбудить устройство.K ≥ 20 мс, затем шаблон EOPK ≥ 20 мс, затем шаблон EOP
Резюме (устройство)Устройство хочет проснуться. (Должен находиться в режиме ожидания не менее 5 мс.)Привод устройства K ≥ 1 мс
Затем хост отправляет сигнал возобновления.
Привод устройства K ≥ 1 мс
Затем хост отправляет сигнал возобновления.
Оставайся в живых (низкая скорость)Хост хочет сказать низкоскоростному устройству, чтобы оно не спало.Шаблон EOP один раз в миллисекунду.НепригодныйНепригодный

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

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

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

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

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

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

Согласование скорости USB 2.0

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

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

Хотя устройства с высокой пропускной способностью обычно называются «USB 2.0» и рекламируются как «до 480 Мбит / с», не все устройства USB 2.0 обладают высокой пропускной способностью. В USB-IF сертифицирует устройства и предоставляет лицензии на использование специальных маркетинговых логотипов для «базовой пропускной способности» (низкой и полной) или высокой пропускной способности после прохождения теста на соответствие и уплаты лицензионного сбора. Все устройства тестируются в соответствии с последней спецификацией, поэтому недавно совместимые устройства с низкой пропускной способностью также являются устройствами 2.0.

USB 3.0

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

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

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

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

Байты USB PID
ТипЗначение PID
(msb -первый)
Переданный байт
(lsb -первый)
ИмяОписание
Зарезервированный00000000 1111
Токен10000001 1110РАСКОЛОТЬРазделенная транзакция с высокой пропускной способностью (USB 2.0)
01000010 1101ПИНГПроверьте, может ли конечная точка принимать данные (USB 2.0)
Специальный11000011 1100ПРЕДПреамбула USB с низкой пропускной способностью
РукопожатиеERRОшибка разделения транзакции (USB 2.0)
00100100 1011ACKПакет данных принят
10100101 1010НАКПакет данных не принят; пожалуйста, передайте
01100110 1001NYETДанные еще не готовы (USB 2.0)
11100111 1000ЛАРЕКПеревод невозможен; сделать исправление ошибок
Токен00011000 0111ИЗАдрес для передачи от хоста к устройству
10011001 0110ВАдрес для передачи от устройства к хосту
01011010 0101SOFМаркер начала кадра (отправляется каждые мс)
11011011 0100НАСТРАИВАТЬАдрес для передачи управления от хоста к устройству
Данные00111100 0011ДАННЫЕ0Пакет данных с четным номером
10111101 0010ДАННЫЕ1Пакет данных с нечетным номером
01111110 0001ДАННЫЕ2Пакет данных для изохронной передачи с высокой пропускной способностью (USB 2.0)
11111111 0000MDATAПакет данных для изохронной передачи с высокой пропускной способностью (USB 2.0)

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

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

ПолеСинхронизироватьPIDEOP
Биты8
СигналКДж КДж КДж ККXXXX XXXX00J

Пакеты подтверждения состоят только из одного байта PID и обычно отправляются в ответ на пакеты данных. Обнаружение ошибок обеспечивается передачей четырех битов, которые дважды представляют тип пакета, в одном байте PID с использованием дополнен форма. Три основных типа: ACK, что свидетельствует об успешном получении данных; НАК, что указывает на то, что данные не могут быть получены и их следует повторить; и ЛАРЕК, что указывает на то, что устройство находится в состоянии ошибки и не может передавать данные, пока не будут выполнены какие-либо корректирующие действия (например, инициализация устройства).[11][12]

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

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

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

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

  • В и ИЗ токены содержат семибитный номер устройства и четырехбитный номер функции (для многофункциональных устройств) и дают команду устройству передавать пакеты DATAx или получать следующие пакеты DATAx соответственно.
    • В токен ожидает ответа от устройства. Ответ может быть NAK или STALL или DATAx Рамка. В последнем случае хост при необходимости выдает подтверждение ACK.
    • ИЗ за токеном сразу следует DATAx Рамка. Устройство отвечает ACK, NAK, NYET или STALL, в зависимости от ситуации.
  • НАСТРАИВАТЬ работает так же, как токен OUT, но используется для начальной настройки устройства. За ним следует восьмибайтовый кадр DATA0 в стандартизированном формате.
  • SOF (начало кадра) Каждую миллисекунду (12000 битов при полной полосе пропускания) USB-хост передает специальный SOF (начало кадра) токен, содержащий 11-битный номер кадра с возрастающим приращением вместо адреса устройства. Это используется для синхронизации изохронной передачи данных и передачи прерывания. Высокоскоростные устройства USB 2.0 получают семь дополнительных токенов SOF на кадр, каждый из которых представляет «микрофрейм» 125 мкс (каждый 60000 битов с высокой пропускной способностью).
USB 2.0 также добавил ПИНГ Токен и больший трехбайтовый токен SPLIT
  • ПИНГ спрашивает устройство, готово ли оно к приему пары пакетов OUT / DATA. PING обычно отправляется хостом при опросе устройства, которое последним ответило NAK или NYET. Это позволяет избежать отправки большого пакета данных на устройство, которое, как подозревает хост, не желает принимать.[13] Устройство отвечает ACK, NAK или STALL, в зависимости от ситуации.
  • РАСКОЛОТЬ используется для выполнения раздельных транзакций. Вместо того, чтобы связывать шину USB с высокой пропускной способностью, отправляющую данные на более медленное устройство USB, ближайший концентратор с высокой пропускной способностью получает токен SPLIT, за которым следуют один или два пакета USB с высокой пропускной способностью, выполняет передачу данных с полной или низкой пропускной способностью. -bandwidth и обеспечивает ответ с высокой пропускной способностью при запросе второго токена SPLIT. Он содержит семибитный номер концентратора, 12 бит контрольных флагов и пятибитовый CRC.

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

ПолеСинхронизироватьPIDADDRENDPCRC5EOP
Биты8745
СигналКДж КДж КДж ККXXXX XXXXXXXX XXXXXXXXXXXX00J
  • ADDR: Адрес USB-устройства (максимум 127 устройств).
  • ENDP: выберите аппаратный буфер источника / приемника конечной точки на устройстве. (Например, PID OUT предназначен для отправки данных из исходного буфера хоста в буфер приемника USB-устройства.)
    • По умолчанию все USB-устройства должны поддерживать как минимум буфер конечной точки 0 (EP0). Это связано с тем, что EP0 используется для управления устройством и информации о состоянии во время перечисления и нормальной работы.

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

ПолеСинхронизироватьPIDНомер кадраCRC5EOP
Биты8115
СигналКДж КДж КДж ККXXXX XXXXXXXX XXXX XXXXXXXXSE0 SE0 Дж
  • Номер кадра: это номер кадра, который периодически увеличивается хостом, чтобы позволить конечным точкам идентифицировать начало кадра (или микрофрейма) и синхронизировать внутренние часы конечной точки с часами хоста.

SSPLIT и CSPLIT: начальная разделенная транзакция и полная разделенная транзакция

S / C режимПоле
0 = SSPLITСинхронизироватьPIDАдрес хабаS / CНомер портаSEETCRC5EOP
1 = CSPLITСинхронизироватьPIDАдрес хабаS / CНомер портаSUETCRC5EOP
Биты87171125
СигналКДж КДж КДж ККXXXX XXXXXXXX XXXИксXXXX XXXИксИксXXXXXXXSE0 SE0 Дж
  • S / C: Пуск завершен
    • 0 = SSPLIT: начать разделенную транзакцию
    • 1 = CSPLIT: Завершить разделенную транзакцию
  • S: 1 = низкая скорость, 0 = высокая скорость
  • E: Конец полной скорости полезной нагрузки
  • U: бит U зарезервирован / не используется и должен быть сброшен в ноль (0 B)
  • EP: Тип конечной точки (00 = управление), (01 = изохронная), (10 = групповая) и (11 = прерывание)

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

ПолеСинхронизироватьPIDДАННЫЕCRC16EOP
Биты80-819216
СигналКДж КДж КДж ККXXXX XXXX(XXXX XXXX) * byteCountXXXX XXXX XXXX XXXXSE0 SE0 Дж

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

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

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

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

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

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

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

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

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

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

Преамбула полной скорости PREНастройка концентратора включить вывод
к тихоходным устройствам.
Пример низкоскоростного пакетаКонцентратор отключить вывод
к тихоходным устройствам.
ПолеСинхронизироватьPID (PRE)СинхронизироватьPIDADDRENDPCRC5EOP
Биты88745
СигналКДж КДж КДж ККXXXX XXXXКДж КДж КДж ККXXXX XXXXXXXX XXXXXXXXXXXX00J

Сделка

OUT транзакция

OUT транзакция (всего 3 пакета)
ХозяинХозяинУстройство
PID пакетаИЗDATAxACK
Тип пакетаТокенДанныеРукопожатие
ОписаниеСообщите устройству на
ADDRx
начать прослушивание входящих пакетов данных на конечной точке
EPx.
Сообщите USB-устройству данные, которые вы хотите отправить на него.Устройство сообщает хосту, что оно успешно получило и загрузило полезные данные в буфер EPx.

В транзакции

В транзакции (всего 3 пакета)
ХозяинУстройствоХозяин
PID пакетаВDATAxACK
Тип пакетаТокенДанныеРукопожатие
ОписаниеСообщите устройству на
ADDRx
для отправки любых данных, которые есть в его буфере конечной точки
EPx.
Устройство проверяет свой буфер конечной точки EPx и отправляет запрошенные данные на хост.Хост сообщает устройству, что он успешно получил полезную нагрузку и загрузил ее в свой буфер EPx.

SETUP транзакция

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

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

Пакет установки

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

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

Обмен управления передачей

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

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

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

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

Рекомендации

  1. ^ а б «Настоящая сделка с USB 2.0», Новости и тенденции, Компьютерный мир, 28 февраля 2002 г., архивировано из оригинал 5 декабря 2010 г.
  2. ^ а б «Сверхпортативный Seagate FreeAgent GoFlex» (рассмотрение). CNet. В архиве из оригинала 14 апреля 2011 г.. Получено 22 мая 2011.
  3. ^ Шварц, Роде (25 мая 2012 г.). «Тестирование по маске USB 2.0» (PDF). Получено 2012-07-12.[постоянная мертвая ссылка ]
  4. ^ «NEC готова попробовать« первый в мире »контроллер USB 3.0». В архиве из оригинала 23 мая 2009 г.. Получено 15 июн 2009.
  5. ^ «Когда продукты USB 3.0 появятся на рынке?». В архиве из оригинала 30 апреля 2009 г.. Получено 11 мая 2009.
  6. ^ "Мышиные вещи, о которых тебе следует знать", Городской террор, 9 августа 2008 г., в архиве из оригинала 11 октября 2014 г.
  7. ^ Разработчик ОС - универсальная последовательная шина, 1 февраля 2011 г., в архиве из оригинала 5 сентября 2012 г.
  8. ^ «USB в двух словах - Глава 2 - Оборудование». Помимо Logic.org. В архиве с оригинала от 20 августа 2007 г.. Получено 25 августа 2007.
  9. ^ «Технические характеристики кабелей USB 3.0 SuperSpeed». В архиве из оригинала 14 апреля 2011 г. 100717 usb3.com
  10. ^ а б «Спецификация универсальной последовательной шины 3.0, версия 1.0, 12 ноября 2008 г.» (PDF). В архиве (PDF) из оригинала от 13 ноября 2013 г. 100717 usb3.com
  11. ^ а б «USB Made Simple, Часть 3. Поток данных». usbmadesimple.co.uk. 2008. В архиве из оригинала 5 октября 2014 г.. Получено 17 августа 2014.
  12. ^ а б «USB в двух словах, Глава 3. Протоколы USB». yondlogic.org. 17 сентября 2010 г. В архиве из оригинала 5 августа 2014 г.. Получено 17 августа 2014.
  13. ^ «Часть 7, Высокоскоростные транзакции: протокол Ping». usbmadesimple.co.uk. 2008. В архиве из оригинала 3 октября 2014 г.. Получено 16 августа 2014.
  14. ^ «USB в ореховой скорлупе». Глава 4 - Типы конечных точек. В архиве из оригинала 2 сентября 2014 г.. Получено 5 сентября 2014.
  15. ^ «Отладка распространенных проблем с USB». Архивировано из оригинал 15 июня 2013 г.. Получено 5 июн 2013.