Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие.doc
Скачиваний:
359
Добавлен:
15.06.2014
Размер:
6.33 Mб
Скачать

3.3. Операции прерывания

На магистрали имеется восемь линий запроса прерываний /INT7 - /INT0. Запрос прерывания производится выдачей одного из восьми сигналов запроса прерываний с помощью передатчика с открытым коллектором. Данное требование позволяет к каждой линии подключать несколько источников прерывания. Сигнал /INT0 имеет наивысший приоритет прерывания, а /INT7 - низший. Сигнал подтверждения прерывания /INTA, выдаваемый задатчиком, является запросом на передачу информации о прерывании по магистрали.

В интерфейсе используется два типа прерывания с интерфейсным и неинтерфейсным адресом вектора прерывания.

При прерывании процессора с неинтерфейсным адресом вектора прерывания запросы на прерывание /INT7 - /INT0 формируются устройствами либо элементами, входящими в процессор (рис. 3.10). Устройства, которым необходимо прервать работу процессора, устанавливают свои триггеры запроса прерываний Тзпр1 - Тзпр8. Сформированные ими сигналы /INT7 - /INT0 поступают по шине управления в контроллер прерываний процессора. Контроллер прерывает работу процессора и, в соответствии с приоритетом поступивших сигналов, передаёт необходимый адрес вектора прерывания в процессор по его локальным шинам. Процессор, получив адрес вектора прерывания, находит подпрограмму, согласно которой обслуживает устройство. По завершению обслуживания устройства процессор возвращается к выполнению прерванной программы.

Рис. 3.10. Схема организации прерываний с неинтерфейсным адресом вектора прерывания

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

При прерывании с интерфейсным адресом вектора он передаётся от исполнителя к задатчику по системной магистрали (/DAT7 - /DAT0) по сигналу /INTA(рис. 3.11).

При реализации данной схемы организации прерываний во всех устройствах должны быть предусмотрены контроллеры прерываний устройств. Запросы прерываний устройств поступают от триггеров Тзпр1 - Тзпр8 в контроллеры. Контроллеры прерываний формируют сигналы /INT7 - /INT0, которые по соответствующим линиям поступают в контроллер прерываний процессора.

При появлении запроса на одной из линий /INT7 - /INT0 контроллер прерывания процессора в задатчике прерывает программу своего процессора и производит захват управления магистралью.

Рис. 3.11. Схема организации прерывания с интерфейсным адресом вектора прерывания

Процессор задатчика формирует импульс /INTA, который приводит к фиксации состояния запросов прерывания в контроллере для того, чтобы осуществить приоритетный арбитраж. Задатчик также сохраняет за собой управление магистралью между циклами, чтобы обеспечить себе неразрывно следующие друг за другом циклы магистрали. После выдачи первого импульса /INTAконтроллер прерываний процессора выставляет на адресные линии магистрали /ADRA- /ADR8 код прерывания. Код соответствует номеру активной линии запроса прерывания, имеющей наивысший приоритет, и является адресом исполнителя, который должен выдать адрес вектора прерывания. С этого момента в процедуре прерывания с интерфейсным адресом вектора могут осуществляться две различные последовательности, так как на магистрали могут работать либо задатчики, формирующие два импульса /INTA, либо задатчики, формирующие три импульса /INTA. На рис. 3.12 приведена временная диаграмма прерывания с интерфейсным адресом вектора с двумя импульсами /INTA.

Если задатчик формирует два импульса /INTA, то по второму импульсу схема управления прерыванием исполнителя передает свой 8-битный адрес вектора прерывания на линии данных магистралиDAT7 -DAT0. Этот адрес вектора используется для определения адреса памяти с подпрограммой обслуживания прерывания. Выдача адреса вектора прерывания сопровождается формированием исполнителем сигнала /XACK. После считывания адреса вектора прерывания задатчик снимает сигнал /INTA, в ответ на это исполнитель снимает адрес вектора прерывания с линий данных и сигнал /XACK.

Рис. 3.12. Временная диаграмма прерывания с интерфейсным адресом вектора

Если задатчик формирует три импульса /INTA, то по второму и третьему исполнитель может выдавать свой двухбайтный адрес вектора прерывания на линии данных магистралиDAT7 -DAT0 (по одному байту на каждый импульс /INTA). В соответствии с введённым адресом вектора, прерывания выполняется подпрограмма обслуживания устройства, запросившего прерывание.

Соседние файлы в предмете Цифровая схемотехника