Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 28

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 22 23 24 25 26 27 < 28 > 29 30 31 32 33 34 .. 166 >> Следующая

? Конвертеры интерфейсов и протоколов
• http://postman.ru/~makarov/pclink/converter.htm
? Шина USB
• http://www.spline.ru/interfaces/usb.htm
ft J
ЧАСТЬ II
Внутренняя организация USB
Внутренняя организация шины
Сверху дали "добро", внизу зло выругались, но пошли выполнять.
Так добро побеждает зло
Все операции по передаче данных по шине USB инициируются хостом. Периферийные устройства сами начать обмен данными не могут. Они могут только реагировать на команды хоста. В этой главе мы рассмотрим общую схему обмена данными по шине USB, а подробности каждого шага обмена рассмотрим в следующих главах.
3.1. Логические уровни обмена данными
Система USB разделяется на три логических уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную, логическую И функциональную части. Хост тоже делится на три части — интерфейсную, Системную и программное обеспечение (ПО). Каждая часть отвечает только за определенный круг задач. Логическое и реальное взаимодействие между Ними показано на рис. 3.1.
Таким образом, операция обмена данными между прикладной программой И шиной USB выполняется путем передачи буферов памяти через следующие уровни:
O уровень клиентского ПО в хосте:
• обычно представляется драйвером устройства USB;
• обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой;
О уровень системного обеспечения USB в хосте (USBD, Universal Serial Bus Driver):
• управляет нумерацией устройств на шине;
• управляет распределением пропускной способности шины и мощности питания;
• обрабатывает запросы пользовательских драйверов;
66
Часть II. Внутренняя организация USB
Хост
Устройство
Клиентское ПО
управляет интерфейсом
I
Логический поток на уровне функций
Функциональное устройство: набор интерфейсов
I
I Функциональный уровень
Системное обеспечение USB управляет устройством
I
Логический поток на уровне ^ устройств
Логическое устройство: нвбор конечных точек
Ї
Логический 'уровень
Хост-контроллер интерфейса шины USB
I USB-кабель'
Интерфейс USB
Уровень шины
Рис. 3.1. Взаимодействие компонентов USB
? хост-контроллер интерфейса шины USB (HCD, Host Controller Driver):
• преобразует запросы ввода/вывода в структуры данных; по которым хост-контроллер выполняет физические транзакции;
• работает с регистрами хост-контроллера. Рассмотрим каждый уровень более подробно.
3.1.1. Уровень клиентского ПО
Уровень клиентского программного обеспечения определяет тип передачи данных, необходимый для выполнения затребованной прикладной программой операции. После определения типа передачи данных этот уровень передает системному уровню следующее:
? буфер памяти, называемый клиентским буфером;
? пакет запроса на в/в (IRP, Input/output Request Packet), указывающий тип необходимой операции.
IRP содержит только сведения о запросе (адрес и длина буфера в оперативной памяти). Непосредственно обработкой запроса занимается системный драйвер USB. Запросы клиентского ПО мы рассмотрим в главе 4.
гпава 3. Внутренняя организация шины
67
3.1.2. Уровень системного драйвера USB
Уровень системного драйвера USB необходим для управления ресурсами USB. Он отвечает за выполнение следующих действий:
? распределение полосы пропускания шины USB;
О назначение логических адресов устройств каждому физическому USB-устройству;
? планирование транзакций.
Распределение полосы пропускания
До установления каналов передач из хоста в конечную точку какого-либо устройства системное программное обеспечение USB должно сначала определить, может ли шина USB обеспечить минимальную требуемую полосу пропускания для данной точки. В каждом устройстве есть специальная таблица, содержащая дескрипторы конечных точек устройства, в которых хранится значение минимально допустимой полосы пропускания для соответствующей конечной точки. В процессе определения устройств в фазе начальной инициализации системное программное обеспечение читает эти дескрипторы и определяет суммарную полосу пропускания для данного устройства. Хранящееся в дескрипторе значение определяет, какая доля пропускной способности шины необходима для передачи информации в (или от) конечную точку. При этом, однако, не учитываются никакие накладные расходы. Определяя общую потребность для поддержки канала к каждой конечной точке, системное обеспечение USB учитывает следующее:
? число байтов данных;
? тип передачи данных;
? время восстановления хоста;
? время заполнения битами;
? уровень вложенности топологии.
Назначение логических адресов
Логическое устройство USB представляет собой набор независимых конечных точек (см. разд. 3.6), с которыми клиентское ПО обменивается информацией. Каждому логическому устройству USB (как функции, так и хабу) назначается свой адрес (1—127), уникальный на данной шине USB. Каждая конечная точка логического устройства идентифицируется своим номером (0—15) и направлением передачи (IN — передача к хосту, OUT — от хоста).
68
Часть II. Внутренняя организация USB
Планирование транзакций
Предыдущая << 1 .. 22 23 24 25 26 27 < 28 > 29 30 31 32 33 34 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100