Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Сигнализация (USB PHY) [ править ]

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

Теоретическая максимальная скорость передачи данных в 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-, при этом выход передатчика на хосте и устройстве настроен на высокий импеданс (hi-Z) (отключенный выход).
  • Устройство USB подтягивает одну из линий данных к высокому уровню с помощью резистора 1,5 кОм. Это пересиливает один из спускающегося резисторов хозяина и листьев линии данных в неактивном состоянии , называемом J .
  • Для USB 1.x выбор линии передачи данных указывает, на какую скорость передачи сигнала способно устройство:
    • устройства с полной пропускной способностью вытягивают D + высоко,
    • устройства с низкой пропускной способностью вытягивают D− высоко.
  • Состояние K имеет противоположную полярность по сравнению с состоянием J.

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

Передача [ править ]

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

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

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

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

Пример пакета отрицательного подтверждения, передаваемого полноскоростным устройством 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.

Согласование на высокой скорости [ править ]

Специальный протокол во время сброса, называемый чириканьем, используется для согласования высокоскоростного режима с хостом или концентратором. Устройство, которое поддерживает высокую скорость, сначала подключается как полноскоростное устройство (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 может потребовать вставки битов в первые несколько биты полезной нагрузки.)

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

Пакеты рукопожатия [ править ]

Пакеты подтверждения состоят только из одного байта 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 [ править ]

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

SOF: начало кадра [ править ]

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

SSPLIT и CSPLIT: начальная разделенная транзакция и завершенная разделенная транзакция [ править ]

  • S / C: Пуск завершен
    • 0 = SSPLIT: начать разделенную транзакцию
    • 1 = CSPLIT: Завершить разделенную транзакцию
  • S: 1 = низкая скорость, 0 = высокая скорость
  • E: Конец полной скорости полезной нагрузки
  • U: бит U зарезервирован / не используется и должен быть сброшен в ноль (0 B)
  • EP: Тип конечной точки (00 = управление), (01 = изохронная), (10 = групповая) и (11 = прерывание)

Пакеты данных [ править ]

Пакет данных состоит из 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 не укажет, что следует новый пакет.

Транзакция [ править ]

OUT транзакция [ править ]

В транзакции [ править ]

НАСТРОЙКА транзакции [ править ]

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

  • В зависимости от пакета настройки может возникнуть дополнительный пакет данных от устройства к хосту или от хоста к устройству.

Пакет установки [ править ]

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

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

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

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

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

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

Ссылки [ править ]

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