Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 47

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 166 >> Следующая

гпава 5. Внутренняя организация хоста и хабов
125
троллера или при обнаружении перегрузки по питанию (потребление превышает заявленное). Если хаб конфигурировался при внешнем питании, то при его пропадании он должен перевести все порты в это состояние. Если хаб конфигурировался при питании от шины, то при переключении его на внешнее питание состояние портов не должно изменяться. Но если в дальнейшем внешнее питание пропадет, все порты должны переводиться в состояние "Питание отключено";
? Отсоединен (Disconnected) — порт не передает сигналы ни в одном направлении, но способен обнаружить подключение устройства. Тогда порт переходит в состояние "Запрещен", а по уровням входных сигналов он определяет скорость подключенного устройства;
? Запрещен (Disabled) — порт передает только сигнал сброса (по команде от контроллера), сигналы от порта (кроме обнаружения отключения) не воспринимаются. Терминация порта соответствует режиму FS/LS. В это состояние порт переводится по команде контроллера, а также при обнаружении ошибки. При обнаружении отключения порт переходит в состояние "Отсоединен", а если отключение обнаружено "спящим" хабом, контроллеру будет послан сигнал "Пробуждение" (Resume);
? Разрешен (Enabled) — порт передает сигналы в обоих направлениях (подключен к коммутатору). По команде контроллера или при обнаружении ошибки кадра порт переходит в состояние "Запрещен", а при обнаружении отключения — в состояние "Отсоединен";
? Сброс (Resetting) — порт по команде от контроллера подает сигнал сброса.
? Приостановлен (Suspended) — порт передает сигнал перевода в состояние останова ("спящий режим"), дифференциальные передатчики отключены. Терминация порта соответствует режиму FS/LS (но состояние порта может быть и HS). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако "спящий" хаб воспринимает сигналы смены состояния незапрещенных портов, подавая "пробуждающие" сигналы от активизировавшегося устройства даже через цепочку "спящих" хабов.
Состояние каждого порта идентифицируется контроллером хаба е помощью отдельных регистров. Имеется общий регистр, биты которого отражают факт изменения состояния каждого порта. Это позволяет хост-контроллеру быстро узнать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточнить состояние. Хабы могут иметь световые индикаторы состояния нисходящих портов, управляемые автоматически (логикой хаба) или программно (хост-контроллером). Индикатор может представлять собой пару светодиодов — зеленый и желтый (янтарный), или один свето-диод с изменяющимся цветом.
126
Часть II. Внутренняя организация USB
Состояние порта представляется следующим образом:
? не светится — порт не используется;
? зеленый — нормальная работа;
? желтый — ошибка;
? зеленый мигающий — программа требует внимания пользователя (Software Attention);
? желтый мигающий — аппаратура требует внимания пользователя (Hardware Attention).
Восходящий (upstream) порт хаба конфигурируется и внешне представляется как полноскоростной или высокоскоростной (только для USB 2.0). При подключении порт хаба USB 2.0 обеспечивает терминацию по схеме FS, в режим HS он переводится только по команде контроллера.
5.1.1. Взаимодействие хост-контроллера с хабом
Чтобы получить доступ к устройствам, подключенным к шине USB через хаб, хост должен сконфигурировать хаб и произвести настройку его портов. Процесс настройки хаба хост осуществляет путем определенной последовательности запросов.
Прежде всего, хост должен произвести идентификацию устройства по стандартным дескрипторам (см. разд. 4.1.2). Хаб можно опознать по дескрипторам устройства и интерфейса:
? в стандартном дескрипторе устройства (см. разд. 4.1.3) поле кода класса устройства содержит значение 09Н, поле кода подкласса устройства — значение 00;
? в стандартном дескрипторе интерфейса (см. разд. 4.1.3) поле количества конечных точек имеет значение 01Н, поле класса интерфейса содержит значение 09Н, поле подкласса устройства — значение ООН, поле протокола — значение ООН.
Хаб имеет только одну входную конечную точку, которая работает в режиме передачи по прерываниям. Поле значения интервала обслуживания в дескрипторе конечной точки (см. разд. 4.1.3) содержит значение FFH. Время реакции хаба на стандартные запросы не должно превышать 50 мс.
Хаб поддерживает следующие стандартные запросы (см. разд. 4.1.2):
GETJ3TATUS, clear_feature, set_feature, set_address, get_descriptor, set_descriptor, get_configuration, set_configuration. Реакция На ЗаПрО-CbI get_interface И set_interface НЄ ОПрЄДЄЛЄНа, Т. К. Хаб МОЖЄТ ИМеТЬ
только один интерфейс. Реакция на запрос sync_frame не определена, т. к. хаб не может иметь изохронных конечных точек.
Гпава 5. Внутренняя организация хоста и хабов
127
5.1.2. Дескриптор хаба
Кроме стандартных дескрипторов, по запросу может быть выдан специфический дескриптор хаба (Hub Descriptor), структура которого приведена в табл. 5.1, а описание на языках С и Pascal — в листинге 5.1.
Предыдущая << 1 .. 41 42 43 44 45 46 < 47 > 48 49 50 51 52 53 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100