Введение в протокол USB-шина-USB (1)
Введение в протокол USB-шина-USB (1)

1. Введение

USB — это аббревиатура Universal Serial Bus. До появления шины USB компьютеры и клавиатуры, мыши, сканеры и принтеры использовали выделенные интерфейсы для подключения. Интерфейсы различных устройств нельзя было использовать взаимозаменяемо, а масштабируемость была очень плохой каждый раз, когда устройство подключалось или подключалось. при отключении от сети компьютер пришлось выключить, горячее подключение не поддерживалось, а скорость связи была очень низкой. Для решения вышеперечисленных проблем и родилась шина USB. Шина USB похожа на трубу. Пока все, что течет по трубе, соответствует протоколу USB, шина USB не заботится о том, что конкретно течет. Это может быть водопроводная вода, сточные воды, природный газ или нефть. В зависимости от конкретного устройства, если оно поддерживает протокол USB, его можно подключить к компьютеру, например, к USB-клавиатуре, USB-мыши, USB-камере, USB-динамику и т. д. Появление USB упрощает соединение между компьютерами и периферийными устройствами, повышает масштабируемость, поддерживает горячую замену и обеспечивает высокую скорость связи.

2. Версия протокола USB

С момента появления протокола USB появилось несколько версий протокола USB, например USB1.0, USB1.1, USB2.0, USB3.0, USB3.1 и USB3.2. Последним является протокол USB4.0, который можно напрямую подключить к шине PCIe процессора. Максимальная скорость может достигать 40 Гбит/с. Он использует интерфейс Type-C и совместим с видеопротоколом DP, протоколом быстрой зарядки PD и т. д. ., и поддерживает блок питания мощностью до 100 Вт.

Версия протокола USB

Название скорости

максимальная ставка

источник питания

тип

Время запуска

USB1.0

Низкоскоростной

1.5Mbps

5V/500mA

полудуплекс

Январь 1996 г.

USB1.1

Полноскоростной

12Mbps

5V/500mA

полудуплекс

сентябрь 1998 г.

USB2.0

Высокоскоростной

480Mbps

5V/500mA

полудуплекс

апрель 2000 г.

USB3.0(USB3.2 Gen1)

Суперскоростной USB

5Gbps

5V/900mA

полный дуплекс

ноябрь 2008 г.

USB3.1(USB3.2 Gen2)

SuperSpeed USB 10Gbps

10Gbps

20V/5A

полный дуплекс

июль 2013 г.

USB3.2(USB3.2 Gen2×2)

SuperSpeed USB 20Gps

20Gbps

20V/5A

dual-lane

Сентябрь 2017 г.

USB4.0(Gen3×2)

----

40Gb s

100

однополосный или двухполосный, совместимый с Thunderbolt

август 2019 г.

Примечание. Когда был запущен USB3.2, USB-IF объявил о новой спецификации именования, переименовав USB3.0 в USB3.2 Gen1, USB3.1 в USB3.2 Gen2 и сможет использовать два USB Type-C Rx/ Вывод Tx USB3.2 переименован в USB3.2 Gen2×2.

На рисунке ниже (источник этого изображения не найден) показаны логотипы и интерфейсы, используемые различными версиями протокола USB. После USB3.2 используются только интерфейсы Type-C, включая USB4.0 и Thunderbolt3. не показано на картинке.

На рисунке ниже показан логотип, используемый протоколом USB3.2. Этот логотип является последней версией на веб-сайте USB-IF.

На рисунке ниже показан символ, используемый протоколом USB4.0. USB4.0 использует полосу Gen3, однополосная может достигать 20 Гбит/с, а двухполосная — 40 Гбит/с. USB4™ 20 Гбит/с использует одну линию, USB4™ 40 Гбит/с использует две линии.

3. Характеристики шины USB

3.1.Режим «главный-подчиненный»

