Система ввода-вывода и служба реального времени ВЕ48
Архитектура ВЕ48 содержит 27 резидентных линий ВВ (рис. 4.5), организованных в три 8-разрядных порта BUS, P1, P2 и три тестируемые командами условного перехода независимые линии Т0, T1, INT. Порты Р1 и Р2 имеют одинаковую структурную схему (рис. 4.6) и могут быть запрограммированы либо на ввод, либо на вывод данных. Выходные буфера портов имеют встроенные регистры, которые запоминают выводимые данные. При вводе данных информация поступает непосредственно в аккумулятор, минуя выходной буферный регистр, который должен находиться в состоянии 0FFH. В противном случае выполняется операция маскирования вводимых данных по схеме «монтажное ИЛИ» с содержимым выходного регистра. Это позволяет одни линии портов использовать для ввода, а другие—для вывода. Порт BUS отличается от Р1 и Р2 тем, что в нем применяется выходной буфер с тремя состояниями. Поэтому он не допускает одновременного смешивания ввода и вывода между своими разрядами.
Рис. 4.5. Пространство ВВ ВЕ48: а—тестируемые флажки; б—внутренние порты ВВ; в—внешние порты ВВ | Рис. 4.6. Схема портов Р1, Р2 |
Расширенное пространство ВВ содержит еще четыре 4-разрядных порта Р4—Р7, реализуемые внешними средствами. В системе команд предусмотрен ряд операций с прямым доступом к этим портам. Для осуществления этой возможности разработан специальный расширитель ВВ—микросхема 8243.
Архитектура ВЕ48 включает достаточно простые, но эффективные средства реального времени, среди которых 8-разрядный таймер/счетчик Т и одноуровневая система прерываний с двумя источниками запросов: внешними INT и внутренними TF.
Организация 8-разрядного таймера/счетчика ВЕ48 представлена на рис. 4.7. Специальная команда пересылки
MOV A, T ;AT
MOV T, A ;TA
обеспечивает программный доступ к его содержимому.
Рис. 4.7. Организация таймера/счетчика ВЕ48
Устройство работает в двух режимах: таймера и счетчика, в которые оно переводится по командам
START T ;Пуск в режиме таймера
START CNT ;Пуск в режиме счетчика
Устройство останавливает свою работу при подаче сигнала аппаратного сброса RESET или выполнении команды
STOP TCNT ;Останов таймера/счетчика
По команде START mode таймер/счетчик ведет непрерывный счет импульсов на своем входе по mod28. При переходе через границу инициируется запрос на прерывание и устанавливается флажок переполнения TF, который может быть проверен командой условного перехода
JTF addr8 ;Если TF = 1, тогда
;PC0—7addr8, TF0
При выполнении команды перехода или при начальной установке по сигналу RESET флажок TF сбрасывается.
В режиме счетчика организуется подсчет числа переходов из 1 в 0 на внешнем входе Т1. Максимальная скорость приращения счетчика составляет единицу на три машинных цикла. При этом напряжение низкого уровня на входе Т1 должно удерживаться не менее одного, а высокого уровня не менее половины машинного цикла.
В режиме таймера устройство считает метки времени, генерируемые внутренними узлами МК. Эти метки являются результатом деления частоты следования машинных циклов ALE на 32. Во время выполнения команды START Т этот делитель устанавливается в 0.
Используя начальную загрузку Т и обнаруживая установку флажка TF, можно получить паузы от (1/32)ALE до 256(1/32)ALE. Организация пауз вне данного диапазона осуществляется с помощью программных циклов. Более короткие паузы можно также получить в режиме счетчика с Т1, равным (1/3)ALE.
Встроенная в ВЕ48 одноуровневая система прерываний с двумя источниками запросов, имеющими фиксированные векторы прерываний и приоритеты, представлена на рис. 4.8. Одноуровневость системы означает, что никакие новые запросы не воспринимаются до тех пор, пока не будет обслужен текущий.
Рис. 4.8. Система прерываний ВЕ48
В системе определены два источника: вход INT (стартовый адрес программы обслуживания 003Н) и переполнение Т (адресом программы обслуживания служит 007Н). Каждый источник может быть замаскирован независимо от других специальными флажками ЕХ и ЕТ, управляемыми командами
EN I ;Разрешение внешнего прерывания INT
DIS I ;3апрет внешнего прерывания INT
EN TCNT ;Разрешение внутреннего прерывания от Т
DIS TCNT ;3апрет внутреннего прерывания от Т
Флажки также сбрасываются при подаче сигнала RESET. В случае одновременной фиксации двух запросов приоритет отдается внешнему.
Внешнее прерывание по входу INT воспринимается, когда на нем появляется напряжение низкого уровня. Линия INT контролируется во время ALE в последнем машинном цикле каждой команды. Результат тестирования запоминается во внутреннем триггере внешнего прерывания IX, установка которого инициирует формирование аппаратного эквивалента команды CALL 003Н. При выполнении данной команды текущее содержимое PC и флажки PSW запоминаются в стеке, обеспечивая возможность возврата в точку прерывания. Программа обслуживания прерывания должна завершаться командой RETR, восстанавливающей PC и PSW. В начале второго цикла команда RETR разрешает прием новых запросов на прерывание. К этому моменту сигнал запроса INT должен быть снят внешними средствами. Обычно это делается автоматически в момент обслуживания устройства, выставившего запрос. Если такая возможность не осуществляется, то любая выходная линия ВЕ48 может быть использована для выдачи специального сигнала подтверждения прерывания.
Сигнал переполнения от Т фиксируется в триггере запроса IT. Он может быть замаскирован программно-управляемым флажком ЕТ. При возникновении разрешенного прерывания генерируется аппаратная команда CALL 007H, сбрасывающая флажок IT. Сброс IT осуществляется автоматически при любом исполнении команды CALL 007H.
Частота выходного сигнала генератора OSC делится на 3 (рис. 4.9) для получения основной тактовой частоты CLK, которая может быть выведена на внешний вывод Т0 по команде
ENT0 CLK ;Разрешение вывода CLK на Т0
Рис. 4.9. Система синхронизации ВЕ48
Режим вывода отменяется только при общем сбросе МК.
Дата добавления: 2019-02-07; просмотров: 374;