Программируемый контроллер прерываний (ПКП) КР580ВН59
Программируемый контроллер прерываний КР580ВН59 используется для организации в микроЭВМ многоуровневой векторной системы прерываний. Система прерываний позволяет реализовать обмен информацией между ЭВМ и внешним устройством по инициативе внешнего устройства. Одна БИСКР580ВН59 обеспечивает прием и обработку восьми сигналов прерываний. Возможно совместное использование до девяти БИС, т. е. увеличение числа сигналов прерываний до 64.
Рисунок 4.6 Структура программируемого контролера прерываний
Рассмотрим обозначения на схеме:
ВD — буфер данных.
RWCU — устройство управления записью чтения.
СМР — схема каскадного буфера компаратора, предназначена для организации работы нескольких ПКП в каскадном режиме.
CU — схема управления.
RGI — регистр запроса прерывания. В нем хранятся логические уровни запросов от внешних устройств.
PRB — схема принятия решения по приоритетам. Различные устройства могут иметь разные приоритеты в обслуживании прерывания. При одновременном запросе прерывания двумя внешними устройствами выполняется та процедура прерывания, приоритет которой наибольший.
ISR — регистр обслуживаемых прерываний. Сохраняет уровни запросов прерываний, обслуживаемых микропроцессором.
RGM — регистр маскирования прерываний. Предназначен для отделения тех прерываний, запросы по которым могут быть обслужены, т.е. ПКП может выборочно реагировать и запрещать прерывание от некоторых устройств.
D7-0 — входы-выходы данных.
RD — вход строба чтения.
WR - вход строба записи.
A0 — вход нулевого разряда шины адреса. Предназначен для выбора внутренних регистров ПКП. ПКП занимает 2 адреса в памяти:
1. базовый адрес +А0=1 (021);
2. базовый адрес +А0=0 (020).
CS — выборка кристалла. Подача логического 0 на вход CS говорит ПКП о том, что он выбран микропроцессором для обмена данными (ПКП переходит в активный режим работы).
CAS0...CAS2 — входы-выходы каскадирования.
SP — признак подчинения. Если на SP подать 1, то ПКП рассматривает себя как ведущий, а если SP=0, то ПКП — ведомый.
INT A — сигнал — подтверждение прерывания (указывает на то, что микропроцессор разрешил процедуру обработки прерывания и ждет команду CALL от ПКП).
INT — сигнал прерывания. Выдается ПКП для запроса прерывания от микропроцессора.
IR0...IR7 — входы запросов прерываний.
Режимы работы ПКП.
Связь БИС с системным интерфейсом микроЭВМ осуществляется через двунаправленный буфер шины данных по линиям D7...D0 с использованием управляющих сигналов RD, WR, A0 и CS. Через буфер данных в процессор передаются содержимое регистра состояния БИС и команда CALL, вызывающая переключение процессора на выполнение подпрограммы обработки сигнала прерывания с наивысшим приоритетом. Процессор передает в БИС управляющие слова (команды), которые настраивают БИС на один из режимов работы.
Фиксированный приоритет (Вложенные прерывания). Каждому входу запроса прерывания IR7...IR0 присваивается фиксированный приоритет в порядке изменения номеров: IR0 - наивысший приоритет, IR7 - низший приоритет. Запрос прерывания с большим приоритетом прерывает обслуживание прерываний с меньшим приоритетом.
Циклический приоритет. Каждому входу запроса прерывания IR7...IR0 присваивается приоритет, как и в предыдущем случае, но после обслуживания какого-либо запроса прерывания приоритетность прерываний изменяются в циклическом порядке, так что последнему обслуженному входу присваивается низший приоритет.
Адресуемые приоритеты. Этот режим аналогичен режиму циклических приоритетов с той разницей, что вход, которому присваивается низший приоритет, задается программно.
Режим опроса. В этом режиме ПКП принимает запросы и формирует слово – состояние опроса, содержащее номер прерывания с наивысшим приоритетом. Обслуживание запроса осуществляется программой путем ввода в нее слова – состояния (в программе должна быть команда IN и A0=0). Далее слово – состояние декодируется в программе и она переходит к соответствующей программе, обслуживающей прерывание.
Для всех режимов прерывания идентификация сигналов прерывания, поступающих в процессор через БИСКР580ВН59, производится с помощью вектора прерывания - адреса начала подпрограммы обработки соответствующего сигнала прерывания. Старшие разряды (А15...А5) вектора прерывания, общие для всех входов IR7...IR0 котроллера, передаются в него приказом инициализации, а младшие разряды, индивидуальные для каждого входа, формируются непосредственно в контроллере. В ответ на сигнал запроса прерывания INT процессор выдает сигналы подтверждения INTA. Сигнал INTA заставляет контроллер выдавать на шину данных код операции команды CALL и затем в ответ на два дополнительных сигнала процессора INTA выдать два байта вектора прерывания. Процессор, получив от контроллера вектор прерывания, переключается на подпрограмму обработки прерывания.
Совместное использование нескольких БИС программируемого контроллера прерывания обеспечивается схемой каскадирования, с помощью которой можно объединить до 8 БИС. Выбор БИС, требующий обслуживание, осуществляется по линиям CAS2...CAS0, объединяющим все контроллеры, а сигнал SP используется для определения контроллера как ведущего или ведомого.
Рассмотрим схему подключения к микропроцессору, данная схема используется и в современных ЭВМ.
Рисунок 4.7. Схема подключения двух ПКП к микропроцессору с каскадированием. (DA — дешифратор адреса).
Управление работой ПКП осуществляется с помощью команд. Для ПКП предусмотрены 2 вида команд:
1. команды инициализации ICW
2. команды управления операциями OCW.
Команды инициализации выполняются 1 раз при загрузке микропроцессорной системы (включении питания).
ICW1
Риснок 4.8. Формат команды ICW1
Бит S определяет число ПКП в микропроцессорной системе. Если он равен 1, то в системе только 1 ПКП, а если он равен 0, то несколько ПКП.
Бит F устанавливает разность между начальными адресами всех процедур обработки прерываний. Если он равен 1, то разность 4 байта, а если 0 — то 8 байт.
А7...А5 — младшая часть адреса (базового адреса вектора прерывания).
2. ICW2
Рисунок 4.9. Формат команды ICW2
В ней содержится старший байт адреса процедур обработки прерывания.
Команды ICW3 различаются для ведущего и ведомого программного контроллера прерываний ПКП. Для ведущего ПКП она определяет, каким входом запроса прерываний подключен ведомый ПКП. Для ведущего ПКП:
Рисунок 4.10. Формат команды ICW3 для ведущего ПКП
Для ведомого ПКП команда ICW3 определяет код ведомого контроллера (номер входа запроса прерывания ведущего ПКП, к которому подключен ведомый ПКП).
Рисунок 4.11. Формат команды ICW3 для ведомого ПКП
После загрузки байтов инициализации ICW0..ICW3 ПКП подготовлен к приему запроса прерывания и может работать в режиме с фиксированным приоритетом запроса. IR0 имеет высший приоритет, а IR7 низший. При работе микропроцессорная система ПКП может принимать и обрабатывать команды управления операциями OCW1, OCW2, OCW3.
Команда OCW1 осуществляет установку или сброс разряда регистра маскирования прерывания RGM (определяет номера тех прерываний, на запросы от которых микропроцессорная система будет реагировать).
Рисунок 4.12. Формат команды OCW1
Команда управления операциями OCW2.
Рассмотрим формат команды и ее варианты. Данная команда предназначена для определения режима работы ПКП.
Рисунок 4.13. Формат команды OCW2
R | SEOI | EOI | L2 | L1 | L0 | Выполняемая функция | ||
X | X | X | Данная команда установит в ПКП фиксированный приоритет запроса | |||||
X | X | X | Устанавливает циклический приоритет запроса прерывания, т.е. присвоение обслуженному запросу наиболее низшего приоритета | |||||
L2 | L1 | L0 | Команда устанавливает фиксированный приоритет запроса и сбрасывает разряд L2 – L0 номер сбрасываемого запроса | |||||
L2 | L1 | L0 | Команда устанавливает циклический сдвиг приоритета L2 – L0. Номер сбрасываемого регистра ISR | |||||
L2 | L1 | L0 | Циклический сдвиг приоритета без завершения прерывания L2 – L0. Номер входа IR с низшим приоритетом |
Команда OCW3 позволяет задать режим специального маскирования, режим опроса и произвести считывание регистров RGI и ICR. Режим маскирования позволяет на некотором участке программы выборочно управлять запросами с различными приоритетами и разрешать прерывание даже на входах с меньшим приоритетом. Считывание регистра RGI и ISR осуществляется после загрузки управляющего слова OCW3 по команде IN A0=1.
Рассмотрим порядок работы ПКП при запросе прерывания от внешнего устройства.
1. На одной или нескольких линиях IR0 или IR7 формируется положительный фронт импульса.
2. Контроллер воспринимает запросы, учитывает их приоритеты и формирует сигнал INT (сигнал запроса прерывания).
3. Процессор завершает текущую команду и, если прерывания разрешены, выдает сигнал подтверждения прерывания.
4. Контроллер по шине данных вводит в процессор код операции CALL и маскирует прерывание по данному уровню и уровню с более низким приоритетом.
5. Процессор формирует еще два сигнала INT A, по которым в него вводится два байта адреса процедуры обработки прерывания.
6. Управление передается выбранной программе (ПОП). При этом в процессоре сбрасывается флаг разрешения прерывания.
7. Процедура обработки прерывания перед своим завершением по команде RET записывает слово OCW2 (для сброса ISR).
8. Процессор продолжает выполнять прерванную задачу.
Дата добавления: 2021-09-07; просмотров: 372;