Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

шпоргалка / 41-44

.doc
Скачиваний:
57
Добавлен:
21.02.2014
Размер:
1.53 Mб
Скачать

Программируемый контроллер прерываний

Программируемый контроллер прерываний (ПКП) КР580ВН59А представляет собой устройство, реализующее в МП-системе обработку запросов прерываний от внешних устройств, например от датчиков аварийных ситуаций или устройств ввода/вывода, использующих протокол обмена по прерыванию. БИС ПКП выполняет следующие функции: запоминает запросы прерывания, задаваемые передним фронтом; маскирует, т.е. запрещает выполнение избранных запросов; формирует вектор прерывания и выполняет действия по переходу на подпрограмму обработки запроса; формирует сигнал прерывания для МП; выполняет приоритетную обработку запросов прерывания.

БИС КР580ВН59А в зависимости оттого, как ее запрограммировать, может вырабатывать либо код команды 8-разрядного МП i8080 CALL ADRV, 1. ADRV - адрес подпрограммы обработки, либо выдавать на шину данных номер прерывания п для реализации команды intп 16-разрядного MП i8086.

Одна БИС ПКП обрабатывает восемь запросов прерывания, но при каскадном включении БИС число запросов прерывания может быть увеличено до 64.

Упрощенная структурная схема ПКП показана на рис. 5.55.

Рис. 5.55. Структурная схема ПКП

В состав программируемого контроллера прерываний входят: двунаправленный 8-разрядный буфер данных (BD), предназначенный для соединения ПКП с шиной данных МП; блок управления чтением/записью (RWCU), который принимает управляющие сигналы от МП и задает режим функционирования ПКП; схема каскадного буфера - компаратора (СМР), которая используется при включении в систему нескольких ПКП; схема управления (CU), формирующая сигналы прерывания и трехбайтную

команду call или вектор прерывания n; регистр запросов прерываний (RGI),предназначенный для хранения запросов прерываний; схема обработки по приоритетам (PRB), идентифицирующая приоритеты запросов и выбирающая запрос с наивысшим приоритетом; регистр обслуженных прерываний (ISR), сохраняющий уровни запросов прерываний, находящихся на обслуживании ПКП; регистр маскирования прерываний (RGM), обеспечивающий запрет одной или нескольких линий запросов прерывания.

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

Схема (рис. 5.55) работает следующим образом. Запросы прерываний от внешних устройств поступают на входы IRQ0-IRQ7 и запоминаются в регистре RGI. Далее сигналы поступают на схему обработки приоритетов PRB, разрешающую или не разрешающую дальнейшее прохождение запроса прерывания в зависимости от его приоритета и запрета маскированием. Любой запрос прерывания возможно запретить путем записи маски в регистр RGM. Разрешенные запросы поступают в регистр ISR и устанавливают соответствующие его разряды. Схема управления (CU) на основе содержимого регистра ISR формирует сигнал прерывания INT для МП. Микропроцессор принимает сигнал INT и, если прерывания разрешены, подтверждает прием выдачей сигнала INTA. После получения сигнала INTA ПКП выдает на шину D7-D0 код команды call или вектор прерывания n. В первом случае МП выдает еще два сигнала INTA, которые позволяют ПКП передать на ШД 16-разрядный адрес подпрограммы обслуживания прерывания, причем младший байт адреса передается по первому сигналу INTA, а старший - по второму. Во втором случае МП выдает еще один сигнал INTA, по которому МП считывает с ШД значение вектора прерывания n.

Таблица 5.16. Описание выводов ПКП

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

Рис. 5.56. Соединение БИС КР580ВН59 с системной шиной МП

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

Для увеличения количества уровней прерывания ПКП могут быть объединены в систему, состоящую из одного ведущего и нескольких ведомых ПКП (рис. 5.57).

При обслуживании запроса, который поступил на вход ведомого ПКП, ведущий ПКП по сигналу INTA выдает на шину данных код команды call, a на шину CAS0-CAS2 - код номера ведомого ПКП. При поступлении второго и третьего сигналов INTA ведомый ПКП, выбранный по коду CAS0 - CAS2, выдает на шину данных адрес подпрограммы обслуживания (сначала младший, а затем старший байты). В случае использования ПКП в МПС с i8086 ведомый ПКП по второму сигналу INTA выдает на шину данных значение номера прерывание n.

Рис. 5.57. Каскадное соединение ПКП

Программирование ПКП состоит в записи в него в определенном порядке от 2 до 4 управляющих слов инициализации (ICW). Далее в любом порядке можно записывать управляющие операционные слова (OCW) в зависимости от необходимых функций ПКП.

Управляющее слово ICW1 (рис. 5.58. а) сбрасывает регистры RGI. RGM и присваивает низший приоритет запросу IRQ7. Единичное значение разряда AD (D0) указывает на необходимость использования дополнительного управляющего слова инициализации ICW4. Разряд S определяет наличие одного или нескольких ПКП в системе. Остальные разряды могут принимать любые значения в МПС с i8086. В МПС с i8080 разряд F (формат) определяет адресный интервал 4 или 8 байт между начальными адресами подпрограмм обслуживания прерывании. Разряды А7-А5 управляющего слова ICW1 используются для формирования младшего байта адресов подпрограмм обслуживания прерываний соответственно табл. 5.17.

