Особенности функционирования программных автоматов
Конференция: X Международная научно-практическая конференция "Научный форум: технические и физико-математические науки"
Секция: Приборостроение, метрология и информационноизмерительные приборы и системы
X Международная научно-практическая конференция "Научный форум: технические и физико-математические науки"
Особенности функционирования программных автоматов
FEATURES OF FUNCTIONING OF THE SOFTWARE VENDING MACHINES
Vadim Pisecky
senior lecturer of the Department of technical disciplines, electronics and the Sarov physical and technical Institute of national research nuclear University "MEPhI", Russia, Sarov
Sergey Goncharov
candidate of technical Sciences, associate Professor of the Department of technical disciplines, electronics and the Sarov physical and technical Institute of national research nuclear University "MEPhI" , Russia, Sarov
Alexey Voronkov
candidate of technical Sciences, associate Professor of the Department of technical disciplines, electronics and the Sarov physical and technical Institute of national research nuclear University "MEPhI" , Russia, Sarov
Tatiana Dorokhin
senior lecturer of the Department of technical disciplines, electronics and the Sarov physical and technical Institute of national research nuclear University "MEPhI" , Russia, Sarov
Ekaterina Naumova
senior lecturer of the Department of technical disciplines, electronics and the Sarov physical and technical Institute of national research nuclear University "MEPhI" , Russia, Sarov
Аннотация. В [1] описан метод синтеза программного автомата (ПА) по графу поведенческой модели. Этот метод позволяет сроить программные автоматы, обладающие рядом дополнительных возможностей. Каждая из вершин графа, в случае применения данной методики может иметь как различный тип синхронизации, так и тип. Обсуждению этих возможностей и посвящена данная статья.
Abstract. In [1] described a method for the synthesis of machine (PA) on the graph of the behavioral model. This method allows to build software machines with additional features. Each of the vertices of the graph, in the case of application of this methodology can be various types of synchronization and type. Discuss these possibilities are addressed in this article.
Ключевые слова: программный автомат; синхронный автомат; асинхронный автомат.
Keywords: software machine; synchronous machine; asynchronous machine.
В настоящее время большинство программных автоматов (ПА) строятся на базе промышленных контроллеров c применением Switch-технологии [2]. У таких автоматов синхронизация поведенческой модели автомата с внешней аппаратурой осуществляется аппаратно, аппаратурой промышленного контроллера. Впрочем, задачи, решаемые такими автоматами, требуют квант реального времени более единиц миллисекунд, что вполне соответствует возможностям аппаратуры.
Для задач, квант реального времени которых составляет величину от десятка микросекунд, описанный выше подход неприменим. Для построения подобного автомата на базе микроконтроллера в [1] описан формальный метод синтеза программного автомата по описанному в техническом задании графу поведенческой модели системы. Этот метод может быть сведен к следующему упорядоченному набору формальных действий:
1. Все вершины заданного графа нумеруются. Порядок нумерации – не критичен;
2. Граф переносится в программу. Для этого создается структура (см. рисунок 1), состоящая из:
- типизованной метки заголовка, связанной с номером состояния графа. Обычно это структура, состоящая из, как минимум, одного символа и цифры, совпадающей с номером вершины;
- тела вершины, в котором формируются выходные сигналы, соответствующие данной вершине графа;
- типизованной метки цикла ожидания, связанной с номером состояния графа. Обычно это структура, состоящая, как минимум, из одного символа и цифры, совпадающей с номером вершины. В асинхронном автомате эта метка не создается;
- структуры, отвечающей за ожидание прихода того или иного сигнала. В асинхронном автомате эта структура не создается;
- типизованной метки перехода, связанной с номером состояния графа. Обычно это структура, состоящая как минимум из одного символа и цифры, совпадающей с номером вершины (если в таковой есть необходимость);
- блока переходов, в котором проверяются условия перехода на другую вершину и, при обнаружении выполнения условия, выполняется переход. Анализ условий расставляется в соответствии с приоритетами переходов. В случае, если ни одно из условий не выполнено, осуществляется переход на начало блока.
Рисунок 1. Структура программного описания вершины графа
3. Порядок размещения таких структур, применительно к номерам вершин графа – произвольный.
4. На стартовом адресе размещается программа инициализации необходимых устройств, заканчивающаяся командой перехода на ту вершину, с которой предполагается старт автомата.
Подход, предполагаемый этим методом, позволяет обособить каждую из вершин графа, сделав ее независимой от типа и способа синхронизации соседних вершин.
Используя данный метод можно создавать автоматы, каждая из вершин которого может нести в себе как признаки автомата Мура, так и автомата Мили – вне зависимости от других вершин. Примеры даны для архитектуры ядра MCS-51 [2] и/или более старших ее клонов.
Пример такого синтеза показан на рисунке 2.
а) б)
Рисунок 2 Варианты исполнения вершины в виде а)автомата Мура и б) автомата Мили
Как видно из рисунка 2, для превращения автомата Мура в автомат Мили достаточно только изменить цели в командах перехода.
Кроме этого, методика позволяет для каждой вершины выбирать отдельный источник синхронизации – без привязки к источникам синхронизации других вершин.
При исключении группы команд ожидания вершину можно сделать асинхронной. Правда, подобное решение нельзя признать полностью корректным, поскольку в этом случае задержка в каждой вершине будет сугубо индивидуальной, и зависеть от количества исполняемых в данной вершине команд.
В качестве примера на рисунке 3 показана вершина, синхронизирующаяся по срабатыванию внутреннего таймера Т0, а на рисунках 4 и 5 показаны методы синхронизации от внешнего сигнала (в примерах на рисунках он подается на 3 бит порта Р2.
Рисунок 3. Вариант синхронизации вершины от внутреннего таймера
В показанном на рисунке 3 примере синхронизация осуществляется ожиданием появления флага TF0, который аппаратно формируется таймером Т0 при переполнении - переходе из состояния FF (FFFF) в состояние 0. Необходимость программного снятия флага диктуется особенностями архитектуры. MCS-51.
Рисунок 4. Вариант синхронизации по высокому уровню синхросигнала
В показанном на рисунке 4 примере синхронизация осуществляется ожиданием появления высокого уровня на 3 бите порта Р2, который аппаратно формируется внешним устройством.
Рисунок 5. Вариант синхронизации по низкому уровню синхросигнала
В показанном на рисунке 5 примере синхронизация осуществляется ожиданием появления низкого уровня на 3 бите порта Р2, который аппаратно формируется внешним устройством.
На рисунке 6 показан вариант динамической синхронизации по отрицательному фронту синхросигнала.
Рисунок 6. Вариант синхронизации по отрицательному фронту синхросигнала
Рисунок 7. Пояснения к рисунку 6
На рисунке 7 поясняется, в какой именно фазе синхросигнала работают команды, размещенные под метками j02 и d02. Команда условного перехода, размещенная под меткой j02, организует цикл ожидания начала импульса. Команда условного перехода, размещенная под меткой d02, организует цикл ожидания конца импульса, после чего и реализуется алгоритм выбора следующего состояния.
По сути, показанные на рисунках 3..6 алгоритмы являются программным аналогом схемотехнических выделителей фронтов, описанных в [4].