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

Дескрипторы


Устройства USB сообщают свои атрибуты, использующие дескрипторы. Дескриптор - структура данных с определенным форматом. Каждый дескриптор начинается с поля шириной в байт, которое содержит общее число байтов в дескрипторе, который следует за полем шириной в байт, определяющее тип дескриптора.

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

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

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

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

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

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


Если класс требует любого специфического определения стандартных дескрипторов, определение класса должно включить такие требования как часть определения класса(If the class requires any specific definition of the standard descriptors, the class definition must include those requirements as part of the class definition.) Кроме того, если класс определяет набор расширяющий стандартных дескрипторов, они должны также быть полностью определены в определении класса(In addition, if the class defines a standard extended set of descriptors, they must also be fully defined in the class definition.) Любые определения расширений дескрипторов должны придерживаться подхода, используемого стандартными дескрипторами; например, все дескрипторы должны начаться с поля длины.




Дескрипторы Концентратора получаются базируясь на каркасе устройства USB. Дескрипторы Концентратора определяют устройство концентратора и порты на этом концентраторе. Хост обращается к дескрипторам концентратора через создаваемый по умолчанию канал концентратора.

USB Спецификация (обратитесь к Главе 9) определяет следующие дескрипторы:

  • Устройства
  • Конфигурации
  • Интерфейса
  • Конечной точки
  • Строковый (необязательный)
  • Класс концентратора определяет дополнительные дескрипторы (обратитесь к Разделу 11.11.2). Кроме того,  в каркасе устройства USB допустимы определенные продавцом дескрипторы. Концентраторы поддерживают стандартные команды устройства USB как определено в Главе 9.



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