Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДП.docx
Скачиваний:
11
Добавлен:
23.09.2019
Размер:
4.64 Mб
Скачать

2.1.1.3 Дескриптор конфигурации

Каждое USB устройство обладает одним или несколькими дескрипторами конфигу­раций, которые описывают различные конфигурации, поддерживаемые устрой­ством. Чтобы получить этот дескриптор, системное программное обеспечение направляет конечной точке 0 управляющую транзакцию GET_DESCRIPTOR.

Де­скриптор конфигурации определяется следующим образом [2.2]:

typedef struct _USB_CONFIGURATION_DESCRIPTOR

{

UCHAR bLength;

UCHAR bDescriptorType;

USHORT wTotalLength;

UCHAR bNumInterfaces;

UCHAR bConfigurationValue;

UCHAR iConfiguration;

UCHAR bmAttributes;

UCHAR MaxPower;

} USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;

Описание полей дескриптора конфигурации приведено в таблице 2.4 [2.3]:

Таблица 2.4 – Описание полей дескриптора конфигурации

Смещение поля данных,

байт

Наименование поля

Размер,

байт

Описание

0

bLength

1

Размер дескриптора в байтах

1

bDescriptorType

1

Тип дескриптора

(USB_CONFIGURATION_ DESCRIPTOR_TYPE)

2

wTotalLength

2

Общий объем данных (в байтах), возвращаемый для данной конфи­гурации

4

bNumInterfaces

1

Количество интерфейсов, поддерживаемых данной конфигурацией

5

bConfigurationValue

1

Идентификатор конфигурации, ис­пользуемый при вызове

SET_CONFIGURATION ДЛЯ установки данной конфигурации

Продолжение таблицы 2.4

6

iConfiguration

1

Индекс дескриптора строки, описы­вающей данную конфигурацию

7

bmAttributes

1

Характеристики конфигурации

8

MaxPower

1

Код мощности, потребляемой USB- устройством от шины ,

Поле bmAttributes представляет собой битовую маску, имеющую следую­щие значения:

  • [7: х0000000] – зарезервирован и должен равняться нулю;

  • [6: 0х000000] – признак наличия у USB-устройства собственного источника питания:

  • 0 — получает питание по шине;

  • 1 — имеет собственный источник питания;

  • [5: 00х00000] – признак возможности пробуждения USB-устройства по внешнему сигналу:

  • 0 — не имеет такой возможности;

  • 1 — имеет возможность пробуждения;

  • [4-0: 000ххххх] – зарезервированы и должны содержать нули.

Значение поля MaxPower равно максимальному току в миллиамперах, потребляемому USB-устройством от шины, деленному на 2.

USB-устройство может иметь один или несколько дескрипторов конфигурации в соответствии с количеством возможных конфигураций, указанных в стандартном дескрипторе. Каждая конфигурация имеет один или несколько интерфейсов. Каждый интерфейс имеет ноль или несколько ко­нечных точек.

Каждая конфигурация описывается одним стандартным дескриптором, размер которого составляет 9 байт. Поле bConfigurationValue является идентификатором конфигурации, описываемой данным дескриптором, и исполь­зуется при установке конфигурации.

Ко­личество доступных интерфейсов указывается в поле bNumInterfaces. На­пример, ISDN-устройство может иметь конфигурацию с двумя интерфейсами, каждый из которых предоставляет канал по 64 Кбит/с, либо конфигурацию с одним интерфейсом, но имеющую канал 128 Кбит/с.

USB-устройство может вернуть дескриптор конфигурации, с полем bDescriptorType, равным OTHER_SPEED_CONFIGURATION. Такой дескриптор описывает конфигурацию для HS-режима (HIGH SPEED), если данное устройство поддер­живает этот режим.