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

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

Агуров П.В. Интерфейсы USB. Практика использования и программирования — БВХ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interfeysusbpraktikaispolzovaniya2004.djvu
Предыдущая << 1 .. 54 55 56 57 58 59 < 60 > 61 62 63 64 65 66 .. 168 >> Следующая

нулевую конечную точку. Запрос имеет следующие поля
? bmRequestType = 00100001b;
? bRequest = SET REPORT (КОД 0x09);
I
? wvaiue - тип репорта и идентификатор (Report ID);
? windex - номер интерфейса;
170
Часть III. Практика программирования
3 wLength - длина репорта;
3 Data - данные репорта.
Значение полей этого запроса такое же, как для запроса get_report.
Устройство может игнорировать запросы set_report.
8.6.3. Запрос GETJDLE
Запрос get_idle позволяет хосту прочитать текущее значение длительности
для репорта (idle rate). Запрос имеет следующие поля:
3 bmRequestType - 10100001b;
? bRequest = GET_IDLE (КОД 0x02);
? wValue - идентификатор репорта (Report ID) в младшем байте;
? windex - номер интерфейса;
? wLength = 1;
? Data - значение длительности (см. разд. 8.6.4).
8.6.4. Запрос SETJDLE
Запрос set_idle позволяет хосту задать значение длительности (idle rate)
для репортов. Запрос имеет следующие поля:
3 bmRequestType = 00100001b;
? bRequest = SET_IDLE (КОД ОхОА);
? wValue - длительность (Idle duration) в старшем байте и идентификатор
репорта (Report ID) в младшем байте;
? windex - номер интерфейса;
3 wLength = 0.
Величина длительности позволяет управлять передачей репортов в случае
отсутствия изменений в передаваемых данных. Нулевое значение длительности
означает "бесконечную паузу" (indefinite), в этом случае устройство будет
передавать репорты только в случае изменений состояния. Ненулевое
значение задает длительность интервала с кратностью 4 мс, в течение
которого конечная точка отвечает на запросы пакетами NAK, если в
передаваемых данных нет изменений. Спецификация определяет точность
выдерживания интервала ±10%.
Если поле Report ID равно нулю, то установка производится для всех
репортов, иначе - только для репорта с данным идентификатором.
Для клавиатуры рекомендуется устанавливать интервал 500 мс (это будет
означать время ожидания перед началом дублирования символов, repeat
Гпава 8. НЮ-устройства
171
rate), а для джойстиков и мыши - бесконечный (эти устройства будут
передавать данные только в случае изменения состояния).
8.6.5. Запрос GET_PROTOCOL
Запрос get_protocol позволяет хосту прочитать текущее значение выбранного
протокола. Запрос имеет следующие поля:
? bmRequestType = 10100001Ь;
? bRequest = get_protocol (код 0x03);
? wValue = 0;
? windex - интерфейс;
? wLength = 1;
? Data - тип протокола'
• 0 - загрузочный протокол (boot protocol);
• 1 - обычный протокол (report protocol).
Этот запрос используется только для загрузочных устройств.
8.6.6. Запрос SET_PROTOCOL
Запрос set protocol позволяет производить переключение между загрузочным
протоколом (boot protocol) и обычным протоколом (report protocol) Запрос
имеет следующие поля:
? bmRequestType = 00100001b;
? bRequest = set_protocol (код ОхОВ);
? wvaiue - тип протокола:
• 0 - загрузочный протокол (boot protocol);
• 1 - обычный протокол (report protocol);
? windex - интерфейс;
? wLength = 0.
Этот запрос используется только для загрузочных устройств.
8.7. Инструментальные средства
Для того чтобы помочь в написании HID-устройства USB Форум разработал две
программы, распространяемые свободно: HID Descriptor Tool и USB
Compliance Tool.
172
Часть III. Практика программирования
Первая программа (рис. 8.6) позволяет автоматизировать процесс написания
дескриптора репорта и проверить его правильность прежде, чем копировать
;го в устройство.
HID Descriptor Tool (DT) - H:\Tools\HID Descriptor Tooi\MOUSE.HID
File Edit Parse Descriptor About
HID Items
Report Descnptot
ЮТЕ ' *
USAGE_PAGE
USAGEJ'iINIMUM
USA6E_MAXIMUM
DESTGNATOR_INDEX
DESIGNATOR^MINIMUM
0 E SIG NATO R J AXIM UM
STRING_INDEX
STRINGJIINIMUM
STRINGJAXIMUM
COLLECTION
END_COLLECTION
INPUT
OUTPUT
FEATURE
LOG IC A! MINIM UM
LOGICAI MAXIMUM
PHYSICALJINIMUM
PHYSICAl MAXIMUM
UNIT_EXPONENT
UNIT
REPORT_SIZE
REPORT_ID
REPORT_COUNT
Manual Entry
Clear Descriptor
USAGE_PAGE (Generic Desktop) 05 01
USAGE (Mouse) 09 02
COLLECTION (Application) A1 01
USAGE (Pointer) 09 01
COLLECTION (Physical) A1 00
USAGE_PAGE (Button) 05 09
USAGEJ-IINIMUM (Button 1) 19 01
USAGEJ4AXIMUM (Button 3) 29 03
L0GICALJ1INIMUM (0) 15 00
LOG ICAL__M AXIM UM (1) 25 01
REP0RT_C0UNT (3) 95 03
REPORT_SIZE (1) 75 01
INPUT (Data,Var,Abs) PEP0RT_C0UNT (1) 81 02
95 01
REPORT_SIZE (5) 75 05
INPUT (Cnst,Var,Abs) 81 03
USAGE_PAGE (Generic Desktop) 05 01
USAGE (X) 09 30
USAGE (Y) 09 31
LOGICAL_MINIMUM (-127) 15 81
LOGICAI MAXIMUM (12?) 25 7F
REPORT_SIZE (8) 75 08
REPOPT"CQUNT (2) 95 02
INPUT (Data, Var, Rel ) 81 06
END_C0LLECTION CO
END COLLECTION CO
Рис. 8.6. Программа генерации и проверки дескрипторов репортов
Вторая программа представляет собой набор инструментальных средств,
позволяющих выполнить серию основных тестов на любом USB-устройстве, плюс
содержит дополнительные тесты для Н1 D-устройств, хабов и устройств
связи. USB Compliance Tool загружает свой собственный драйвер для
Предыдущая << 1 .. 54 55 56 57 58 59 < 60 > 61 62 63 64 65 66 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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