Программирование драйверов Windows

         

USB: Universal Serial Bus


Спецификация USB была разработана консорциумом компаний, включая Intel и Microsoft. Целью нового стандарта было обеспечение организации недорогой среднескоростной шины в таких областях применения, как передача цифровых изображений, компьютерная телефония и мультимедийные игры. Текущими версиями спецификации USB является версия 1.1 и версия 2.0 (разумеется, во вторую заложены более высокие скоростные характеристики), и список компаний-членов, участвующих в консорциуме, постоянно растет.

Предельная скорость передачи данных по шине USB спецификации 1.1 составляет 12 Мбит/сек (Full Speed). Медленные используют низкую скорость передачи 1,5 Мбит/сек (Low Speed). Стандарт USB версии 2.0 поддерживает физическую скорость передачи 480 Мбит/сек (High Speed). Реально же максимальная скорость соединения компьютер - USB устройство (в разрабатываемом автором приборе) достигала 32 Мбайт/с. Данные передаются последовательно по паре проводников. Питание для некоторых устройств доступно по отдельным проводникам питания и заземления (для устройств с небольшим энергопотреблением).

Устройства USB могут быть подключены 5-метровым кабелем (а практически &#8212 и более длинным). Использовании USB хаба (hub &#8212 сетевой концентратор), позволяет увеличить дальность размещения устройств от хост-компьютера и увеличить количество устройств, подключаемых к одной шине USB. Последовательно можно включить до пяти устройств-хабов, обеспечив длину соединения 30 метров. Пример конфигурации "сети", построенной с использованием USB-хабов приводится на рисунке 5.4.

Рис. 5.4

Пример конфигурации устройств шины USB

Следует заметить, что устройства High Speed (для USB 2.0) должны поддерживать функционирование и на скорости Full Speed. Более того, процесс "перечисления" проводится как раз на этой скорости.

При конфигурировании устройств при использовании внешних USB хабов следует помнить, что хаб, предназначенный для работы на некоторой скорости (например, Full Speed), ограничит скорость работы устройств, стоящих в цепочке устройств далее от хост-компьютера (например, High Speed устройства), и последние не смогут работать на скорости, превышающую скорость этого медленного хаб-концентратора. При отсутствии возможности работать на скорости Hi Speed устройства Hi Speed работают на скорости Full Speed.

Работа программиста, создающего драйвер внешнего (не находящегося на материнской плате) USB устройства сводится к тому, чтобы воспользоваться программным интерфейсом системных драйверов шины USB, общение с которым происходит при помощи пакетов, называемых URB (USB Request Block) пакетами. Работа с регистрами USB контроллеров на материнской плате теперь стала уделом узкого круга специалистов &#8212 разработчиков материнских плат и операционных систем. Всем остальным разработчикам USB устройств с управлением программ под Windows предлагается достаточно развитый программный интерфейс к системным WDM драйверам, которые берут на себя все аппаратно-ориентированные операции.

К хост-компьютеру можно подключить до 127 устройств, шинный адрес которых устанавливается динамически при подключении устройств.



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