PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Создать интернет магазин для продажи чая www.paradizzz.ru.

USB

Автоматическое конфигурирование

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам (см. главу 14) и сообщают состояние портов по запросу от контроллера. Хост своим управляющим запросом Port_Reset к хабу выполняет сброс и разрешает работу порта (одного!), на котором обнаружено новое подключение. При начальном подключении или после сброса устройство находится в «дежурном» состоянии (Default State) — отзывается только на обращения по основному каналу сообщений (EP0) и имеет нулевой адрес (USB Default Address). Таким образом, обращаясь к устройству по нулевому адресу, хост взаимодействует только с одним новоподключенным устройством. Хост стандартными запросами считывает дескрипторы этого устройства и назначает ему уникальный адрес на шине (1–127). Таким образом хост заполняет свой перечень подключенных устройств. По назначении уникального адреса устройство переходит в состояние «адресовано» (Addressed State), но его прикладное функционирование пока еще не разрешено. Полноценная работа устройства (прикладной обмен с хостом, полное потребление питания от шины) возможна только после управляющего запроса от хоста Set_Configuration, выбирающего конфигурацию из числа доступных — устройство переходит в состояние «сконфигурировано» (Configured State).

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

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