Архитектура БИС программируемого контроллера прерываний КР580ВН59

 

БИС программируемого контроллера прерываний (ПКП) представляет собой устройство, реализующее до восьми уровней запросов на прерывание с возможностями программного маскирования и изменения дисциплины обслуживания прерываний (рис. 3.9). За счет каскадного включения БИС КР580ВН59 число уровней прерывания может быть расширено до 64.

Упрощенная структурная схема ПКП приведена на рис. 3.9, а. В состав БИС входят: двунаправленный 8-разрядный буфер данных (BD), предназначенный для сопряжения ПКП с системной информационной шиной; блок управления записью-чтением: (RWCIJ), принимающий управляющие сигналы от МП и задающий режим функционирования ПКП; схема каскадного буфера-компаратора (СМР), используемая для включения в систему нескольких ПКП; схема управления (СU), вырабатывающая сигнал прерывания и формирующая трехбайтную команду CALL для выдачи на шину данных; регистр запросов прерываний (RGI), используемый для хранения всех уровней прерываний, на которые поступают запросы; схема принятия решений по приоритетам (PRB), идентифицирующая приоритеты запросов и выбирающая запрос с наивысшим приоритетом; регистр обслуживаемых прерываний (ISR), сохраняющий уровни запросов прерываний, находящихся на обслуживании ПКП; регистр маскирования прерываний (RGM), обеспечивающий запрещение одной или не

 
 

скольким линиям запросов прерывания.

Рис. 3.9

 

Назначения входных, выходных и управляющих сигналов ПКП приведены при описании выводов микросхемы в табл. 3.12.

Сопряжение БИС КР580ВН59 со стандартной системой шин показано на рис. 3.9, б.

ПКП позволяет реализовать процесс прерывания по запросам от внешних устройств или по опросу микропроцессором запросов на обслуживание внешних устройств.

При обслуживании прерываний по запросу от внешних устройств выполняются операции в определенной последовательности: запросы прерываний поступают на входы IRO - IR7 и устанавливают соответствующие разряды RGI; ПКП принимает запросы, оценивает их приоритеты и формирует сигнал прерывания INT'; МП принимает сигнал INT, если прерывания разрешены, и подтверждает прием выдачей сигнала INТА; после получения сигнала INTA ПКП устанавливает разряд регистра ISR, соответствующий запросу с наивысшим приоритетом, сбрасывает соответствующий разряд и устанавливает на шину данных D(7-0) код команды CALL; МП устанавливает еще два сигнала INTA, которые позволяют ПКП передать на шину данных 16-разрядный адрес подпрограммы обслуживания прерывания, причем младший байт адреса передается по первому сигналу INTA, а старший - по второму.

При обслуживании прерываний по опросу микропроцессор производит считывание кода номера запроса с высшим уровнем приоритета по сигналу RD. Прием запросов, маскирование и анализ приоритета выполняются так же, как и при обслуживании прерываний по запросу.

Для увеличения числа уровней прерывания ПКП могут быть объединены в систему, состоящую из ведущего ПКП и нескольких ведомых ПКП (рис. 3.9, в). При обслуживании запроса, поступившего на вход ведомого ПКП, ведущий ПКП по сигналу INTA выдает на шину данных код команды CALL, а на шины СAS0 - CAS1 - код номера ведомого ПКП. С приходом второго и третьего сигналов INTA адрес подпрограммы обслуживания на шину данных выдает выбранный по коду на шинах CASO - CAS2 ведомый ПКП.

Установка ПКП в исходное состояние и настройка его на определенный режим обслуживания прерываний программируется двумя типами команд: командами инициализации (ICW) и командами управления операциями (OCW). Для инициализации в ПКП последовательно вводятся команды ICWI и ICW2. В микропроцессорной системе, состоящей из нескольких ПКП, для каждого из них после двух первых команд инициализации вводится команда ICW3, задающая режим взаимодействия контроллеров. Форматы команд инициализации приведены на рис. 3.10.

 

 
 

Рис. 3.10

 

 

Команда ICWI (рис. 3.10, а) сбрасывает регистры RGI, RGM и присваивает низший приоритет входу IR7. Разряд S этой команды определяет наличие одного или нескольких ПКП в системе, а разряд F (формат) - адресный интервал в 4 или 8 байт между начальными адресами подпрограмм обслуживания прерываний. Разряды А7- А5 команды ICWI используются для формирования младшего байта адресов подпрограмм обслуживания прерываний (табл. 3.13). Команда ICW2 (рис. 3.8, б) представляет собой старший байт адреса подпрограмм обслуживания прерываний, выдаваемый ПКП на шину данных в качестве третьего байта команды CALL. В команде ICW3 для ведущего ПКП (рис. 3.10, в) наличие 1 в одном из разрядов указывает на подключение к соответствующему входу запроса прерывания выхода INT ведомого ПКП. В команде ICW3 для ведомого ПКП (рис. 3.10, г) устанавливают код его номера в системе.

 

