Скорости USB 2.0: Low, Full и High Speed
Под одной маркой USB 2.0 скрываются три скорости, которые отличаются в 320 раз. Хост узнаёт скорость устройства не из дескриптора, а электрически: по тому, какая линия данных подтянута, и по особой последовательности сигналов во время сброса.
Обновлено Редакция GAW
Скорости USB 2.0 — три режима передачи по одной паре D+ и D−: Low Speed 1,5 Мбит/с, Full Speed 12 Мбит/с и High Speed 480 Мбит/с. Спецификация USB 2.0 охватывает все три, поэтому надпись «USB 2.0» в описании микросхемы скорость не определяет: у STM32F103 по даташиту DS5319 и у контроллера OTG_FS в STM32F4 по RM0090 встроенный USB — Full Speed. От скорости зависят наибольшие размеры пакетов в разных типах передач, допустимое время фронтов и способ, которым хаб узнаёт устройство.
Скорости и допуски
| Режим | Скорость, разд. 7.1.11 | Допуск | Как устройство заявляет скорость |
|---|---|---|---|
| Low Speed | 1,5 Мбит/с | ±1,5 % (15 000 ppm) | подтяжка 1,5 кОм на D− |
| Full Speed | 12 Мбит/с | ±0,25 % (2 500 ppm) | подтяжка 1,5 кОм на D+ |
| High Speed | 480 Мбит/с | ±500 ppm | подключается как Full Speed, затем chirp-рукопожатие |
Допуск Low Speed спецификация прямо объясняет желанием разрешить дешёвые керамические резонаторы. Full Speed требует частоты в шесть раз точнее (свой расчёт: 1,5 % / 0,25 %). Каждый кадр длится 1,000 мс, у High Speed он разбит на восемь микрокадров по 125 мкс (разд. 7.1.12). Биты на линии во всех режимах кодируются NRZI с вставкой битов.
Как хаб узнаёт скорость
Low и Full Speed различаются по подтягивающему резистору: у Full Speed он на D+, у Low Speed — на D− (разд. 7.1.5.1). Хаб видит, какая линия поднялась при подключении, и сообщает хосту.
High Speed электрически другой режим: каждая линия нагружена оконечным резистором 45 Ом на землю, дифференциально 90 Ом (разд. 7.1.6). Устройство с High Speed сначала подключается как Full Speed, а договаривается о высокой скорости во время сброса (разд. 7.1.7.5):
- Хаб держит на линии SE0 — сброс длительностью не меньше 10 мс.
- Устройство выдаёт chirp K: не короче 1,0 мс и с окончанием не позже 7,0 мс от начала сброса.
- Хаб с поддержкой High Speed отвечает чередованием chirp K и chirp J по 40–60 мкс.
- Увидев K-J-K-J-K-J, устройство не позже чем через 500 мкс снимает подтяжку D+, включает оконечные резисторы и переходит в High Speed.
- Если ответа нет 1,0–2,5 мс, устройство остаётся на Full Speed — так High Speed-устройство работает и в старом хабе.
Устройство Low Speed поддерживать High Speed не может, и с ним хаб рукопожатие не проводит. После того как скорость установлена, начинается перечисление.
В микроконтроллерах
Встроенный USB многих микроконтроллеров — Full Speed: у STM32F103 интерфейс USB 2.0 полноскоростной по даташиту DS5319, у STM32F4 по RM0090 полноскоростной физический уровень у контроллера OTG_FS. Для 480 Мбит/с нужен контроллер High Speed со встроенным или внешним физическим уровнем. Требования к фронтам Low и Full Speed — в термине время нарастания, а разъёмы, питание и разводка — в статье об USB.
Частые вопросы
Чем Full Speed отличается от High Speed?
Скоростью в 40 раз: 12 и 480 Мбит/с. Устройство Full Speed подтягивает D+ резистором 1,5 кОм и передаёт сигналы с высоким уровнем не ниже 2,8 В. High Speed использует другую сигнализацию — с оконечными резисторами 45 Ом на каждой линии, — а устройство переходит на неё после рукопожатия во время сброса. «USB 2.0» в описании платы не означает High Speed: у STM32F103 и у контроллера OTG_FS в STM32F4, например, встроенный USB — Full Speed.
Почему для Low Speed хватает резонатора, а для Full Speed обычно нужен кварц?
Из-за допуска на частоту. Спецификация USB 2.0 разрешает устройству Low Speed отклонение скорости ±1,5 %, и сама называет это поводом использовать дешёвые резонаторы. У Full Speed допуск ±0,25 %, у High Speed — ±500 ppm. Требование к Full Speed в шесть раз строже, чем к Low Speed (свой расчёт: 1,5 % / 0,25 %), и тактовый генератор устройства выбирают с запасом под этот допуск. Кварц — не единственный путь: у STM32F04x, F07x и F09x блок CRS подстраивает внутренний RC-генератор HSI48 по пакетам SOF, которые хост шлёт каждую миллисекунду, и Full Speed работает без внешнего кварца (RM0091).
Как хост узнаёт, что устройство поддерживает High Speed?
Во время сброса. Устройство сначала подключается как Full Speed, а когда хаб держит на линии сброс, выдаёт сигнал chirp K длительностью не меньше 1 мс (TUCH), который должен закончиться не позже чем через 7 мс после начала сброса (TUCHEND, разд. 7.1.7.5). Хаб с поддержкой High Speed отвечает чередованием chirp K и J по 40–60 мкс. Увидев K-J-K-J-K-J, устройство не позже чем через 500 мкс снимает подтяжку D+ и включает оконечные резисторы 480 Мбит/с.
Источники
- USB Implementers Forum. Universal Serial Bus Specification, Revision 2.0 (April 27, 2000) — разд. 7.1.11: High Speed 480,00 Мбит/с с точностью ±500 ppm, у хостов, хабов и устройств с High Speed точность ±0,05 % на любой скорости; Full Speed 12,000 Мбит/с ±0,25 % (2 500 ppm); Low Speed 1,50 Мбит/с ±1,5 % (15 000 ppm), что позволяет керамические резонаторы; разд. 7.1.1: высокий уровень драйвера Low и Full Speed не ниже VOH (min) 2,8 В; разд. 7.1.5.1: Full Speed — подтяжка на D+, Low Speed — на D−; разд. 7.1.5.2: устройство High Speed подключается как Full Speed; разд. 7.1.6: оконечные резисторы High Speed 45 Ом на линию, 90 Ом дифференциально; разд. 7.1.7.5: сброс SE0 не меньше 10 мс; устройство Low Speed не может поддерживать High Speed; chirp K устройства 1,0–7,0 мс (TUCH, TUCHEND), хаб отвечает чередованием chirp K и J по 40–60 мкс (TDCHBIT); увидев K-J-K-J-K-J, устройство не позже 500 мкс (TWTHS) снимает подтяжку D+ и включает оконечные резисторы; без ответа хаба через 1,0–2,5 мс (TWTFS) остаётся на Full Speed; разд. 7.1.12: кадр 1,000 мс, микрокадр High Speed 125 мкс
- STMicroelectronics. RM0090 Reference manual STM32F405/415, F407/417, F427/437, F429/439, Rev 21 (June 2024) — разд. 34.3.3: встроенный PHY контроллера OTG_FS — Full Speed (полноскоростной PHY OTG), подтяжки DP/DM встроены
- STMicroelectronics. DS5319 STM32F103x8, STM32F103xB datasheet, Rev 20 (July 2025) — Features: интерфейс USB 2.0 Full Speed; табл. 45: для соответствия USB 2.0 Full Speed D+ подтягивают 1,5 кОм к 3,0–3,6 В
- STMicroelectronics. RM0091 Reference manual STM32F0x1/STM32F0x2/STM32F0x8, Rev 10 — разд. 6.2 и 7: у STM32F04x, F07x и F09x есть RC-генератор HSI48 на 48 МГц и блок CRS, который подстраивает его частоту по пакетам начала кадра (SOF), приходящим от хоста каждую миллисекунду; так USB Full Speed работает без внешнего кварца
Нашли ошибку?
Смотрите также
- USBСкорости, распиновка Type-A, Micro-B и Type-C, питание, CC, USB PD
- Подтягивающий резистор USB1,5 кОм на D+ или D−, 15 кОм у хоста: подключение и скорость устройства
- Перечисление USB (enumeration)Сброс, адрес, дескрипторы, конфигурация
- Типы передач USBУправляющие, прерывания, bulk и изохронные
- NRZIКодирование USB: ноль — смена уровня, единица — без смены
- Время нарастания (rise time)Длительность фронта между двумя порогами