Книга: Аппаратные интерфейсы ПК. Энциклопедия
4.1.6. Хост
4.1.6. Хост
У каждой шины USB должен быть один (и только один!) хост — компьютер с контроллером USB. Хост делится на три основных уровня.
? Интерфейс шины USB обеспечивает физический интерфейс и протокол шины. Интерфейс шины реализуется хост-контроллером, имеющим встроенный корневой хаб, обеспечивающий точки физического подключения к шине (гнезда USB типа «А»). Хост-контроллер отвечает за генерацию (микро)кадров. На аппаратном уровне хост-контроллер обменивается информацией с основной памятью компьютера, используя прямое управление шиной (bus-mastering) с целью минимизации нагрузки на центральный процессор.
? Система USB, используя хост-контроллер(ы), транслирует клиентское «видение» обмена данными с устройствами в транзакции, выполняемые с реальными устройствами шины. Система отвечает и за распределение ресурсов USB — полосы пропускания и мощности источников питания (для устройств, питающихся от шины). Система состоит из трех основных частей:
• Драйвер хост-контроллера — 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 клиенту, которое позволяет выполнять конфигурирование и управление состоянием устройств (включая и стандартное управление через конечную точку «0»). Реализация интерфейса USBDI определяется операционной системой; в спецификации USB излагаются только общие идеи.
• Программное обеспечение хоста реализует функции, необходимые для функционирования системы USB в целом: обнаружение подключения и отключения устройств и выполнение соответствующих действий по этим событиям (загрузки требуемых драйверов), нумерацию устройств, распределение полосы пропускания и потребляемой мощности и т.п.
? Клиенты USB — программные элементы (приложения или системные компоненты), взаимодействующие с устройствами USB. Клиенты могут взаимодействовать с любыми устройствами (их конечными точками), подключенными к системе USB. Однако система USB изолирует клиентов от непосредственного обмена с какими-либо портами (в пространстве ввода-вывода) или ячейками памяти, представляющими интерфейсную часть контроллера USB.
В совокупности уровни хоста имеют следующие возможности:
? обнаружение подключения и отсоединения устройств USB;
? манипулирование потоками управления между устройствами и хостом;
? манипулирование потоками данных;
? сбор статистики активности и состояний устройств;
? управление электрическим интерфейсом между хост-контроллером и устройствами USB, включая управление электропитанием.
Хост-контроллер является аппаратным посредником между устройствами USB и хостом. Программная часть хоста в полном объеме реализуется операционной системой. До загрузки ОС может функционировать лишь усеченная часть ПО USB, поддерживающая только устройства, требующиеся для загрузки. Так, в BIOS современных системных плат имеется поддержка клавиатуры USB, реализующая функции сервиса Int 10h
. При загрузке системы USB эта «дозагрузочная» поддержка игнорируется — система начинает работу с контроллером «с чистого листа», то есть со сброса и определения всех подключенных устройств. По окончании работы ОС передача состояния USB «дозагрузочной» поддержке не предусматривается, так что для нее это событие тоже может рассматриваться как первоначальное включение. В спецификации РС'2001 выдвигается требование к BIOS поддержки USB в такой мере, чтобы обеспечивалась загрузка ОС с устройств USB. USB поддерживает динамическое подключение и отключение устройств.
Нумерация (перенумерация) устройств шины идет постоянно, отслеживая изменения физической топологии.
Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запросе от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления, используя нулевой адрес — USB Default Address. При начальном подключении или после сброса все устройства адресуются именно так.
Хост определяет, является новое подключенное устройство хабом или функцией, и назначает ему уникальный адрес USB. Хост создает канал управления (control pipe) с этим устройством, используя назначенный адрес и нулевой номер точки назначения.
Если новое устройство является хабом, хост определяет подключенные к нему устройства, назначает им адреса и устанавливает каналы. Если новое устройство является функцией, уведомление о подключении передается диспетчером USB заинтересованному ПО.
Когда устройство отключается, хаб автоматически запрещает соответствующий порт и сообщает об отключении контроллеру, Который удаляет сведения о данном устройстве из всех структур данных. Если отключается хаб, процесс удаления выполняется для всех подключенных к нему устройств. Если отключается функция, уведомление посылается заинтересованному ПО.
- 6.5 Хост в таблице маршрутизации IP
- Риски, связанные с хостингом и потерей данных
- Обмен данными между гостевой и хостовой ОС
- 4.14. Запрет и разрешение хостов
- 14.12.5. Доверительные хосты
- Хостовые факторы
- Хост-системы
- 2.8. Стоит ли создавать сайты на бесплатном хостинге?
- Блогохостинги с активной аудиторией
- Выбор домена и хостинга
- Файловый хостинг
- 5.3. Хост-адаптер SCSI