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

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

Агуров П.В. Интерфейсы USB. Практика использования и программирования — БВХ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interfeysusbpraktikaispolzovaniya2004.djvu
Предыдущая << 1 .. 32 33 34 35 36 37 < 38 > 39 40 41 42 43 44 .. 168 >> Следующая

триггер синхронизации данных должен быть сброшен в 0: при выполнении
первой транзакции блок данных имеет тип DataO, второй - Datal, третий -
DataO И Т. Д.
Прием и передачу массивов данных могут выполнять только полноскоростные
устройства. Максимальный размер пакета при передаче массива может быть
равен 8, 16, 32 или 64 байтам.
Передача массива
Прием массива
OUT (0) OUT(1)
DataO Datal
IN (0) IN (1)
DataO
Datal
OUT (0/1)
Data0/1
IN (0/1)
Data0/1
Setup (0) I OUT(1) OUT (0) OUT (0/1) I IN (1)
DataO I Datal DataO DataO/1 Datal
Setup (0) | "N (1) IN (0) IN (0/1) | OUT(1)
DataO ¦ Datal DataO Data0/1 1 Datal
Setup (0) | I IN (1)
DataO I I Datal
Команда i Данные pU Контроль
Рис. 3.14. Формат управляющих посылок
Рис. 3.15. Формат посылок передачи данных
Гпава 3. Внутренняя организация шины
95
Передачи по прерываниям
Существуют два типа передачи по прерываниям:
? передача массива данных от хоста к конечной точке по прерыванию;
? прием хостом массива данных от конечной точки по прерыванию.
Передача данных по прерыванию заключается в выполнении транзакции
передачи пакета данных с подтверждением от хоста к конечной точке. Прием
заключается в выполнении транзакции приема пакета данных с подтверждением
от конечной точки. При приеме или передаче каждого блока данных
происходит переключение триггера данных. Первый передаваемый (или
принимаемый) блок должен иметь тип DataO, следующий - Datal и т. д.
Максимальный размер пакета при передаче по прерыванию для низкоскоростных
усгройств не может быть более 8 байт, а для высокоскоростных - более 64
байт.
Изохронные передачи
Существуют два типа изохронной передачи:
? изохронная передача данных от хоста к конечной точке;
? изохронный прием данных хостом от конечной точки.
Изохронная передача данных заключается в выполнении транзакции передачи
пакета данных без подтверждения от хоста к конечной точке. Изохронный
прием заключается в выполнении транзакции приема пакета данных без
подтверждения от конечной точки.
Состояние триггера данных при изохронной передаче игнорируется, но
рекомендуется сбросить его в ноль перед началом передачи.
Изохронную передачу могут выполнять только полноскоростные устройства.
Максимальный размер пакета данных при изохронной передаче - 1023 байта.
Глава 4
Внутренняя организация устройства
Миксер - это устройство, приводящее продукты в замешательство.
4.1. Запросы к USB-устройствам
Все USB-устройства принимают запросы от хост-контроллера и отвечают на
них через Основной канал сообщений {см. разд. 3.7). Запросы выполняются
при помощи управляющих посылок (см. разд. 3.10.3).
4.1.1. Конфигурационный пакет
Запрос и-его параметры передаются устройству в конфигурационном пакете
(Setup Packet). Конфигурационный пакет имеет размер 8 байт (табл. 4.1).
Структура конфигурационного пакета на языке Pascal показана в листинге
4.1.
Таблица 4.1. Конфигурационный пакет
Смещение Поле Размер Описание
0 bmRequestType BY ТЕ Тип запроса
1 bRequest BYTE Код запроса
2 wValue WORD Параметр запроса
4 wlndex WORD Индекс или смещение
6 wLength WORD Число байт для передачи
Листинг 4.1. Конфигурационный пакет
TSetupPacket = packed record tamRequest : UCHAR; bRequest : UCHAR;
Глава 4. Внутренняя организация устройства
97
wValue : Array [1..2] of UCHAR;
wlndex : Array [1..2] of UCHAR;
wLength : Array [1..2] of UCHAR;
End;
Тип запроса bmRequestType имеет размер 1 байт и состоит из следующих
битов:
? [7] направление передачи:
• 0 - от хоста к устройству;
• 1 - от устройства к хосту;
? [6:5] код типа запроса:
• 0 - стандартный запрос;
• 1 - специфический запрос для данного класса;
• 2 - специфический запрос изготовителя;
• 3 - зарезервирован;
? [4:0] код получателя:
• 0 - устройство;
• 1 - интерфейс;
• 2 - другой получатель;
• 4-31 зарезервированы.
Поле кода запроса определяет операцию, выполняемую запросом. В
спецификации USB определены только коды стандартных запросов к устройству
(листинг 4.2).
i Листинг 4.2. Коды стандартных запросов
// GET_STATUS (определение состояния устройства)
Idefine USB_REQUEST_GET_STATUS // CLEAR_FEATURE (сброс устройства)
#define USB_REQUEST_CLEAR^FEATURE // код 2 зарезервирован // SET_FEATURE
(установить свойство)
#define USB_REQUEST_SET_FEATURE // код 4 зарезервирован // SET_ADDRESS
(установить адрес)
#define USB REQUEST SET ADDRESS
0x00
0x01
0x03
0x05
98
Часть II. Внутренняя организация USB
// GET_DESCRPTOR (получить дескриптор)
#define USB_REQUEST_GET_DESCRIPTOR 0x06
// SET_DESCRIPTOR (загрузить дескриптор)
#define USB_REQUEST_SET_DESCRIPTOR 0x07
// GET_CONFIGURATION (получить код текущей конфигурации) #define
USB_REQUEST_GET_CONFIGURATION 0x08
// SET_CONFIGURATION (установить конфигурацию)
#define USB_REQUEST_SET_CONFIGURATION 0x09
// GET_INTERFACE (получить код интерфейса)
#define USB_REQUEST_GET_INTERFACE Ox0A
// SET_INTERFACE (установить интерфейс)
#define USB_REQUEST_SET_INTERFACE OxOB
// SYNC_FRAME (кадр синхронизации)
Предыдущая << 1 .. 32 33 34 35 36 37 < 38 > 39 40 41 42 43 44 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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