Применение шины USB

Хост

Архитектура USB допускает четыре базовых типа передачи данных.

Управляющие посылки (control transfers) используются для конфигурирования устройств во время их подключения и для управления устройствами в процес­се работы. Протокол обеспечивает гарантированную доставку данных.

Передачи массивов данных (bulk data transfers) — это передачи без обязательств по задержке доставки и скорости передачи. Передачи массивов могут занимать всю полосу пропускания шины. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. При случайной ошибке - выполняется повтор. Передачи массивов используются для обмена данны­ми с принтерами, сканерами, устройствами хранения и т. п.

Прерывания (interrupt) — короткие передачи, которые имеют спонтанный ха­рактер. Предел времени обслуживания устанавливается в диапазоне 10-255 мс для низкой, 1-255 мс для полной скорости, для высокой скорости - 125 мкс. При случайных ошибках обмена выполняется повтор. Прерывания используются, при вводе символов с клавиатуры или для передачи сообщения о перемещении мыши.

Изохронные передачи (isochronous transfers) — непрерывные передачи в реаль­ном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. Позволя­ют на полной скорости организовать канал с полосой 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно заполнить и менее емкими каналами). На высокой скорости конечная точка может полу­чить канал до 24 Мбайт/с (192 Мбит/с). В случае обнаружения ошибки изо­хронные данные не повторяются — недействительные пакеты игнорируются.

Изохронные передачи нужны для потоковых устройств: видеокамер, цифро­вых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина
USB способна передавать только на высокой скорости.

У каждой шины USB должен быть один (и только один!) хост — компьютер с кон­троллером USB.

Хост делится на три основных уровня.

Интерфейс шины USB обеспечивает физический интерфейс и протокол шины.
Интерфейс шины реализуется хост-контроллером, имеющим встроенный
корне­вой хаб, обеспечивающий точки физического подключения к шине (гнезда USB типа «А»). Хост-контроллер отвечает за генерацию (микро) кадров. На аппарат­ном уровне хост-контроллер обменивается информацией с основной памятью компьютера, используя прямое управление шиной (bus-mastering) с целью минимизации нагрузки на центральный процессор.

Система USB, используя хост-контроллер(ы), транслирует клиентское «виде­ние» обмена данными с устройствами в транзакции, выполняемые с реальны­ми устройствами шины. Система отвечает и за распределение ресурсов USB —полосы пропускания и мощности источников питания (для устройств, пита­ющихся от шины). Система состоит из трех основных частей:

1) Драйвер хост-контроллера — HCD (Host Controller Driver) — модуль, при­вязанный к конкретной модели контроллера, обеспечивающий абстрагиро­вание драйвера USB и позволяющий в одну систему включать несколько разнотипных контроллеров.

2) Драйвер USB — USBD (USB Driver) — обеспечивает основной интерфейс (USBDI) между клиентами и устройствами USB. Интерфейс HCDI (Host Controller Driver Interface) между USBD и HCD спецификацией USB не регламентируется. Он определяется разработчиками ОС и должен поддержи­ваться разработчиками хост-контроллеров,

Кроме того, USBD отвечает за некоторое абстрактное пред­ставление устройства USB клиенту, которое позволяет выполнять конфи­гурирование и управление состоянием устройств (включая и стандартное
управление). Реализация интерфейса USBDI
определяется операционной системой.

3) Программное обеспечение хоста реализует функции, необходимые для функ­ционирования системы USB в целом: обнаружение подключения и отключе­ния устройств, (загрузка требуемых драйверов), нумерацию устройств, распределение по­лосы пропускания и потребляемой мощности и т. п.

Клиенты USB — программные элементы (приложения или системные компо­ненты), взаимодействующие с устройствами USB. Клиенты могут взаимодей­ствовать с любыми устройствами, подключенными к системе USB. Однако система USB изолирует клиентов от непосредственного обмена с какими-либо портами (в пространстве ввода-вывода) или ячейками памяти, представляющими интерфейсную часть контроллера USB.

 

Уровни хоста имеют следующие возможности:

♦ обнаружение подключения и отсоединения устройств USB;

♦ манипулирование потоками управления между устройствами и хостом;

♦ манипулирование потоками данных;

♦ сбор статистики активности и состояний устройств;

♦ управление электрическим интерфейсом между хост-контроллером и устрой­ствами USB, включая управление электропитанием.

Хост-контроллер является аппаратным посредником между устройствами USB и хостом. Программная часть хоста в полном объеме реализуется операционной системой.

USB поддерживает динамическое подключение и отключение устройств. Нуме­рация (перенумерация) устройств шины идет постоянно, отслеживая изменения физической топологии.

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запро­се от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления.

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

Хост создает канал управления (control pipe) с этим устройством, используя назначенный адрес и нулевой номер точки назначения.

Если новое устройство является хабом, хост определяет подключенные к нему устройства, назначает им адреса и устанавливает каналы. Если новое устройство является функцией, уведомление о подключении передается диспетчером USB заинтересованному ПО.

Когда устройство отключается, хаб автоматически запрещает соответствующий порт и сообщает об отключении контроллеру, который удаляет сведения о дан­ном устройстве из всех структур данных. Если отключается хаб, процесс удале­ния выполняется для всех подключенных к нему устройств. Если отключается функция, уведомление посылается заинтересованному ПО.

 

Благодаря своей универсальности и способности эффективно передавать разнород­ный трафик, шина USB применяется для подключения к PC самых разнообразных устройств. Она должна заменить традиционные порты СОМ и LPT, шины АТА и SCSI.

Удобна возможность подключения/отключения устройств на ходу и их использование сразу, без перезагрузки ОС. Удобна и возможность подключения большого количества (до 127) устройств к одной шине, ( при наличии хабов). Хост-контроллер интегрирован в большинство современных системных плат. Выпускаются и карты расширения с контроллерами USB (обычно для шины PCI). Но применение USB сдерживается недостаточ­ной активностью разработчиков ПО (производителей оборудования). Для того чтобы система USB работала, необходимо, чтобы были загружены драйверы хост-контроллера.