USB — это шина в режиме «ведущий-подчиненный». Хост называется «Хост», а ведомое устройство (также называемое «устройство») — «Устройство». Между ведомыми устройствами и ведомыми устройствами или между хостами нет соединения (за исключением USB4.0). Каждый обмен данными инициируется хостом. Подчиненный не может активно инициировать обмен данными и может только пассивно отвечать на запрос хоста. Благодаря протоколу USB USB3.0 и более поздних версий хост также может взаимодействовать с концентратором (концентратором). Для повышения гибкости появился USB OTG (On The Go). USB OTG поддерживает переключение между главным и подчиненным устройствами. Одно и то же устройство может переключаться между хостом и подчиненным в разных случаях. Линия USB ID добавляется к линии USB OTG. Когда линия USB ID подтянута, она находится в режиме подчиненного устройства (устройства). Когда линия USB ID заземлена, она находится в режиме хоста.

3.2.Структура шины

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

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

На рисунке ниже представлена ​​принципиальная схема кабеля USB3.2.,Также совместим с USB2.0. USB использует данные дифференциальной сигнализации,D+ и D- на рисунке ниже представляют собой пару дифференциальных линий.,SSTX+ и SSTX- — пара дифференциальных линий.,SSRX+ и SSRX- представляют собой пару дифференциальных линий. USB2.0 имеет только одну пару дифференциальных линий.,То есть D+ и D- на рисунке ниже.,Поэтому USB2.0 является полудуплексным.,Невозможно отправлять и получать данные одновременно. USB3.2 имеет две пары дифференциальных линий.,То есть SSTX+ и SSTX и SSRX+ и SSRX.,Поэтому USB3.2 является полным дуплексом.,Может отправлять и получать сообщения одновременно. USB3.2 и USB2.0 используют разные дифференциальные линии для передачи данных.,Эти двое не мешают друг другу,Может работать одновременно. Канал передачи данных USB2.0 сохраняется в кабеле USB3.2.,Достигнута совместимость с USB2.0. USB Хозяин может обеспечить питание оборудования по линии VBUS,Максимальная мощность составляет 20 В/5 А. GND — это заземляющий провод.

На рисунке ниже показано поперечное сечение кабеля USB3.2. Красная линия питания — это VBUS, зеленая и серая UTP — это D+ и D-, а две пары голубых дифференциальных линий — это SSRX+, SSRX, SSTX+ и SSTX. Черный — это земля. Помимо этого, есть оплетка и экранирование.

4.Основы передачи данных через USB

4.1.Тип трансмиссии

Контрольная транзакция Передача управления используется для настройки устройства, получения информации об устройстве, отправки команд на устройство и получения статуса устройства. Каждое USB-устройство имеет конечную точку управления в конечной точке 0. Когда USB-устройство вставляется в топологическую сеть USB-хоста, USB-хост связывается с USB-устройством через конечную точку 0 и настраивает USB-устройство для облегчения последующей передачи данных. Протокол USB обеспечивает достаточную пропускную способность для передачи управления. Передача управления надежна и время гарантировано, но объем передаваемых данных невелик. Например, процесс перечисления USB-устройств использует передачу управления. Прервать транзакцию Когда USB-хост запрашивает USB-устройство для передачи данных, прерывание передачи передает небольшой объем данных с фиксированной скоростью. Метод передачи данных конечной точки прерывания — передача данных по прерыванию. Передача данных надежна и имеет высокую производительность в реальном времени. Прерывание здесь не является прерыванием, генерируемым USB-устройством, но USB-хост активно запрашивает USB-устройство каждый фиксированный момент времени. есть ли данные для передачи, и выполняется по очереди. Метод запроса повышает производительность в реальном времени. Например, USB-мышь использует передачу с прерыванием. Массовая транзакция Массовая передача используется для передачи больших объемов данных. Протокол USB не гарантирует, что передача данных может быть завершена в течение определенного времени, но гарантирует точность данных. Если пропускной способности шины недостаточно для отправки всего пакетного пакета, данные для передачи разбиваются на несколько пакетов. Пакетная передача данных надежна, но производительность в реальном времени низкая. Такие устройства, как жесткие диски USB и принтеры, используют пакетную передачу. Изохронная транзакция Изохронная передача также может передавать большие объемы данных, но надежность данных не может быть гарантирована. USB-устройства, использующие изохронную передачу, уделяют больше внимания поддержанию постоянной скорости передачи данных и не предъявляют высоких требований к надежности данных. Например, USB-камеры используют изохронную передачу.

