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


Дескрипторы


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

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

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

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

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

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

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




Начало  Назад  Вперед



Книжный магазин