Микропроцессорный конструктор-1

Продолжаем публикацию статей о полезных применениях контроллеров, собранных на основе однокристальных микро ЭВМ серии 1816 или совместимых с ней серий 1830 и 1835. В прошлых номерах “RD” ( № 3, 4-96 и №1-97 ) говорилось о многофункциональной цифровой шкале, сердцем которой являлся микропроцессор КР1816ВЕ48. Этот чип сравнительно прост в использовании и, при наличии документации и сервисного программного обеспечения на PC- компьютере, он вполне доступен для самостоятельного проектирования небольших устройств. Но, в этом семействе имеется и более сложная машина, обладающая гораздо более мощной системой команд и уникальными возможностями “железа”. Это микросхема КР1816ВЕ51. На основе ее архитектуры и с тем же набором команд было разработанно множество однокристалльных микро ЭВМ с существенно расширенными возможностями. Так, например, одна из последних разработок - 80C517 содержит в одном корпусе девять восьмиразрядных портов ввода - вывода, два независимых последовательных порта, двенадцативходовый аналогово - цифровой преобразователь и много других чудес. Радиолюбителям, имеющим желание подробней разобраться в устройстве своей новой импортной аппаратуры, может быть будет интересно узнать, что в их передатчиках, в качестве центрального управляющего процессора, зачастую трудится “родной брат” вышеупомянутых микросхем, с той же системой команд. Но я пока не буду призывать к переделке программы в вашем трансивере, попробуем сначала “договориться” с ним через имеющийся встроенный COM- порт с интерфейсом RS-232. Можно возразить, что эта проблема давно решена, и любой пользователь персонального компьютера, загрузив в него соответствующую программу (например RCP 570) может с успехом управлять своим трансивером. Это так. Но, встречаются случаи, когда применение PC не вполне целесообразно, то ли по экономическим причинам, то ли по причине отсутствия в установленной программе необходимых функций. Целесообразность создания небольших управляющих контроллеров я постараюсь показать на конкретных примерах, с приведением принципиальных схем и дампов программ, некоторые участки которых позже будут представлены в виде ассемблерных листингов с комментариями. Может быть это поможет некоторым нашим читателям глубже разобраться в работе микроконтроллеров системы MCS 51 - это общее название программно - аппаратного комплекса используемого нами процессора. Надо сказать, что выбор именно этого семейства микросхем обусловлен в первую очередь наличием в нем встроенного последовательного интерфейса или, проще, COM - порта.

ПОСЛЕДОВАТЕЛЬНЫЙ ОБМЕН ДАННЫМИ.

Прежде чем приступать к конструированию устройства, имеющего в своем составе последовательный порт, следует во всех тонкостях разобраться в особенностях работы интерфейса. Данный вопрос часто вызывает затруднения даже у специалистов - профессионалов не говоря уже о радиолюбителях. Это тема для отдельной статьи. Здесь я коснусь ее очень кратко, с упором на обмен именно с трансивером. Существует два стандарта разъемов для серийного обмена данными 25 - ти и 9 - ти контактные. В нашем случае используется 9 - ти контактный разъем. Приборная часть разъема, расположенная на контроллере, компьютере или трансивере, является штыревой, а кабельная часть - на соединительном шнуре, это два разъема с гнездами. Нумерация выводов показана на рисунке Рис. 2. Схема соединительного шнура показана на Рис. 3. Как видим, для присоединения к трансиверу необходимо прямое соединение одноименных контактов, в отличии от более распространенного “нуль- модемного” соединения, где эти проводники перекрещиваются. Для обмена данными подойдет и двухпроводный экранированный кабель, обеспечивающий соединение только линий RXD и TXD (контакты 2 и 3), контакт 5 - экран. В этом случае контакт 7 (RTS) в разъеме трансивера и контакт 8 (CTS) в разъеме компьютера должны быть присоединены к отдельному источнику напряжения величиной от +5 до +15 В через резистор порядка 300 Ом. При таком варианте соединения теоретически возможна некоторая потеря информации, которая на практике не будет играть ни какой роли, так как при обмене с трансивером контроллер или компьютер неоднократно повторяют передаваемые команды. На достоверность данных также влияет и скорость их приема - передачи. При длине соединительного шнура до двух метров имеет смысл использовать максимальную скорость обмена - 57,6 килобит в секунду. Контроллер как раз рассчитан на эту скорость. Не забудьте настроить на эту же скорость ваш трансивер, изменив соответствующий пункт меню. В дальнейшем попробую научить программу самостоятельно определять текущее значение скорости обмена. Очень поучительно попробовать по управлять трансивером PC- компьютером с помощью любой терминальной программы, набирая инструкции вручную. Таким образом я проверял правильность своего понимания работы любой команды. Теперь, немного об уровнях сигналов интерфейса. Временная диаграмма передачи одного байта информации показана на Рис. 4. Как видно из рисунка, сигнал на разъеме в среднем изменяется от +12 до -12 вольт. Пределы напряжений, независимо от полярности, могут варьироваться от 5 до 15 В. На практике отрицательное напряжение может быть повышено до 0В. Для обеспечения указанных уровней сигналов удобно применять специальные микросхемы, которые вырабатывают необходимые двухполярные напряжения, преобразуя источник +5В. Вдобавок, эти микросхемы осуществляют ивертирование входных и выходных сигналов, превращая, например напряжение +12В на контакте 2 разъема в напряжение логического нуля для TTL логики, а напряжение -12В на том же контакте в напряжение логической единицы.

