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

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

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

чтения, так и для записи. Запись нуля (блокировка порта) может
выполняться как программным обеспечением, так и хост-контроллером (при
возникновении сбоя в работе порта), а запись единицы (включение порта) -
только программным обеспечением. Состояние данного разряда не изменится,
пока не изменится реальное состояние порта (возможна задержка
срабатывания);
? [1] признак изменения статуса подключения (Connect Status Change) -
устанавливается в единицу при любых изменениях текущего статуса
подключения. Этот разряд доступен для чтения и сброса (запись единицы в
данный разряд сбрасывает его в ноль);
? [0] текущий статус подключения (Current Connect Status) - данный разряд
доступен только доя чтения и служит доя определения наличия подключения
USB-устройств к данному порту (0 - к порту ничего не подключено, 1 - к
порту подключено USB-устройство).
18.2. Структуры данных хост-контроллера UCH
18.2.1. Список кадров
Список кадров (Frame List) - это массив, содержащий 1024 указателя.
Каждый элемент массива занимает 32 бита, т. о. весь массив занимает 4
Кбайт.
Начальный адрес списка хранится в регистре базового адреса списка кадров
flbaseadd (он должен быть выровнен на границу 4 Кбайт).
Разряды элемента списка имеют следующее назначение:
? [31:4] биты 4-31 указателя кадров (flp, Frame List Pointer);
? [3:2] зарезервированы и должны иметь значение 0;
Глава 18. Хост-контроллер UCH
511
? [1] тип структуры данных (QH/TD Select), адрес которой содержится в
указателе кадра;
• 0 - дескриптор передачи (TD, Transfer Descriptor);
• 1 - заголовок очереди (QH, Queue Head);
? [0] признак завершающего кадра (Terminate). Значение 0 этого бита
означает, что указатель кадра является правильным и содержит адрес
заголовка очереди или дескриптора передачи. Значение 1 означает, что
указатель не несет информации и обрабатываться не должен.
18.2.2. Дескриптор передачи
Дескриптор передачи (TD, Transfer Descriptor) описывает параметры
транзакции, запрашиваемой клиентом. Дескриптор должен быть выровнен на
границу 16 байт. Дескрипторы всех четырех типов передач имеют одинаковую
структуру.
Каждый дескриптор имеет размер 32 байта и состоит из двух частей: младшие
четыре двойных слова (DWORD) занимает область данных хост-контроллера, а
старшие четыре двойных слова - область данных программного обеспечения,
которая не обрабатывается и на функционирование хост-контроллера не
влияет.
II j | j j ill ii I j
31 Зо(29 (28 27 126 (25 124 |гЗ 2l(2o(l9|18 1б|15|14 1l(lO
8(7 4 3 2 1 0
LP I 0 I Vf I Q | T I 00-03H
1 1 i .- I .М.И .... -II ill -J.. -L J J
- -. ., , ; 1 1 lit 1 i i 1 III II 1 1
R spd| C_ERR 1 ls ISO I IOC Status 1 R 1 ActLen | 04-07H
1-г-i--------
I MaxLen ' j R | P | EndPt | OevAddr
| PIP | 08-0BH
OC-OFH
10-13H
14-17H
18-1BH
1C-1FH
На рис. 18.1 показана структура дескриптора передачи, состоящего из
следующих полей:
? двойное слово 0 (00-ОЗН) - указатель на следующий элемент списка
дескрипторов (TD Link Pointer):
• [31:4] указатель на следующий элемент списка дескрипторов (LP,'Link
Pointer);
Указатель на буфер данных (Buffer Pointer)
Зарезервировано для использования программным обеспечением
Рис. 18.1. Структура дескриптора передачи
512
Часть V. Справочник
• [3] зарезервирован, при записи должен быть равен 0;
• [2] порядок обработки очередей (Vf, Depth/Breadth Select) - значение 0
означает обработку "в ширину", а 1 - "в глубину"; при обработке "в
ширину" при завершении обработки данного дескриптора контроллер
переключится на обработку следующей очереди, а при обработке "в глубину"
будет обрабатываться следующая транзакция в текущей очереди;
• [1] тип структуры данных (Q, QH/TD Select) - значение 0 означает
дескриптор передачи, а 1 - заголовок очереди;
• [0] признак последнего элемента списка (Т, Terminate) - если этот бит
равен 0, то в поле указателя содержится адрес следующего элемента списка,
а если 1, то данный элемент является последним в списке и поле указателя
не должно обрабатываться;
? двойное слово 1 (04-07Н) - слово управления и состояния (TD Control and
Status):
• [31:30] зарезервированы и должны содержать нули;
• [29] разрешение приема укороченного пакета данных (SPD, Short Packet
Detect):
0 0 - прием запрещен;
0 1 - если длина принимаемого пакета меньше заданной, дескриптор передачи
становится неактивным, заголовок очереди не изменяется и (по окончании
кадра) устанавливается бит usbint в регистре состояния и вырабатывается
прерывание (если оно разрешено);
• [28:27] счетчик ошибок (CJERR, Number of Error) - работает на вычитание
(его значение уменьшается на единицу после каждой неудачной попытки
выполнения транзакции):
0 00 - нет лимита ошибок;
0 10 - допускается одна ошибка;
0 01 - допускаются две ошибки;
0 11 - допускаются три ошибки.
После исчерпания лимита ошибок транзакция становится неактивной, и
устанавливается признак сбоя (бит 22);
• [26] тип устройства (LS, Low Speed Device):
Предыдущая << 1 .. 149 150 151 152 153 154 < 155 > 156 157 158 159 160 161 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.