
- •7.1. Шина usb
- •7.1.1. Структура usb
- •7.1.2. Системное конфигурирование
- •7.1.3. Устройства usb - функции и хабы
- •7.1.4. Хост-контроллер
- •7.2. Шина ieee 1394-FireWire
- •7.2.1. Структура и взаимодействие устройств шины
- •7.2.2. Синонимы и дополнения стандарта ieee 1394
- •7.2.3. Сравнение FireWire и usb
- •7.3. Шина access.Bus и интерфейс pc
7.1.3. Устройства usb - функции и хабы
Возможности шины USB позволяют использовать ее для подключения разнообразных устройств. Не касаясь "полез- ных" свойств ПУ, остановимся на их интерфейсной части, связанной с шиной USB. Все устройства должны поддержи- вать набор общих операций, перечисленных ниже.
Динамическое подключение и отключение. Эти события от- слеживаются хабом, который сообщает о них хост-контрол- леру и выполняет сброс подключенного устройства. Устрой- ство после сигнала сброса должно отзываться на нулевой адрес, при этом оно не сконфигурировано и не приостанов- лено. После назначения адреса, за которое отвечает хост-кон- троллер, устройство должно отзываться только на свой уни- кальный адрес.
Конфигурирование устройств, выполняемое хостом, являет- ся необходимым для их использования. Для конфигуриро- вания обычно используется информация, считанная из самого устройства. Устройство может иметь множество ин- терфейсов, каждому из которых соответствует собственная конечная точка, представляющая хосту функцию устройства. Интерфейс в конфигурации может иметь альтернативные наборы характеристик; смена наборов поддерживается про- токолом. Для поддержки адаптивных драйверов дескрипто- ры устройств и интерфейсов имеют поля класса, подкласса и протокола.
Передача данных возможна посредством одного из четырех типов передач (см. выше). Для конечных точек, допускаю- щих разные типы передач, после конфигурирования досту- пен только один из них.
Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощ- ность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабочий ток (не более 500 мА) заявляется в конфигурации, и если хаб не сможет обеспечить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.
Устройство USB должно поддерживать приостановку (Suspended Mode), в котором его потребляемый ток не пре- вышает 500 мкА. Устройство должно автоматически приос- танавливаться при прекращении активности шины.
Возможность удаленного пробуждения (Remote Wakeup) по- зволяет приостановленному устройству подать сигнал хост- компьютеру, который тоже может находиться в приостанов- ленном состоянии. Возможность удаленного пробуждения описывается в конфигурации устройства. При конфигури- ровании эта функция может быть запрещена.
Хаб в USB выполняет коммутацию сигналов и выдачу пи- тающего напряжения, а также отслеживает состояние под- ключенных к нему устройств, уведомляя хост об изменени- ях. Хаб состоит из двух частей - контроллера (Hub Controller) и повторителя (Hub Repeater). Повторитель представляет собой управляемый ключ, соединяющий выходной порт со входным. Он имеет средства поддержки сброса и приоста- новки передачи сигналов. Контроллер содержит регистры для взаимодействия с хостом. Доступ к регистрам осуществля- ется по специфическим командам обращения к хабу. Коман- ды позволяют конфигурировать хаб, управлять нисходящи- ми портами и наблюдать их состояние.
Нисходящие (Downstream) порты хабов могут находиться в следующих состояниях:
^ Powered (^(питание отключено) - на порт не подается питание (возможно только для хабов, коммутирующих
питание). Выходные буферы переводятся в высокоимпе- дансное состояние, входные сигналы игнорируются.
^ Disconnected (отсоединен) - порт не передает сигналы ни в одном направлении, но способен обнаружить подключе- ние устройства (по отсутствию состояния SEO в течение 2,5 мкс). Тогда порт переходит в состояние Disabled, а по уровням входных сигналов {DiffO или Diff1 в состоянии Idle) он определяет скорость подключенного устройства.
s^ Disabled (запрещен) - порт передает только сигнал сбро- са (по команде от контроллера), сигналы от порта (кро- ме обнаружения отключения) не воспринимаются. По обнаружении отключения (2,5 мкс состояния SEO) порт переходит в состояние Disconnect, а если отключение об- наружено "спящим" хабом, контроллеру будет послан сигнал Resume.
ш Enabled (разрешен) - порт передает сигналы в обоих на- правлениях. По команде контроллера или по обнаруже- нии ошибки кадра порт переходит в состояние Disabled, а по обнаружении отключения - в состояние Disconnect.
^ Suspended (приостановлен) - порт передает сигнал пере- вода в состояние останова ("спящий" режим). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако "спящий" хаб воспринимает сигналы смены состояния незапрещен- ных портов, подавая "пробуждающие" сигналы от акти- визировавшегося устройства даже через цепочку "спя- щих" хабов.
Состояние каждого порта идентифицируется контроллером хаба с помощью отдельных регистров. Имеется общий ре- гистр, биты которого отражают факт изменения состояния каждого порта (фиксируемый во время EOF). Это позволяет хост-контроллеру быстро узнать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточ- нить состояние.