Разделы:


Best links:

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

Режим cпециального маскирования. Применяется для того, чтобы программы обслуживания прерываний могли динамически изменять структуру системных приоритетов в процессе работы. Например, при выполнении какой-либо части подпрограммы обслуживания необходимо запретить запросы более низких уровней, а при выполнении другой части - разрешить их. Трудность реализации таких действий состоит в том, что пока выполняется подпрограмма и соответствующий разряд в регистре РОП не сброшен, контроллер не реагирует на запросы с более низким приоритетом. Для разрешения прерываний со всех уровней (в том числе и с более низких) устанавливается режим специального маскирования (затенения), при котором запрещается только прерывание на данном уровне. Этот режим задается и отменяется командой OCW3.

ImageImageImage

Image
 

Рис. 4.2. Схема каскадирования ПКП

Режим опроса (поллинга). Применяется для организации обслуживания запросов прерываний по инициативе программы, выполняемой МП. При этом прерывания ЦП запрещаются путем сброса флага IF и используется команда POLL, которая задается с помощью OCW3. Тогда контроллер воспринимает следующий импульс по входу RD как подтверждение прерывания и выдает на ШД следующий байт: D7 = 1 - устанавливается .в «1», если на вход данного контроллера поступил запрос; D2- D0 - задают двоичный код входа высшего уровня среди тех, по которым поступили запросы. С помощью команды POLL последовательно опрашиваются все контроллеры прерываний в системе, что позволяет легко наращивать число уровней приоритетов сверх 64. В этом режиме таблица адресов подпрограмм обслуживания не используется, и он полезен в тех случаях, когда одна подпрограмма применяется для обслуживания нескольких уровней прерываний.

Каскадирование контроллеров прерываний. Контроллеры прерываний имеют встроенные средства для их каскадирования с целью увеличения числа уровней прерываний. На рис. 4.2 показана схема каскадирования, содержащая три контроллера, в которой контроллер ПКП0 является ведущим, а остальные два - ведомыми. Включение контроллера в качестве ведущего или ведомого определяется соответствующим подключением вывода SP/EN к источнику питания в первом случае и к общей шине - во втором. Шины каскадирования CAS0–CAS2 всех контроллеров соединяются параллельно, причем выводы CAS0-CAS2 ведущего контроллера работают как выходы, а у ведомых контроллеров - как входы. Когда активизируется вход запроса ведомого контроллера, ведущий контроллер разрешает ведомому выдать номер соответствующего уровня прерывания по второму импульсу INTA.

предыдущаяследующая