Архитектура БИС программируемого контроллера прерываний КР580ВН59
БИС программируемого контроллера прерываний (ПКП) представляет собой устройство, реализующее до восьми уровней запросов на прерывание с возможностями программного маскирования и изменения дисциплины обслуживания прерываний. За счет каскадного включения БИС КР580ВН59 число уровней прерывания может быть расширено до 64 [8, 9].
Упрощенная структурная схема ПКП приведена на рис. 2.17,а.. В состав БИС входят: двунаправленный 8-разрядный буфер данных (BD), предназначенный для сопряжения ПКП с системной информационной шиной; блок управления записью чтением (RWCU), принимающий управляющие сигналы от МП и задающий режим функционирования ПКП: схема каскадного буфера-компаратора (CMP), используемая для включения в систему нескольких ПКП; схема управления (СU) вырабатывающая сигнал прерывания и формирующая трехбайтную команду CALL для выдачи на шину данных; регистр запросов прерываний (RGI), используемый для хранения всех уровней прерываний, на которые поступают запросы; схема принятия решений по приоритетам (PRB), идентифицирующая приоритеты запросов и выбирающая запрос с наивысшим приоритетом; регистр обслуживаемых прерываний (1SR). сохраняющий уровни запросов прерываний, находящихся на обслуживании ПКП; регистр маскирования прерываний (RGM). обеспечивающий запрещение одной или нескольких линий запросов прерывания
Сопряжение БИС КР580ВН59 со стандартной системой шиной показано на рис. 2.17.б.
ПКП позволяет реализовать процесс прерывания по запросам от внешних устройств или по опросу микропроцессором запросов на обслуживание внешних устройств.
рис. 2.17
При обслуживании прерываний по запросу от внешних устройств выполняется следующая последовательность операций: запросы прерываний поступают на входы IR0 — IR7 и устанавливают соответствующие разряды RGI; ПКП принимает запросы, оценивает их приоритеты и формирует сигнал прерывания INT; МП принимает сигнал INT. если прерывания разрешены, и подтверждает прием выдачей сигнала INTA; после получения сигнала INTА ПКП устанавливает разряд регистра ISR, соответствующий запросу с наивысшим приоритетом, сбрасывает соответствующий разряд и выдает на шину данных D(7 — 0) код команды CALL: МП выдает еще два сигнала INTА. которые позволяют ПКП передать на шину данных 16-разрядный адрес подпрограммы обслуживания прерывания, причем младший байт адреса передается по первому сигналу INTА. а старший — по второму.
При обслуживании прерываний по опросу микропроцессор производит считывание кода номера запроса с высшим уровнем приоритета, но сигналу RD. Прием запросов, маскирование и анализ приоритета выполняются так же, как и при обслуживании прерываний по запросу.
Для увеличения числа уровней прерывания ПКП могут быть объединены в систему, состоящую из ведущего ПКП и нескольких ведомых ПКП (рис. 2.17,в). При обслуживании запроса, поступившего на вход ведомого ПКП. ведущий ПКП по сигналу 1NTA выдает на шину данных код команды CALL, а на шины СAS0 — CAS2 — код номера ведомою ПКП. С приходом второго и третьего сигналов INTA адрес подпрограммы обслуживания па шину данных выдает выбранный по коду на шинах CASO — CAS2 ведомый ПКП.
Установка ПКП в исходное состояние и настройка его на определенный режим обслуживания прерываний программируется двумя типами команд: командами инициализации (ICW) и командами управления операциями (OCW). Для инициализации в ПКП последовательно вводятся команды ICW1 и ICW2. В микропроцессорной системе, состоящей из нескольких ПКП, для каждого из них после двух первых команд инициализации вводится команда ICW3. задающая режим взаимодействия контроллеров.
Рис. 2.18
Таблица 2.18. Младший байт адресов команды CALL
Вход запроса | Адресный интервал 4 байт | Адресный интервал 8 байт | ||||||||||||||
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
IR7 | А7 | А6 | А5 | A7 | A6 | |||||||||||
IR6 | А7 | А6 | А5 | A7 | A6 | |||||||||||
IR5 | А7 | А6 | А5 | A7 | A6 | |||||||||||
IR4 | А7 | А6 | А5 | A7 | A6 | |||||||||||
1R3 | А7 | А6 | А5 | A7 | A6 | |||||||||||
IR2 | А7 | А6 | А5 | A7 | A6 | |||||||||||
IR1 | А7 | А6 | А5 | A7 | A6 | |||||||||||
IRO | А7 | А6 | А5 | A7 | A6 |
Форматы команд инициализации приведены на рис. 2.18. Команда ICW1 (рис. 2.18,а) сбрасывает регистры RGI. RGM и присваивает низший приоритет входу IR7. Разряд S этой команды определяет наличие одного или нескольких ПКП в системе, а разряд F (формат) - адресный интервал в 4 или 8 байт между начальными адресами подпрограмм обслуживания прерываний. Разряды A7 - А5 команды ICW1 используются для формирования младшего байта адресов подпрограмм обслуживания прерываний в соответствии с табл. 2.18. Команда ICW2 (рис. 2.18.б) представляет собой старший байт адреса подпрограмм обслуживания прерываний, выдаваемый ПКП на шину данных в качестве третьего байта команды CALL. В команде ICW3 для ведущего ПКП (рис. 2.18, в) наличие 1 в одном из разрядов указывает на подключение к соответствующему входу запроса прерывания выхода INT ведомого ПКП. В команде ICW3 для ведомого ПКП (рис. 2.18,г) задается код его номера в системе.
Команды инициализации загружаются в ПКП из микропроцессора по команде OUТ с учетом определенного значения младшего разряда адреса AO (рис. 2.13). После записи команд инициализации ПКП подготовлен к приему запросов на прерывания и может работать в режиме с фиксированными приоритетами запросов. В этом режиме запросы упорядочены по приоритетам и вход IR0 имеет высший приоритет, a IR7 — низший. Для задания других режимов функционирования ПКП необходимо использовать команды OCW, которые загружаются после команд инициализации в любой текущий момент времени.
Команда управления операциями ОСW1 (рис. 2.19,а) осуществляет установку или сброс разрядов регистра RGM. Установка некоторого разряда регистра маскирования приводит к запрету прерывания по соответствующему входу.
Рис.2.19
Таблица 2.19. Варианты команды
Разряд команды | Выполняемая функция | |||||||
D7 (R) | D6 (SEOI) | D5 (EOI) | D4 | D3 | D2 | D1 | DO | |
X | X | X | Фиксированный приоритет | |||||
X | X | X | Циклический сдвиг приоритета — присвоение обслуженному запросу низшего приоритета | |||||
L2 | L1 | L0 | Фиксированный приоритет; L2 — L1 — номер сбрасываемого разряда регистра ISR | |||||
L2 | L1 | L0 | Циклический сдвиг приоритета; L2 – L1 — номер сбрасываемого разряда регистра ISR (присвоение ему низшего приоритета) | |||||
L2 | L1 | L0 | Циклический сдвиг приоритета без завершения прерывания: L2 — LO — номер входа IR с низшим приоритетом | |||||
Примечание: X - произвольное состояние разряда (Х ? [0;1]) |
Команда управления операциями OCW2 (рис. 2.19.б) осуществляет сброс разряда регистра ISR и циклический сдвиг приоритета запроса. Возможные варианты команды OCW2 и выполняемые ею функции показаны в табл. 2.19. Если обслуживание запроса прерывания необходимо закончить сбросом разряда регистра 1SR с высшим приоритетом, то используется команда OCW2 со значениями EOI = 1 и SEOI = 0. При EOI = 1 и SEOI=1 предназначенный для сброса уровень обслуживаемого прерывания указывается в команде разрядами D2(L2) — DO(L0). Циклический сдвиг приоритетов задается в команде ОСW'2 разрядом D7(R). В циклическом режиме используется круговой порядок назначения приоритетов. Последнему обслуженному запросу присваивается низший приоритет, следующему по кругу — высший. Приоритеты остальных запросов циклически смещаются по шкале приоритетов. При R = l и SEOI = 0 команда OCW2 присваивает низший приоритет запросу с высшим приоритетом, а при R = 1 и SEOI = 1 низший приоритет присваивается запросу, номер которого указывается разрядами D2(L2) - DO(L0). Команда OCW2 обычно записывается в ПКП в конце подпрограммы обслуживания прерывания перед командой возврата RET.
Команда управления операциями OCW3 (рис. 2.19,в) позволяет задать режим специального маскирования (разряды D6, D5), режим опроса (разряд D2) и произвести считывание состояния ПКП (разряды Dl, D0).
Режим специального маскирования дает возможность на некотором участке программы выборочно управлять запросами с различными приоритетами и разрешать прерывания выполняемой программы даже от входов с меньшими приоритетами. Режим специального маскирования задается командой OCW3 при ESMM = 1 и SMM = 1 и воздействует до сброса по команде с ESMM = 1 и SMM = 0.
Режим опроса устанавливается по команде OCW3 при Р = 1. В этом режиме ПКП принимает запросы и формирует слово-состояние опроса, содержащее номер запроса с наивысшим приоритетом (разряды D2 — D0 слова-состояния). Обслуживание запроса происходит по требованию программы, осуществляющей с помощью команды ввода IN (AO = 0, RD = 0) чтение слова-состояния, программное декодирование его и переход к соответствующей подпрограмме обслуживания прерывания.
Считывание содержимого регистров RGI и ISR производится после загрузки в ПКП команды OCW3 соответствующими значениями ERIS и RIS (рис. 2.19,в) с последующим выполнением команды ввода IN (A0 =1, RD = 0). Считывание содержимого регистра RGM производится без предварительной загрузки OCW3 по команде IN (A0=l, RD = 0).
Дата добавления: 2017-06-13; просмотров: 1658;