описание
звоните нам с 9:00 до 19:00
+7(495)374-67-62
 

Интерфейс USB: Практика использования и программирования (+ CD)

Интерфейс USB: Практика использования и программирования (+ CD)
Количество:
  
-
+
Цена: 271 
P
В корзину
В наличии
Артикул: 00201459
Автор: Агуров П.
Издательство: БХВ-Петербург (все книги издательства)
ISBN: 978-5-94157-202-6
Год: 2006
Переплет: Мягкая обложка
Страниц: 576
Изложены базовые сведения по интерфейсу USB для ПК: примеры USB-устройств и советы по их выбору, правила установки и конфигурирования устройств, методы решения возникающих проблем. Описаны кабели, разъемы, принципы питания устройств и другое аппаратное обеспечение. Приведено внутреннее устройство USB и его физическая реализация, обсуждены общие вопросы написания драйверов для операционной системы Microsoft Windws 2000/XP с примерами на языке Borland Pascal и в среде Delphi. Рассмотрен процесс создания USB-устройства: от выбора микросхем и схемотехники до написания программы микроконтроллера и WDM-драйвера. В книге содержится большое количество практических советов и примеров программ. Для удобства читателей все исходные коды приводятся на прилагаемом компакт-диске.
Для пользователей ПК, разработчиков аппаратуры и программистов.
Введение
Последовательные интерфейсы интересны тем, что позволяют объединить множество устройств, используя всего одну (или две) пары проводов. До 1996 года последовательные интерфейсы персонального компьютера были представлены коммуникационным портом, работающим согласно спецификации RS-232. Хотя RS-232 сохраняет все преимущества последовательной связи, она имеет и ряд недостатков. Самыми существенными из них являются плохая помехозащищенность и отсутствие гальванической развязки. Первое мешает использованию высоких скоростей обмена, а второе - "горячему" подключению устройств. Кроме того, стандарт RS-232 подразумевает подключение только одного устройства к одному последовательному порту.
Еще один недостаток внешних интерфейсов персонального компьютера - строгая предопределенность их использования. Так, СОМ-порт используется для подключения "мыши" или модема, LPT-порт - для подключения принтера (ну, еще сканера или плоттера), порт клавиатуры предназначен для подключения клавиатуры, и т. д. Кроме необходимости иметь в персональном компьютере множество различных, но, чаще всего, неиспользуемых, разъемов, такое многообразие несет и другие проблемы: для каждого интерфейса необходимо выделять аппаратное прерывание (IRQ), "пустые" разъемы занимают место, что особенно актуально для ноутбуков. В 1996 году была опубликована версия 1.0 нового интерфейса, названного USB (Universal Serial Bus, универсальная последовательная шина), а осенью 1998 - спецификация 1.1, исправляющая проблемы, обнаруженные в первой редакции. В 2000 году была опубликована версия 2.0, в которой предусматривалось 40-кратное повышение пропускной способности шины. Шина USB ориентирована на устройства, подключаемые к PC. Изохронные передачи USB позволяют передавать огромные потоки данных, такие как аудиосигналы, а шина USB 2.0 позволяет передавать и видеосигналы. Спецификация USB подразумевает прозрачное подключение устройств к шине и позволяет иметь несколько устройств на одном порту.
Для кого эта книга
Эта книга для вас, если:
- протирая пыль с компьютера, вы обнаружили два непонятных разъема и хотите узнать, что это такое;
- вам надо объяснить в бухгалтерии, что "все то же самое, но без USВ" дешевле не будет;
- вам надо подключить к компьютеру два принтера, сканер и цифровой фотоаппарат одновременно;
- подключив к первому порту USB - мышь, а ко второму USB - клавиатуру, вы хотите понять, куда же подключать обещанные в USB-спецификации 127 устройств;
- ваш шеф утверждает, что изготовленный вами прибор не работает, т. к. его нельзя подключить к его новому ноутбуку, в котором нет СОМ-порта;
- вам обидно, что Windows находит новые устройства, но не говорит об этом вашей программе;
- вам хочется узнать, что нужно Windows, чтобы ваше устройство было названо по имени;
- скорость СОМ-порта вас не удовлетворяет, поэтому хочется использовать USB, но времени на переделку нет.
Другими словами, мы адресуем эту книгу тем, кто хочет использовать в своей работе современный протокол USB. Книга будет интересна тем, кто занимается или собирается заниматься программированием микроконтроллеров. Книга будет полезна разработчикам Windows-драйверов, а также тем, кто хочет повысить свой профессиональный уровень.
Что вы найдете в книге
В этой книге вы сможете найти ответы на некоторые вопросы, касающиеся разработки и программирования USB-устройств.
- Что такое USB-интерфейс и зачем он нужен:
- вы хотите узнать, что такое USB? Эта книга ориентируется на практическое использование USB-интерфейса и содержит все сведения, необходимые для разработки своего проекта.
- В каких случаях нужен USB-интерфейс, и какие преимущества он дает:
- вы используете СОМ-интерфейс и считаете, что этого достаточно?
Прочитайте эту книгу, - возможно, вы измените свое мнение.
- Как USB-устройства взаимодействуют с компьютером:
- вы хотите понять, как работает USB-шина? что нужно сделать, чтобы ваше устройство было опознано системой? Ответы на эти вопросы содержат главы, посвященные архитектуре USB-шины и стандарту Plug and Play.
- Как разработать приложение, взаимодействующее с USB-контроллером:
- вы решили использовать USB в своем проекте, вам потребуются сведения о необходимых для работы функциях. Эта книга подробно и просто расскажет обо всех функциях, предоставляемых операционной системой Microsoft Windows. Справочная часть книги позволит быстро найти нужную информацию.
- Как выбрать микросхему USB-приемопередатчика при разработке своего контроллера:
- существует множество микросхем для организации USB-интерфейса.
Выбрать нужную достаточно сложно. Мы предоставим вам краткий обзор основных микросхем приемопередатчиков, присутствующих на российском рынке.
- Как создать USB-устройство на основе микропроцессора 8051:
- мы предлагаем вместе пройти полный путь создания USB-устройства на основе микропроцессора 8051. После прочтения этих глав использование USB-интерфейса станет простым делом, ничуть не сложнее использования обычного СОМ-порта.
Программные требования
Все программы мы будем реализовывать на языках Borland Delphi 6 и Visual Studio 6. Так как мы не будем использовать никаких специфических функций, присущих именно этим версиям языков, то все примеры могут быть скомпилированы в других версиях практически без модификации.
Версия Windows должна быть или Windows 2000 или Windows XP. Желательно при этом наличие всех доступных пакетов обновлений (service pack). Возможно использование Windows 98, но многие примеры, связанные с написанием драйверов, могут не работать.
Для компиляции драйверов, приведенных в книге, потребуется Windows 2000 DDK или Windows XP DDK, в соответствии с вашей версией Windows. В качестве дополнительного источника информации мы рекомендуем установить MSDN. Список полезных для работы утилит и программ приводится в справочной части книги, в главе 19.
На компакт-диске содержатся полные исходные тексты и скомпилированные модули.
Аппаратные требования
Достаточно обычного домашнего компьютера, на котором компиляция программы в Delphi и Visual Studio занимает приемлемое для вас время. Установка Delphi 6 потребует примерно 300 Мбайт на жестком диске, установка Visual Studio - 240 Мбайт, MSDN - 1,5 Гбайт, Windows DDK - 700 Мбайт.
Для тестирования программ необходимо иметь одно или несколько USB-устройств. Для создания своих устройств будет необходим соответствующий инструментарий.
О программном коде
Книга содержит полные исходные коды всех программ, однако многие листинги содержат только изменения кода относительно предыдущего листинга. Такое сокращение позволяет не только экономить место, но и улучшить понимание кода, делая акцент только на новой функциональности. Код на компакт-диске содержит тексты без сокращений.
В программах на Delphi мы не приводим код самого проекта (DPR-файл) и код формы (DFM-файлы). Все исходные коды можно найти на компакт-диске, и, мы думаем, желающих набирать модули форм "с листа" найдется немного.
Еще раз повторим, что такие сокращения не означают отсутствие возможности скомпилировать и попробовать приведенные примеры на своем компьютере. Все исходные коды и необходимые модули находятся на компакт-диске.
Краткое описание глав
Первая часть книги содержит главы 1-2. В них приводится спецификация USB, описание USB-интерфейса и его составляющие. В этих главах мы не будем глубоко заглядывать внутрь USB: регистры контроллера, команды и тонкости аппаратной организации мы оставим на потом:
- глава 1 ("Что такое USB") содержит описание USB-интерфейса с точки зрения пользователя и потенциального покупателя компьютера; примеры USB-устройств и тонкости, которые необходимо знать при их покупке и покупке компьютера; правила установки и конфигурирования устройств, основные проблемы, возникающие при этом, и методы их решения. Кроме того, глава содержит определение основных понятий USB: хабы, концентраторы и т. д.;
- глава 2 ("Аппаратное обеспечение USB") содержит небольшое описание аппаратной части USB. До схемотехники и микросхем приемопередатчиков мы доберемся в следующих главах, а в этой описываются кабели, разъемы, принципы питания устройств и другие сведения, необходимые не только разработчику аппаратуры, но и обычному пользователю персонального компьютера для грамотного использования интерфейса USB.
Вторая часть книги содержит главы 3-6, которые описывают внутреннюю организацию USB:
- глава 3 ("Внутренняя организация шины USB") описывает внутреннее устройство шины, организацию и типы передач данных, методы синхронизации данных и правила вычисления контрольных сумм;
- глава 4 ("Внутренняя организация устройства") описывает структуры и запросы, используемые для обращения к USB-устройствам, дескрипторы устройств и функций их получения;
- глава 5 ("Внутренняя организация хоста и хабов") описывает структуры и запросы, используемые для взаимодействия хоста, хабов и устройств. Кроме того, глава содержит информацию об организации одновременной работы устройств с разными скоростями;
- глава 6 ("USB без ПК") описывает расширение спецификации USB, позволяющей соединять USB-устройства между собой без персонального компьютера.
Третья часть книги содержит главы 7-10, которые описывают реализацию поддержки USB-интерфейса в операционной среде Microsoft Windows:
- глава 7 ("Поддержка USB в Windows") содержит общие сведения о драй-верной модели и методах взаимодействия с драйверами;
- глава 8 ("HID-устройства") содержит описание одного из классов USB-устройств, называемых HID;
- глава 9 ("Введение в WDM") дает общие сведения о модели, драйверов Windows 2000/XP;
- глава 10 ("Спецификация РnР для USB") содержит описание спецификации Plug and Play для USB, структуры и функции Windows для системы РnР, а также общее описание структуры INF-файла;
- глава 11 ("Функции BIOS") содержит описание сервисов BIOS, используемых для работы с USB в DOS. Эта информация будет полезна для программистов, использующих промышленные контроллеры с установленным DOS или его клоном.
Четвертая часть книги содержит главы 12-14, которые описывают процесс создания USB-устройства:
- глава 12 ("USB-периферия") дает обзор микросхем USB-приемопередатчиков. Акцент делается на микросхемах, доступных на российском рынке;
- глава 13 ("HID-устройство на основе ATMEL AT89C5131") описывает схемотехнику и процесс разработки HID-устройства на основе микро-процессора АТ89С5131 и программы, использующей HID-функции;
- глава 14 ("Создание USB-устройства на основе ATMEL AT89C5131") рассматривает процесс разработки USB-устройства на основе микропроцессора АТ89С5131 и драйвера для Microsoft Windows;
- глава 15 ("Использование микросхемы FT232BM") представляет схемотехнику и процесс разработки USB-устройства на основе преобразователя FT232BM, а также содержит описание схемы преобразователя из СОМ-интерфейса в USB.
Часть пятая включает главы 16-19, в которых содержатся справочные материалы.
Обозначения
При описании некоторых данных мы будем пользоваться битовым представлением, заключая число разрядов каждого поля в квадратные скобки. Например:
- [5] поле А;
- [2] поле Б.
Такое описание означает, что поле А содержит 5 битов, а поле Б - 2 бита. Еще одно представление битовых полей - указание конкретных диапазонов битов, с помощью знака ":", например:
- [16:5] зарезервированы;
- [4:0] индекс.
Такое описание означает, что биты с 16 по 5 включительно зарезервированы, а биты с 4 по 0 включительно представляют собой индекс. Отличить первое описание от второго обычно легко по контексту изложения. При написании чисел мы будем придерживаться следующих правил:
- шестнадцатеричные числа будут иметь префикс "$", например "$45";
- шестнадцатеричные числа могут иметь префикс "Ох" или постфикс "Н", если того требует контекст изложения или формат строки, например, "INT3FH";
- битовые последовательности заключены в угловые скобки, например, "<0010>", либо, при написании двоичного числа, обозначены символом b в конце, например, 10101111b.
Для описания версий протоколов, структур и т. д. будет использоваться специальный тип чисел BCD (Binary-Coded Decimal). Такие числа записываются в шестнадцатеричном виде 0xJJMN для обозначения версии JJ.M.N, т. е. JJ обозначает старший номер версии, М - младший номер версии и N - номер подверсии. Например, версия 2.1.3 будет представлена числом 0x213, а версия 2.0 будет записана числом 0x0200.
При описании регистров мы будем пользоваться следующими обозначениями режимов доступа:
? RO (read only) - регистр только для чтения, запись в него невозможна;
? WO (write only) - регистр только для записи, чтение значения невозможно;
? R/W (read/write) - возможны и чтение, и запись значения;
? R/W2 (read/write word) - возможны чтение и запись слова;
? R/WC (read/write clear) - разрешено как чтение, так и считывание значения, однако при записи в некоторый разряд регистра приводит к его сбросу в ноль.
При необходимости указания версии Windows мы будем использовать следующие сокращения:
? Windows 9x будет означать семейство Windows 95/98/ME;
? Windows NT в общем случае будет обозначать семейство Windows NT/ 2000/ХР;
? при необходимости указания конкретной версии мы будем писать номер этой версии без сокращений, например, Windows NT4 или Windows 98.
Благодарности
В создании этой книги прямо или косвенно участвовало очень много людей. Прежде всего, хочется поблагодарить заместителя главного редактора издательства Евгения Рыбакова, автора идеи создания этой книги.
Нельзя не отметить тех, чьи материалы помогли наполнить книгу полезной и нужной информацией.
Информация о HID-устройствах (глава 8), идентификации устройств (глава 2) и некоторых микросхемах (глава 12) предоставлена Константином Вовк, компания KS Labs (www.is.svitonline.com/vks).
Автор выражает благодарность к. т. н. Малыгину И. В., Лысенко А. А., Назмутдинову Р. Ф. за предоставленные материалы о микросхемах FTDI (глава 14), опубликованные на сайте Института радиотехники (www.institute-rt.ni).
Материалы главы 1 были бы неинтересны без иллюстраций, предоставленных компьютерным супермаркетом NIX (www.nix.ru).
В составлении обзора микросхем автору помогали Сергей Воробьев (ООО "Автоматика-М", vesta.pvasoft.com), Геннадий Курзаев, Сергей Гудков, Игорь Кривченко (компания 000 "Эфо", www.efo.ru).
Спасибо Эрику Тинлоту (Eric Tinlot) - инженеру службы поддержки Atmel - за помощь при разработке примеров для микросхем Atmel (www.atmel.com).
При написании программ к главе 11 существенную помощь оказывал Максим Локтюхин (компания Intel).
Разработку схем для микропроцессора АТ89С5131 производил Сергей Малое. Без его участия и помощи книга лишилась бы практической части.
Автор благодарит всех друзей и родных, которые терпели его в процессе написания книги, а также коллектив издательства "БХВ-Петербург".

Пожалуйста, оставьте отзывна товар.


Все права защищены и охраняются законом. © 2006 - 2017 CENTRMAG
Яндекс.Метрика