Спецификация USB.Rev1.0

       

Конфигурация


Устройство USB должно быть сконфигурировано прежде, чем функция может использоваться. Хост ответственен за конфигурирование устройства USB. Хост обычно запрашивает информацию о конфигурации от устройства USB, чтобы определить возможности устройства.

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

Внутри одной конфигурации, устройство может поддерживать множество интерфейсов.  Интерфейс - связанный набор конечных точек, которые представляют одну возможность или функцию устройства на хосте. Протокол используется, чтобы связаться с этим связанным набором конечных точек, и цель каждой конечной точки внутри интерфейса может быть определена как часть класса устройства или определена как класс определенный продавцом.

Кроме того, интерфейс внутри конфигурации может иметь альтернативные установки, которые переопределяют номер или характеристики связанных конечных точек. Если дело обстоит так, устройство должно поддерживать запросы Получение Интерфейса (Get Interface) и Установка Интерфейса (Set Interface), чтобы сообщить или выбрать вариант специфической установки для специфического интерфейса.

Внутри каждой конфигурации, каждый дескриптор интерфейса содержит поля, которые идентифицируют номер интерфейса и альтернативную установку. Интерфейсы пронумерованы от нуля до числа параллельных интерфейсов, обеспечиваемых конфигурацией, минус один. Альтернативные установки располагаются от нуля до числа альтернативных установок для специфического интерфейса, минус один. Настройка по умолчанию, когда устройство первоначально конфигурировано , ноль альтернативных установок.

В поддержку адаптивных драйверов устройства, которые способны управлять связанной группой устройств USB, дескрипторы устройства и интерфейса, содержат поля Класс, Подкласс, и Протокол.(In support of adaptive device drivers that are capable of managing a related group of USB devices, the device and interface descriptors contain Class, SubClass, and Protocol fields.) Эти поля используются, чтобы идентифицировать функцию(и), обеспечиваемую устройством USB и используемые протоколы, чтобы связаться с функцией(ями) устройства. Код класса назначен связанному классу устройств, который был определен как часть спецификации USB. Класс устройств далее подразделен на подклассы и внутри класса или подкласса код протокола определяет, как программное обеспечение хоста связывается с устройством.


Дескриптор конфигурации описывает информацию о специфической конфигурации устройства. Дескриптор содержит поле bConfigurationValue значение которого используется как параметр в запросе Set Configuration, заставляя устройство переходить в описанную конфигурацию.

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

Когда хост запрашивает дескриптор конфигурации, возвращаются все дескрипторы относящиеся к интерфейсу и конечной точке (обратитесь к Разделу 9.4.2).

Устройство USB имеет один или более  дескрипторов конфигурации.  Каждая конфигурация имеет один или более интерфейсов, и каждый интерфейс имеет одну или более конечных точек. Конечная точка не общая для интерфейсов внутри одной конфигурации, если конечная точка не используется альтернативными установками того же самого интерфейса. Конечные точки могут быть общими для интерфейсов, которые являются частью различных конфигураций без этого ограничения.(Endpoints may be shared among interfaces that are part of different configurations without this restriction.)

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



Смещение

Поле

Размер

Значение

Описание

0

bLength

1

Number

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

1

bDescriptorType

1

Constant

CONFIGURATION

2

wTotalLength

2

Number

Общая длина данных, возвращаемых для этой конфигурации.  Включает объединенную длину всех дескрипторов (конфигурации, интерфейса, конечной точки, и класса или определений продавца) возвращенных для этой конфигурации.

4

bNumInterfaces

1

Number

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

5

bConfigurationValue

1

Number

Значение, используемое как параметр, Set Configuration, при выборе этой конфигурации

6

iConfiguration

1

Index

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

7

bmAttributes

1

Bitmap

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

D7           Питание от Шины

D6           Независимое питание

D5           Удаленное Пробуждение

D4..0      Зарезервированы (сброшены в 0)

               

Устройства сконфигурированные на использование питания от шины и локальных источников устанавливают и D7 и D6. Фактический источник питания может быть определен во временя работы, используя запрос Get Status к устройству .

Если конфигурация устройства поддерживает удаленное пробуждение, D5 установлен в 1.

Смещение

Поле

Размер

Значение

Описание

8

MaxPower

1

mA

Максимальное потребление мощности устройством USB от входной шины в этой специфической конфигурация, когда устройство полностью работоспособно. Выраженный в 2 мA модулях (т.е.,  50=100 мA). (Expressed in 2 mA units (i.e., 50 = 100 mA).

Обратите внимание: конфигурация устройства сообщает, является ли конфигурация питающейся от шины или с независимым питанием. Состояние устройства сообщает, является ли устройство в настоящее время с независимым питанием.  Если устройство отсоединено от внешнего источника питания, оно модифицирует состояние устройства показывая, что оно больше не  независимо питающееся.

Устройство не может увеличивать, потребляемую мощность от шины, когда оно теряет внешний источник питания, выше сообщенного конфигурацией количества.

Если устройство может продолжать функционировать когда отсоединено от внешнего источника питания, оно продолжает это делать. Если устройство не может продолжать функционировать, оно отказывается от операций, которые больше не может поддерживать.  Программное обеспечение хоста может определить причину отказа,  проверяя состояние и отмечает потерю источника питания устройства.



Содержание раздела