Аппаратные интерфейсы ПК

         

Хост


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

¦    Интерфейс шины USB обеспечивает физический интерфейс и протокол шины.

Интерфейс шины реализуется хост-контроллером, имеющим встроенный корне­

вой хаб, обеспечивающий точки физического подключения к шине (гнезда USB

типа «А»). Хост-контроллер отвечает за генерацию (микро)кадров. На аппарат­

ном уровне хост-контроллер обменивается информацией с основной памятью

компьютера, используя прямое управление шиной (bus-mastering) с целью

минимизации нагрузки на центральный процессор.

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

100__________________________ Глава 4. Последовательные шины USB и FireWire

полосы пропускания и мощности источников питания (для устройств, пита­ющихся от шины). Система состоит из трех основных частей:

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

•      Драйвер USB — USBD (USB Driver) — обеспечивает основной интерфейс (USBDI) между клиентами и устройствами USB. Интерфейс HCDI (Host Controller Driver Interface) между USBD и HCD спецификацией USB не регламентируется. Он определяется разработчиками ОС и должен поддержи­ваться разработчиками хост-контроллеров, желающих иметь поддержку сво­их изделий конкретными ОС. Клиенты не могут пользоваться интерфей­сом HCDI; для них предназначен интерфейс USBDI. USBD обеспечивает механизм обмена в виде пакетов IRP (I/O Request Packet — пакет запроса ввода-вывода), состоящих из запросов на транспортировку данных по за­данному каналу.
Кроме того, USBD отвечает за некоторое абстрактное пред­ставление устройства USB клиенту, которое позволяет выполнять конфи­гурирование и управление состоянием устройств (включая и стандартное

управление через конечную точку «О»). Реализация интерфейса USBDI

определяется операционной системой; в спецификации USB излагаются

только общие идеи.

•      Программное обеспечение хоста реализует функции, необходимые для функ­

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

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

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

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

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

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

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

¦     управление электрическим интерфейсом между хост-контроллером и устрой­

ствами USB, включая управление электропитанием.

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

4.1. Шина USB

системой. До загрузки ОС может функционировать лишь усеченная часть ПО USB, поддерживающая только устройства, требующиеся для загрузки. Так, в BIOS современных системных плат имеется поддержка клавиатуры USB, реализующая функции сервиса Int 10h.


При загрузке системы USB эта «дозагрузочная» под­держка игнорируется — система начинает работу с контроллером «с чистого лис­та», то есть со сброса и определения всех подключенных устройств. По окончании работы ОС передача состояния USB «дозагрузочной» поддержке не предусмат­ривается, так что для нее это событие тоже может рассматриваться как первона­чальное включение. В спецификации РС'2001 выдвигается требование к BIOS поддержки USB в такой мере, чтобы обеспечивалась загрузка ОС с устройств USB. USB поддерживает динамическое подключение и отключение устройств. Нуме­рация (перенумерация) устройств шины идет постоянно, отслеживая изменения физической топологии.

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

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

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

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


Содержание раздела