Аппаратная реализация СУ.
Структура микропроцессорной системы, описанная в 1 и 2 частях данного руководства, изменений не претерпевает. Поэтому необходимо разработать лишь контроллер ВУ (см. рис. 2.1.). В соответствии с методикой, описанной в 4.3., потоки информации разбиваются на две группы: входные сигналы (А, ПВ1, ПВ2 и ПВ3 со сверлильного автомата и сигналы ШД, ША, IOR и IOW с микропроцессорной системы) и выходные сигналы (БВ, РП, и БН на ТО и сигналы на ШД).
I. Составляется таблица истинности (табл. 5.1.), при этом сразу отбрасываются не осуществимые комбинации входных сигналов (например, сигналы запроса на чтение и на запись IOW и IOR не могут быть активны одновременно). В данной таблице введены следующие обозначения: X – состояние сигнала может быть любым; Z – сигнал находится в 3-м состоянии (отключен); CS – сигнал с дешифратора адреса.
II. Из таблицы видно, что при сочетании входных сигналов в последнем столбце происходит передача управляющих сигналов на ТО. Тогда структурные формулы для этих сигналов следующие:
БВ = IOW×IOR×CS×D0 = З×D0
РП = IOW×IOR×CS×D1 = З×D1
БН = IOW×IOR×CS×D2 = З×D2,
где 3 = IOW×IOR×CS. Как уже было отмечено в I., когда сигнал IOW = 0, сигнал IOR = 1, а когда IOR = 0, IOW = 1. Очевидно, что выражение IOW×IOR = IOW. Таким образом 3 = IOW×CS = IOW+CS.
Таблица истинности контроллера сверлильного автомата. Табл. 3.6.
Входы IOW | |||||
IOR | |||||
ША (CS) | X (X) | не 0FFh (1) | не 0FFh (1) | 0FFh (0) | 0FFh (0) |
ШД | X | X | X | Z | D0, D1, D2 |
Выходы ШД | Z | Z | Z | D0 = А D1 = ПВ1 D2 = ПВ2 D3 = ПВ3 D4…D7 = X | Z |
БВ | D0 | ||||
РП | D1 | ||||
БН | D2 |
При сочетании входных сигналов в предпоследнем столбце таблицы, контроллер должен выставить на ШД состояние путевых выключателей. Это можно осуществить при помощи регистра, который соединяет сигналы А, ПВ1, ПВ2 и ПВ3 с соответствующими линиями ШД при наличии разрешающего сигнала Ч. При Ч = 0 выходы регистра должны перейти в Z-состояние:
Ч = IOW×IOR×CS = IOR×CS = IOR + CS.
III. Таким образом, получены следующие структурные формулы:
3 = IOW + CS
БВ = 3×D0
РП = 3×D1
БН = 3×D2
Ч = IOR + CS.
IV.
Контроллер (рис 5.1.) конструктивно состоит из трех частей: I – дешифратор адреса (когда адрес равен 0FFh, дешифратор выдает CS = 0, когда адрес не равен 0FFh, дешифратор выдает CS = 1); II – блок чтения и записи на ТО; III – преобразователь ШД (16 бит) в ШД’ (8 бит). Последний необходим, так как в таблице истинности подразумевалась 8-разрядная ШД, и в УП использовались 8-разрядные команды ВВ.
Упрощение СУ.
Разработанное схемотехническое решение совместно с УП является законченной полноценной СУ. Кроме того, разработанный контроллер автомата может как непосредственно припаиваться к соответствующим выводам микропроцессорной системы, так и вставляться в разъём расширения ЕISA любого IBM-совместимого компьютера. Если последнее не требуется (т.е. СУ разрабатывается как самостоятельное устройство), то контроллер и микропроцессорная система могут быть значительно упрощены:
1. В разработанной УП отсутствуют обращения к ячейкам памяти, следовательно из микропроцессорной системы можно удалить ОЗУ. По той же причине не нужны логические элементы формирующие сигнал записи MEMW в ОЗУ.
2. Не используются контроллер прерываний и контроллер ПДП – их тоже можно исключить.
3. Если данные (байты) посылать в порты только с чётными адресами (например 0FEh), то эти данные будут передаваться только по младшей части ШД (D7 – D0). Следовательно преобразователь III (рис. 5.1.) из контроллера может быть исключен. Подсоединение производится непосредственно к ШД.
4. УП обращается только к одному порту ВВ, значит необходимость в дешифрации адреса отпадает (блок I рис. 5.1.). В этом случае сигнал CS всегда равен нулю.
Упрощенная структурная схема контроллера представлена на рис. 5.2.
Так как аппаратное решение изменилось, необходимо изменить УП. Итак, новая программа, в которой, кроме выше сказанного, отражён другой подход к программированию:
cikl: ;Метка для зацикливания.
in al,0FEh ;Чтение из чётного порта (254).
;Теперь al = (x x x x ПВ3 ПВ2 ПВ1 А)b
;номера битов 7 6 5 4 3 2 1 0.
and al,00001111b ;Сбросить биты 4-7 регистра al.
mov ah,00000001b ;Поместить в ah комбинацию БВ=1, РП=0, БН=0.
cmp al,00000011b ;Сравнить с комбинацией ПВ3=0, ПВ2=0, ПВ1=1, А=1.
jz exit ;Если в регистре al проверяемая комбинация, перейти к
;метке exit. В этом случае после команды CMP флаг ZF=1.
and al,11111110b ;Сбросить бит 0, соответствующий сигналу А.
mov ah,00000010b ;Поместить в ah комбинацию БВ=0, РП=1, БН=0.
cmp al,00000100b ;Сравнить с комбинацией ПВ3=0, ПВ2=1, ПВ1=0.
jz exit ;Перейти к метке exit, если в al проверяемая комбинация.
mov ah,00000100b ;Поместить в ah комбинацию БВ=0, РП=0, БН=1.
cmp al,00001000b ;Сравнить с комбинацией ПВ3=1, ПВ2=0, ПВ1=0.
jz exit ;Перейти к метке exit, если в al проверяемая комбинация.
mov ah,00000000b ;Поместить в ah комбинацию БВ=0, РП=0, БН=0.
exit: ;Метка выхода после проверок.
mov al,ah ;Поместить в al комбинацию управляющих сигналов.
out 0FEh,al ;Записать управляющий сигнал в порт 0FEh
jmp cikl ;Повторить всё сначала.
Новая УП содержит лишь 16 команд, а делает то же, что и старая УП, состоящая из 36 команд.
Дата добавления: 2020-10-01; просмотров: 419;