Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Аппаратное обеспечение -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 78

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

Агуров П.В. Интерфейсы USB. Практика использования и программирования — БВХ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interfeysusbpraktikaispolzovaniya2004.djvu
Предыдущая << 1 .. 72 73 74 75 76 77 < 78 > 79 80 81 82 83 84 .. 168 >> Следующая

(обнаруженным) устройством, то на этот запрос откликнется только одно
устройство, даже если к шине подключено их несколько. Устройство отвечает
восьмибайтовым дескриптором, в котором содержится максимальный размер
пакета, поддерживаемый конечной точкой 0.
9. Хост назначает устройству уникальный адрес, посылая запрос
set_address. Устройство посылает хосту подтверждение и переходит в
состояние Адресовано (Addressed). С этого момента любой обмен с
устройством возможен только по этому адресу. Адрес устройства верен до
отключения устройства, во время следующего включения устройство может
получить другой адрес.
10. Хост считывает конфигурацию устройства, включая заявленный
потребляемый ток от шины. Хост посылает запрос get_descriptor по новому
адресу. Дескриптор, посылаемый устройством, содержит максимальный
228
Часть III. Практика программирования
размер пакета для нулевой конечной точки, число поддерживаемых
устройством конфигураций и другую информацию об устройстве.
11. Хост ищет и загружает драйвер устройства. После того как хост узнал
всю информацию об устройстве, он ищет наиболее подходящий драйвер и
загружает его. При поиске драйвера Windows проверяет поля Vendor, Product
ID и Release Number в INF-файлах. Если такой INF-файл не найден, Windows
пытается найти драйвер согласно классу, подклассу и типу протокола,
полученным от устройства.
12. Драйвер выбирает конфигурацию. Драйвер посылает запрос
set__configuration. Многие устройства имеют только одну возможную
конфигурацию, но если устройство поддерживает несколько конфигураций,
драйвер выберет либо первую, либо базовую, либо попросит пользователя
выбрать нужную конфигурацию. Исходя из полученной информации, хост
конфигурирует все имеющиеся конечные точки данного устройства, которое
переводится в состояние Сконфигурировано (Configured). Теперь хаб
позволяет устройству потреблять от шины полный ток, заявленный в
конфигурации. Устройство готово.
Когда устройство отключается от шины, хаб уведомляет об этом хост и
работа порта запрещается, а хост обновляет свою текущую топологическую
информацию.
10.2.3. PnP-идентификаторы устройств USB
Каждое устройство, спроектированное по спецификации РпР, должно иметь
идентификатор, который однозначно определяет модель данного устройства.
Этот идентификатор должен быть предоставлен шинному аппаратному
обеспечению (и, соответственно, шинному драйверу) по поступлении запроса.
Секция описания модели (см. разд. 10.4.5) содержит поле hw id, играющее
роль идентификатора модели.
Идентификатор устройства должен иметь строго определенный для данного
класса устройств формат. Для устройств USB идентификатор имеет следующий
формат:
US В \ Vi d_vwv s Р i d_dddds Re v_r г
Здесь vvw - идентификатор поставщика (поле idVendor дескриптора
устройства, см. разд. 4.1.3), зарегистрированный в Комитете USB
производителей; dddd - идентификатор, присвоенный производителем данный
модели устройства (поле idProduct); гг - номер версии разработки. Все эти
поля вводятся как шестнадцатеричные числа.
В INF-файле допустимо указывать усеченные варианты идентификаторов,
например:
USB\Vid_vwvsPid_dddd
USB\Class_ccSSubClass_ss_Prot_pp
Глава 10. Спецификация РпР для USB
229
USB\Class_cc&SubClass_ss
USB\Class_cc
Здесь сс - код базового класса из полученного дескриптора устройства или
дескриптора интерфейса данного USB-устройства; ss - код подкласса; рр -
идентификатор протокола.
Примеры USB-идентификаторов:
? usb\vtd_040Aspid_0100 - цифровая USB-камера Kodak;
? usb\root_hub20 - USB-хаб;
? usb\vid_067Bspid_2303 - USB-мобильный телефон.
10.3. Получение списка USB-устройств
Для получения списка USB-устройств используются функции инсталляции
(Setup API Function). Эти функции содержатся в динамической библиотеке
SetupAPI.DU. Объем нашей книги не позволяет привести описание всех
функций (всего их около 600), поэтому мы опишем только необходимые для
работы.
Если в C++ вызов функций Setup API проблем не вызывает, то в Delphi
придется подключать функции библиотеки вручную (как показано в листинге
10.2) либо использовать готовые классы, например, setupApi.Pas из
библиотеки JEDI thttp://delphi-jedi.org).
.................- ...".^..,..,.,,,5.^ "ШГ......
дата.' 1°'г- пая"*" t ^3^. ,
// имя динамической библиотеки const
SetupApiModuleName = 'SetupApi.dll';
// описание внешних функций function SetupDiGetClassDevs;
external SetupApiModuleName name 'SetupDiGetClassDevsA'; function
SetupDiGetClassDevs;
external SetupApiModuleName name 'SetupDiGetClassDevsA'; function
SetupDiEnumDevicelnfo;
external SetupApiModuleName name 'SetupDiEnumDevicelnfo'; function
SetupDiGetDeviceRegistryProperty;
external SetupApiModuleName name 'SetupDiGetDeviceRegistryPropertyA';
function SetupDiDestroyDevicelnfoList;
external SetupApiModuleName name 'SetupDiDestroyDevicelnfoList';
230
Часть III. Практика программирования
Для получения списка устройств используется такая последовательность
Предыдущая << 1 .. 72 73 74 75 76 77 < 78 > 79 80 81 82 83 84 .. 168 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.