
- •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.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 (сконфигу- рировано). Теперь хаб позволяет устройству потреблять от шины полный ток, заявленный в конфигурации. Уст- ройство готово.
Когда устройство отключается от шины, хаб уведомляет об этом хост и работа порта запрещается, а хост обновляет свою текущую топологическую информацию.