МИФЫ ПРО COM - ПОРТ.

Известно, что у некоторых радиолюбителей существует некая мистическая боязнь подключения своих радиостанций к коммуникационному порту. По эфиру ходят рассказы про то, как некий смельчак, соединив компьютер с трансивером, выжег до тла оба прибора, да и сам еле остался жив. Как ни странно, но у меня нет оснований сомневаться в правдивости этих историй. Но, давайте разберемся. Радиолюбитель, хотя бы немного понимающий в схемотехнике, наверняка знает, что собой представляют блок питания компьютера. Это импульсный преобразователь напряжения. Для борьбы с радиопомехами, возникающими при его работе, на входе сетевого напряжения обязательно ставится фильтр. В схему фильтра входят обычно блокировочные конденсаторы емкостью от нескольких тысяч пикофарад до микрофарады. Эти конденсаторы включены между каждым из сетевых проводов и корпусом компьютера, который ,поэтому, должен быть обязательно заземлен. Иначе он окажется под напряжением равным как минимум половине сетевого. При этом, максимальный ток отдаваемый таким “источником” в паразитную нагрузку может доходить до десяти миллиампер и будет зависеть от суммарного реактивного сопротивления конденсаторов фильтров компьютера, дисплея и даже принтера, если он есть. Основную же опасность все же представляет высокое напряжение. Соединяя незаземленный компьютер с другим устройством, в момент стыка кабельных разъемов, не всегда первым присоединяется контакт с потенциалом корпуса. В этом случае фазовое напряжение сети обрушивается в первую очередь на микросхемы интерфейса, через них может достаться и микропроцессору, а это уже серьезно. Вывод один- надо соблюдать элементарные правила электробезопасности и в любом случае надежно заземлять всю свою аппаратуру. Опасны ли напряжения самого COM- порта? Не более опасны, чем разряженная 12-ти вольтовая батарейка! Максимальный ток ( ток К.З.) например от выводов RTS или DTR составляет около 15 мА и не может вызывать повреждений. К стате, эти выводы используются некоторыми радиолюбительскими программами для питания внешних схем. Бессмысленно, так же, пытаться гальванически развязывать стык с помощью опттронов, оставляя при этом не развязанным общий провод.

КОНТРОЛЛЕР ДЕМОНСТРИРУЕТ ПРИНЦИП.

И, наконец, о нашем контроллере. Он предназначен пока только для взаимодействия с трансиверами фирмы KENWOOD, но для того, что бы он мог управлять другими аппаратами, достаточно изменить только его программу.

