Подключение контроллера прерываний.
Процессор 80286 имеет два входа прерываний: NMI - немаскируемое прерывание и
INTR - запрос прерывания. Сигнал на входе NMI заставляет процессор вызвать
процедуру прерывания для прерывания с номером 2. Сигнал INTR позволяет внешним
устройствам передать в процессор по шине данных однобайтный номер прерывания.
Благодаря этому процессор может обслуживать до 256 различных типов прерываний,
не требуя 256 входов запросов прерываний. Обычно на вход INTR подается выходной
сигнал программируемого контроллера прерываний 8259А, а не запросы прерывающих
устройств. Контроллер собирает запросы прерываний от множества устройств и
передает их по одному в процессор.
Он воспринимает запросы прерыва ний от внешних устройств (включая й другие
микросхемы 8259А), учитывает их приоритеты, а затем сигнализирует процессору по
входу INTR. Реагируя на сигнал, процессор заканчивает выполнение текущей
команды, а затем инициирует два цикла шины подтверждения прерывания INTA. Первый
цикл шины INTA информирует контроллер прерываний о том, что процессор распознал
запрос прерывания. Он также отводит время контроллеру для взаимодействия с
подключенными к нему другими контроллерами. В течение второго цикла шины INTA
контроллер выдает в процессор по шине 8-битный номер прерывания. После этого
процессор вызывает соответствующую процедуру обработки прерывания.
Подключения контроллера прерываний в системе показаны. Запросы прерываний
подаются в него по восьми входам IR0 - IR7 . Следовательно, один контроллер
может обработать до восьми видов прерываний (восьми различных номеров
прерываний).
При наличиии более восьми типов прерываний потребуется несколько
контроллеров. Контроллер 8259А требует два порта ввода-вывода, чтобы программы
могли считывать и устанавливать разнообразные режимы его работы, обращаться к
его внутренним регистрам и сообщать об окончании процедуры прерывания (см. гл.
5). Вход А0 определяет, какой из двух портов адресуется, а сигналы RD, WR, CS и
D действуют так же, как и в таймере.