Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия Методичка-2010_Версия от 22.09.10.doc
Скачиваний:
62
Добавлен:
18.11.2018
Размер:
3 Мб
Скачать

2.2 Реализация подсистемы прерываний

Выполнение функций КП прерываний в МПС могут быть возложены на различные аппаратные средства, в частности - на схему, приведенную на рисунке 12. Первый триггер служит для предотвращения "дребезга" контакта кнопки SA2, второй – для выдачи запроса прерывания IRQ0…IRQ7, подаваемый на один из входов программируемого контроллера прерываний (ПКП), который в свою очередь формирует сигнал INT, поступающий на МП. После поступления от микропроцессора первого сигнала подтверждения запроса на прерывание INTA сигналы IRQ и INT сбрасывается. По второму сигналу INTA на шину данных МПС ПКП выдается номер n адреса-вектора прерывания, соответствующий варианту технического задания.

Рисунок 12 – Вариант реализации схемы обработки прерываний (вместо BF- КПП)

Система векторных прерываний может быть построена различными способами, однако в настоящее время наиболее часто она реализуется с помощью БИС ПКП I8259A . Микросхема выполнена по n-МОП технологии и размещается в 28-выводном корпусе с вертикальным расположением выводов. Она совместима с ТТЛ-схемами. Для работы БИС требуется единственный источник питания +5В.

На основе одного ПКП I8259A формируется 8-уровневая приоритетная система векторных прерываний для МП типа I82386SX. Несколько контроллеров могут соединяться каскадно для расширения числа прерывания до 64. ПКП обеспечивает работу в нескольких режимах, позволяя оптимизировать логику работы системы прерываний согласно требованиям, предъявляемым к МПС. УГО ПКП приведено на рисунке 13.

Рисунок 13 – УГО программируемого контроллера прерываний I8259A

Назначение выводов микросхемы I8259A приведено в таблице 7.

Таблица 7- Назначение выводов микросхемы I8259A

Вывод

Обозначение

Тип вывода

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

11,10,9,8,7,6,5,4

D0-D7

Входы-выходы

Канал данных

27

A0

Вход

Адрес 0-го разряда

18-25

IRQ0- IRQ7

Вход

Запрос прерывания

1

CS

Вход

Выбор микросхемы

2

WR

Вход

Запись информации

3

RD

Вход

Чтение информации

26

INTA

Вход

Подтверждение прерывания

16

MS/SV

Вход

Выбор ведомой микросхемы

12,13,15

CAS0-CAS2

Входы-выходы

Шина каскадирования

17

INT

Выход

Прерывание

14

GND

-

Общий

28

UCC

-

Напряжение питания

Работа микросхемы в автономном (без каскадирования) режиме происходит следующим образом. Один или несколько запросов на прерывание (переход из 0 в 1) подаются на входы IRQ0-IRQ7 и запоминаются в регистре запросов IRR (Interrupt Request Register).Регистр обслуживания ISR(In Service Register) содержит все запросы, которые в данное время находятся в стадии обработки. Регистр маски IMR(Interrupt Mask Register) используется для маскирования отдельных уровней. Запрет некоторого уровня соответствует единице в соответствующем разряде IMR.

Приоритетная логика выбирает разрешённый запрос на прерывание с наивысшим приоритетом из числа поступивших и сравнивает его с текущим приоритетом запросов, находящихся на обслуживании. При превышении последнего ПКП генерирует сигнал INT. Микропроцессор подтверждает приём запроса INT (при разрешённом восприятии прерываний) генерацией кода шинного цикла подтверждения прерывания на выходах М/Ю#, D/C#, W/R#, в результате чего СК вырабатывает сигнал подтверждения прерывания INTA#, поступающий на ПКП. Под воздействием сигнала запрос с высшим приоритетом из IRR фиксируется в соответствующем разряде ISR. Принятый к обслуживанию IRR-бит сбрасывается, и приём нового запроса разрешается.

При работе совместно с процессором I82386SX ПКП должен выдавать на процессор номер вектора прерывания n, для чего на него подаётся ещё один сигнал INTA#, по которому МП считывает с шины данных значение вектора прерывания n.

Отличительной особенностью БИС типа I8259A является её программируемость. Программирование осуществляется двумя типами управляющих слов: командами инициализации ICW(Initialization Command Word) и управления OCW(Operation Command Word). Четыре команды инициализации ICW1-ICW4 загружаются перед началом работы и служат для установки БИС в исходное состояние. Для программирования одиночного ПКП достаточно только две команды инициализации ICW1 и ICW2. Команды управления OCW1-OCW3 могут быть переданы в ПКП в любое время после выполнения инициализации. Они предназначены для оперативного управления работой контроллера и в рамках данного курсового проекта не рассматриваются.

При значениях разряда А0=0 ША и четвертого разряда ШД D4=1 входной байт интерпретируется как ICW1 (см. рисунок 14). Разряд S определяет наличие одного или нескольких ПКП в системе. Остальные разряды при работе в МПС с процессорами начиная с i8086 могут принимать любые значения.

Рисунок 14 – Формат управляющего слова ICW1

Формат управляющего слова ICW2 приведен на рисунке 15. При работе с процессорами начиная с i8086 и выше разряды D7-D3 определяют старшие биты номера прерывания n для каждого входа IRQ ПКП. Младшие 3 бита номера прерывания определяются номером входа IRQ, на который поступил запрос прерываний.

Рисунок 15 – Формат управляющего слова ICW2

Запрос прерывания будет происходить после нажатия кнопки КН2. Для предотвращения дребезга контактов кнопки необходимо применить схему, показанную на рисунке 3.5.

Рисунок 3.5 – Схема подавления дребезга контактов и снятия сигнала IRQ после формирования сигнала INTA#

При нажатой кнопке S2 на прямом выходе триггера формируется высокий уровень сигнала IRQi. второй – для выдачи запроса прерывания IRQ0…IRQ7, подаваемый на один из входов программируемого контроллера прерываний (ПКП), который в свою очередь формирует сигнал INT, поступающий на МП. После поступления от микропроцессора первого сигнала подтверждения запроса на прерывание INTA сигналы IRQ и INT сбрасывается. По второму сигналу INTA на шину данных МПС ПКП выдается номер n адреса-вектора прерывания, соответствующий варианту технического задания.