Ведущий раздел этой статьи может быть слишком коротким, чтобы адекватно резюмировать ее ключевые моменты . ( Апрель 2018 г. ) |
В этой статье содержится информация о коммуникационных аспектах универсальной последовательной шины, USB : сигнализация, протоколы, транзакции.
Сигнализация (USB PHY) [ править ]
Скорость передачи сигналов (скорость передачи) [ править ]
Режим [1] | Аббревиатура | Полная скорость передачи данных | Представлено в |
---|---|---|---|
Низкая скорость | LS | 1,5 Мбит / с (187,5 КБ / с) | USB 1.0 |
На полной скорости | FS | 12 Мбит / с (1,5 МБ / с) | USB 1.0 |
Высокоскоростной; также Hi-speed | HS | 480 Мбит / с (60 МБ / с) | USB 2.0 |
Супер скорость | SS | 5 Гбит / с (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 Мбит / с) высокоскоростного 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.
- Скорость 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 Гбит / с при использовании 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 Ом для соответствия импедансу кабеля передачи данных.
- 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 + подтягивания) | ||
---|---|---|---|---|---|---|
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) [ править ]
Состояние линии / сигнал | Описание | Низкая скорость | На полной скорости | Высокоскоростной |
---|---|---|---|---|
Отдельно | Устройств не обнаружено. Обе линии стянуты понижающими резисторами 15 кОм на стороне хоста. | SE0 ≥ 2 мкс | ||
Соединять | Устройство USB подтягивает D + или D-, выводит хост из состояния отсоединенной линии. Это запустит процесс перечисления USB. Это устанавливает состояние ожидания. | D- подтягивание | D + подтягивание | На полной скорости, затем чириканье при сбросе |
Холостой ход / Дж | Хост и передатчик устройства в Hi-Z. Определение состояния линии в случае отсоединенного состояния. | В отключенном или подключенном состоянии. | ||
Синхронизировать | Начало шаблона перехода линии пакета. | KJKJKJKK | 15 × KJ, затем KK, всего 32 символа. | |
EOP | Конец шаблона перехода линии пакета. | SE0, SE0, J | ||
Перезагрузить | Сбросьте USB-устройство в известное начальное состояние. | SE0 ≥ 2,5 мс | ||
Приостановить | Выключите устройство, чтобы оно потребляло только 0,5 мА от шины V BUS . Выходит из этого состояния только после получения сигнала возобновления или сброса. Чтобы избежать этого состояния, выдается пакет SOF (высокая скорость) или сигнал поддержания активности (низкая скорость). | J ≥ 3 мс | ||
Резюме (ведущий) | Хост хочет разбудить устройство. | K ≥ 20 мс, затем шаблон EOP | ||
Возобновить (устройство) | Устройство хочет проснуться. (Должен находиться в режиме ожидания не менее 5 мс.) | Устройство управляет K ≥ 1 мс. Затем хост отправляет сигнал возобновления. | ||
Сохранить жизнь | Хост хочет сказать низкоскоростному устройству бодрствовать. | Шаблон EOP один раз в миллисекунду. | N / A |
Передача [ править ]
Данные USB передаются путем переключения линий данных между состоянием J и противоположным состоянием K. USB кодирует данные, используя линейное кодирование NRZI :
- Бит 0 передается путем переключения линий данных с J на K или наоборот.
- 1 бит передается, оставляя строки данных как есть.
Для того, чтобы обеспечить наличие достаточного количества сигналов переходов для восстановления синхронизации , чтобы возникающие в потоке битов , А начинку немного метод применяется к потоку данных: дополнительный 0 бит вставляется в поток данных после любого появления шести последовательных 1 бит. (Таким образом обеспечивается наличие бита 0, вызывающего переход состояния передачи.) Семь последовательно полученных 1 битов всегда являются ошибкой. Для USB 3.0 используется дополнительное кодирование передачи данных для обработки требуемых более высоких скоростей передачи данных.
Пример передачи на полноскоростном устройстве [ править ]
- Шаблон синхронизации: пакет 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.
Согласование на высокой скорости [ править ]
Специальный протокол во время сброса, называемый чириканьем, используется для согласования высокоскоростного режима с хостом или концентратором. Устройство, которое поддерживает высокую скорость, сначала подключается как полноскоростное устройство (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.0 [ править ]
В USB 3 используются многожильные луженые медные кабели AWG-28 с Полное сопротивление 90 ± 7 Ом для его высокоскоростных дифференциальных пар и сдвигового регистра с линейной обратной связью и кодирования 8b / 10b, посылаемого с номинальным напряжением 1 В с порогом приемника 100 мВ; ресивер использует эквализацию. [9] Используются часы с расширенным спектром и точность 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 может потребовать вставки битов в первые несколько биты полезной нагрузки.)
Тип | ПИД ( MSB -first) | Переданный байт ( lsb -first) | Имя | Описание |
---|---|---|---|---|
Зарезервированный | 0000 | 0000 1111 | ||
Токен | 1000 | 0001 1110 | РАСКОЛОТЬ | Разделенная транзакция с высокой пропускной способностью (USB 2.0) |
0100 | 0010 1101 | ПИНГ | Проверьте, может ли конечная точка принимать данные (USB 2.0) | |
Специальный | 1100 | 0011 1100 | ПРЕД | Преамбула USB с низкой пропускной способностью |
Рукопожатие | ERR | Ошибка разделения транзакции (USB 2.0) | ||
0010 | 0100 1011 | ACK | Пакет данных принят | |
1010 | 0101 1010 | НАК | Пакет данных не принят; пожалуйста, передайте повторно | |
0110 | 0110 1001 | NYET | Данные еще не готовы (USB 2.0) | |
1110 | 0111 1000 | ЛАРЕК | Перевод невозможен; сделать исправление ошибок | |
Токен | 0001 | 1000 0111 | ИЗ | Адрес для передачи от хоста к устройству |
1001 | 1001 0110 | В | Адрес для передачи от устройства к хосту | |
0101 | 1010 0101 | SOF | Маркер начала кадра (отправляется каждые мс) | |
1101 | 1011 0100 | НАСТРАИВАТЬ | Адрес для передачи управления от хоста к устройству | |
Данные | 0011 | 1100 0011 | ДАННЫЕ0 | Пакет данных с четным номером |
1011 | 1101 0010 | ДАННЫЕ1 | Пакет данных с нечетным номером | |
0111 | 1110 0001 | ДАННЫЕ2 | Пакет данных для изохронной передачи с высокой пропускной способностью (USB 2.0) | |
1111 | 1111 0000 | MDATA | Пакет данных для изохронной передачи с высокой пропускной способностью (USB 2.0) |
Пакеты бывают трех основных типов, каждый из которых имеет свой формат и CRC ( циклический контроль избыточности ):
Пакеты рукопожатия [ править ]
Поле | Синхронизировать | PID | EOP |
---|---|---|---|
Биты | 8 | ||
Сигнал | КДж КДж КДж КК | XXXX XXXX | 00J |
Пакеты подтверждения состоят только из одного байта PID и обычно отправляются в ответ на пакеты данных. Обнаружение ошибок обеспечивается передачей четырех битов, которые дважды представляют тип пакета, в одном байте PID с использованием дополненной формы. Три основных типа - это ACK , указывающий, что данные были успешно получены; NAK , указывающий на то, что данные не могут быть получены и их следует повторить; и STALL , указывая, что устройство находится в состоянии ошибки и не может передавать данные до тех пор, пока не будет выполнено какое-либо корректирующее действие (например, инициализация устройства). [11] [12]
USB 2.0 добавил два дополнительных пакета подтверждения : NYET и ERR . NYET указывает, что разделенная транзакция еще не завершена, а подтверждение ERR указывает, что разделенная транзакция не удалась. Второй вариант использования пакета NYET - сообщить хосту, что устройство приняло пакет данных, но не может принимать больше из-за полных буферов. Это позволяет хосту переключаться на отправку небольших токенов PING, чтобы узнать о готовности устройства, вместо того, чтобы отправлять весь нежелательный пакет DATA только для того, чтобы вызвать NAK. [11] [12]
Единственный пакет подтверждения, который может сгенерировать USB-хост, - это ACK. Если он не готов к приему данных, он не должен указывать устройству на отправку.
Пакеты токенов [ править ]
Пакеты маркеров состоят из байта PID, за которым следуют два байта полезной нагрузки: 11 бит адреса и пятибитовый CRC. Токены отправляются только хостом, а не устройством. Ниже представлены токены с USB 1.0:
- Токены IN и OUT содержат семибитный номер устройства и четырехбитный номер функции (для многофункциональных устройств) и дают команду устройству передавать пакеты DATAx или получать следующие пакеты DATAx соответственно.
- Токен IN ожидает ответа от устройства. Ответ может быть ответом NAK или STALL или кадром DATAx . В последнем случае хост выдает подтверждение связи ACK, если это необходимо.
- За токеном OUT сразу следует кадр DATAx . Устройство отвечает ACK, NAK, NYET или STALL, в зависимости от ситуации.
- SETUP работает так же, как токен OUT, но используется для начальной настройки устройства. За ним следует восьмибайтовый кадр DATA0 в стандартизированном формате.
- SOF (начало кадра) Каждую миллисекунду (12000 битов при полной полосе пропускания) USB-хост передает специальный маркер SOF (начало кадра), содержащий 11-битный номер кадра с возрастающим приращением вместо адреса устройства. Это используется для синхронизации изохронной передачи и передачи данных с прерыванием. Высокоскоростные устройства USB 2.0 получают семь дополнительных токенов SOF на кадр, каждый из которых представляет «микрофрейм» 125 мкс (каждый 60000 битов с высокой пропускной способностью).
- USB 2.0 также добавил токен PING и более крупный трехбайтовый токен SPLIT.
- PING спрашивает устройство, готово ли оно к приему пары пакетов OUT / DATA. PING обычно отправляется хостом при опросе устройства, которое последним ответило NAK или NYET. Это позволяет избежать отправки большого пакета данных устройству, которое, как подозревает хост, не желает принимать. [13] Устройство отвечает ACK, NAK или STALL, в зависимости от ситуации.
- SPLIT используется для выполнения разделенных транзакций. Вместо того, чтобы связывать шину USB с высокой пропускной способностью, отправляющую данные на более медленное устройство USB, ближайший концентратор с высокой пропускной способностью получает токен SPLIT, за которым следуют один или два пакета USB с высокой пропускной способностью, выполняет передачу данных с полной или низкой пропускной способностью. -bandwidth и обеспечивает ответ с высокой пропускной способностью при запросе второго токена SPLIT. Он содержит семибитный номер концентратора, 12 бит контрольных флагов и пятиразрядную контрольную сумму CRC.
Пакеты токенов OUT, IN, SETUP и PING [ править ]
Поле | Синхронизировать | PID | ADDR | ENDP | CRC5 | EOP |
---|---|---|---|---|---|---|
Биты | 8 | 7 | 4 | 5 | ||
Сигнал | КДж КДж КДж КК | XXXX XXXX | XXXX XXX | XXXX | XXXXX | 00J |
- ADDR: адрес USB-устройства (максимум 127 устройств).
- ENDP: выберите аппаратный буфер источника / приемника конечной точки на устройстве. (Например, PID OUT предназначен для отправки данных из исходного буфера хоста в буфер приемника USB-устройства.)
- По умолчанию все USB-устройства должны поддерживать как минимум буфер конечной точки 0 (EP0). Это связано с тем, что EP0 используется для управления устройством и информации о состоянии во время перечисления и нормальной работы.
SOF: начало кадра [ править ]
Поле | Синхронизировать | PID | Номер кадра | CRC5 | EOP |
---|---|---|---|---|---|
Биты | 8 | 11 | 5 | ||
Сигнал | КДж КДж КДж КК | XXXX XXXX | ХХХХ ХХХХ ХХХ | XXXXX | SE0 SE0 Дж |
- Номер кадра: это номер кадра, который периодически увеличивается хостом, чтобы позволить конечным точкам идентифицировать начало кадра (или микрофрейма) и синхронизировать внутренние часы конечной точки с часами хоста.
SSPLIT и CSPLIT: начальная разделенная транзакция и завершенная разделенная транзакция [ править ]
S / C режим | Поле | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 = SSPLIT | Синхронизировать | PID | Адрес хаба | S / C | Порт номер | S | E | ET | CRC5 | EOP | |
1 = CSPLIT | U | ||||||||||
Биты | 8 | 7 | 1 | 7 | 1 | 1 | 2 | 5 | |||
Сигнал | КДж КДж КДж КК | XXXX XXXX | XXXX XXX | Икс | XXXX XXX | Икс | Икс | XX | XXXXX | SE0 SE0 Дж |
- S / C: Пуск завершен
- 0 = SSPLIT: начать разделенную транзакцию
- 1 = CSPLIT: Завершить разделенную транзакцию
- S: 1 = низкая скорость, 0 = высокая скорость
- E: Конец полной скорости полезной нагрузки
- U: бит U зарезервирован / не используется и должен быть сброшен в ноль (0 B)
- EP: Тип конечной точки (00 = управление), (01 = изохронная), (10 = групповая) и (11 = прерывание)
Пакеты данных [ править ]
Поле | Синхронизировать | PID | ДАННЫЕ | CRC16 | EOP |
---|---|---|---|---|---|
Биты | 8 | 0-8192 | 16 | ||
Сигнал | КДж КДж КДж КК | XXXX XXXX | (XXXX XXXX) × byteCount | ХХХХ ХХХХ ХХХХ ХХХХ | SE0 SE0 Дж |
Пакет данных состоит из PID, за которым следуют 0–1 024 байта полезной нагрузки данных (до 1024 байтов для высокоскоростных устройств, до 64 байтов для полноскоростных устройств и не более восьми байтов для низкоскоростных устройств), [ 14] и 16-битный CRC.
Существует две основных формы пакета данных: DATA0 и DATA1 . Пакету данных всегда должен предшествовать маркер адреса, и обычно за ним следует маркер подтверждения от приемника обратно к передатчику. Два типа пакетов обеспечивают 1-битный порядковый номер, необходимый для ARQ с остановкой и ожиданием . Если USB-хост не получает ответа (например, ACK) на данные, которые он передал, он не знает, были ли данные получены или нет; данные могли быть потеряны при передаче или могли быть получены, но ответ на рукопожатие был утерян.
Чтобы решить эту проблему, устройство отслеживает тип последнего принятого пакета DATAx. Если он получает другой пакет DATAx того же типа, он подтверждается, но игнорируется как дубликат. Фактически принимается только пакет DATAx противоположного типа.
Если данные повреждены во время передачи или приема, проверка CRC не выполняется. Когда это происходит, получатель не генерирует ACK, что заставляет отправителя повторно отправить пакет. [15]
Когда устройство сбрасывается с помощью пакета SETUP, оно ожидает следующего 8-байтового пакета DATA0.
USB 2.0 также добавил типы пакетов DATA2 и MDATA . Они используются только устройствами с высокой пропускной способностью, выполняющими изохронную передачу с высокой пропускной способностью, которая должна передавать более 1024 байтов на микрокадр 125 мкс (8192 кб / с).
Пакет PRE (указывает концентраторам временно переключиться в режим низкой скорости) [ править ]
Концентратор может поддерживать устройства с низкой пропускной способностью, смешанные с другими скоростными устройствами, с помощью специального значения PID, PRE . Это необходимо, поскольку USB-концентратор функционирует как очень простой повторитель, транслирующий сообщение хоста на все подключенные устройства, независимо от того, был ли пакет для него или нет. Это означает, что в среде со смешанной скоростью существует потенциальная опасность того, что низкая скорость может неверно интерпретировать сигнал высокой или полной скорости от хоста.
Чтобы устранить эту опасность, если концентратор USB обнаруживает сочетание высокоскоростных или полноскоростных и низкоскоростных устройств, он по умолчанию отключает связь с низкоскоростным устройством, если только он не получает запрос на переключение в режим низкой скорости. Однако при приеме пакета PRE он временно повторно включает выходной порт для всех низкоскоростных устройств, чтобы хост мог отправить один низкоскоростной пакет низкоскоростным устройствам. После отправки низкоскоростного пакета сигнал конца пакета (EOP) сообщает концентратору снова отключить все выходы на низкоскоростные устройства.
Поскольку все байты PID включают четыре бита 0, они оставляют шину в состоянии K полной полосы пропускания, которое совпадает с состоянием J низкой полосы пропускания. После этого следует короткая пауза, во время которой концентраторы активируют свои выходы с низкой пропускной способностью, уже находящиеся в состоянии ожидания J. Затем следует пакет с низкой пропускной способностью, начиная с последовательности синхронизации и байта PID и заканчивая коротким периодом SE0. Устройства с полной полосой пропускания, отличные от концентраторов, могут просто игнорировать пакет PRE и его содержимое с низкой пропускной способностью до тех пор, пока последний SE0 не укажет, что следует новый пакет.
Преамбула полной скорости, PRE | Настройка концентратора позволяет выводить данные на низкоскоростные устройства. | Пример низкоскоростного пакета | Хаб отключает вывод на низкоскоростные устройства. | |||||||
---|---|---|---|---|---|---|---|---|---|---|
Поле | Синхронизировать | PID (PRE) | Синхронизировать | PID | ADDR | ENDP | CRC5 | EOP | ||
Биты | 8 | 8 | 7 | 4 | 5 | |||||
Сигнал | КДж КДж КДж КК | XXXX XXXX | КДж КДж КДж КК | XXXX XXXX | XXXX XXX | XXXX | XXXXX | 00J |
Транзакция [ править ]
OUT транзакция [ править ]
OUT-транзакция (всего 3 пакета) | |||
---|---|---|---|
Хозяин | Хозяин | Устройство | |
PID пакета | ИЗ | DATAx | ACK |
Тип пакета | Токен | Данные | Рукопожатие |
Описание | Сообщите устройству на ADDRx начать прослушивание входящего пакета данных на конечной точке EPx. | Сообщите USB-устройству данные, которые вы хотите отправить на него. | Устройство сообщает хосту, что оно успешно получило и загрузило полезные данные в буфер EPx. |
В транзакции [ править ]
В транзакции (всего 3 пакета) | |||
---|---|---|---|
Хозяин | Устройство | Хозяин | |
PID пакета | В | DATAx | ACK |
Тип пакета | Токен | Данные | Рукопожатие |
Описание | Сообщите устройству на ADDRx, что нужно отправлять любые данные, которые есть в его буфере конечной точки EPx. | Устройство проверяет свой буфер конечной точки EPx и отправляет запрошенные данные на хост. | Хост сообщает устройству, что он успешно получил полезную нагрузку и загрузил ее в свой буфер EPx. |
НАСТРОЙКА транзакции [ править ]
Это используется для перечисления устройств и управления соединением и сообщает устройству, что хост хотел бы начать обмен передачей управления.
Транзакция SETUP (всего 3 пакета) | |||
---|---|---|---|
Хозяин | Хозяин | Устройство | |
PID пакета | НАСТРАИВАТЬ | ДАННЫЕ0 | ACK |
Тип пакета | Токен | Данные | Рукопожатие |
Описание | Сообщите устройству на ADDRx, что нужно запустить режим настройки и быть готовым к пакету данных. | Отправьте на устройство установочный пакет длиной 8 байтов. | Устройство подтверждает получение данных SETUP и обновляет свой конечный автомат настройки. |
- В зависимости от пакета настройки может возникнуть дополнительный пакет данных от устройства к хосту или от хоста к устройству.
Пакет установки [ править ]
Транзакция установки передает устройству 8-байтовый пакет установки. Пакет настройки кодирует направление и длину любых следующих пакетов данных.
Поле | Компенсировать | Байты | Биты | Описание |
---|---|---|---|---|
bmRequestType | 0 | 1 | 0–4 | Получатель: адресуется программный компонент USB.
|
5–6 | Тип: используется с байтом bRequest
| |||
7 | Направление:
| |||
bRequest | 1 | 1 | Команда настройки: когда Recipient = 0 (Device) и Type = 0 (Standard), определенные запросы:
| |
wValue | 2 | 2 | Значение параметра: интерпретация зависит от bRequest | |
wIndex | 4 | 2 | Вторичный параметр: указывает интерфейс или конечную точку, к которой адресован этот запрос. Для строковых дескрипторов (Recipient = Device) это код языка. | |
wLength | 6 | 2 | Длина передачи данных: количество байтов, которые должны быть переданы после пакета настройки. |
Обмен управления передачей [ править ]
Обмен передачей управления состоит из трех отдельных этапов:
- Этап настройки: это команда настройки, отправляемая хостом устройству.
- Этап данных (необязательно): устройство может дополнительно отправлять данные в ответ на запрос настройки.
- Этап состояния: фиктивная транзакция IN или OUT, которая, вероятно, предназначена для индикации окончания обмена передачей управления.
Это позволяет хосту выполнять действия по управлению шиной, такие как перечисление новых USB-устройств посредством извлечения дескрипторов новых устройств . Получение дескрипторов устройства, в частности, позволит определить класс USB, VID и PID, которые часто используются для определения правильного драйвера USB для устройства.
Кроме того, после получения дескриптора устройства хост выполняет другой обмен передачей управления, но вместо этого устанавливает адрес USB-устройства на новый ADDRx.
Ссылки [ править ]
- ^ a b «Настоящая сделка с USB 2.0» , News & Trends, PC World , 28 февраля 2002 г., заархивировано из оригинала 5 декабря 2010 г.
- ^ a b «Сверхпортативный Seagate FreeAgent GoFlex» (обзор). CNet. Архивировано 14 апреля 2011 года . Проверено 22 мая 2011 года .
- ^ Шварц, Роде (2012-05-25). «Тестирование по маске USB 2.0» (PDF) . Проверено 12 июля 2012 . [ постоянная мертвая ссылка ]
- ^ "NEC готова попробовать первый в мире чип контроллера USB 3.0" . Архивировано 23 мая 2009 года . Проверено 15 июня 2009 года .
- ^ "Когда продукты USB 3.0 появятся на рынке?" . Архивировано 30 апреля 2009 года . Проверено 11 мая 2009 года .
- ^ «Мышиные вещи, о которых вам следует знать», Городской террор , 9 августа 2008 г., архивировано с оригинала 11 октября 2014 г.
- ↑ OS dev - Universal Serial Bus , 1 февраля 2011 г., архивировано 5 сентября 2012 г.
- ^ «USB в ореховой скорлупе - Глава 2 - Оборудование» . Помимо Logic.org. Архивировано 20 августа 2007 года . Проверено 25 августа 2007 года .
- ^ «Технические характеристики кабелей USB 3.0 SuperSpeed» . Архивировано 14 апреля 2011 года. 100717 usb3.com
- ^ a b «Спецификация универсальной последовательной шины 3.0, версия 1.0, 12 ноября 2008 г.» (PDF) . Архивировано 13 ноября 2013 года (PDF) . 100717 usb3.com
- ^ a b «USB Made Simple, Часть 3. Поток данных» . usbmadesimple.co.uk . 2008. Архивировано 5 октября 2014 года . Проверено 17 августа 2014 .
- ^ a b «USB в ореховой скорлупе, Глава 3. Протоколы USB» . Beyondlogic.org . 17 сентября 2010. Архивировано 5 августа 2014 года . Проверено 17 августа 2014 .
- ^ «Часть 7, Высокоскоростные транзакции: протокол Ping» . usbmadesimple.co.uk . 2008. Архивировано 3 октября 2014 года . Проверено 16 августа 2014 года .
- ^ «USB в ореховой скорлупе» . Глава 4 - Типы конечных точек. Архивировано 2 сентября 2014 года . Проверено 5 сентября 2014 года .
- ^ «Отладка распространенных проблем с USB» . Архивировано из оригинального 15 июня 2013 года . Проверено 5 июня 2013 года .