- •Лабораторная работа
- •Структура usb.
- •Физический интерфейс.
- •Модель передачи данных.
- •Типы передачи данных.
- •Протокол.
- •Форматы пакетов.
- •Работа с мышью.
- •Листинг программы для работы с мышью через интерфейс usb (ос Dos):
- •Блок-схема алгоритма:
- •Работа с принтером.
- •Листинг программы: печать заштрихованного квадрата на струйном принтере epson Stylus с интерфейсом usb.
- •Блок-схема алгоритма программы: печать заштрихованного квадрата на струйном принтере epson Stylus с интерфейсом usb
- •Листинг программы для работы с принтером (ос Windows хр) через интерфейс usb.
- •Блок-схема алгоритма:
- •Результат работы программы:
- •Контрольные вопросы:
- •1. Опиши те все, что вы знаете о хост-контроллерах.
- •3. Опишите четыре базовых типа передачи данных, предусмотренных протоколом usb.
- •4. Опишите реализацию запросов к usb устройствам.
- •5. Что такое Human Interface Devices?
- •6. Опишите все, что вы знаете о рапортах.
- •7. Опишите разряды слова состояния конечной точки.
- •8. Опишите модель передачи данных.
- •9. Перечислите и опишите основные операции при работе с интерфейсом usb.
- •10. Опишите формат пакетов передаваемых данных.
- •11. Что вы знаете об однонаправленном и двунаправленном интерфейсах?
- •12. Как проверить принадлежность устройства к классу принтеров?
- •13. Опишите особенности и принцип работы с принтером через usb интерфейс.
- •14. Какие командные языки используются для управления процессом печати?
- •15. Как производится программный сброс принтера?
- •16. Опишите назначение полей bDeviceClass, bDeviceSubClass, bDeviceProtocol в дескрипторе устройства.
- •17. Что происходит по запросу Get Port Status?
- •18. Что происходит по запросу Get Device id?
4. Опишите реализацию запросов к usb устройствам.
Все запросы USB прнимают принимают запросы от хост-контроллера и отвечают наних через основной канал сообений. Запросы управляются при помои управляющих посылок. Запрос и его параметры передаются устройству в Setup файле.
5. Что такое Human Interface Devices?
Код класса для устройств, принадлежащих к группе HID, имеет значение 03h. Мышь и клавиатура участвуют в процессе начальной загрузки компьютера, поэтому их относят к подклассу загрузочных устройств (Boot Devices), который обозначается кодом 01 h. Код протокола для клавиатуры имеет значение 01 h, а для мыши — значение 02h.
6. Опишите все, что вы знаете о рапортах.
Пакет данных о текущем состоянии устройства HID и выполняемых с ним операциях именуется в документации рапортом (report) . Мышь передает хосту рапорты в режиме передачи по прерываниям. Поскольку мышь является загрузочным устройством, начальный участок рапорта стандартизирован:
-
байт 0 содержит информацию о состоянии клавиш мыши;
-
байт 1 передает значение перемещения по оси X;
-
байт 2 передает значение перемещения по оси Y.
Назначение остальных байтов рапорта мыши определяется изготовителем (для так называемых трехкоординатных устройств координата Z обычно передается в байте 3).
Значение перемещения передается в виде двоичного числа со знаком (при определении знака предполагается, что ось X направлена слева направо, ось Y — сверху вниз).
Структура байта 0 стандартизирована не полностью:
-
бит 0 — состояние клавиши 1 (0 — отпущена, 1 — нажата);
-
бит 1 — состояние клавиши 2 (0 — отпущена, 1 — нажата);
-
бит 2 — состояние клавиши 3 (0 — отпущена, 1 — нажата);
-
биты 3-7 используются по усмотрению изготовителя устройства.
7. Опишите разряды слова состояния конечной точки.
Разряды слова состояния устройства имеют следующее назначение:
-
бит 0 (Self Powered) — режим электропитания (0 — устройство получает питание от шины USB, 1 — от собственного источника энергии);
-
бит 1 (Remote Wakeup) — реакция на сигнал пробуждения от шины USB (0 — устройство игнорирует сигнал, 1 — устройство реагирует на сигнал);
-
биты 2-15 зарезервированы и должны содержать нули.
Слово состояния интерфейса зарезервировано и содержит нули во всех разрядах.
Разряды слова состояния конечной точки имеют следующее назначение:
-
бит 0 (Halt) — признак «зависания» конечной точки (0 — конечная точка функционирует нормально, 1 — передача данных заблокирована);
-
биты 1-15 зарезервированы и должны содержать нули. Запрос Clear Feature используется для того, чтобы запретить свойство или состояние, указанное значением селектора свойств. Запрос имеет следующие параметры:
-
поле bmRequestType уточняет запрос (00000000b – запретить свойство устройства, 00000001b - запретить свойство интерфейса, 00000010b — запретить свойство конечной точки);
-
wValue — селектор свойств;
-
wlndex — ноль (если запрос обращен к устройству), номер интерфейса или конечной точки;
-
wLength = 0.