Здавалка
Главная | Обратная связь

Контроллер прерываний 8259А.



Условное графическое обозначение.

Условное графическое обозначение контроллера прерываний 8259А (КР1810ВН59А) приведено на Рис. 6.3.

 
 

Рис. 6.3. Условное графическое обозначение контроллера прерываний 8259А (КР1810ВН59А).

Функциональное назначение выводов 8259А.

Функциональное назначение выводов 8259А указано в табл. 6.8.

 

Табл. 6.8. Функциональное назначение выводов 8259А

Обозначение вывода Тип вывода Функциональное назначение
D7, D6, D5, D4, D3, D2, D1, D0 Вход-выход   Двунаправленная шина данных  
INTA Вход ПОДТВЕРЖДЕНИЕ ПРЕРЫВАНИЯ. Этот сигнал разрешает контроллеру прерываний выдать вектор прерывания на шину данных. Активный уровень - низкий
IRQ7, IRQ6, IRQ5, IRQ4, IRQ3, IRQ2, IRQ1, IRQ0 Вход ЗАПРОС ПРЕРЫВАНИЯ. Асинхронные входы, активный уровень -высокий. Запрос прерывания может генерироваться при изменении входа IRQ (из низкого в высокий) и удержании его высоким (режим триггерного фронта) или при высоком уровне сигнала на входе IRQ (режим триггерного уровня)
SP/EN Вход-выход ПОДЧИНЕНИЕ ПРОГРАММЕ/РАЗРЕШЕНИЕ БУФЕРА. Это контакт с двойной функцией. Когда контроллер находится в буферном режиме, он используется как выход для передачи управления буферу (EN=0). В AT не используется, а применяется в качестве входа, определяющего контроллер как MASTER (SP=1) или как SLAVE (SP=0)
INTR Выход ПРЕРЫВАНИЕ. Этот выход активизируется всякий раз, когда есть действительный запрос на прерывание. Он используется для прерывания процессора и организации обработки возник­шего прерывания. Активный уро­вень - высокий
CAS2, CAS1, CAS0   Вход-выход   ШИНА КАСКАДИРОВАНИЯ. Служит в качестве локальной шины, связывающей контроллеры в кас­кадном режиме. Эти контакты являются выходами для MASTER и входами для SLAVE
CS# Вход ВЫБОР КОНТРОЛЛЕРА. Активный уровень - низкий. Разрешает связь между процес­сором и контроллером при активных IOW или IOR
WR Вход ЗАПИСЬ. Активный уровень -низкий. Этот сигнал при усло­вии низкого CS разрешает программирование контроллера
RD Вход ЧТЕНИЕ. Активный уровень -низкий. Этот сигнал совместно с низким CS разрешает считы­вание некоторых регистров контроллера
А0 Вход АДРЕС. Используется совместно с CS, WR или RD для записи/ считывания внутренних регистров контроллера

 

Блок-схема 8259А.

Контроллер 8259А состоит из восьми основных блоков: буфера шины данных, схемы чтения/записи, каскадного буфера-компаратора, схемы управления, схемы распознавания приоритета, регистра запросов прерываний (IRR), регистра обслуживаемых запросов (ISR) и регистра маски (IMR). Блок-схема 8259А представлена на рис. 6.14.

 

 
 

Рис. 6.14. Блок-схема контроллера 8259А

 

Буфер данных используется для связи контроллера с шиной данных процессора.

Схема чтения/записи управляет чтением/записью внутренних регистров контроллера. Здесь также находится управление инициализацией контроллера.

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

Схема управления формирует сигналы управления при подтверждении прерываний (по запросу и по опросу), а также участвует в формировании выходного сигнала INTR.

IRR - 8-разрядный регистр запросов прерываний. Запоминает все запросы, поступающие на входы IRQ. Когда прерывание подтверждается, соответствующий разряд IRR сбрасывается (IMR ни на сброс, ни на установку IRR не влияет).

ISR - 8-разрядный регистр обслуживаемых запросов. Устанавливается после подтверждения запроса микропроцессором. Сбрасывается обычно по окончании подпрограммы обслуживания прерывания (EOI) или автоматически (AEOI). Установленный разряд ISR блокирует обслуживание всех запросов, имеющих тот же или более низкий по сравнению с установленным разрядом приоритет. Устранить блокирующее влияние разрядов ISR можно либо путем их сброса (EOI), либо путем специального маскирования.

IMR - 8-разрядный регистр маски. Содержит маски, позволяющие заблокировать прохождение поступившего запроса в микропроцессор. IMRn=0 разрешает соответствующий запрос, IMRn=1 запрещает его.

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

 

Общие сведения.

Устройство ввода-вывода может запросить обслуживание путем подачи активного (высокого) сигнала на один из входов запроса (IRQ0-IRQ7) контроллера 8259А. Если 8259A удовлетворит запрос, его вывод INTR активизируется и соответствующий сигнал поступает на вход INTR микропроцессора. Вход INTR микропроцессора асинхронный, т. е. он может принять запрос на прерывание в любое время. Микропроцессор выдает два импульса подтверждения прерывания (INTA), которые сообщают 8259A о том, что микропроцессор воспринял его запрос на прерывание.

Первый импульс INTA используется 8259A для определения источника выдачи вектора прерывания. По второму импульсу INTA 8259A помещает на шину данных (X) байт вектора прерывания. Этот байт вектора прерывания не используется в качестве прямого адреса, а относится к одному из 256 типов прерываний.

В системе каждому прерыванию присваивается номер (тип) от 0 до 255 (00-FFh). Этот номер (точнее код) и выдает контроллер 8259А микропроцессору в качестве вектора. Микропроцессор

полученный код умножает на 4 (сдвигая влево на 2 разряда), формируя таким образом адрес памяти, по которому расположен начальный адрес сервисной программы (см. раздел "Система прерываний").

Содержимое байта вектора прерывания, помещаемого контроллером 8259А на шину данных по второму INTA, показано на рис. 6.15.

 
 

Рис. 6.15. Байт вектора прерывания

 

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

 

Программирование

Инициализация и установка режимов работы контроллера выполняется путем его программирования как устройства ввода-вывода с помощью команд байтного ввода-вывода OUT и IN микропроцессора.

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

Кoнтроллер может выполнять следующий набор операций:

- маскирование - индивидуальное маскирование запросов (OCW1), специальное маскирование обслуживаемых запросов (OCW3);

- установку статуса уровней приоритета по установке исходного состояния (ICW1), по обслуженному запросу (OCW2), по указанию (OCW2);

- окончание прерываний - обычное (OCW2), специальное (OCW2), автоматическое (ICW4);

- чтение регистра запросов (OCW3), регистра обслуженных запросов (OCW3), регистра маски (OCW1), результатов опроса (OCW3).

 
 

Рис. 6.16. Формат ICW1

 

Команды контроллера представляют собой байты констант с соответствующей выбранному режиму конфигурацией, которые записываются в регистр AL микропроцессора. Таким образом, при помощи команд OUT в 8259A передаются коды команд этого контроллера, а при помощи команд IN считывается состояние регистров контроллера после выполнения команд управления (см."Порты 8259A").

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.