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

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

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

описания любого типа устройства и формата передачи данных;
? HID-устройство должно иметь конечную точку типа Interrupt IN (см. разд.
3.6) для выдачи данных в хост. Дополнительно устройство может иметь
конечную точку типа Interrupt OUT для получения периодических данных от
хоста;
? HID-устройство должно содержать дескриптор класса и один или более
дескрипторов репорта;
? HID-устройство должно поддерживать специфический для класса управляющий
запрос Get_Report, а также опционально поддерживать дополнительный запрос
Set_Report;
? для передачи данных из устройства в хост устройство должно положить
данные репорта в буфер соответствующей конечной точки и разрешить
передачу. При получении данных от хоста устройство должно разрешить
соответствующую конечную точку, а затем, после прихода пакета, забрать
данные из буфера.
HID-устройство должно иметь один или более дескрипторов репорта, которые
запрашиваются только после того, как хост определил, что подключенное
USB-устройство относится к классу HID.
Обмен между хостом и устройством может производиться с помощью трех видов
репортов:
? Input и Output (входные и выходные репорты) используются для передачи и
приема периодических данных, например, нажатий клавиш;
Гпава 8. НЮ-устройства
151
? Feature (специальные репорты) используются там, где очень важно время
доставки, например, для установки различных параметров устройства и его
инициализации.
Обмен данными с хостом (точнее, с HID-драйвером) производится либо по
основному каналу сообщений (канал нулевой конечной точки), либо по каналу
прерываний (рис. 8.1).
Рис. 8.1. Каналы обмена HID-устройства и драйвера
Канал нулевой точки используется для следующих операций:
? приема и передачи управляющих посылок;
? передачи данных с помощью запроса Get_Report (будет обсуждаться
дальше);
? приема данных от хоста.
Канал прерываний используется для передачи асинхронных (не требуемых
хостом) данных: данные с конечной точки читаются только в том случае,
если устройство подтверждает наличие новых данных и необходимость их
передачи.
Спецификация HID определяет два типа HID-устройств: устройства,
участвующие в начальной загрузке и не участвующие. Первый тип называется
загрузочные устройства (boot device). К загрузочным устройствам
относятся, например, мышь и клавиатура, работа которых начинается с
самого начала включения компьютера. Загрузочные устройства должны
поддерживать специальные запросы (см. табл. 8.2).
8.2. Порядок обмена данными с НЮ-устройством
Когда хост запрашивает входной репорт, устройство выдает пакет данных с
помощью передачи по прерыванию (т. е. передачи типа interrupt, см. разд.
3.3). Периодичность генерации таких запросов указывается в дескрипторе
конечной точки.
При генерации выходных репортов хост посылает данные в устройство,
используя управляющие посылки (Control Transfers) или передачу по
прерываниям (Interrupt Transfers). Возможность проводить передачи по
прерыванию
152
Часть III. Практика программирования
в HID-устройство доступна только начиная с Windows 98 SE, а более ранние
версии Windows 98 будут использовать для выходных репортов управляющие
передачи. Если HID-устройство не имеет конечной точки с типом Interrupt
Output, то драйвер ОС будет использовать управляющие посылки.
Специальные репорты (т. е. репорты типа Feature) имеют направление
передачи данных как от хоста к устройству, так и от устройства в хост.
Для них всегда используются управляющие посылки. Для того чтобы послать
репорт этого типа, хост инициирует запрос set_Report, предшествующий
пакету данных, а далее, в фазе статуса, хост принимает от устройства
подтверждение об успешном либо неуспешном принятии данных. Для того чтобы
получить специальный репорт, хост инициирует запрос set_Report,
устройство при этом отвечает пакетом данных, а в фазе статуса хост
возвращает в устройство информацию об успешно проведенной транзакции. Еще
одно преимущество специальных репортов - это возможность задавать каждому
репорту его номер (Repoit ID). При этом у программиста появляется
возможность мультиплексировать запросы, если существует необходимость
создания интерфейса передачи команд управления и данных через нулевую
конечную точку (см. разд. 13.8).
8.3. Установка НЮ-устройства
Для установки устройства Менеджер Устройств операционной системы
использует INF-файлы (см. главу 10.4) для решения о том, какой драйвер
назначить найденному устройству. HID-устройство может использовать
встроенный в ОС INF-файл (hiddev.inf для Windows 98 и input.inf для
Windows 2000). Альтернативно программист может использовать свои
собственные INF-файлы, в которых будет прописана информация о
производителе устройства. Преимущество своего INF-файла состоит в
отображении понятного названия устройства в окне Менеджера Устройств
вместо общего термина "Стандартное устройство".
8.4. Идентификация НЮ-устройства
Устройство HID класса идентифицируется кодом класса 3 в дескрипторе
Предыдущая << 1 .. 48 49 50 51 52 53 < 54 > 55 56 57 58 59 60 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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