Russian HamRadio - Контроллер с дистанционной модификацией программ.
Сайт радиолюбителей Республики Коми.

: главная: странички:

Контроллер с дистанционной модификацией программ.

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

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

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

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

Для решения большинства задач автоматизации подходят хорошо известные многим разработчикам цифровой техники микроконтроллеры семейства MSC, другое название которых — однокристальные микроЭВМ. Известно также, что данные микроконтроллеры в отличие от классической организации процессоров “фон-неймановского” типа имеют “гарвардскую” архитектуру, поэтому память программ и память данных у них физически и логически разделены. По этой причине MSC микроконтроллеры не позволяют производить дистанционную загрузку новой программы во время

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

Контроллер построен на базе процессора 80С31 семейства MSC. Этот процессор позволяет подключить 64 К внешней памяти программ и такой же объем памяти данных. Поскольку обращение к памяти программ производится с помощью отдельного сигнала процессора, память данных не может быть использована для хранения и выборки из нее кода программ. Однако если объединить с помощью простой логики сигналы выборки памяти программ и памяти данных, то для процессора уже не будет разницы между этими типами данных. Именно этот прием и реализован в контроллере.

В качестве канала связи с внешним миром используется интерфейс RS-232. С целью расширения функциональных возможностей контроллер снабжен регистрами ввода/вывода, которые можно устанавливать по мере необходимости.

Ниже приведены основные технические характеристики контроллера:

• тип процессора — 80С31(51);

• тактовая частота процессора 11052 кГц;

• емкость постоянного запоминающего устройства — 8 К;

• емкость оперативного запоминающего устройства — 8 К;

• звуковой излучатель — пьезоэлектрический.

• интерфейсы:

• один порт аппаратно формируемого интерфейса RS-232;

• один вход внешнего прерывания (-INTO);

• один вывод таймера (ТО);

• шесть двунаправленных программируемых выводов (Р11—Р16)

• два восьмиразрядных регистра ввода (RIA, RIB);

• два восьмиразрядных регистра вывода (ROA, ROB).

Питание контроллера производится от источника +5В, потребляемый ток — не более 4 А.

Рис.1.

Параметры сигналов входных и выходных портов соответствуют уровням ТТЛ. На рис. 1 приведена структурная схема контроллера.

Микроконтроллер МК имеет доступ к ОЗУ, ПЗУ, регистрам ввода RIA, RIB и вывода ROA, ROB через шину адреса и шину данных.

Выбор конкретного устройства производится с помощью схемы управления СУ. Связь с управляющим компьютером происходит по интерфейсу RS-232.

Преобразователь уровней ПУ обеспечивает прямое и обратное преобразование сигналов ТТЛ уровней в уровни сигналов интерфейса RS-232. Принципиальная схема контроллера приведена на рис. 2. В контроллере применены, в основном, комплектующие импортного производства, которые допускают прямую замену на отечественные аналоги.

Рис.2

При включении контроллера программа загружается из ПЗУ в МК. Под управлением этой программы выполняются команды, поступающие по интерфейсу RS-232, в том числе и команда загрузки новой рабочей программы в ОЗУ и передачи ей управления.

Таким образом, в контроллер можно загружать новые программы со скоростью 115 кБод, причем неограниченное число раз. Кроме перечисленных устройств, контроллер имеет в своем составе таймер аварии, построенный на микросхеме NE555

Таблица 1.

Данный таймер примерно раз в секунду формирует сигнал прерывания -INT1 для контроллера.

В ответ на это прерывание контроллер должен сбрасывать таймер сигналом Т1.

В случае если контроллер “зависнет” или выйдет из строя, сброс таймера не будет осуществляться, и последний включит индикатор “Авария”, сигнализирующий о неисправности контроллера.

Вся внешняя память контроллера, поделена с помощью дешифратора на области по 8 К. Две области отведены для ПЗУ и ОЗУ, а остальные используются для доступа к регистрам ввода и вывода.

Данный способ подключения регистров позволяет использовать при обращении к ним любые команды для работы с памятью, что бывает весьма удобно во многих случаях. Карта адресации устройств контроллера приведена в табл. 1.

Рис.3

В качестве примера рабочей программы была написана тестовая программа ukmsc для данного контроллера.

Данная программа принимает от компьютера пакеты команд, трансформирует их в коды управления и выводит данные коды через регистры вывода ROA и ROB.

Если пакет команд заканчивается символом "О", происходит передача управления программе в ОЗУ.

Программа снабжена комментариями, которые позволяют легко разобраться в ней.

В качестве устройства управления использовался персональный компьютер IBM PC с интерфейсом RS-232 (СОМ-порт) и программой тестирования контроллера test_msc.

Данная программа написана на языке программирования C++. При работе программы на экран монитора выводится основное рабочее окно (рис. 3).

Рис.4.

Нажатие на клавиатуре любой из доступных клавиш-команд приводит к передаче команды по СОМ порту контроллеру и переходу к ожиданию ответа от него.

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

Подробно формат команды и ответ на нее можно увидеть, вызвав подсказку программы с помощью клавиши F1. На рис. 4 приведено данное окно программы.

Для дистанционной загрузки программы в ОЗУ контроллера и передаче ей управления, следует подготовить бинарный файл новой рабочей программы для контроллера и записать его в файл с именем boot.bin.

Рис.5.

Необходимо также учесть, что область ОЗУ в контроллере начинается с адреса 2000h, поэтому в новой программе для обеспечения правильных условных и безусловных переходов в начале программы следует вставить строку команды org 2000h.

Поскольку после компиляции данного файла будет создан бинарный файл с нулевого адреса, первые 8 К будут нулевыми. Удаление первых 8 К байт из файла boot.bin происходит автоматически в программе test_msc.

Новая программа может использовать все подпрограммы и обработчики прерываний, записанные в ПЗУ контроллера, так как они являются неотъемлемой частью контроллера и всегда доступны.

Таблица 2.

Это своего рода bios контроллера. Пример такой программы с именем boot.asm приведен в табл. 2.

При выполнении команды "0" данный файл будет передан компьютером в контроллер и ему автоматически будет передано управление.

В таблице основного окна имеются комментарии для каждой команды.

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

Текст программы test_msc с комментариями приведен в упомянутом архиве. Для тестирования контроллер соединяют с компьютером с помощью стандартного кабеля, схема которого приведена на рис. 5.

О. Вальпа

Скачать архив программ для проверки контроллера.

Материал подготовил Ю. Погребан (UA9XEX).

Rambler's Top100
Rambler's Top100
Copyright © Russian HamRadio

Hosted by uCoz