Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Компьютер в домашней лаборатории

Покупка
Артикул: 615798.01.99
В книге рассматривается широкий круг вопросов, связанных с практическим применением персональных компьютеров, работающих под управлением операционных систем Windows, для создания устройств домашней электроники. Материал книги охватывает многочисленные аппаратно-программные аспекты проектирования любительских электронных устройств, управляемых от параллельного, последовательного интерфейсов персонального компьютера и звуковой карты. Значительное внимание уделено новым технологиям USB и Bluetooth, а также возможностям их применения в любительской практике. В книге в доступной форме излагается материал по разработке несложных драйверов устройств пользователя, что существенно расширяет возможности их проектирования пользователями различного уровня подготовки. Приводятся многочисленные примеры разработки несложных аппаратно-программных систем сбора аналоговой и цифровой информации, измерительных систем, систем управления внешними устройствами и т. д. Издание может быть полезно радиолюбителям различного уровня подготовки и всем, кто интересуется компьютерными системами управления и контроля.
Магда, Ю. С. Компьютер в домашней лаборатории [Электронный ресурс] / Ю. С. Магда. - Москва : ДМК Пресс, 2009. - 200 с.: ил. - ISBN 978-5-94074-420-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/406547 (дата обращения: 25.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
КОМПЬЮТЕР

В  ДОМАШНЕЙ  ЛАБОРАТОРИИ

Москва

Магда Ю. С.

УДК 621.396.6
ББК 32.872

M12

M12
Магда Ю. С.
Компьютер в домашней лаборатории. – М.: ДМК Пресс– 200 с.: ил.

ISBN 9785940744207

В книге рассматривается широкий круг вопросов, связанных с практическим

применением персональных компьютеров, работающих под управлением операционных систем Windows, для создания устройств домашней электроники. Материал книги охватывает многочисленные аппаратнопрограммные аспекты
проектирования любительских электронных устройств, управляемых от параллельного, последовательного интерфейсов персонального компьютера и звуковой
карты. Значительное внимание уделено новым технологиям USB и Bluetooth,
а также возможностям их применения в любительской практике. В книге в доступной форме излагается материал по разработке несложных драйверов устройств
пользователя, что существенно расширяет возможности их проектирования
пользователями различного уровня подготовки. Приводятся многочисленные
примеры разработки несложных аппаратнопрограммных систем сбора аналоговой и цифровой информации, измерительных систем, систем управления внешними устройствами и т. д.

Издание может быть полезно радиолюбителям различного уровня подготовки

и всем, кто интересуется компьютерными системами управления и контроля.

УДК 621.396.6
ББК 32.872

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни

было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских
прав.

Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и
правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги.

© Магда Ю. С.

ISBN 9785940744207
© Оформление, издание, ДМК Пресс

Введение ......................................................................................................... 5

Структура книги ............................................................................................ 5

1. Возможности персонального компьютера .......................................... 7

2. Архитектура вводавывода....................................................................11

3. Параллельный порт в лабораторных разработках ..........................21

3.1. Организация вводавывода данных
через параллельный порт ................................................................25

3.2. Интерфейсы вводавывода дискретных сигналов
параллельного порта.........................................................................27

3.3. Интерфейсы аналоговых сигналов .................................................34

3.4. Расширения портов вводавывода .................................................57

3.5. Полезные проекты.............................................................................61

4. Последовательный порт персонального компьютера
в любительских разработках ....................................................................69

4.1. Стандарт RS232 ................................................................................72

4.2. Устройства измерения и контроля
с использованием последовательного порта ................................75

5. Звуковые карты и их применение .......................................................93

5.1. Импульснокодовая модуляция .......................................................94

5.2. Звуковая карта в домашней лаборатории .....................................96

5.3. Электронные устройства для работы со звуковой картой ........ 105

6. Интерфейсы USB и Bluetooth ....................................................... 117

6.1. Функционирование USB–устройств
в операционных системах Windows ............................................. 123

Оглавление

6.2. Программирование USBустройств.............................................. 126

6.3. Устройства Bluetooth и их программирование ........................... 136

6.4. Программирование Bluetooth ...................................................... 142

Cтек протокола Bluetooth .............................................................. 143

Профили Bluetooth.......................................................................... 144

Основы программирования устройств Bluetooth на языке
Java ................................................................................................... 145

Настройка устройства .................................................................... 147

Поиск устройств .............................................................................. 147

Поиск сервиса ................................................................................. 147

Регистрация сервиса ..................................................................... 148

Соединение и обмен данными ...................................................... 149

7. Основы разработки драйверов устройств в операционных
системах Windows ..................................................................................... 151

7.1. Взаимодействие пользовательской программы
с драйвером устройства ................................................................ 154

7.2. Основы функционирования драйверов
в операционных системах Windows ............................................. 157

Основы функционирования драйверов....................................... 158

7.3. Разработка и отладка простейшего драйвера ........................... 160

7.4. Чтениезапись данных ................................................................... 172

7.5. Применение драйвера параллельного порта ПК ....................... 185

Заключение................................................................................................ 198

ОГЛАВЛЕНИЕ

Введение

Персональные компьютеры применяются настолько широко, что, казалось бы, найти им
новое применение в настоящее время не так и просто. Тем не менее, есть несколько сфер
человеческой деятельности, где персональный компьютер только в последнее время стал
завоевывать серьезные позиции. Одна из таких сфер – домашняя компьютерная электроника или, подругому, использование ПК для создания собственных аппаратнопрограммных
систем, способных выполнять самые разнообразные функции под управлением компьютера.
Эта область включает не только создание различных робототехнических систем, но и устройств
измерения, сигнализации и управления.
Эта книга посвящена практическим аспектам разработки систем компьютерной электроники, работающих под управлением операционных систем Windows на основе программноаппаратных устройств, разработанных автором.
Литературы и документации по данной тематике мало, поскольку раскрытие этой темы
сопряжено со значительными трудностями, связанными с тем, что охватывается очень широкий диапазон знаний – от элементов аналоговой и цифровой схемотехники до программирования USB и Bluetooth. Предлагаемая вашему вниманию книга призвана восполнить этот
пробел.
Читатели без особого труда смогут адаптировать и усовершенствовать приведенный
в книге программный код и схемотехнические решения при разработке собственных систем
компьютерной электроники.
Книга рассчитана на широкий круг читателей – от начинающих до опытных пользователей.

Структура книги

Структура книги такова, что материал можно изучать выборочно, отдельными главами
или последовательно, начиная с первой главы. Это позволяет различным категориям читателей изучать тот материал, который им более всего интересен.
Книга состоит из 6 глав; краткий обзор каждой из них:

глава 1 «Возможности персонального компьютера». В этой главе дается обзор основных вариантов применения персонального компьютера в системах домашней электроники;
глава 2 «Архитектура вводавывода». Материал этой главы посвящен вопросам архитектуры подсистемы вводавывода персональных компьютеров. Рассматриваются

общие вопросы функционирования шинных интерфейсов, схемотехники и программирования устройств вводавывода пользователя;
глава 3 «Параллельный порт в лабораторных разработках». В этой главе детально
проанализированы принципы функционирования параллельного порта персонального компьютера и его программирование. Рассматриваются многочисленные аппаратнопрограммные проекты систем измерения и управления с управлением от параллельного порта ПК в операционных системах Windows;
глава 4 «Последовательный порт персонального компьютера в любительских разработках». Эта глава содержит материал по аппаратной архитектуре, протоколам обмена и программированию последовательного порта персонального компьютера. Приводятся практические проекты аппаратнопрограммных систем с использованием
последовательного порта;
глава 5 «Звуковые карты и их применение». Материал главы посвящен вопросам разработки и программирования систем домашней электроники на основе звуковой
карты. В главе проанализированы основы программирования генераторов частот и
систем управления с использованием библиотеки DirectSound пакета DirectX;
глава 6 «Интерфейсы USB и Bluetooth». В этой главе рассматривается широкий круг
вопросов, связанных с применением устройств USB и Bluetooth, включая основы их
функционирования и элементы программирования.

Автор благодарит коллектив издательства «ДМК» за помощь при подготовке книги к изданию. Особая признательность жене Юлии за поддержку и помощь при написании книги.

ВВЕДЕНИЕ

Возможности
персонального
компьютера

Персональные компьютеры в настоящее время широко используются практически во
всех сферах деятельности человека, которые известны всем и каждому: образование, экономика, научные исследования, коммуникации, индустрия развлечений. Тем не менее, есть и
более специализированные сферы деятельности, в которых компьютер может найти и находит достаточно эффективное применение, например, системы сбора и обработки информации в науке и промышленности, робототехника и системы управления, домашняя электроника. Как раз использование персонального компьютера в различных электронных устройствах, а также создание небольших систем сбора и обработки информации, простых систем
охранной сигнализации и многих других устройств обсуждается в этой книге.
Создание собственных аппаратнопрограммных проектов, в основе которых лежит использование домашнего персонального компьютера, требует определенных знаний, как архитектуры самого ПК, так и определенных знаний и навыков программирования. Кроме того,
разработка таких систем требует определенного уровня знаний в схемотехнике, как в аналоговой, так и в цифровой. Тем не менее, рассмотренные в книге проекты под силу реализовать
даже пользователям средней руки. Проектирование собственных устройств с использованием ПК базируется на применении возможностей аппаратных средств, входящих в состав
компьютера:

параллельного порта принтера;
последовательного порта;
звуковой карты;
устройств USB и Bluetooth.

Все эти устройства, помимо их стандартного применения, позволяют создавать и проекты
домашней электроники, которые могут, в принципе, не уступать даже лабораторным и промышленным системам. Более того, в мире выпускается очень много оборудования, применение которого базируется на использовании вышеперечисленных аппаратных средств. Достаточно вспомнить многочисленные версии «электронных осциллографов», базирующихся на
применении звуковой карты и протокола USB, системы сбора данных на базе последовательного и параллельного портов, системы удаленного управления на базе технологии Bluetooth.
В последнее время ведущие разработчики программного обеспечения, в их числе и Microsoft, начали создание программного обеспечения, направленного на поддержку различных
аппаратнопрограммных систем, которые может разработать любой пользователь, используя то или иное периферийное оборудование. Например, известный и быстро развивающийся
программный продукт, такой, как Microsoft Robotics Studio, предлагает программный интер1

Возможности
персонального
компьютера

8

фейс, позволяющий создавать системы управления роботами и другими устройствами домашней электроники. Фирма Phidgets и целый ряд других фирм выпускают электронные модули на базе USB, которые работают с Robotics Studio, снабжены программным интерфейсом и
легко интегрируются в ПК. С помощью таких устройств можно создавать системы управления
и измерения.
Этот перечень можно продолжить. Интерес пользователей к разработкам собственных
аппаратнопрограммных проектов с каждым днем возрастает, и с каждым днем на рынке
появляется все больше и больше устройств, подобных тем, которые выпускает Phidgets. Более того, появление и быстрое развитие беспроводных технологий открывает новые горизонты для творчества. Кстати, в этой нише в последнее время появилось также много фирм,
выпускающих аппаратнопрограммные модули для создания пользовательских электронных
систем. К сожалению, такие системы являются относительно дорогими для отечественных
пользователей, чтобы их можно было легко использовать в собственных электронных проектах. Предлагаемые в книге проекты не требуют больших финансовых затрат на комплектующие, а используемое в них программное обеспечение является бесплатным. Такие аппаратнопрограммные проекты позволяют решать довольно серьезные задачи.
Большинство читателей хорошо представляют себе архитектуру персонального компьютера, но, возможно, не знакомы с тем, как взаимодействуют устройства вводавывода (а к ним
относятся практически все устройства, кроме памяти) с процессором. В следующей главе мы
рассмотрим принципы функционирования устройств вводавывода, поскольку именно они
будут применяться для разработки наших проектов.

ВОЗМОЖНОСТИ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА

Архитектура
вводавывода

2

Архитектура
вводавывода

В этой главе вкратце рассматриваются основные аппаратнопрограммные аспекты, касающиеся организации и функционирования подсистем вводавывода в компьютерных системах с различной конфигурацией системных шин, включая шину PCI платформы x86, которая
наиболее часто применяется в персональных компьютерах. Такой анализ поможет глубже
понять принципы функционирования различных периферийных устройств в различных системах и облегчит задачи программирования таких устройств. Под термином «подсистема вводавывода» обычно понимают как аппаратные устройства компьютера, так и программный интерфейс, позволяющий взаимодействовать с ними.
Операции вводавывода для большинства компьютерных систем отличаются от операций
с памятью, как на уровне инструкций процессора, так и в плане схемотехнической реализации самих устройств. Схему вводавывода информации можно представить себе так, как показано на рис. 2.1.

Рис. 2.1
Иерархия подсистемы вводавывода компьютера

На самом нижнем уровне устройства взаимодействуют с аппаратурой компьютера через
одну или несколько шин командданных, интерфейс которых для разных аппаратных платформ вообще отличается, хотя некоторые стандарты (например, PCI PCI Express и т. д.) используются разными платформами.

АРХИТЕКТУРА ВВОДАВЫВОДА

Взаимодействие устройств на уровне шин осуществляется с помощью электрических сигналов, временные характеристики которых соответствуют используемому стандарту, а аппаратный интерфейс физического устройства должен обеспечить генерацию всех необходимых
сигналов обмена.
Обмен данными с устройством осуществляется посредством портов вводавывода и отображаемой памяти. В этом случае все операции с устройством выполняются на уровне инструкций процессора или микроконтроллера. Термин «вывод данных» означает операцию записи данных в устройство, а термин «ввод данных» означает чтение данных из устройства. Далее
мы будем использовать эти термины как синонимы.
Схемотехническая реализация портов вводавывода зависит от временной диаграммы
работы сигнальных линий процессора и реализации алгоритма обмена. Напомню, что центральным устройством любой компьютерной системы является процессор или микроконтроллер, который формирует сигналы обмена данными с устройствами в соответствии с определенными правилами.
Для стандартизации обмена данными процессора и устройств вводавывода используется
целый ряд промышленных стандартов обмена данными (так называемых «шинных интерфейсов»
или просто шин), наиболее известными из которых являются PCI и PCI Express. Шинный интерфейс предоставляет разработчикам устройств и пользователям единый стандарт обмена данными, что значительно облегчает интеграцию различных устройств в систему. Физически шина
представляет собой набор электрических линий, сигналы на которых подчиняются определенным правилам или стандартам, например, стандарту PCI, откуда и название шины.
С другой стороны, в большинстве случаев набор сигналов процессора или контроллера
не соответствует стандартам шины, поэтому между процессором и шиной помещают дополнительное устройство, которое обычно называют контроллером шины. Контроллер шины выполняет функции преобразования сигналов процессора в сигналы шинного интерфейса. Например, для систем с процессорами Intel контроллер шины преобразует сигналы процессора
в стандарт PCI или PCI Express (рис. 2.2).

Рис. 2.2
Упрощенная структура шинной
архитектуры

На этом рисунке контроллер шины для упрощения показан в виде одного модуля, хотя на
самом деле он может включать несколько интегральных микросхем и быть довольно сложным. Шина PCI в данном примере является системной шиной, и к ней могут подключаться
другие устройства, сигналы которых соответствуют стандарту данной шины. Например, к шине
PCI может подключаться хостконтроллер шины USB, который, в свою очередь, будет формировать сигналы синхронизации на шине USB для подключения USBустройств.
Таким образом, в любой болееменее сложной компьютерной системе обмен данными
между процессором и устройствами выполняется посредством одной или нескольких шин