Аппаратная реализация.
При проектировании контроллера возможно два подхода. Первый общепринят среди радиолюбителей: на основе входной и выходной информации интуитивно синтезируется устройство. При наличии опыта, полученное таким образом схемотехническое решение не нуждается в упрощении и прекрасно работает. Однако для начинающих конструкторов этот подход не годится. На основе метода, изложенного в [2], предлагается второй подход:
1. Для проектируемого устройства (или его части) составляется таблица истинности. В качестве входной и выходной информации могут быть как отдельные сигналы, так и совокупность сигналов, а также целые процессы (например преобразования сигнал-цифра или цифра-сигнал).
2. Для каждого выходного сигнала составляется СовДНФ [2]. Процессы могут представлены также двумя состояниями – есть процесс или нет процесса (1 или 0).
3. Полученные структурные формулы упрощаются как методами логики, так и заменой очевидных комбинаций входных сигналов на более простые.
4. На основе структурной формулы строится устройство.
Примеры построения СУ.
В данном разделе рассмотрена реализация систем управления сверлильным автоматом и манипулятором, которые были подробно рассмотрены в главе[2, стр.53, табл. 3.3 и 3.6].
Построение СУ сверлильным автоматом.
Формирование требований к аппаратной реализации СУ.
I. Сигналы от конечных выключателей данного сверлильного автомата должны соответствовать уровням ТТЛ и равны 1 при включенном выключателе и 0 при выключенном. Поскольку микропроцессорная система построена на микросхемах ТТЛ, сигналы от автомата не требуют преобразования. В микросхемах ТТЛ (транзисторно-транзисторная логика) сигнал низкого уровня (0) равен 0¸0,4 В, а сигнал высокого уровня (1) равен 2,4¸5 В.
II. Автомат также должен воспринимать управляющие сигналы с уровнями ТТЛ.
III. Взаимодействие микропроцессорной системы и контроллера сверлильного автомата будет осуществлено через порт ввода-вывода с адресом 0FFh. Причём при чтении из порта биты с 0-го по 3-й должны быть равны 1 при включенных А, ПВ1, ПВ2 и ПВ3 соответственно и 0 при выключенных. А при записи в этот порт в битах с 0-го по 2-й на автомат будут передаваться управляющие сигналы БВ, РП и БН соответственно.
IV. Управляющая программа будет находится в ПЗУ с адреса 0FFFFh:0000h. С этого адреса начинается работа МП после включения или сброса.
Разработка УП.
Для управляющих сигналов сверлильного автомата в [2] были получены следующие структурные формулы:
БВ = А×ПВ2×ПВ3×ПВ1
РП = ПВ2×ПВ3×ПВ1
БН = ПВ2×ПВ3×ПВ1.
Разрабатываемая УП будет циклически читать состояние порта 0FFh, производить вычисления по приведённым формулам и отправлять результат в тот же порт. Вычисление управляющих сигналов по логическим формулам делает программу громоздкой, прямолинейной, но наглядной. Вообще логические команды ассемблера редко используются для вычисления логических выражений, так как с помощью инструкций проверок, сравнений и условных переходов результата можно добиться проще.
Итак, первоначальный вариант программы:
cikl: ;Метка для зацикливания вычислений.
in al,0ffh ;Чтение из порта 0FFh.
;Теперь al = (x x x x ПВ3 ПВ2 ПВ1 А)b
;номера битов 7 6 5 4 3 2 1 0
;где x – значение не определено.
mov ah,al ;Содержимое регистра аl заносится в ah.
and ah,1 ;ah=ah and 00000001b = (x x x x ПВ3 ПВ2 ПВ1 А) and
;00000001b = (0 0 0 0 0 0 0 A)b = A
mov bl,al
and bl,2 ;bl=bl and 00000010b = (x x x x ПВ3 ПВ2 ПВ1 А) and
;00000010b = (0 0 0 0 0 0 ПВ1 0)b
shr bl,1 ;bl = (0 0 0 0 0 0 0 ПВ1)b = ПВ1
mov bh,al
and bh,4 ;bh = (0 0 0 0 0 ПВ2 0 0)b
mov cl,2
shr bh,cl ;bh = (0 0 0 0 0 0 0 ПВ2)b = ПВ2
mov ch,al
and ch,8
mov cl,3
shr ch,cl ;ch = (0 0 0 0 0 0 0 ПВ3)b = ПВ3
;Вычисление сигнала БВ
mov al,ah ;al = ah = A
mov dl,bh ;dl = bh = ПВ2
xor dl,1 ;dl = ПВ2
and al,dl ;al = A×ПВ2
mov dh,ch ;dh = ch = ПВ3
xor dh,1 ;dh = ПВ3
and al,dh ;al = A×ПВ2×ПВ3
and al,bl ;al = A×ПВ2×ПВ3×ПВ1 = БВ
;Вычисление сигнала РП
mov ah,bh ;ah = bh = ПВ2
and ah,dh ;ah = ПВ2×ПВ3
mov dh,bl ;dh = bl = ПВ1
xor dh,1 ;dh = ПВ1
and ah,dh ;ah = ПВ2×ПВ3×ПВ1 = РП
shl ah,1 ;ah = (0 0 0 0 0 0 РП 0)b
or al,ah ;al = (0 0 0 0 0 0 0 БВ)b or (0 0 0 0 0 0 РП 0)b =
; = (0 0 0 0 0 0 РП БВ)b
;Вычисление сигнала БН
and dl,ch ;dl = ПВ2×ПВ3
and dl,dh ;dl = ПВ2×ПВ3×ПВ1 = БН
shl dl,1
shl dl,1 ;dl = (0 0 0 0 0 БН 0 0)b
or al,dl ;al = (0 0 0 0 0 0 РП БВ)b or (0 0 0 0 0 БН 0 0)b =
; = (0 0 0 0 0 БН РП БВ)b
out 0ffh,al ;запись вычисленных значений в порт 255
jmp cikl ;переход в самое начало.
Дата добавления: 2020-10-01; просмотров: 389;