Интернет магазин китайских планшетных компьютеров



Компьютеры - USB core - Принцип работы

28 апреля 2011


Оглавление:
1. USB core
2. Принцип работы
3. Список стандартных прикладных интерфейсов
4. Модели USB API



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

Метод определения оптимального способа работы драйверов с USB-устройством довольно сложный:

  • USB поддерживает 4 способа передачи данных. Два типа из них используют всю доступную пропускную способность, тогда как остальные два должны обеспечивать заданную пропускную способность.
  • Модель описания устройства включает в себя одну или более «конфигураций» для каждого устройства, причем активной в любой момент времени может быть только одна из них. Устройства стандарта «high speed» должны поддерживать и конфигурации для работы со стандартом «full speed», а также возможна поддержка конфигураций и для других стандартов/скоростей.
  • Конфигурации имеют один или более «интерфейсов», каждый из которых может содержать различные параметры/настройки. Такие интерфейсы могут соответствовать стандарту USB, а могут быть специфичными лишь для определенного производителя/устройства. И именно к интерфейсам и привязаны драйверы USB-устройств, а не к устройству непосредственно.
  • Интерфейсы имеют одну или более «конечных точек», каждая из которых поддерживает один тип и направление передачи данных. Полная конфигурация может иметь до шестнадцати конечных точек в каждом направлении.
  • Передача данных по USB осуществляется пакетами, причем каждая точка имеет запись о максимальном размере пакета.
  • Прикладной интерфейс USB в Linux поддерживает синхронные вызовы для передачи сообщений типа control и bulk. Также поддерживаются асинхронные вызовы для всех видов передачи данных путем использования специальных структур запроса, называемых «блоками запроса USB».

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



Просмотров: 3807


<<< User-mode Linux