Программируемый контроллер прерывания (ПКП) КР580ВН59

Команды ввода-вывода.

Специальные команды.

Команды работы со стеком.

Команды управления работой микропроцессора.

Группа команд работы со стеком, ввода-вывода и управления регистрами процессора;

Команда перезапуска.

Имеет формат RSTn.

При выполнении этой команды происходит прерывание работы микропроцессора и текущее состояние счетчика команд записывается в стек. Управление передается команде, адрес которой определяется как произведения числа n на 8.

Данная команда применяется при организации программных прерываний (как правило, по адресам n∙8 находятся подпрограммы вывода на экран, используемые многими подпрограммами).

 

 

 

HLT- останов процессора. Выполнение текущей программы приостанавливается до появления запроса прерывания от устройства ввода-вывода. Состояние регистров общего назначения и счетчик команд не изменяется;

DI- выключение системы прерывания;

El - включение системы прерываний;

NOP - отсутствие операции.Никаких действий по команде не производится и управление передается следующей команде.

Команды этой группы не изменяют значения битов условий.

 

Предназначены для выполнения следующих операций со стеком:

PUSH RP -запись содержимого регистровой пары в стек. Применяется для сохранения регистров при входе в подпрограмму.

POP RP - восстановление содержимого регистровой пары из стека, кроме регистровой пары SP.

XTHL- обмен содержимого регистровой пары НLс вершиной стека;

SPHL- запись содержимого регистровой пары НL в указатель стека (в регистре SP).

Состояние битов условий этими командами не изменяется, за исключением командыPOP PSW, которая изменяет все биты.

 

К ним относятся следующие команды:

СМА- инверсия содержимого аккумулятора, т. е. разряды, имеющие значение 1, принимают значение 0, и наоборот. Эта команда не изменяет значение битов условий;

CMC - инверсия битаCY флагового регистра;

STC - установка битаСY флагового регистра в единичное состояние.

 

 

Предназначены для обмена информацией с периферийными устройствами (контроллерами). К ним относятся:

IN port - прием данных из порта, определяемого адресом port;

OUT port - выдача содержимого аккумулятора в порт, указанный адресом port.

Port - восьмиразрядный адрес, следующий во втором байте команды.

Команды ввода-вывода не изменяют состояние битов условий.

 

Программируемый контроллер прерываний КР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 раз при загрузке микропроцессорной системы (включении питания).