Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПТ-5-ВН59.doc
Скачиваний:
2
Добавлен:
26.11.2019
Размер:
381.95 Кб
Скачать
    1. Инициализация контроллера прерываний

Для инициализации в ПКП загружаются управляющие слова ICW1, ICW2 и OCW1 (слово приказа OСW1 управляет регистром маски и является не обязательной). Управляющее слово ICW1 необходимо загрузить до поступления от внешних устройств запросов прерываний. Во время инициализации сбрасываются регистры РЗПР, РОЗПР, РМ и устанавливается режим с фиксированными приоритетами прерываний, т.е. входу IRQ7 автоматически присваивается низший приоритет, а входу IRQ0 – высший.

Управляющее слово ICW1 (см. рис. 3) устанавливает наличие в системе одного или несколько ПКП, интервал в 4 или 8 байт между стартовыми адресами подпрограмм обслуживания прерываний. Разряды А7-А5 используются программистом для формирования младшего байта адресов подпрограмм обслуживания прерываний в соответствии с табл. 1.

С каждым входом IRQ ассоциируется адрес памяти, который выдается на шину данных контроллером в ответ на сигналы INTA после кода операции CALL. Адреса для всех IRQ расположены равномерно через 4 или 8 байт. Биты А7-А5 адреса задаются в ICW1, а младшие А4-А0 формируются в контроллере (см. табл. 1). Младший байт адреса выдается контроллером на шину данных при поступлении второго сигнала INTA от МП.

Управляющее слово ICW2 (см. рис. 3) содержит старший байт адреса подпрограмм обработки прерываний (формируется программистом). Этот байт выдается контроллером на шину данных при поступлении третьего сигнала INTA от МП.

В системе с несколькими ПКП необходима команда ICW3, определяющая их взаимодействие.

После инициализации контроллер готов воспринимать запросы на входах IRQ0-IRQ7.

    1. Режим с фиксированными приоритетами прерываний

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

После загрузки слов инициализации ICW1 и ICW2, обработка отдельных прерываний может быть запрещена или разрешена записью слова приказа OCW1 в регистр маски ПКП.

Запросы на прерывание в виде положительного перепада поступают на вход РЗПР и запоминаются в нем. Контроллер вырабатывает сигнал INT для микропроцессора и при получении первого сигнала INTA выдает код команды CALL, на второй и третий сигналы INTA – выдает младший и старший байты адреса подпрограммы обработки прерывания. После получения второго сигнала INTA запрос с наивысшим приоритетом переписывается в РОЗПР, а соответствующий бит РЗПР сбрасывается.

Таким образом, регистр РЗПР служит для хранения всех поступивших запросов на прерывания, а регистр РОЗПР указывает на то, какой из запросов обслуживается в данное время.

Каждая подпрограмма обслуживания в режиме с фиксированными приоритетами прерываний должна заканчиваться загрузкой слова приказа

OCW2 «DB5=1» (cброс бита РОЗПР с максимальным приоритетом), иначе запросы с младшими приоритетами никогда не будут распознаваться контроллером.

Прерывание будет распознано правильно, только если входной сигнал запроса IRQ будет оставаться в «1» на протяжении двух сигналов INTA, соответствующих данному запросу.