Таблица 3.13. Младший байт адресов команды CALL

 

Вход запроса Адресный интервал 4 байт Адресный интервал 8 байт
D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0
IR7 À7 А6 À5 À7 А6
IR6 À7 А6 À5 À7 А6
IR5 À7 А6 À5 À7 А6
IR4 À7 А6 À5 À7 А6
IR3 À7 А6 À5 À7 A6
IR2 À7 А6 À5 À7 А6
IRI À7 А6 À5 À7 А6
IRO А7 А6 À5 À7 А6

 


Команды инициализации загружаются в ПКП из микропроцессора с учетом определенного значения младшего разряда адреса АО (рис. 3.10). После записи команд инициализации ПКП подготовлен к приему запросов прерывания и может работать в режиме с фиксированными приоритетами запросов. В этом режиме запросы упорядочены по приоритетам: вход IRO имеет высший приоритет, a IR7 - низший. Для задания других режимов функционирования ПКП необходимо использовать команды OCW, которые загружаются после команд инициализации в любой текущий момент времени (рис. 3.11).

 

Рис. 3.11

 

Команда управления операциями OCWI (рис. 3.11, а) устанавливает или сбрасывает разряды регистра RGM. Установка некоторого разряда регистра маскирования приводит к запрету прерывания по соответствующему входу.

Команда управления - операциями OCW2 (рис. 3.11, б) сбрасывает разряд регистра ISR и циклический сдвиг приоритета запроса. Возможные варианты команды OCW2 и выполняемые ею функции показаны в табл. 3.14. Если обслуживание запроса прерывания необходимо закончить сбросом разряда регистра ISR с высшим приоритетом, то используют команду OCW2 со значениями Е01=1 и SEOI=0. При Е01=1 и SEOl == 1 предназначенный для сброса уровень обслуживаемого прерывания указывается в команде разрядами D2 (L2) - DO (LO). Циклический сдвиг приоритетов задается в команде OCW2 разрядом D7(R). В циклическом режиме используется круговой порядок назначения приоритетов. Последнему запросу присваивается низший приоритет, следующему по кругу - высший. Приоритеты остальных запросов циклически смещаются по шкале приоритетов. При R=1 и SEOI=0 команда OCW2 присваивает низший приоритет запросу с высшим приоритетом, а при R = 1 и SEOI = 1 низший приоритет присваивается запросу, номер которого указывается разрядами D2(L2) - DO(L0). Команда OCW2 обычно записывается в ПКП в конце подпрограммы обслуживания прерывания перед командой возврата RET.

 

Таблица 3.14. Варианты команды OCW2

Разряд команды     Выполняемая функция
D7 (R) D6 (SEOI) DS (Е0I) D4 D3 D2 DI DO
Х Х Х Фиксированный приоритет
Х Х Х Циклический сдвиг приоритета – присвоение обслуженному запросу низшего приоритета
L2 LI LO Фиксированный приоритет, L2-LO- номер сбрасываемого разряда регистра ISR
L2 LI LO Циклический сдвиг приоритета; L2 - LO - номер сбрасываемого разряда регистра ISR (присвоение ему низшего приоритета)
L2 LI LO Циклический сдвиг приоритета без завершения прерывания; L2-LO-номер входа IR с низшим приоритетом
Примечание: X-произвольное состояние разряда (X Î [0; 1])

 

Команда управления операциями OCW3 (рис. 3.14, в) позволяет задать режим специального маскирования (разряды D6, D5), режим опроса (разряд 1) и произвести считывание состояния ПКП (разряды D1, D0).

Режим специального маскирования дает возможность на некотором участке программы выборочно управлять запросами с различными приоритетами и разрешать прерывания выполняемой программы даже' от входов с меньшими приоритетами. Режим специального маскирования устанавливается командой OCW3 при ESMM=1 и SMM=1 .Этот режим действует до сброса по команде, в которой ESMM = 1 и SMM=0.

Режим опроса устанавливается по команде OCW3 при Р=1. В этом режиме ПКП принимает запросы и формирует слово-состояние опроса, содержащее номер запроса с наивысшим приоритетом (разряды D2 - DO слова-состояния). Обслуживается запрос по требованию программы, с помощью команды ввода IN (А0=0, RD=0), осуществляющей чтение слова-состояния, программное декодирование и переход к соответствующей подпрограмме обслуживания прерывания.

Считывание содержимого регистров RGI и ISR производится после загрузки в ПКП команды OCW3 с определенными значениями ERIS и RIS (рис. 3.11, в) с последующим выполнением команды ввода IN (АО = 1, RD=0). Содержимое регистра RGM считывается без предварительной загрузки OCW3 по команде IN (А0=1, RD=0).