Информационный сайт

 

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

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

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

8 idVendor 2 Идентификатор изготовителя устройства
10 idProduct 2 Идентификатор продукта
12 bcdDevice 2 Номер версии устройства в формате BCD
14 !Manufacturer 1 Индекс дескриптора строки, описывающей изготовителя
15 iProduct 1 Индекс дескриптора строки, описывающей продукт
16 iSerialNumber 1 Индекс дескриптора строки, содержащей серийный номер устройства
17 bNumConfigurations 1 Количество возможных конфигураций устройства
Глава 4. Внутренняя организация устройства_107
Il описание на языке С
typedef struct _USB_DEVICE_DESCRIPTOR { UCHAR bLength; UCHAR bDescriptorType; USHORT bcdUSB; UCHAR bDeviceClass; UCHAR bDeviceSubClass; UCHAR bDeviceProtocol; UCHAR bMaxPacketSizeO; USHORT idVendor; USHORT idProduct; USHORT bcdDevice; UCHAR !Manufacturer; UCHAR іProduct; UCHAR iSerialNumber; UCHAR bNumConfigurations;
} USB DEVICE_DESCRIPTOR;
Il
описание на языке Pascal
JsbDeviceDescriptor = packed record
bLength : BYTE;
bDescriptorType : BYTE;
bcdUSB : WORD;
bDeviceClass : BYTE;
bDeviceSubClass : BYTE;
bDeviceProtocol : BYTE;
bMaxPacketSizeO : BYTE;
idVendor : WORD;
idProduct : WORD;
bcdDevice : WORD;
!Manufacturer : BYTE;
!Product : BYTE;
iSerialNumber : BYTE;
bNumConfigurations : BYTE;
End;
108
Часть II. Внутренняя организация USB
Поля стандартного дескриптора конфигурации подчиняются следующим правилам:
? размер дескриптора (поле bLength) всегда составляет 18 байт;
? код типа дескриптора (поле bDescriptorType) имеет значение 1;
? номер версии (поле bcdUSB) представляется в формате BCD и может принимать следующие значения:
• 0100Н - версия 1.0;
• 0110Н - версия 1.1;
• 0200Н - версия 2.0;
? HS-устройства должны возвращать значение версии 2.0;
? поле кода класса (поле bDeviceClass) может принимать следующие значения:
• значение 00H обозначает, что интерфейсы функционируют независимо друг от друга, и каждый из них имеет собственный код класса;
• значение между 1 и FEH обозначает, что устройство поддерживает различные спецификации для интерфейсов, и интерфейсы не могут функционировать независимо;
• значение FFH обозначает, что класс устройства определяется изготовителем;
? код подкласса (поле bDeviceSubClass) имеет значение 0;
? КОД протокола (ПОЛЄ bDeviceProtocol) ИМЄЄТ Значение 0;
? максимальный размер пакета для нулевой конечной точки (поле bMaxPacketSizeO) составляет 64 байта для HS и 8 байт для других режимов (хотя в общем случае могут использоваться значения 8, 16, 32 и 64);
? число возможных конфигураций (поле bNumConfiguration) описывает число конфигураций только для текущей скорости работы, но не для обеих скоростей.
Идентификатор изготовителя устройства, идентификатор продукта и номер версии используются для подбора драйвера (см. разд. 10.4).
Индексы дескрипторов строк используются для получения информации об устройстве в текстовом формате: при передаче запроса на получение дескриптора строки, индекс дескриптора передается в младшем байте параметра
wValue.
Уточняющий дескриптор устройства
Уточняющий дескриптор устройства (Device Qualifier Descriptor) содержит дополнительную информацию о HS-устройстве при его работе і на другой
Гпава 4. Внутренняя организация устройства
109
скорости. Например, если устройство работает в FS-режиме, то уточняющий дескриптор вернет информацию об HS-режиме работы, и наоборот. Структура уточняющего дескриптора показана в табл. 4.3.
Таблица 4.3. Структура уточняющего дескриптора устройства
Смещение Попе Размер Описание
0 bLength 1 Размер дескриптора в байтах
1 bDescriptorType 1 Тип дескриптора (device qualifier)
2 bcdUSB 2 Номер версии спецификации USB в формате BCD (равно 0200H)
4 bDeviceClass 1 Код класса USB
5 bDeviceSubClass 1 Код подкласса устройства USB
6 bDeviceProtocol 1 Код протокола USB
7 bMaxPacketSizeO 1 Максимальный размер пакета для нулевой конечной точки
8 bNumConfigurations 1 Количество дополнительных конфигураций устройства
9 bReserved 1 Зарезервировано, должно быть равно нулю
Поля idVendor, idProduct, bcdDevice, !Manufacturer, iProduct, iSerialNumber, присутствующие в стандартном дескрипторе, в дополнительном дескрипторе отсутствуют, т. к. эта информация одинакова для всех скоростей работы.
Дескриптор конфигурации
Стандартный дескриптор конфигурации (Standard Configuration Descriptor) содержит информацию об одной из возможных конфигураций устройства. Структура дескриптора конфигурации показана в табл. 4 4, а соответствующее описание на языках С и Pascal показано в листинге 4.6.
Таблица 4.4. Структура стандартного дескриптора конфигурации
Смещение Попе Размер Описание
0 bLength 1 Размер дескриптора в байтах
1 bDescriptorType 1 Тип дескриптора (USB CONFIGURATION DESCRIPTOR__TYPE)
110
Часть II. Внутренняя организация USB
Таблица 4.4 (окончание)
Сме- Попе щение
Размер Описание
wTotalLength 2
bNumlnterfaces 1
5 bConfigurationValue 1
6 !Configuration 1
7 bmAttributes 1
8 MaxPower 1
Общий объем данных (в байтах), возвращаемый для данной конфигурации
Количество интерфейсов, поддерживаемых данной конфигурацией
Предыдущая << 1 .. 36 37 38 39 40 41 < 42 > 43 44 45 46 47 48 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100