Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): Chapter 13. USB Drivers
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Глава 13. Драйверы USB. armagetron 31.10.10 в 09:58 |
|
|
Универсальная последовательная шина (USB) осуществляет связь между хост-компьютером и некоторым количеством периферийных устройств. Первоначально она была создана для замены широкого круга медленных и разнотипных шин (параллельных,последовательных и os/2 подключений) однотипной шиной, к которой могут подключаться все устройства.[1] USB выросла за пределы этих медленных соединений и и сейчас поддерживает практически все типы устройств, которые могут быть подключены к компьютеру. Последняя версия спецификации USB включает в себя высокоскоростное подключение с теоретическим пределом скорости в 480 Мбит/с art_injener 11.03.11 в 18:44 |
||
|
[1] Части этой главы основаны на "встроенную в ядро" документацию USB кода ядра Linux, которая была написана разработчиками ядра USB и выпущены под лицензией GPL. nightmare_84 18.03.11 в 15:59 |
||
|
Топологически, подсистема USB не размечена как шина; это - скорее дерево, созданное из нескольких магистральных линий. Каналы связи- четырехпроводные кабели (земля, питание, и два сигнальных провода), которые соединяют устройство и концентратор, точно так же как Ethernet витой пары. Хост-контроллер USB отвечает за опрос каждого USB-устройства, на предмет существования каких-либо данных, для передачи. Из-за этой топологии USB-устройство никогда не может начинать отправлять данные без предварительного опроса со стороны хост-контроллера. Эта конфигурация предоставляет возможность очень легкого типа Plug and Play системы, посредством чего устройства могут быть автоматически сконфигурированы главным компьютером. nightmare_84 20.03.11 в 14:18 |
||
|
На технологическом уровне шина очень проста, так как является реализацией "single-master" в которой узел (хост-машина) опрашивает различные периферийные устройства. Несмотря на это собственное ограничение, шина имеет ряд интересных преимуществ, таких, как возможность устройства запрашивать фиксированную пропускную способность (bandwidth) для передаче своих данных, для поддержки надежного ввода-вывода видео и аудио сигналов. nightmare_84 20.03.11 в 13:56 |
||
|
[2] Фактически, существуют некоторые структуры, но это в основном сводится к требованию для связи, чтобы вписаться в один из нескольких предопределенных классов: клавиатура не будет выделять пропускную способность, например, в то время как некоторые видеокамеры будут. nightmare_84 20.03.11 в 14:07 |
||
|
Спецификация USB протокола определяет набор стандартов по которым любой прибор соответствующего типа может быть подключён. Если устройство соответствует этому типу, то специфичный драйвер для этого устройства не требуется. Этот набор различных типов называется классами и состоит из таких частей как запоминающие устройства, клавиатуры,мышь,джойстик,сетевые устройства и модемы. Остальные типы устройств, которые не соответствуют данным классам нуждаются в специальных vendor-специфичных драйверов, написанных конкретно для этого устройства. Видео устройства и USB-последовательные устройства являются хорошим примером,где нет соответствия стандарту и драйвер требуется для каждого устройства от различных производителей. art_injener 21.03.11 в 18:46 |
||
|
Эти особенности,вместе с присущей конструкции возможностью авто определения оборудования, делают USB удобным, недорогим механизмов подключения (и отключения) различных устройств к компьютеру без необходимости выключения системы, вскрытия корпуса и ругани по поводу болтов и проводов. art_injener 21.03.11 в 19:11 |
||
|
Linux поддерживает два типа драйверов USB: драйверы на хост-системе и драйверы на устройстве. USB драйверы для хост-систем управляют подключенными к ним USB устройствами,с точки зрения хоста (общим USB-хостом выступает компьютер). USB драйвер устройства, контролируют то как отдельное USB устройство представляется по отношению к хост компьютеру. Поскольку термин "USB драйвер устройства" очень неоднозначен, разработчики USB ввели термин "USB гаджет драйвер" для описания драйверов,которые управляют устройствами,подключёнными к компьютеру (помните что Linux так же работает в этих маленьких встраиваемых устройствах). В этой главе подробно описывается как работает система USB настольного компьютера. USB драйверы гаджетов пока находятся вне области данной книги. art_injener 11.03.11 в 19:32 |
||
|
Глава 13 показывает, как USB драйверы существуют между различными подсистемами ядра (блочные, сетевые, символьные и т.д.) и аппаратными контроллерами USB.Ядро USB предоставляет интерфейс для USB драйверов , используемый для доступа и управления USB аппаратурой, без необходимости беспокоиться о различных типах аппаратных контроллеров USB, которые присутствуют на системе. art_injener 21.03.11 в 19:35 |
||
|
Рис. 13-1. Обзор драйвера USB. armagetron 31.10.10 в 09:58 |
