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

       

Конфигурация Устройства


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

Система USB принимает специализированного клиента USBD, называемого драйвером концентратора, который действует как фирма очистки для добавления устройств к и удаления устройств из специфического концентратора.(The USB system assumes a specialized client of the USBD, called a hub driver, which acts as a clearing house for addition of devices to and removal of devices from a particular hub.) Если только драйвер концентратора получает такие уведомления, он будет использовать дополнительное программное обеспечение хоста и других  клиентов USBD, способом зависящем от операционной системы, для распознавания и конфигурирования устройства. Эта модель, показана на Рисунок 10-4 служит основой дальнейшего обсуждения.

Рисунок 10-4.  Взаимодействие в Конфигурации

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

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

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


2.       Конфигурация USB.  Чтобы фактически создать канал USBD, готовый для использования клиентом, клиент должен определить дополнительную информацию USB, не видимую на устройстве. Эта информация, известный как Стратегия для канала, описывает, как клиент использует канал. Она включает такие единицы как максимальное количество данных, которые клиент будет передавать в одном IRP, максимальный интервал обслуживания используемый клиентом, идентификация уведомления клиента, и так далее.

3.       Конфигурация функции.  Только если типы конфигурацию 1 и 2 были выполнены, канал полностью готов для использования с точки зрения USB. Однако, дополнительно может требоваться определяемая продавцом или классом установка прежде, чем канал может фактически использоваться клиентом. Эта конфигурация индивидуальный вопрос между устройством и клиентом и не стандартизирована USBD.

Следующие абзацы описывают требования устройства и конфигурации USB.

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

  • Драйвер концентратора


  • Другое программное обеспечение хоста


  • Драйвер устройства


  • Конфигурирующее программное обеспечение сначала читает дескриптор устройства, затем запрашивает описание для каждой возможной конфигурации. Оно может использовать предоставленную информацию, чтобы загрузить особого клиента, типа драйвера устройства, который первоначально взаимодействует с устройством. Конфигурирующее программное обеспечение, возможно со вводом из этого драйвера устройства, выбирает конфигурацию для устройства.(The configuring software, perhaps with input from that device driver, chooses a configuration for the device.) Установка конфигурации устройства устанавливает все конечные точки на устройстве и возвращает набор интерфейсов, которые нужно использовать для передачи данных клиентам USBD. Каждый интерфейс - это набор каналов, принадлежащих одному клиенту.



    Эта начальная конфигурация использует установки по умолчанию для интерфейсов и заданную по умолчанию пропускную способность для каждой конечной точки. Реализация USBD может дополнительно позволять клиенту определять альтернативные интерфейсы при выборе начальной конфигурации. Система USB проверит, что имеются ресурсы, требуемые для поддержки конечной точки и, если это так, выделит требуемую пропускную способность. Обратитесь к Разделу 10.3.2 для обсуждения управления ресурсами.

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

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

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


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