Управляющее слово ICW2 имеет разный вид для МП i8080 и i8086. В первом случае (рис. 5.59, а) оно представляет собой старший байт адреса подпрограммы обслуживания прерываний, выдаваемый ПКП на шину данных как третий байт команды call. Во втором случае (рис. 5.59, 6) разряды D7-D3 определяют старшие биты номера прерывания для каждого входа IRQ. Младшие три бита определяются номером входа IRQ, на который поступил запрос прерывания.

Рис. 5.58. Формат управляющего слова инициализации ICW1

а б

Рис. 5.59. Форматы управляющих слов инициализации ICW2: а - для МПС с i8080; б -с i8086

В микропроцессорной системе, включающей несколько ПКП, для каждого из них после двух первых управляющих слов инициализации вводится слово ICW3, задающее режим взаимодействия контроллеров. В управляющем слове ICW3 для ведущего ПКП (рис. 5.60, а) наличие логической единицы в одном из разрядов указывает на подсоединение к соответствующему входу запроса прерывания выхода INT ведомого ПКП. В управляющем слове ICW3 для ведомого ПКП (рис. 5.60, б) задается код его номера в системе.

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

а б

Рис. 5.60. Форматы управляющих слов инициализации ICW3: а - для ведущего ПКП; б -для ведомого ПКП

Формат управляющего слова инициализации IWC4 приведен на рис. 5.61.

На рис. 5.58-5.61 слева приведены значения линии А0, при которых надо загружать управляющие слова.

Рис. 5.61. Формат управляющего слова инициализации ICW4

Нулевое значение разряда Р (D4) (рис. 5.61) определяет простой приоритетный режим с фиксированными приоритетами, единичное - с циклическими приоритетами. Разряд D3 управляет состоянием линии SP/EN. Разряд M/S (D2) равняется единице для ведущего ПКП и нулю для ведомых. Разряд D1 задает автоматическое (0) или специальное окончание прерывания, а разряд D0 равняется единице в системе с МП i8086 и нулю в системе с МП i8080.

После записи управляющих слов инициализации ПКП подготовлен к приему запросов прерывания и может работать в режиме с фиксированными приоритетами запросов. В этом режиме запросы упорядочены по приоритетам: вход IRQ0 имеет высший приоритет, a IRQ7 - низший. Этот режим еще называют режимом полного вложения подпрограмм обработки прерываний. Если запросы прерываний поступят в ПКП одновременно, то будет обслуживаться тот запрос, который имеет больший приоритет. Если во время обработки одного запроса поступил второй с более высоким приоритетом, то МП прерывает обработку текущего запроса и вызывает подпрограмму обработки нового запроса. По окончании его обработки МП продолжает прерванную подпрограмму обработки. Запросы с низшими приоритетами не прерывают подпрограммы обработки запросов с высшими.

Для решения задач в других режимах функционирования ПКП необходимо использовать операционные слова OCW (рис. 5.62), которые загружаются после слов инициализации в любой текущий момент времени выполнение программы.

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

Операционное слово OCW2 (рис. 5.62, б) осуществляет сброс разряда регистра ISR и циклический сдвиг приоритетов запросов. Возможные варианты слова OCW2 и его функции показаны в табл. 5.18.

а

б

в

Рис. 5.62. Форматы операционных управляющих слов: а - OCW1; б -OCW2; в - OCW3

Таблица 5.18. Варианты слова OCW2

Если обслуживание запроса прерывания необходимо закончить сбросом разряда регистра ISR с высшим приоритетом, то используется слово OCW2 со значениями EOI=1 и SEOI=1. При EOI=1 и SEOI=1 предназначенный для сброса уровень прерывания указывается в команде разрядами D2(L2)-D0(L0). Циклический сдвиг приоритетов задается в команде OCW2 разрядом D7(R).

В циклическом режиме используется круговой порядок назначения приоритетов. Последнему обслуженному запросу присваивается низший приоритет, следующему за ним - высший. Приоритеты других запросов циклически смещаются по шкале приоритетов. При R=1 и SEOI=0 команда OCW2 присваивает низший приоритет запросу с высшим приоритетом, а при R=1 и SEOI=1 низший приоритет присваивается запросу, номер которого указывается разрядами D2(L2)-D0(L0). Слово OCW2, как правило, записывается в ПКП в конце подпрограммы обслуживания прерываний перед командой возврата из подпрограммы ret.

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

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

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

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

Для того чтобы запретить прерывание, нужно записать единицу в соответствующий разряд регистра маски (рис. 5.62, а).

Для того чтобы разрешить прерывание, нужно записать ноль в соответствующий разряд регистра маски (рис. 5.62, а).

6

Соседние файлы в папке шпоргалка