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

 

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

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

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 149 150 151 152 153 154 < 155 > 156 157 158 159 160 161 .. 166 >> Следующая

0 [17] признак ошибки NRZI (Bitsuff Error) — устанавливается в единицу, если в принятой последовательности битов подряд следует более шести единиц;
0 [16] зарезервирован и должен иметь значение 0;
• [15:11] зарезервированы и должны содержать нули;
514
Часть V. Справочник
• [10:0] объем данных, переданных в результате транзакции (ActLen, Actual Length) — значение этого поля на единицу меньше количества переданных байтов;
? двойное слово 2 (04—07H) — маркер дескриптора передачи (TD Token):
• [31:21] объем передаваемых данных в байтах минус единица (MaxLen, Maximum Length):
0 000Н - 1 байт;
0 4FFH - 1280 байт;
0 7FFH — пустой пакет;
0 500Н—7FEH — недопустимые значения.
• [20] зарезервирован и должен содержать ноль.
• [19] переключатель синхронизации данных (D, Data Toggle): 0 0 - DATA0;
0 1 - DATAl;
• [18:15] номер конечной точки (EndPt, Endpoint);
• [14:8] адрес устройства (DevAddr, Device Address);
• [7:0] идентификатор пакета (PID, Packet Identification): 0 2DH-SETUP;
0 69Н - IN; 0 ElH - OUT.
? двойное слово 3 (ОС—OFH) — указатель на буфер данных (TD Buffer Pointer);
? двойные слова 4—7 (10—IFH) область данных программного обеспечения.
18.2.3. Заголовок очереди
Заголовок очереди (QH, Queue Head) — это специальная структура данных, предназначенная для создания очередей, используемых при передачах типов Control, Bulk и Interrupt. Заголовок очереди должен быть выровнен на границу 16 байт.
На рис. 18.2 показана структура заголовка очереди, состоящего из 32-разрядных слов:
? двойное слово 0 (байты 00—03H) — указатель на следующий элемент "горизонтального списка":
• [31:4] биты 4—31 указателя на следующий элемент "горизонтального списка" (QHLP, Queue Head Link Pointer); младшие четыре разряда указателя содержат нули;
Гпава 18. Хост-контроллер UCH
515
• [3] зарезервирован и должен содержать ноль;
• [2] зарезервирован (R, Reserved), не влияет на работу;
4 3 2 1 0
I О I О I Q I T I 00-ОЗН
I 0 j R I Q I T I 04-07Н
Зарезервировано для использования программным обеспечением
08-ОВН OC-OFH 10-13Н 14-17Н 18-1BH 1C-1FH
Рис. 18.2. Структура заголовка очереди
• [1] тип структуры данных (Q, QH/TD Select), адрес которой находится в указателе:
О 0 — дескриптор передачи; О 1 — заголовок очереди;
• [0] признак последнего заголовка в списке (Т, Terminate):
О 0 — указатель содержит адрес следующего заголовка;
О 1 — данный элемент является последним в "горизонтальном списке" и поле указателя не должно обрабатываться контроллером;
? двойное слово 1 (байты 04—07H) — указатель на первый элемент очереди:
• [31:4] биты 4—31 указателя на следующий элемент очереди (QELP, Queue Element Link Pointer) — младшие четыре разряда указателя содержат нули;
• [3:2] зарезервированы и должны содержать нули;
• [1] тип структуры данных (Q, QH/TD Select), адрес которой находится в указателе:
О 0 — дескриптор передачи; О 1 — заголовок очереди;
• [0] признак последнего элемента очереди (Т, Terminate):
О 0 — указатель содержит адрес следующего элемента;
О 1 — данный элемент является последним в очереди, и поле указателя не должно обрабатываться контроллером;
? двойные слова 2—7 зарезервированы для использования программным обеспечением.
516
Часть V. Справочник
18.3. Обработка списка дескрипторов UCH
Порядок выполнения запросов определяется планом обработки дескрипторов (Schedule Layout). В начале выполнения очередного кадра хост-контроллер получает из списка кадров указатель на список дескрипторов, который должен быть обработан в данном кадре.
Список дескрипторов формируется согласно определенным правилам (рис. 18.3). Каждый элемент списка может быть действительным или недействительным. Действительный элемент списка кадров должен содержать указатель на дескриптор передачи или очередь заголовка. В нормальном режиме работы контроллера все элементы списка должны быть действительными.
Список кадров
Указатель кадра Q T
Указатель кадра Q T
Q T
Указатель кадра Q T
Дескрипторы управляющих посылок
Дескрипторы передачи данных
Рис. 18.3. Пример списка дескрипторов
В первую очередь должны быть обработаны дескрипторы изохронной передачи, поэтому такие дескрипторы размещаются последовательно друг за другом в начале списка. Далее обрабатывается список заголовков, в начале которого размещены заголовки очередей дескрипторов для передачи по прерываниям, затем следуют заголовки очередей дескрипторов управляющих посылок. В конце списка находятся заголовки очередей дескрипторов передачи данных. Список дескрипторов изохронной передачи в каждом кадре свой, а список заголовков очередей общий для всех кадров.
Каждый заголовок очереди указывает на первый из находящихся в очереди дескрипторов передачи. Обычно список заголовков очередей обрабатывается по горизонтали (в ширину): контроллер извлекает из заголовка первый дескриптор в очереди, обрабатывает его и переходит к следующему заголовку очереди. При необходимости можно установить режим обработки очереди по вертикали: контроллер в этом случае вначале обработает всю очередь и только потом перейдет к заголовку следующей очереди.
Предыдущая << 1 .. 149 150 151 152 153 154 < 155 > 156 157 158 159 160 161 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100