Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
схемотехника Конспект Лекций.doc
Скачиваний:
26
Добавлен:
07.09.2019
Размер:
17.25 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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