USB MSD. Часть 3. USB класс накопителей данных (перевод)


Описатель конфигурации

Каждое устройство имеет не менее одной конфигурации, определяющей его особенности и возможности. Множественные конфигурации допустимы, но встречаются редко. Описатель конфигурации содержит информацию о токе потребления устройства и количестве поддерживаемых интерфейсов. В таблице 3-2 показаны поля описателя конфигурации. Ниже приводится более подробное описание каждого поля и особенности его использования в накопителях данных.


Таблица 3-2. Описатель конфигурации (9 байт)
 
0 bLength Длина описателя в байтах
1 bDescriptorType Тип описателя ("CONFIGURATION")
2 wTotalLength Длина описателя, включая длины всех связанных с ним подчинённых описателей в байтах
4 bNumInterfaces Число интерфейсов
5 bConfigurationValue Идентификатор для запросов "Set Configuration" и "Get Configuration"
6 iConfiguration Индекс строкового описателя конфигурации
7 bmAttributes Флаги режимов питания и удалённого пробуждени
8 bMaxPower Кодированное значение потребляемого устройством тока
  • bLength

    Длина описателя в байтах. Всегда равна 0x09.

  • bDescriptorType

    Константа, соответствующая типу описателя. Для конфигурации ("CONFIGURATION") равна 0x02.

  • wTotalLength

    Длина описателя в байтах, включающая длины всех связанных подчинённых описателей. Связанные описатели включают описатели интерфейсов и оконечных точек, но не включают строковые описатели.

  • bNumInterfaces

    Число интерфейсов в конфигурации. Минимальное значение равно "1". Устройства с несколькими интерфейсами могут выполнять несколько функций, таких как накопитель данных и HID.

  • bConfigurationValue

    Уточняет конфигурацию в запросах "Get Configuration" и "Set Configuration". Устанавливается в 0x01 для первой (или единственной) конфигурации.

  • iConfiguration

    Индекс строкового описателя конфигурации. Устанавливается в нуль, если описатель отсутствует.

  • bmAttributes

    Бит 7 должен быть равен "1".
    Бит 6 = 1, если устройство содержит собственный источник питания;
    Бит 6 = 0, если устройство питается от шины.
    Бит 5 = 1, если устройство поддерживает режим пробуждения, позволяющий приостановленному ("Suspended") устройству сообщить центральному процессору о желании пообщаться. USB-устройства должны переходить в состояние приостановки ("Suspend") в случае отсутствия активности на шине, включая маркеры начала фрейма ("Start-of-Frame"), в течение 3 миллисекунд. Если приостановленное устройство с возможностью удалённого пробуждения нуждается в активности центрального процессора, то оно может сделать запрос на восстановление обмена. Накопители данных, как правило, не поддерживают режим пробуждения.
    Биты 4..0 должны быть равны "0".

  • bMaxPower

    Определяет максимальный ток потребления устройства. Значение данного поля равно делённой пополам величине максимального потребляемого тока в миллиамперах. Если устройство потребляет 200 миллиампер, то значение "bMaxPower" будет равно 100. Максимально допустимый ток потребления равен 500 миллиампер. Если запрошенная величина превышает возможности системы, центральный процессор может прекратить процесс конфигурирования устройства. Некоторые батарейные хосты и все питаемые от шины концентраторы могут отдавать только 100 миллиампер тока через каждый порт. Чтобы позволить устройству работать через такие порты в режиме питания от шины значение "bMaxPower" не должно превышать 0x32.

ПредпросмотрВложениеРазмер
usb_msd_3.zip68.8 КБ