4.2.Элементы трансмиссии

Хост-контроллер USB 2.0 управляет передачей, разделяя время на кадры шириной 1 миллисекунду в низкоскоростном и полноскоростном режимах и на микрокадры шириной 125 микросекунд в высокоскоростном режиме. Главный контроллер выделяет части каждого кадра или микрокадра для отдельных передач. Каждый кадр (или микрокадр) начинается с начала кадра (SOF) с привязкой по времени. Шина SuperSpeed ​​не использует SOF, но хост-контроллер все равно может планировать передачи SuperSpeed ​​в пределах времени шины 125 микросекунд.

Передачу через USB можно запланировать в виде 1 или нескольких кадров или микрокадров.,Каждый перевод содержит несколько транзакций,Каждая транзакция дополнительно содержит несколько пакетов. Пакеты должны передаваться в пределах кадра или микрокадра.,Невозможно объединить кадры или микрокадры. Информационные пакеты разделены на 4 категории,жетон пакет информации о классе подтверждение тип транзакции,Пакет информации о классе данных содержит данные и код состояния.,Пакет информации о классе рукопожатия содержит код состояния,Последний — это информационный пакет особого типа.

Передача через USB состоит из одной или нескольких транзакций, которые загружают данные в конечную точку или из нее. Транзакция USB 2.0 начинается с пакета токена, отправленного хостом по шине. пакет). Информация токена содержит номер целевой конечной точки и направление. Пакет токена IN представляет собой пакет данных, запрашивающий конечную точку. Пакет токена OUT — это предварительная информация для пакета данных, отправленного хостом. Помимо данных, каждый пакет также содержит биты проверки ошибок и идентификатор пакета (PID) со значением последовательности данных. Многие транзакции также имеют пакеты подтверждения. packet),Он используется получателем данных для сообщения об успехе или неудаче транзакции. Для сверхвысокоскоростных переводов,Информационные пакеты и протоколы разные,Но он содержит тот же адрес, проверку ошибок и значения последовательности данных, соответствующие данным.

Информационный пакет

PID-имя

Значение (двоичное)

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

источник

иллюстрировать

жетон

OUT

0001

все

Хозяин

Адреса устройств и конечных точек, необходимые для транзакций IN.

жетон

IN

1001

все

Хозяин

Адреса устройств и конечных точек, необходимые для транзакций IN.

жетон

SOF

0101

начало кадра

Хозяин

Идентификатор SOF и номер кадра

жетон

SETUP

1101

контроль

Хозяин

Адреса устройств и конечных точек, используемые для транзакций установки.

данные

DATA0

0011

все

Хозяин、оборудование

данные Альтернативный илиданныеPIDпоследовательность

данные

DATA1

1011

все

Хозяин、оборудование

данные Альтернативный илиданныеPIDпоследовательность

данные

DATA2

0111

Ожидающий

Хозяин、оборудование

данныеPIDпоследовательность

данные

MDATA

1111

Ожидающий、разделенная транзакция

Хозяин、оборудование

данныеPIDпоследовательность

рукопожатие

ACK

0010

контроль、партия、прерывать

Хозяин、оборудование

Принимающая сторона получает правильный пакет информации о данных.

рукопожатие

NAK

1010

контроль、партия、прерывать

оборудование

Принимающая сторона не может получить данные,Или метод отправителя никто для отправки данных или никто данные для отправки

рукопожатие

STALL

1110

контроль、партия、прерывать

оборудование

