Что такое USB
USB (Universal Serial Bus) — универсальная последовательная шина, ставшая стандартом подключения периферии к компьютеру: от флешек и мышей до модулей связи и измерительных приборов. USB сложнее UART или SPI, но даёт «горячее» подключение, питание устройств и высокую скорость. Подробное описание — на странице USB.
Версии и скорости
| Версия | Скорость |
|---|---|
| USB 1.1 Low/Full Speed | 1,5 / 12 Мбит/с |
| USB 2.0 High Speed | 480 Мбит/с |
| USB 3.x SuperSpeed | 5…20 Гбит/с |
Физика и логика
Данные передаются дифференциальной парой (D+/D−), что обеспечивает помехоустойчивость; ещё две линии — питание +5 В и земля (в USB 3.x добавлены скоростные пары). Топология — «звезда» с хостом во главе: хост (ПК) управляет обменом, устройства отвечают. При подключении хост опрашивает устройство и читает его дескрипторы — описание, кто это и как с ним работать.
Классы устройств
Стандартные классы позволяют работать без своих драйверов: HID (мыши, клавиатуры), CDC (виртуальный COM-порт — популярен у МК), Mass Storage (накопители), Audio, Video. Микроконтроллеры с USB (или мосты USB-UART) чаще всего используют класс CDC, чтобы «прикинуться» последовательным портом для ПК.
Частые вопросы
Почему USB сложнее UART?
USB — это целый стек: дифференциальная сигнализация, дескрипторы, перечисление устройств, классы, пакетный протокол. Зато он даёт скорость, питание, «горячее» подключение и работу без ручной настройки скорости, как в UART.
Как проще всего подключить МК к USB?
Через мост USB-UART (CP2102, CH340, FT232): МК работает по обычному UART, а мост превращает его в USB-устройство класса CDC. Либо взять МК со встроенным USB и реализовать класс CDC.
Итоги
USB — универсальная скоростная шина с хостом во главе, дифференциальной парой данных, питанием и системой классов, позволяющей работать без своих драйверов. Для МК простейший путь в USB — мост USB-UART или встроенный USB с классом CDC (виртуальный COM-порт).
Смотрите также: USB (подробно) · UART · Ethernet для МК · Распиновки.