Схема контроллера показана на Рис. 1. Микросхема D1 - однокристальная микро ЭВМ или просто процессор, D2 - буфер адреса, D3 - ПЗУ программы и D4 - преобразователь уровней последовательного порта. Последняя микросхема может быть заменена на простую схему из дискретных элементов, но при этом понадобится еще два питающих напряжения +12 В и -12 В. Схему контроллера, и без того довольно простую, можно еще более упростить, разместив программу во внутреннем ПЗУ процессора. Микросхемы D2 и D3 тогда не понадобятся. В добавок, при этом, появляется возможность эффективно защитить авторские права программиста, установив бит запрещающий прочтение байтов внутреннего ПЗУ. Программа, предложенная в этом сборнике носит скорее демонстрационный характер. Она всего лишь управляет перестройкой рабочей частоты трансивера с шагом 1 кГц. Может быть кому то и эта функция покажется полезной, она поможет быстро получить представление о ситуации на диапазоне. Эту же функцию выполняет ручка “MULTI CH.” в модели TS - 570D, но эта ручка, несущая и без того большую функциональную нагрузку, еще имеет неприятное свойство механически изнашиваться, теряя фиксацию. На данном этапе разработки полностью определена идеология тех участков программы, которые отвечают за обмен информацией по COM - порту. Перечень функций и их адреса представлены ниже. Дамп содержимого ПЗУ в форме шестнадцатиричных кодов можно скачать здесь.

АДРЕСА ПРОГРАММЫ.

0003 - 002A Векторы прерываний
002B - 005A Установка основных регистров
005D - 007A Тест COM- порта
007D - 00A7 Определение текущего VFO
00AA - 00E9 Изменение частоты VFO
00F8 - 0119 Подпрограмма передачи одного байта
011A - 0141 Подпрограмма обработки ком- прерывания
0142 - 0147 Подпрограмма ожидания приема байта
0148 - 0175 Подпрограмма передачи команды к TRX
0176 - 0182 Подпрограмма заполнения буфера команды
0183 - 018E Подпрограмма перегрузки буферов
018F - 01A1 Подпрограмма преобразования числа
01A2 - 01B8 Подпрограмма преобразования числа
01B9 - 01D6 Подпрограмма увеличения частоты
01D9 - 0200 Подпрограмма уменьшения частоты
0201 - 020A Подпрограмма преобразования в доп. код
020B - 021C Подпрограмма прерывания таймера 0
021D - 0232 Таблица используемых команд трансивера

ЧИП - КАПРИЗЫ.

За период времени, что я работал с микросхемами семейства MCS 51 у меня остались о них не только положительные впечатления. Вот одно из “тонких” мест этого семейства. Независимо от конкретного типа микросхемы, ее изготовителя - импортные они или отечественные, замечено, что все они весьма критичны к быстродействию внешних цифровых микросхем. Особенно это касается быстродействия чипа внешнего ПЗУ программ с УФ стиранием. Сравнительно старые микросхемы с большими кристаллами - типа 573РФ5, 2716, 2764 отказываются работать в схеме контроллера. Более новые микросхемы тех же типов, отличающиеся меньшими размерами кристалла, работают в тех же схемах без проблем. В качестве интерфейсных микросхем с малой интеграцией советую применять быстродействующие КМОП серии КР1554, которые как правило совместимы по цоколевке с сериями КР1533, КР555, но имеют при сходной цене на порядок лучшее быстодействие и гораздо лучшую экономичность по питанию. Стоимость самих же “однокристаллок” в Москве составляет около 30 рублей и выше.

ПЛАНЫ.

Перспективные задачи, которые мог бы выполнять контроллер, ко времени написания этой статьи находятся в стадии обдумывания. Но, демонстрационная идея с разгрузкой ручки “MULTI CH” воплощена в жизнь в виде действующего макета, программа отлажена и про тестирована совместно с трансивером. До выхода следующего номера RD работа над контроллером будет продолжена. Он дополнится новыми микросхемами, будет выполнять много новых полезных функций. Я с благодарностью приму от читателей нашего сборника любые советы и предложения по развитию этой системы. У меня есть и своя “сверхзадача” - хочу заставить контроллер помочь мне осуществить полностью дистанционное управление моим трансивером, предположительно с помощью DTMF кодов. Сперва в качестве канала полагаю использовать телефонную линию, а потом, быть может, и частоты УКВ любительских диапазонов. До встречи в следующем номере!

Сергей Макаркин (RX3AKT).