Информационные технологииStfw.Ru 🔍
🕛

Хост

У каждой шины USB должен быть один (и только один!) хост — компьютер с контроллером USB. Хост делится на три основных уровня.У каждой шины USB должен быть один (и только один!) хост — компью
У каждой шины 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 клиенту, которое позволяет выполнять конфигурирование и управление состоянием устройств (включая и стандартное
управление через конечную точку «О»). Реализация интерфейса 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 заинтересованному ПО.
Когда устройство отключается, хаб автоматически запрещает соответствующий порт и сообщает об отключении контроллеру, Который удаляет сведения о данном устройстве из всех структур данных. Если отключается хаб, процесс удаления выполняется для всех подключенных к нему устройств. Если отключается функция, уведомление посылается заинтересованному ПО.

Также по теме:
Новые программы для Windows, Linux и Android.