Главная » 2011»Июль»10 » Интерфейс USB. Практика использования и программирования + CD
12:46
Интерфейс USB. Практика использования и программирования + CD
Интерфейс USB. Практика использования и программирования + CD — В книге изложены базовые сведения по интерфейсу USB для ПК: примеры USB-устройств и советы по их выбору, правила установки и конфигурирования устройств, методы решения возникающих проблем. Описаны кабели, разъемы, принципы питания устройств и другое аппаратное обеспечение. Приведено внутреннее устройство USB и его физическая реализация, обсуждены общие вопросы написания драйверов для операционной системы Microsoft Windows 2000/XP с примерами на языке Borland Pascal и в среде Delphi. Рассмотрен процесс создания USB-устройства: от выбора микросхем и схемотехники до написания программы микроконтроллера и WDM-драйвера. В книге содержится большое количество практических советов и примеров программ. Для удобства читателей все исходные коды приводятся на прилагаемом компакт-диске.
Название: Интерфейс USB. Практика использования и программирования + CD Автор: Агуров П.В Издательство: БХВ-Петербург Год: 2004 Страниц: 576 Формат: DJVU + CD Размер: 176,70 Мб ISBN: 5-94157-202-6 Качество: Отличное
Содержание:
Введение Для кого эта книга Что вы найдете в книге Программные требования Аппаратные требования О программном коде Краткое описание глав Обозначения Благодарности Часть I. Введение в USB Глава 1. Что такое USB 1.1. История USB 1.2. Сравнение USB с другими интерфейсами 1.3. Основные понятия USB 1.3.1. Общая архитектура шины 1.3.2. Физическая и логическая архитектура шины 1.3.3. Составляющие USB 1.3.4. Свойства USB-устройств 1.3.5. Свойства хабов 1.3.6. Свойства хоста 1.4. Примеры USB-устройств 1.4.1. Мышь и клавиатура 1.4.2. Мониторы 1.4.3. Переходники USB-to-COM и USB-to-LPT 1.4.4. Сканеры 1.4.5. Модемы 1.4.6. Звуковые колонки 1.4.7. Флеш-диски 1.4.8. Хабы 1.4.9. Измерительная техника 1.4.10. Экзотические устройства 1.5. Сетевое соединение через USB 1.5.1. Конвертер USB-Ethernet 1.5.2. Прямое соединение через USB-порт 1.6. Передача данных 1.6.1. Принципы передачи данных 1.6.2. Механизм прерываний 1.6.3. Интерфейсы хост-адаптера 1.6.4. Возможность прямого доступа к памяти 1.6.5. Режимы передачи данных 1.7. Установка и конфигурирование USB-устройств 1.7.1. Настройки BIOS для USB 1.7.2. Устранение проблем 1.8. Ограничения USB 1.9. Если вы покупаете компьютер 1.9.1. HS и USB 2.0 - не одно и то же! 1.9.2. Системная плата 1.9.3. Корпус 1.9.4. USB для "старых" моделей компьютеров 1.10. Интернет-ресурсы к этой главе Глава 1. Аппаратное обеспечение USB 2.1. Кабели и разъемы 2.1.1. Типы кабелей 2.1.2. Длина кабеля 2.1.3. Разъемы 2.2. Физический интерфейс 2.2.1. Кодирование данных 2.2.2. Идентификация устройств 2.3. Питание 2.3.1. Типы питания USB-устройств 2.3.2. Управление энергопотреблением 2.3.3. Вход в режим низкого энергопотребления 2.4. Интернет-ресурсы к этой главе Часть П. Внутренняя организация USB Глава 3. Внутренняя организация шины 3.1. Логические уровни обмена данными 3.1.1. Уровень клиентского ПО 3.1.2. Уровень системного драйвера USB 3.1.3. Уровень хост-контроллера интерфейса 3.1.4. Уровень шины периферийного устройства 3.1.5. Уровень логического USB-устройства 3.1.6. Функциональный уровень USB-устройства 3.2. Передача данных по уровням 3.3. Типы передач данных 3.4. Синхронизация при изохронной передаче 3.5. Кадры 3.6. Конечные точки 3.7. Каналы 3.8. Пакеты 3.8.1. Формат пакетов-маркеров IN, OUT, SETUP и PING 3.8.2. Формат пакета SOF 3.8.3. Формат пакета данных 3.8.4. Формат пакета подтверждения 3.8.5. Формат пакета SPLIT 3.9. Контрольная сумма 3.9.1. Алгоритм вычисления CRC 3.9.2. Программное вычисление CRC 3.10. Транзакции 3.10.1. Типы транзакций 3.10.2. Подтверждение транзакций и управление потоком 3.10.3. Протоколы транзакций Глава 4. Внутренняя организация устройства 4.1. Запросы к USB-устройствам 4.1.1. Конфигурационный пакет 4.1.2. Стандартные запросы к устройствам 4.1.3. Дескрипторы устройства Глава 5. Внутренняя организация хоста и хабов 5.1. Хабы 5.1.1. Взаимодействие хост-контроллера с хабом 5.1.2. Дескриптор хаба 5.1.3. Запросы хабов 5.1.4. Запрос CLEAR_HUB_FEATURE 5.1.5. Запрос CLEAR_PORT_FEATURE 5.1.6. Запрос GET_BUS_STATE 5.1.7. Запрос GET_HUB_DESCRIPTOR 5.1.8. Запрос GET_HUB_STATUS 5.1.9. Запрос GET_PORT__STATUS 5.1.10. Запрос SET_HUB_DESCRlPTOR 5.1.11. Запрос SET_HUB_FEATURE 5.1.12. Запрос SET_PORT_FEATURE 5.2. Совместная работа устройств с разными скоростями Глава 6. USB без ПК 6.1. Разъемы OTG 6.2. Типы OTG-устройств 6.3. Дескриптор OTG-устройства 6.4. Интернет-ресурсы к этой главе Часть III. практика программирования Глава 7. Поддержка USB в Windows 7.1. Модель WDM 7.2. Взаимодействие с USB-драйвером Глава 8. HID-устройства 8.1. Свойства HID-устройства 8.2. Порядок обмена данными с HID-устройством 8.3. Установка HID-устройства 8.4. Идентификация HID-устройства 8.4.1. Идентификация загрузочных устройств 8.4.2. Дескриптор конфигурации HID-устройства 8.4.3. HID-дескриптор 8.4.4. Дескриптор репорта 8.5. Структура дескриптора репорта 8.5.1. Структура элементов репорта 8.5.2. Типы элементов репорта 8.5.3. Примеры дескрипторов 8.6. Запросы к HID-устройству 8.6.1. Запрос GET_REPORT 8.6.2. Запрос SET_REPORT 8.6.3. Запрос GETJDLE 8.6.4. Запрос SETJDLE 8.6.5. Запрос GET_PROTOCOL 8.6.6. Запрос SET_PROTOCOL 8.7. Инструментальные средства 8.8. Взаимодействие с HID-драйвером Глава 9. Введение в WDM 9.1. Драйверные слои 9.2. Символьные имена устройств 9.3. Основные процедуры драйвера WDM 9.3.1. Процедура DriverEntry 9.3.2. Процедура AddDevice 9.3.3. Процедура Unload 9.3.4. Рабочие процедуры драйвера 9.3.5. Обслуживание запросов IOCTL 9.4. Загрузка драйвера и обращение к процедурам драйвера 9.4.1. Процедура работы с драйвером 9.4.2. Регистрация драйвера 9.4.3. Обращение к рабочим процедурам 9.4.4. Хранение драйвера внутри исполняемого файла 9.5. Инструменты создания драйверов 9.5.1. NuMega Driver Studio 9.5.2. Jungo WinDriver 9.5.3. Jungo KernelDriver Глава 10. Спецификация РпР для USB 10.1. Общие сведения о системе Plug and Play 10.1.1. Задачи и функции Plug and Play 10.1.2. Запуск процедуры РпР 10.1.3. Программные компоненты РпР 10.2. Plug and Play для USB 10.2.1. Конфигурирование устройств USB 10.2.2. Нумерация устройств USB 10.2.3. РпР-идентификаторы устройств USB 10.3. Получение списка USB-устройств 10.4. INF-файл 10.4.1. Структура INF-файла 10.4.2. Секция Version 10.4.3. Секция Manufacturer 10.4.4. Секция DestinationDirs 10.4.5. Секция описания модели 10.4.6. Секция xxx. AddReg и xxx. DelReg 10.4.7. Секция xxx. LogConfig 10.4.8. Секция xxx. CopyFiles 10.4.9. Секция Strings 10.4.10. Связи секций 10.4.11. Создание и тестирование INF-файлов 10.4.12. Установка устройств с помощью INF-файла 10.5. Ветки реестра для USB Глава 11. Функции BIOS 11.1. Сервис BIOS 1AH 11.1.1. Функция В101Н - определение наличия PCI BIOS 11.1.2. Функция В102Н - поиск PCI-устройства по идентификаторам устройства и производителя 11.1.3. Функция В103Н - поиск PCI-устройства по коду класса 11.1.4. Функция В108Н - чтение регистра конфигурации (Byte) 11.1.5. Функция В109Н - чтение регистра конфигурации (Word) 11.1.6. Функция В10АН - чтение регистра конфигурации (DWord) 11.1.7. Функция В10ВН - запись регистра конфигурации (Byte) 11.1.8. Функция В10СН - запись регистра конфигурации (Word) 11.1.9. Функция B10DH - запись регистра конфигурации (DWord) 11.2. Пример использования Часть IV. Создание USB-устройств Глава 12. USB-периферия 12.1. Микросхемы Atmel 12.1.1. Микроконтроллеры с архитектурой MSC-51 12.1.2. Контроллеры хабов 12.1.3. Микропроцессоры-хабы с ядром AVR 12.1.4. Другие микросхемы Atmel 12.2. Микросхемы Cygnal 12.2.1. Микропроцессоры C8051F320 и C8051F321 12.2.2. Другие микросхемы Cygnal 12.3. Микросхемы FTDI 12.3.1. Микросхемы FT232AM и FT232BM 12.3.2. Микросхемы FT245AM и FT245BM 12.3.3. Микросхема FT2232BM 12.3.4. Микросхема FT8U100AX 12.3.5. Отладочные комплекты и модули 12.3.6. Драйверы 12.3.7. Дополнительные утилиты 12.3.8. Другие модули 12.4. Микросхемы Intel 12.5. Микросхемы Microchip 12.6. Микросхемы Motorola 12.7. Микросхемы Philips 12.7.1. Микросхемы USB 12.7.2. Хабы 12.7.3. Другие микросхемы Philips 12.8. Микросхемы Texas Instruments 12.9. Микросхемы Trans Dimension 12.10. Микросхемы защиты питания 12.11. Интернет-ресурсы к этой главе Глава 13. HID-устройство на основе Atmel AT89C5131 13.1. Структурная схема АТ89С5131 13.2. USB-регистры АТ89С5131 13.2.1. Регистр USBCON 13.2.2. Регистр USBADDR 13.2.3. Регистр USBINT 13.2.4. Регистр USBIEN 13.2.5. Регистр UEPNUM 13.2.6. Регистр UEPCONX 13.2.7. Регистр UEPSTAX 13.2.8. Регистр UEPRST 13.2.9. Регистр UEPINT 13.2.10. Регистр UEPIEN 13.2.11. Регистр UEPDATX 13.2.12. Регистр UBYCTLX 13.2.13. Регистр UFNUML 13.2.14. Регистр UFNUMH 13.3. Схемотехника АТ89С5131 13.4. Инструменты программирования 13.4.1. Компилятор 13.4.2. Программатор 13.5. Программа для микропроцессора 13.5.1. Первая версия программы для АТ89С5131 13.5.2. Добавляем строковые дескрипторы 13.5.3. Добавление конечных точек 13.5.4. Создание HID-устройства 13.5.5. Обмен данными с HID-устройством 13.6. Чтение репортов в Windows 13.7. Дополнительные функции Windows ХР 13.8. Устройство с несколькими репортами Глава 14. Создание USB-устройства на основе ATMEL AT89C5131 14.1. He-HID-устройство 14.2. Создание драйвера с помощью Driver Studio 14.2.1. Несколько слово библиотеке Driver Studio 14.2.2. Другие классы Driver Studio 14.2.3. Создание шаблона драйвера с помощью Driver Studio 14.2.4. Доработка шаблона драйвера 14.2.5. Базовые методы класса устройства 14.2.6. Реализация чтения данных 14.2.7. Установка драйвера 14.2.8. Программа чтения данных 14.2.9. Чтение данных с конечных точек других типов 14.2.10. "Чистый" USB-драйвер Глава 15. Использование микросхем FTDI 15.1. Функциональная схема FT232BM 15.2. Схемотехника FT232BM 15.3. Функции D2XX 15.4. Переход от СОМ к USB 15.4.1. Описание схемы преобразователя 15.4.2. Установка скорости обмена Часть V. Справочник Глава 16. Базовые функции Windows 16.1. Функции CreateFile и CloseHandle: открытие и закрытие объекта 16.1.1. Дополнительные сведения 16.1.2. Возвращаемое значение 16.1.3. Пример вызова 16.2. Функция ReadFile: чтение данных 16.2.1. Дополнительные сведения 16.2.2. Возвращаемое значение 16.2.3. Пример вызова 16.3. Функция WriteFile: передача данных 16.3.1. Дополнительные сведения 16.3.2. Возвращаемое значение 16.3.3. Пример вызова 16.4. Функция ReadFileEx: АРС-чтение данных 16.4.1. Возвращаемое значение 16.4.2. Дополнительные сведения 16.4.3. Пример вызова 16.5. Функция WriteFileEx: АРС-передача данных 16.5.1. Возвращаемое значение 16.5.2. Пример вызова 16.6. Функция WaitForSingleObject ожидание сигнального состояния объекта 16.6.1. Возвращаемое значение 16.7. Функция WaitForMultipleObjects: ожидание сигнального состояния объектов 16.7.1. Возвращаемое значение 16.8. Функция GetOverlapped'Result результат асинхронной операции 16.8.1. Возвращаемое значение 16.9. Функция DeviceloControl: прямое управление драйвером 16.9.1. Возвращаемое значение 16.10. Функция QueryDosDevice: получение имени устройства по его DOS-имени 16.10.1. Возвращаемое значение 16.10.2. Пример вызова 16.11: Функция Define Dos Device: операции с DOS-именем устройства 16.11.1. Возвращаемое значение 16.11.2. Пример вызова Глава 17. Функции HID API 17.1. Функция HidD_Hello: проверка библиотеки 17.2. Функция HidD_GetHidGuid. получение GUID 17.3. Функция HidD_GetPreparsedData: создание описателя устройства 17.4. Функция HidD_FreePreparsedData: освобождение описателя устройства 17.5. Функция HidD_GetFeature: получение FEATURE-репорта 17.6. Функция HidD_SetFeature: передача FEATURE-репорта 17.7. Функция HidD_GetNumInputBuffers: получение числа буферов 17.8. Функция HidD_SetNumInputBujfers: установка числа буферов 17.9. Функция HidD_GetAttributes: получение атрибутов устройства 17.10. Функция HidD_GetManufacturerString. получение строки . производителя 17.11. Функция HidD_GetProductString. получение строки продукта 17.12. Функция HidD__GetSerialNumberString. получение строки серийного номера 17.13. Функция HidD_GetIndexedString. получение строки по индексу 17.14. Функция HidD_GetInputReport. получение INPUT-репорта 17.15. Функция HidD_SetOutputReport передача OUTPUT-репорта 17.16. Функция HidP_GetCaps: получение свойств устройства 17.17. Функция HidP_MaxDataListLength: получение размеров репортов Глава 18. Хост-контроллер UCH 18.1. Регистры управления хост-контроллером 18.1.1. Регистр команды USB (USBCMD) 18.1.2. Регистр состояния USB (USBSTS) 18.1.3. Регистр управления прерываниями (USBINTR) 18.1.4. Регистр номера кадра (FRNUM) 18.1.5. Регистр базового адреса кадра (FLBASEADD) 18.1.6. Регистр модификатора начала кадра (SOFMOD) 18.1.7. Регистр состояния и управления порта (PORTSC) 18.2. Структуры данных хост-контроллера UCH 18.2.1. Список кадров 18.2.2. Дескриптор передачи 18.2.3. Заголовок очереди 18.3. Обработка списка дескрипторов UCH Глава 19. Инструменты 19.1. Средства Microsoft Visual Studio 19.1.1. Depends 19.1.2. Error Lookup 19.1.3. GuidGen 19.2. Средства Microsoft DDK 19.2.1. DeviceTree 19.2.2. DevCon 19.2.3. Chklnf и Genlnf 19.3. Средства CompuWare Corporation 19.3.1. Monitor 19.3.2. SymLink 19.3.3. EzDriverlnstaiier 19.3.4. WdmSniff 19.4. Средства Syslnternals 19.4.1. WinObj 19.5. Средства USB Forum 19.5.1. HID Descriptor Tool 19.6. Средства HDD Software 19.7. Средства Sourceforge Приложения Приложение 1. Дополнительные функции Приложение 2. Таблица идентификаторов языков (LangID) Приложение 3. Таблица кодов производителей (Vendor ID, Device ID) Приложение 4. Описание компакт-диска Литература Предметный указатель