- •© Иркутский государственный университет
- •Сокращения
- •Введение
- •Глава 1 базовые понятия и конструкции систем управления дискретной автоматики
- •1.1. Переменные и функции алгебры логики
- •1.2. Двоичные коды переменных
- •Запишем аналитическое выражение для y1 в виде логической суммы (дизъюнкции) конъюнкций тех переменных, которые определяют единичное значение булевой функции:
- •1.3. Логические функции одной и двух переменных
- •1.4. Одноразрядный сумматор двух переменных
- •1.5. Дешифратор и шифратор двоичного позиционного кода
- •1.6. Цифровой и аналоговый мультиплексоры
- •1.7. Основные понятия минимизации булевых функций
- •1.8. Структурный синтез самодиагностируемых обратимых функциональных преобразователей информации
- •1.9. Дискретные преобразователи информации
- •Глава 2 системы управления дискретной автоматики
- •2.1. Операционные автоматы
- •2.2. Базовые модели систем управления
- •Окончание рис. 32
- •Системная модель преобразования информации
- •Расширение двухблоковой модели системы
- •2.3. Организация связей в информационно-управляющих системах
- •2.4. Проектирование преобразователей информации
- •2.5. Операторные схемы алгоритмов систем управления
- •Глава 3 конечные автоматы систем управления
- •3.1. Абстрактный синтез автоматов
- •3.2. Структурный синтез автоматов
- •3.2.1. Организация памяти автоматов
- •3.3. Структурная схема автомата Мура
- •3.4. Функциональная реализация автоматов управления
- •3.4.1. Функциональная подсистема автомата
- •3.4.2. Адресная подсистема автомата
- •3.4.3. Реализация автоматов управления на программируемых логических интегральных схемах
- •3.5. Синтез быстродействующих автоматов
- •Глава 4 системы автоматов управления
- •4.1. Декомпозиция автоматов
- •4.2. Автоматы с объединенными операторами
- •4.3. Синтез многорежимных автоматов
- •4.3.1. Многопрограммные формирователи временных интервалов
- •4.3.2. Режим реализации нескольких последовательностей временных интервалов (от 8 до 64)
- •Режим реализации
- •4.4. Синтез автоматов по декомпозированной схеме алгоритма
- •4.5. Управление взаимосвязанными процессами
- •Глава 5 сложные автоматы систем реального времени
- •5.1. Структурная организация сложных автоматов
- •5.2. Контроль автоматов управления в системах реального времени
- •5.3. Моделирование автоматов управления
- •5.4. Управление спецпроцессором функционального контроля пзу
- •5.5. Система управления коммутаций сигналов
- •Основная литература
- •Дополнительная литература
5.3. Моделирование автоматов управления
Проектирование автоматов управления перед их практической реализацией целесообразно завершать моделированием работы на ЭВМ*.
Наибольшую сложность при моделировании автомата представляет реализация систем булевых функций для схем F1 и F2. Причем для автоматов Мура речь идет о схеме F1 (булевы функции, осуществляющие переходы a(t)→a(t+1)). В этом плане автоматы Мура выгодно отличаются от автоматов Мили тривиальной простотой схемы формирования выходных сигналов (набор схем «ИЛИ»). Поэтому и рассмотрим методику моделирования схем автоматов Мура.
МЕТОДЫ МОДЕЛИРОВАНИЯ АВТОМАТОВ
Самый простой метод моделирования заключается в том, что моделируется автомат методом вложения в ОЗУ ЭВМ всей таблицы переходов и выходов автомата. Очевидно, что для классической схемы такой подход возможен лишь для простейших автоматов с 3–4 логическими условиями и числом состояний в пределах одного десятка.
Наиболее эффективный метод реализации ФАЛ на ЭВМ – метод на основе использования так называемого кода маски, изложенный в [8] и упомянутый в работе [2].
Идея метода заключается в следующем:
Булевы функции F1 после минимизации СДНФ записываются в ДНФ.
Поскольку кроме множества [x], отражающего коды a(t), в качестве аргумента F2 используется множество {α}, то образуется конкатенация {α} {x}. Причем для каждого дизъюнктивного члена конъюнкции ДНФ не все переменные из {α} или {x} присутствуют. Однако в модели их нужно указать все, пометив отсутствующие αi или хj знаком «безразличия»: будут они равны «1» или «0», значение функции не меняется. Обычно такой знак помечается символом «~».
Код a(t) обозначают последовательностью разрядов хj множества {x(t)}, а код a(t + 1) – отдельными символами.
Тогда
m
– разрядность кода состояния а(t)
и а(t
+1).
Теперь для каждой конъюнкции yi можно написать код маски, разрешающий проверку совпадения текущего кода X и Y с помощью установки 0 в разрядах соответствующих
или 1 в разрядах кода маски соответствующих
x
или
.
Поскольку число конъюнкций k(i) различно для каждого yi, то и количество кодов маски будет равно i*k(i), .
Далее не будем символьно различать {α} {x}, а будем говорить о едином коде X как конкатенации {α} и {x(t)}.
5. Вычислив текущее а(t + 1) и определив yi, программист прежде чем проводить операцию сложения по mod 2, должен каждую конъюнкцию yi умножить на код маски, соответствующий этой конъюнкции.
Только этот получившийся код будет сравниваться (сложением ) с «правильными» значениями соответствующей конъюнкции yi.
6. Очевидно, что операция сравнения производится не для всех k(i), а до получения первого ответа yi = 1. Если же необходимо принять решение yi = 0, то нужно вести сравнения до последнего i = m.
7. Следует обратить внимание также на то, что все «правильные» значения конъюнкций yi ( ) должны быть сформированы в памяти ЭВМ отдельным массивом.
Реализация метода (п. 1–7) подробно описана в [8].
МОДЕЛИРОВАНИЕ СЛОЖНЫХ АВТОМАТОВ
Для моделирования сложных автоматов метод [8] становится слишком громоздким и практически не реализуемым на малоразрядных микроконтроллерах.
Предложенная структурная организация сложного автомата с выбором логического условия упрощает процедуру его моделирования, так как уменьшение числа переменных функции переходов F1 с m + q на m + 2 позволяет воспользоваться для моделирования комбинационных схем методом прямого считывания из ПЗУ. В память микроконтроллера необходимо записать по таблице 42 соответствия α β {x}→{y}, а также соответствие xm…x2x1→Zr…Z2Z1 (F3). По структурной схеме сложного автомата (рис. 93) составим схему информационных связей подсистем в модели автомата (рис. 100). На основании этой схемы определяется блок-схема алгоритма моделирования на 8-разрядном микроконтроллере автомата с (m + 2) ≤ 8 практически с любым числом логических условий {α}.
Запишем алгоритм моделирования в виде табл. 43. Чтобы не путать операторы модели с командами Аj исходной ГСА, обозначим операторы модели символами R.
Рис. 100. Информационные и управляющие связи программной модели автомата
Рис. 101
Таблица 42
№ п/п |
Адрес |
Выход |
|
|
||
|
|
|
|
|
|
|
0 |
0 |
1 |
0000 |
0001 |
0 |
000 |
1 |
0 |
1 |
0001 |
0010 |
0 |
000 |
2 |
0 1 |
0 0 |
0010 |
0001 0011 |
1 |
001 |
3 |
0 1 |
0 0 |
0011 |
0100 1101 |
2 |
010 |
4 |
0 |
1 |
1000 |
0101 |
0 |
000 |
5 |
0 |
1 |
0101 |
0110 |
0 |
000 |
6 |
0 1 |
0 0 |
0110 |
1100 0111 |
3 |
011 |
- |
- |
- |
- |
- |
- |
- |
14 |
0 1 |
0 0 |
1110 |
1010 1011 |
4 |
100 |
|
Адрес
|
|
Выход |
|||
Таблица 43
№ |
Операции |
Примечания |
|
Установка исходного значения α, β, {x} |
|
R1 |
B1 = F1(αβxm…x2x1) Prd(t + 1) = B1, Pr(F3) = B1 |
Опрос F1 Prd(t + 1), условное обозначение ячеек памяти |
|
Zr…z2z1 = F3(x3…x2x1) |
Опрос F3 |
|
Α(t + 1) = M(zk…z2z1) |
Опрос мультиплексора |
|
Β(t
+ 1) =
|
|
R5 |
Образование конкатенации αβxm…x2x1 из α(t + 1) β(t + 1) ym…y2y1 |
|
R6 |
Aj = F2(xm…x2x1) |
Опрос F2 |
R7 |
Включение таймера Т |
|
R8 |
Печать «номер состояния», «номер Aj». Установка в «нулевое» состояние Pr Aj |
|
R9 |
Печать «конец моделирования» |
|
R10 |
Выбор нового значения α, β (имитация ОУ) |
|
При аппаратной реализации для несовмещенных команд достаточно иметь только дешифратор, а для общего случая дешифратор и в схеме F2 набор элементов «ИЛИ», объединяющих те выходы дешифраторов, которым соответствует одна и та же команда Аj. При программной реализации нет необходимости моделировать отдельно дешифратор и отдельно набор элементов «ИЛИ». Достаточно записать в память микроконтроллера таблицу соответствия a(t) – Aj (табл. 44). В этом случае адрес таблицы F2 будет код xm…x2x1, а на выходе необходим регистр памяти с разрядностью, равной числу команд Аj (j=1, 2, …, k). Регистр должен позволять установку каждого бита.
Таблица 44
a(t) |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Aj |
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
A9 |
A10 |
A11 |
В данном конкретном примере нет совмещения команд, т.е. одному состоянию соответствует одна команда. В общем случае некоторым aj(t) может соответствовать выдача одновременно не одной, а двух команд. Ясно, что понятию регистров в программной модели соответствуют закрепленные ячейки памяти ОЗУ возможно, с этим же наименованием.
Содержание ОЗУ для F1, F3 определяется по табл. 42, а для F2 выписываются соответствия Aj→ai для всех i, j из ГСА (табл. 44). Схема (ЛСА) алгоритмической модели автомата будет обеспечивать правильную работу автомата в том случае, если для каждого периода Т будут определены выходные сигналы операционного устройства (ОУ).
При составлении программы для микроконтроллера, которая должна работать с реальным операционным устройством, целесообразно поставить отдельную независимую микросхему мультиплексора, тем более, если q ≈ 16. Если же программа создается только для проверки правильности функционирования автомата, то ни аппаратный, ни, тем более, программный мультиплексор не нужен. В этом случае необходимо правильно задать исходные данные с соответствующими (R10) значениями α для обеспечения переходов автомата по выбранному пути в графе переходов.
Поскольку для каждого нового периода Т необходимо выбирать значения α, β, то необходимо задать путь в графе переходов. Например, «заставим» модель переходить из состояния d(t) в d(t+1) строго последовательно по наиболее длинному пути. Для примера (рис. 97) получим d0d1d2d3d4d5d6d7d8d0.
В таблице 45 приведена последовательность выбора αj и соответственно значения α, β для оператора А10.
Таблица 45
d(t) |
α1 |
α2 |
α3 |
α4 |
α5 |
α6 |
|
α |
β |
Прим. |
0 |
- |
- |
- |
- |
- |
- |
|
0 |
1 |
β |
1 |
- |
- |
- |
- |
- |
- |
|
0 |
1 |
β |
2 |
1 |
- |
- |
- |
- |
- |
|
1 |
0 |
α |
3 |
|
1 |
|
|
|
|
|
0 |
0 |
|
4 |
- |
- |
- |
- |
- |
- |
|
0 |
1 |
β |
5 |
- |
- |
- |
- |
- |
- |
|
0 |
1 |
β |
6 |
- |
- |
- |
- |
1 |
- |
|
1 |
0 |
α |
7 |
- |
- |
- |
- |
- |
1 |
|
1 |
0 |
α |
8 |
- |
- |
- |
- |
- |
- |
|
0 |
1 |
β |
0 |
- |
- |
- |
- |
- |
- |
|
0 |
1 |
β |
Решение вопросов проверки работоспособности МПА по программной модели упрощается, если из графа переходов выделить дерево (рис. 101).
Переложение алгоритмической модели (ЛСА) на язык ассемблера или язык высокого уровня С++ не представляет затруднений для студентов, изучивших курс «Основы программирования».
