- •Лабораторная работа
- •Структура 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?
12. Как проверить принадлежность устройства к классу принтеров?
Устройство, относящееся к классу принтеров, должно поддерживать стандартные дескрипторы устройства, конфигурации, интерфейса и конечных точек.
13. Опишите особенности и принцип работы с принтером через usb интерфейс.
Принтеры поддерживают все стандартные запросы к устройству USB, а также несколько специфических (для своего класса) запросов:
-
Get Device ID - получить идентификатор устройства;
-
Get Port Status - получить информацию о текущем состоянии принтера;
-
Soft Reset - произвести программный сброс принтера.
14. Какие командные языки используются для управления процессом печати?
Для управления процессом печати используются командные языки фирм-изготовителей принтеров, поэтому создать единый универсальный драйвер практически невозможно. Существуют, однако, достаточно крупные группы изделий, для которых можно создать специфические драйверы, используя открытые (опубликованные) спецификации на командные языки. Например, как уже было указано в главе «Принтеры: печать в растровом режиме», для лазерных принтеров фактическим стандартом является язык HP PCL, а все струйные принтеры EPSON поддерживают язык Epson raster. Многие модели лазерных принтеров поддерживают также язык PostScript.
15. Как производится программный сброс принтера?
Программный сброс принтера производится по запросу Soft Reset. Запрос имеет следующие параметры:
-
bmRequestType = 00100011b;
-
bRequest = 2;
-
wValue = 0;
-
wIndex — индекс интерфейса;
-
wLength = 0.
Передача данных при выполнении запроса не производится.
16. Опишите назначение полей bDeviceClass, bDeviceSubClass, bDeviceProtocol в дескрипторе устройства.
Поля bDeviceClass, bDeviceSubClass, bDeviceProtocol в дескрипторе Устройства содержат нули и не используются для проверки принадлежности устройства к классу принтеров.
17. Что происходит по запросу Get Port Status?
По запросу Get Port Status принтер передает хосту байт состояния, который имеет формат, аналогичный изображенному на рис. 7.2 формату регистра состояния параллельного порта. Байт состояния имеет следующую структуру:
-
биты 0-2 не используются, установлены в 0;
-
бит 3 — признак ошибки ввода-вывода (0 — ошибка, 1 — нет ошибки);
-
бит 4 — признак выбора принтера (0 — принтер в автономном режиме, 1 — принтер в режиме подключения);
-
бит 5 — контроль наличия бумаги (0 — бумага вставлена, 1 — нет бумаги);
-
биты 6 и 7 не используются, установлены в 0.
18. Что происходит по запросу Get Device id?
По запросу Get Device ID принтер передает хосту строку-идентификатор (Device ID) в формате, соответствующем стандарту IEEE- 1284: первые два байта содержат 16-разрядное слово, задающее общую длину идентификатора в байтах, а вслед за ними размещается собственно строка-идентификатор в коде ASCII.