Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uSB.doc
Скачиваний:
14
Добавлен:
18.11.2019
Размер:
515.58 Кб
Скачать

7.1.2. Системное конфигурирование

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

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

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

Если новое устройство является хабом, хост определяет под- ключенные к нему устройства, назначает им адреса и уста-

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

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

Нумерация устройств, подключенных к шине (Bus Enumeration), осуществляется динамически по мере их под- ключения (или включения их питания) без какого-либо вме- шательства пользователя или клиентского ПО. Процедура нумерации выполняется следующим образом:

1. Хаб, к которому подключилось устройство, информиру- ет хост о смене состояния своего порта ответом на опрос состояния. С этого момента устройство переходит в со- стояние Attached (подключено), а порт, к которому оно подключилось, в состояние Disabled.

2. Хост уточняет состояние порта.

3. Узнав порт, к которому подключилось новое устройство, хост дает команду сброса и разрешения порта.

4. Хаб формирует сигнал Reset для данного порта (10 мс) и переводит его в состояние Enabled. Подключенное устройство может потреблять от шины ток питания до 100 мА. Устройство переходит в состояние Powered (пи- тание подано), все его регистры переводятся в исходное состояние, и оно отзывается на обращение по нулевому адресу.

5. Пока устройство не получит уникальный адрес, оно до- ступно по дежурному каналу, по которому хост-контрол- лер определяет максимально допустимый размер поля данных пакета.

6. Хост сообщает устройству его уникальный адрес, и оно переводится в состояние Addressed (адресовано).

7. Хост считывает конфигурацию устройства, включая за- явленный потребляемый ток от шины. Считывание мо- жет затянуться на несколько кадров.

8. Исходя из полученной информации, хост конфигуриру- ет все имеющиеся конечные точки данного устройства, которое переводится в состояние Configured (сконфигу- рировано). Теперь хаб позволяет устройству потреблять от шины полный ток, заявленный в конфигурации. Уст- ройство готово.

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