контроль Запрос не поддерживается иликонечная точкаостановился

рукопожатие

NYET

0110

контроль Писать、партия、OUT、разделенная транзакция

оборудование

Правильно получен пакет информации о данных,Но пока не готов к следующему,Или центр не завершил разделение информационного пакета данных.

особенный

PRE

1100

контроль、прерывать

Хозяин

Предварительный сигнал от Хозяина

особенный

ERR

1100

все

центр

Ошибка возвращена центром

особенный

SPLIT

1000

все

Хозяин

разделенная транзакция

особенный

PING 0100

контроль Писать、партия、OUT

Хозяин

ПИН-тест

особенный

EXT

0000

никто

Хозяин

расширение, не используется

4.2.Разница

С точки зрения структуры SuperSpeed ​​обратно совместим с USB2.0, но между ними существуют некоторые существенные различия в протоколах. Основные различия заключаются в следующем:

  • Информационные пакеты USB2.0 делятся на жетон, данные и рукопожатие.,Сверхвысокая скорость также является одним из этих трех типов.,Но использование отличается; пакет сверхвысокоскоростных жетонов интегрирован в пакет заголовка и DPH.,Все виды рукопожатий представлены в виде пакетов TP для OUT-транзакций;,жетон был объединен с пакетом данных для транзакций IN;,жетон заменен на сумку для рукопожатия
  • USB2.0 не поддерживает пакетную передачу. Сверхвысокая скорость поддерживает непрерывную пакетную передачу. В одном микрокадре может передаваться до 16 информационных пакетов.
  • USB2.0 — полудуплексная (полудуплексная) шина.,Сверхвысокая скорость – это полнодуплексная (двойная симплексная) шина.,Поддержка отправки и получения сообщений одновременно
  • USB2.0 использует режим опроса, SuperSpeed ​​использует асинхронный метод уведомления.
  • USB2.0 не поддерживает возможности потоковой передачи, но SuperSpeed ​​поддерживает режим потоковой передачи массовых конечных точек.
  • USB2.0 не имеет механизма перехода в режим пониженного энергопотребления в течение изохронного интервала.,Сверхвысокая скорость позволяет синхронной передаче автоматически переходить в режим пониженного энергопотребления во время сервисного интервала (переход в режим пониженного энергопотребления в периоды необслуживания сверхскоростной сервер Хозяинконтрол отправляет оборудованию PING-пакет перед началом обслуживания); интервал.,чтобы оборудование стало активным перед передачей
  • Метод оборудования USB 2.0 уведомляет устройство Хозяинконтроля о времени задержки, которое оно может выдержать перед переходом в состояние низкого энергопотребления (обору Максимальное время задержки дования для уведомления Хозяина о переходе в режим пониженного энергопотребления), а сверхбыстрое оборудование обеспечивает терпимое время задержки (Latency Толерантность) сообщение
  • USB2.0 передает кадры/микрокадры с фиксированным интервалом 1 мс (полная скорость)/125 мкс (высокая скорость). Сверхвысокоскоростное оборудование может отправить Хозяину сообщение о настройке интервала для настройки интервала кадров.
  • USB2.0источник управление питанием всегда ориентировано на Хозяин (инициализация Хозяина поддерживается на обоих концах сверхбыстрого канала); питанияуправлять,Поэтому всякий раз, когда вам нужно свободное время,Нужно выйти,Нужно общение,Каждое звено может независимо переходить в состояние пониженного энергопотребления.
  • Информационный пакет USB2.0 находится в режиме широковещательной передачи.,Оборудование каждого соединения анализирует адрес, конечную точку и информацию о направлении каждого пакета, чтобы решить, следует ли ему отвечать на сверхвысокоскоростные пакеты с информацией о маршрутизации;,HUB решает, на какое оборудование следует доставить информационный пакет.,за одним исключением,Ожидающий Пакет временных меток(Isochronous Timestamp Пакетная, ITP) трансляция на каждое оборудование
boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода