Разделы:
Best links:
Программируемый контроллер прерываний
Режим cпециального маскирования. Применяется для того, чтобы программы обслуживания прерываний могли динамически изменять структуру системных приоритетов в процессе работы. Например, при выполнении какой-либо части подпрограммы обслуживания необходимо запретить запросы более низких уровней, а при выполнении другой части - разрешить их. Трудность реализации таких действий состоит в том, что пока выполняется подпрограмма и соответствующий разряд в регистре РОП не сброшен, контроллер не реагирует на запросы с более низким приоритетом. Для разрешения прерываний со всех уровней (в том числе и с более низких) устанавливается режим специального маскирования (затенения), при котором запрещается только прерывание на данном уровне. Этот режим задается и отменяется командой OCW3.
|
|
Рис. 4.2. Схема каскадирования ПКП
Режим опроса (поллинга). Применяется для организации обслуживания запросов прерываний по инициативе программы, выполняемой МП. При этом прерывания ЦП запрещаются путем сброса флага IF и используется команда POLL, которая задается с помощью OCW3. Тогда контроллер воспринимает следующий импульс по входу RD как подтверждение прерывания и выдает на ШД следующий байт: D7 = 1 - устанавливается .в «1», если на вход данного контроллера поступил запрос; D2- D0 - задают двоичный код входа высшего уровня среди тех, по которым поступили запросы. С помощью команды POLL последовательно опрашиваются все контроллеры прерываний в системе, что позволяет легко наращивать число уровней приоритетов сверх 64. В этом режиме таблица адресов подпрограмм обслуживания не используется, и он полезен в тех случаях, когда одна подпрограмма применяется для обслуживания нескольких уровней прерываний.
Каскадирование контроллеров прерываний. Контроллеры прерываний имеют встроенные средства для их каскадирования с целью увеличения числа уровней прерываний. На рис. 4.2 показана схема каскадирования, содержащая три контроллера, в которой контроллер ПКП0 является ведущим, а остальные два - ведомыми. Включение контроллера в качестве ведущего или ведомого определяется соответствующим подключением вывода SP/EN к источнику питания в первом случае и к общей шине - во втором. Шины каскадирования CAS0–CAS2 всех контроллеров соединяются параллельно, причем выводы CAS0-CAS2 ведущего контроллера работают как выходы, а у ведомых контроллеров - как входы. Когда активизируется вход запроса ведомого контроллера, ведущий контроллер разрешает ведомому выдать номер соответствующего уровня прерывания по второму импульсу INTA.
предыдущаяследующая© Copyright, 2009.
Для связи: info@dgs-srl.com.