Аппаратная реализация.


При проектировании контроллера возможно два подхода. Первый общепринят среди радиолюбителей: на основе входной и выходной информации интуитивно синтезируется устройство. При наличии опыта, полученное таким образом схемотехническое решение не нуждается в упрощении и прекрасно работает. Однако для начинающих конструкторов этот подход не годится. На основе метода, изложенного в [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; просмотров: 318;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.