САЙТ КРЫЛОВА ПАВЛА
Главная
Схемы Ветрогенераторы Собаки Стройка Книги О сельском хозяйстве и прочем


СХЕМЫ---->
Полезная схемотехника. статьи № 1-50

Микроконтроллерный дешифратор команд компьютера

М. ТКАЧУК, г. Алматы, Казахстан

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

Поводом для разработки и изготовления данного устройства послужила необходимость в дистанционном управлении через порт COM компьютера четырьмя высокочастотными переключателями радиосигнала на входе анализатора спектра в системе автоматических измерений земной станции спутниковой связи. Требовалось простое, дешевое устройство, с помощью которого по командам работающей в компьютере программы автоматических измерений можно было бы управлять, по сути дела, четырьмя реле. Причем весьма желательно было получать обратно информацию о правильности приема команд. Устройство, описанное в [1], не вполне подходило для этой цели. Исходя из поставленной задачи, был разработан предлагаемый микроконтроллерный дешифратор, оснащенный цифровым индикатором принятой команды и обратным каналом связи с компьютером. Для приема и передачи кодовых комбинаций по протоколу RS232 нетрадиционно используется всего один вывод МК. Устройство получилось простым и компактным.

Схема дешифратора изображена на рисунке.

Микроконтроллерный дешифратор команд компьютера. Принципиальная схема.

Его основа — микроконтроллер PIC16F84A (DD1), связанный с COM портом компьютера через преобразователь уровней DA2 и разъем Х1. Для отображения принятой команды применен светодиодный семиэлементный индикатор HG1 с общими катодами. Интегральный стабилизатор DA1 обеспечивает все узлы устройства напряжением питания 5 В. Выходные усилители и исполнительные реле, подключаемые к разъему Х2, на схеме не показаны.

Компьютерная система автоматических измерений формирует команды в виде восьмиразрядных двоичных кодов, передаваемых по каналу RS232 со скоростью 4800 Бод без контроля четности с одним стоповым разрядом. В рассматриваемом случае командами служат ASCII-коды цифр 0—5. Это позволяет при необходимости (например, для проверки) подавать их с помощью не только специализированной, но и любой терминальной программы.



Если принята одна из цифр 1—4, она будет выведена на индикатор, а на выходе дешифратора с соответствующим номером будет установлен высокий уровень (на всех остальных он будет низким). Команда 5 установит высокие уровни на всех выходах. В этом случае на индикатор выводится не цифра, а буква Н. Команда 0 установит низкие уровни на всех выходах и ноль на индикаторе. Прием любого другого символа также делает уровни на всех выходах низкими, однако отмечается на индикаторе буквой Е.

Перед исполнением принятой команды на всех выходах устройства устанавливаются низкие уровни, затем следует выдержка 350 мс. Она необходима для того, чтобы до включения очередного реле предыдущее успело отпустить якорь.

После включения питания и до приема первой команды уровни на всех выходах низкие, а индикатор HG1 погашен. Отсутствие индикации подачи питания может представить некоторое неудобство. Устранить его можно подключением через резистор индикатор ного светодиода к цепи питания и общему проводу. Можно применить для этого и неиспользуемый элемент Н индикатора HG1. Достаточно подключить резистор сопротивлением 180 Ом между выводом 9 индикатора HG1 и выводом 14 МК DD1.

Передаваемый компьютером по цепи TXD интерфейса RS232 последовательный код поступает на вывод 3 (RA4) МК DD1 через один из приемных преобразователей уровня микросхемы DA2. Резистор R1 устраняет шунтирующее действие выхода преобразователя уровня на вывод RA4, когда последний становится выходом и используется программой МК для передачи ответа компьютеру.

Передача ответа происходит по интерфейсной линии RXD через передающий преобразователь уровня микросхемы DA2. Ответ представляет собой "эхо" — повторение принятого кода. Оно будет двукратным. Первый раз микросхема DA2 просто транслирует принимаемый по линии TXD сигнал в линию RXD. Второе эхо формируется программно с задержкой около 10 мс. Это удобно для более полного контроля работы системы и определения места неисправности.

Программа МК, написанная на версии языка BASIC для компилятора MikroBasic [2], с подробным комментарием приведена в табл. 1,

Микроконтроллерный дешифратор команд компьютера. Программа МК, написанная на версии языка BASIC для компилятора MikroBasic.

а результат ее компиляции (коды для загрузки во FLASH-память МК) — в табл. 2.

Микроконтроллерный дешифратор команд компьютера. Коды для загрузки во FLASH-память МК.

Демонстрационная версия компилятора распространяется бесплатно и имеет ограничение лишь по размеру программного кода — не более 2 Кслов, что для МК PIC16F84A несущественно. К компилятору прилагается большое число библиотек, содержащих множество готовых под программ для работы с различными периферийными устройствами, в том числе с распространенными датчиками и индикаторами. Например, поскольку МК PIC16F84A не имеет встроенного аппаратного адаптера последовательного интерфейса (UART), в рассматриваемой программе прием и повторение команд организованы с помощью программного UART из библиотеки компилятора. Длительности задержек эхо и исполнения команд заданы в программе исходя из конкретного применения устройства. При необходимости их можно изменить или исключить вовсе.

Устройство можно немного упростить, исключив из него индикатор HG1 и резисторы R7—R13. Освободившиеся выводы МК можно использовать для формирования любых необходимых сигналов, например, увеличить число выходов для подключения исполнительных устройств до 12. Естественно, для управления ими потребуется доработка программы МК.

Дешифратор был собран на макетной плате размерами 55x90 мм, печатная же плата для него не разрабатывалась.

ЛИТЕРАТУРА
1. Using PicBasic with the PIC16F84 PIC Microcontroller. — http://www.rentron.com/PIC16F84.htm
2. MikroBasic for PIC. — http://www.mikroe.com/zip/mikrobasic/mikrobasic_5002_setup.zip

От редакции. Программа МК этого устройства в электронном виде имеется на нашем FTP-сервере по адресу ftp://ftp.radio.ru/pub/2007/08/p4.rar

Радио №8 2007 г


altay-krylov@yandex.ru