Определим выходные сигналы управляющего автомата. Как следует из задания, автомат должен выдавать управляющие сигналы на реализацию очередного режима работы стиральной машины. Кроме того, автомат должен сигнализировать пользователю через индикаторы, в каком режиме работы находится стиральная машина в текущий момент времени.
Исходя из текста задания, можно определить следующий набор индикаторов на лицевой панели стиральной машины: G – стиральная машина готова к работе, Z – залив воды, ST – стирка, SL – слив воды, ERR – неисправен таймер. Двоичные выходные сигналы автомата, которые формирует управляющий автомат, можно определить, как показано в табл. 4.2.
Таблица 4.2
Выходные сигналы управляющего автомата
Имя выходного |
Пояснение |
|
сигнала |
||
|
GВключить индикатор «Стиральная машина готова к работе»
ZВключить режим залива воды и индикатор «Залив воды»
ST |
Включить режим стирки и индикатор «Стирка» |
|
|
|
|
SL |
Включить режим слива воды и индикатор «Слив |
|
воды» |
||
|
||
ERR |
Заблокировать работу стиральной машины и вклю- |
|
чить индикатор «Неисправен таймер» |
||
|
Определение необходимого набора состояний автомата
Режимы работы стиральной машины, приведенные в задании, позволяют без особого труда определить состояния автомата. Возможные внутренние состояния управляющего автомата приведены в табл. 4.3.
46
Таблица 4.3
Множество состояний управляющего автомата
Состояние |
Пояснение |
|
|
S0 Начальное состояние автомата. Стиральная машина готова к работе
S1 Режим залива воды
S2 Режим стирки
S3 Режим слива воды
S4 Заблокирована работа стиральной машины. Неисправен таймер
Составление графа переходов
После определения входных, выходных сигналов и множества внутренних состояний можно приступить к созданию графа переходов автомата. Создание графа переходов творческая и неформализованная процедура и в каждом отдельном случае и каждым исполнителем может выполняться произвольно.
Вданном случае вначале изобразим вершины графа, которые будут представлять состояния автомата (см. табл. 4.3). Поскольку каждое состояние автомата определяет и соответствующий выходной сигнал, то выходные сигналы автомата проставим около вершин графа. Таким образом, проектируемый автомат является автоматом Мура. (Заметим, что в заданиях также предполагается проектирование автомата Мура.)
Этот шаг построения графа переходов автомата представлен на рис. 4.1. Отметим, что при записи значений выходных сигналов использовался синтаксис, принятый в редакторе FSM Editor.
Синтаксис выражений должен быть следующим:
-оператор присваивания обозначается составным символом <=,
-константы заключаются в одинарные кавычки, например, ‘0’,
-выражения отделяются друг от друга символом точкой с запятой.
Ввыражениях можно использовать логические операторы, определенные в табл. 4.4.
47
Рис. 4.1. Задание состояний и выходных сигналов автомата
Таблица 4.4
|
Логические операторы |
|
|
not |
Инверсия |
and |
И |
or |
ИЛИ |
nand |
И-НЕ |
nor |
ИЛИ-НЕ |
хоr |
ИСКЛЮЧАЮЩЕЕ ИЛИ |
хnоr |
ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ |
У оператора not самый высокий приоритет, так что можно не заключать в скобки подвыражение типа not А1.
Логические операторы and, or, nand, nor, xor, хnоr имеют одинаковое старшинство и выполняются слева направо в выражениях. В сложных логических выражениях порядок выполнения операторов регулируется скобками.
В соответствии с логикой работы стиральной машины и определенными выше состояниями зададим все переходы для автомата (рис. 4.2). Автомат будет находиться в одном из четырёх состояний S0,S1,S2,S3 до тех пор, пока соответствующий входной сигнал не переведет автомат в очередное состояние.
48
При отказе таймера возможны две ситуации:
а) отказ произошел во время работы стиральной машины до начала режима стирки или во время стирки (выявление отказа возможно в режиме стирки),
б) отказ произошел после окончания режима стирки.
В первом случае управляющий автомат перейдет в состояние S4 (неисправен таймер) из состояния S2 (режима стирки). Во втором случае автомат перейдет в состояние S4 из начального состояния S0 только при повторном запуске стиральной машины (см. рис.
4.2).
Рис. 4.2. Результат задания переходов
Далее необходимо каждую дугу графа пометить условием, которое вызывает в автомате соответствующий данной ветви переход. Условие перехода автомата из одного состояния в другое задаётся истинностью или ложностью (равенством 1 или 0) логического выражения или переменной, которые соответствуют появлению тех или иных входных сигналов. Выражение заключается в круглые скобки, ставится знак равенства, затем пишется 0 или 1, заключённые в одинарные кавычки. Например:
(not E1 and E2) = ‘1’.
В выражениях можно использовать логические операторы, указанные в табл. 4.4.
49
Если условие перехода определяется истинностью или ложностью переменной, то запись такого условия выглядит следующим образом:
E2 = ‘0’.
На рис. 4.3 приведен граф переходов управляющего автомата с заданными условиями переходов. Следует отметить, переход автомата в то или иное состояние определяется, как ранее условились, единичным значением входного сигнала. Автомат будет находиться в том или ином состоянии до тех пор, пока на вход автомата не поступит определенный входной сигнал. Начало работы стиральной машины по сигналу pusk возможно только при исправном тай-
мере – условие (not t_err and pusk)=’1’.
Рис. 4.3. Граф переходов управляющего автомата
Здесь же на графе показан и установочный вход reset, единичный сигнал которого переводит автомата в начальное состояние.
Реализация проекта управляющего автомата
Следующие шаги по выполнению задания выполняются в лаборатории. Они включают следующую последовательность действий:
- ввод графа переходов конечного автомата,
50