Система USB имеет асимметричный дизайн. Она состоит из хоста, нескольких последующих USB-портов и нескольких периферийных устройств, подключенных по топологии "звезда". Дополнительные USB-концентраторы могут быть включены в ярусы, что позволяет ветвиться в древовидную структуру с пятиуровневой структурой.
USB-хост может иметь несколько контроллеров. Каждый контроллер хоста обеспечивает один или несколько USB-портов. К одному контроллеру хоста можно подключить до 127 устройств, включая устройства-концентраторы.
USB-устройства соединены последовательно через концентраторы. Всегда есть один хаб, известный как корневой. Корневой хаб встроен в контроллер хоста. Существуют специальные хабы, называемые "общими хабами". Они позволяют нескольким компьютерам получать доступ к одним и тем же периферийным устройствам. Они работают путем переключения доступа между ПК, вручную или автоматически. Они популярны в средах малых офисов. С точки зрения сети, они скорее сходятся, чем расходятся.
Физическое USB-устройство может иметь несколько логических под-устройств, которые называются функциями устройства. Одно устройство может выполнять несколько функций, например, веб-камера (функция видеоустройства) со встроенным микрофоном (функция аудиоустройства).
Связь устройства USB основана на трубах (логических каналах). Трубы - это соединения от контроллера хоста к логическому объекту на устройстве с именем конечной точки. Иногда термин конечная точка используется для неправильного обозначения трубы. USB-устройство может иметь до 32 активных труб, 16 в хост-контроллер и 16 из контроллера.
Каждая конечная точка может передавать данные только в одном направлении, в устройство или из устройства, поэтому каждая труба является однонаправленной. Конечные точки сгруппированы в интерфейсы, и каждый интерфейс связан с одной функцией устройства. Исключением является ноль конечных точек, который используется для конфигурации устройства и не связан ни с каким интерфейсом.
При первом подключении USB-устройства к USB-хосту запускается процесс перечисления USB-устройств. Перечисление начинается с отправки сигнала сброса на USB-устройство. Скорость USB-устройства определяется во время подачи сигнала сброса. После сброса информация об устройстве USB считывается хостом, затем устройству присваивается уникальный 7-битный адрес. Если устройство поддерживается хостом, загружаются драйверы устройства, необходимые для связи с устройством, и устройство устанавливается в настроенное состояние. Если хост USB перезагружается, процесс перечисления повторяется для всех подключенных устройств.
Контроллер хоста опрашивает шину на предмет трафика, обычно в круглосуточном режиме, поэтому ни одно USB-устройство не может передавать данные на шину без явного запроса от контроллера хоста.
Контроллеры хостов
Аппаратное обеспечение компьютера, содержащее контроллер хоста и корневой хаб, имеет интерфейс для программиста. Он называется Host Controller Device (HCD) и определяется аппаратным исполнителем.
Для USB 1.0 и 1.1 существовало две различные реализации HCD: Open Host Controller Interface (OHCI) и Universal Host Controller Interface (UHCI). OHCI был разработан компаниями Compaq, Microsoft и National Semiconductor, UHCI - компанией Intel.
Компания VIA Technologies лицензировала стандарт UHCI от Intel; все остальные реализаторы наборов микросхем используют OHCI. UHCI больше полагается на программное обеспечение. Это означает, что UHCI немного более ресурсоемкий процессор, чем OHCI, но более простой и дешевый. Потому что существовало две различные реализации, производители операционных систем и аппаратного обеспечения должны были разработать и протестировать обе. Это увеличило стоимость.
Спецификация USB не указывает интерфейсы HCD и не имеет к ним никакого отношения. Другими словами, USB определяет формат передачи данных через порт, а не систему, с помощью которой аппаратное обеспечение USB взаимодействует с компьютером, на котором он установлен.
На этапе проектирования USB 2.0, USB-IF настаивал на том, что существует только одна реализация. Реализация USB 2.0 HCD называется Enhanced Host Controller Interface (EHCI). Только EHCI может поддерживать высокоскоростную передачу данных (480 Мбит/с). Большинство EHCI-контроллеров, основанных на PCI, имеют другие HCD реализации, называемые 'companion host controller' для поддержки Full Speed (12 Мбит/с) и могут использоваться для любого устройства, которое утверждает, что является членом определенного класса. Предполагается, что операционная система реализует все классы устройств, поэтому она может предоставлять общие драйверы для любого USB устройства. Решение по классам устройств принимается рабочей группой по устройствам форума исполнителей USB.
классы USB-устройств
Классы по приборам включают в себя:
| Класс | Использование | Описание | Примеры |
| 00h | Устройство | Неопределенный класс 0 | (Класс устройства не определен. Для определения необходимых драйверов используются дескрипторы интерфейса). |
| 01h | Интерфейс | Аудио | Спикер, микрофон, звуковая карта |
| 02h | Оба | Коммуникации и CDC Контроль | Ethernet-адаптер, модем, адаптер последовательного порта |
| 03h | Интерфейс | Устройство сопряжения с человеком (HID) | Клавиатура, мышь, джойстик |
| 05h | Интерфейс | Устройство физического интерфейса (PID) | Джойстик обратной связи по усилию |
| 06h | Интерфейс | Изображение | Цифровой фотоаппарат (Большинство камер функционирует как Массовое хранилище для прямого доступа к носителям информации). |
| 07h | Интерфейс | Принтер | Лазерный принтер, струйный принтер |
| 08h | Интерфейс | Массовое хранение | USB флэш-накопитель, кард-ридер флэш-памяти, цифровой аудио проигрыватель, внешние диски |
| 09h | Устройство | USB-концентратор | Полноскоростной концентратор, высокоскоростной концентратор |
| 0А | Интерфейс | CDC-Data | (Этот класс используется вместе с классом 02h - Коммуникации и CDC Control). |
| 0Bh | Интерфейс | Смарт-карта | USB-считыватель смарт-карт |
| 0Dh | Интерфейс | Безопасность содержимого | - |
| 0Эх | Интерфейс | Видео | Веб-камера |
| 0Fh | Интерфейс | Персональное здравоохранение | - |
| DCh | Оба | Диагностическое устройство | устройство проверки соответствия USB |
| Э0х | Интерфейс | Беспроводной контроллер | адаптер Wi-Fi, адаптер Bluetooth |
| ЭФ | Оба | Разное | Устройство синхронизации ActiveSync и Palm |
| ФЕХ | Интерфейс | Специфика применения | мост Ирда |
| ФФх | Оба | Конкретный поставщик | (Код этого класса указывает на то, что устройству нужны драйверы, специфичные для производителя). |
Примечание Класс 0: Используйте информацию о классе в дескрипторах интерфейсов. Этот базовый класс определен для использования в дескрипторах устройств, чтобы указать, что информация о классе должна определяться из дескрипторов интерфейсов в устройстве.