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

М. ТКАЧУК, г. Алматы, Казахстан
Предлагаемый простой как в аппаратном, так и в программном смысле узел принимает команды, подаваемые через последовательный порт компьютером, и формирует соответствующие им сигналы управления четырьмя (а при небольшой доработке и более) исполнительными устройствами. Предусмотрены подтверждение приема команды и ее индикация.
Поводом для разработки и изготовления данного устройства послужила необходимость в дистанционном управлении через порт 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,

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

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

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

Программа МК этого устройства в электронном виде Вы не можете скачивать файлы с нашего сервера

Радио №8 2007 г



Обсудить на форуме

Комментарии

Добавить комментарий
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

    Управление приборами через COM-порт компьютера

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

    Описание команд обмена данными модуля ввода — вывода ADAM4500 по протоколу DCON

    Команда устанавливает адрес, скорость обмена данными, и/или статус контрольной суммы для цифрового модуля ввода/вывода.

    COM порт глазами ремонтника, часть 5

    Довольно нестандартная задача, подключение устройства работающего по RS232 на расстояние, значительно превышающее 2 м. На практике удавалась работать с кабелем длинной в 50м, но это фактически предел длины кабеля для связи по протоколу RS232.

    COM порт глазами ремонтника. Ремонт, настройка, диагностика. Часть 3, протокол, кабель, подключение.

    Рассматриваем вопросы диагностики COM порта в разрезе - протокол подключения внешних устройств.

    COM порт глазами ремонтника. Ремонт, настройка, диагностика. Часть 2, диагностика на компьютере.

    Статья вторая «COM порт – глазами ремонтника. Ремонт, настройка, диагностика».

    Гальваническая развязка COM порта

    Во многих типах оборудования в настоящее время продолжает использоваться универсальный асинхронный приёмопередатчик. Это и многие универсальные программаторы, и винчестеры, ADSL модемы, офисные АТС.