Режим обмена информацией по прерыванию.
Как правило, большую часть времени микро-ЭВМ тратит на выполнение основной программы. Обмен с внешними устройствами микро-ЭВМ осуществляет асинхронно по отношению к процессу выполнения основной программы. (Асинхронно - т.е. обмен происходит в произвольный, заранее не предусмотренный момент времени).
В момент готовности внешних устройств к обмену информацией они выставляют сигнал запроса на линии сигнала запроса прерывания микропроцессора. Если МП может воспринимать сигналы прерывания в данный момент времени (а это устанавливается программно), то начинается режим обмена информацией по прерыванию. Вход и выход из этого режима осуществляются в определенной последовательности:
1. Микропроцессор завершает выполнение текущей команды и сохраняет в памяти (записывает в стек) адрес следующей команды т.е. содержимое счётчика команд, к которому он будет обращаться после завершения цикла обмена информации по прерыванию. Но обычно в стеке автоматически сохраняется и содержимое аккумулятора, так как оно будет изменено при выполнении подпрограммы обслуживания прерывания.
2. Микропроцессор указывает внешним устройствам на начало цикла обслуживания прерывания формированием сигнала обслуживания прерывания (INTERRUPT ACKNOWLEGES) на магистрали управления микро-ЭВМ.
3. В счётчик команд загружается начальный адрес подпрограммы обслуживания прерывания- вектор данного прерывания.
4. МП, получив этот адрес, обращается к нему и начинает выполнять подпрограмму обслуживания внешнего устройства, выдавшего сигнал прерывания. В конце подпрограммы всегда должна стоять команда выхода из подпрограммы и возврата управления на прерванную основную программу — команда RETURN. Необходимо иметь в виду, что если подпрограмма использует в своей работе ряд внутренних регистров микропроцессора, в которых к началу ее выполнения имеются данные от основной программы, то для их сохранения к моменту возвращения на основную программу в подпрограмме обслуживания прерывания должны быть приняты дополнительные меры. А именно: в начале подпрограммы должны стоять команды, записывающие содержимое используемых регистров в стек, а в конце ее команды возвращающие из стека сохраненную информацию обратно в регистры.
5. Получив команду возврата RETURN к основной программе, микропроцессор извлекает из стека адрес текущей команды основной программы и, обращаясь к нему, продолжает ее выполнение.
Обычно микроЭВМ обменивается по прерыванию с большим количеством внешних устройств, используя для подачи сигнала прерывания на МП одну линию - линию запроса прерывания. При наличии нескольких внешних устройств, одновременно выдавших запрос на прерывание, необходимо из них в каждый момент времени выделять лишь одно, с которым и будет осуществляться обмен. С этой целью в микроЭВМ вводят специальный блок - блок "приоритетных" прерываний (БПП). Основные функции БПП:
1) получение запросов прерывания от внешних устройств и формирование одного сигнала запроса прерывания на соответствующем входе МП;
2) установление и смена приоритетов в обслуживании поступивших запросов прерываний от внешних устройств. (Приоритет- порядок обслуживания внешних устройств, подавших на вход БПП сигналы запроса на прерывание. Существуют различные типы приоритетов (циклический, полностью установленный, перемещаемый и т.д.));
3) сообщение МП начального адреса подпрограммы обслуживания прерывания в соответствии с обслуживаемым внешним устройством;
4) установление запрета (маскирование) на восприятие сигналов на отдельных входах запросов прерывания от внешних устройств. Режим маскирования устанавливается по командам МП путем установки особых разрядов в Рг. Признаков. (Маскированиепрерываний - запрет восприятия прерываний от отдельных внешних устройств. (Путем программной установки разрядов в регистре Признаков)).
Во многих МПК блок приоритетных прерываний выполнен на одной микросхеме и является программируемым, что обеспечивает реализацию различных режимов его работы.
Обслуживание прерываний осуществляется двумя способами, откуда различают два типа обслуживания прерываний - векторныйи считываемый.
При векторномтипе прерываний БПП выдает импульс запроса прерывания на вход МП и при получении ответного импульса сообщает в микроЭВМ адреса (векторы) начала подпрограмм обслуживания прерывания соответствующих внешних устройств.
При считываемомтипе прерываний импульс запроса на прерывание от БПП на вход МП не поступает. Сообщение адреса начала подпрограмм обслуживания прерываний осуществляется БПП микропроцессору в моменты времени его обращения к БПП как к обычному внешнему устройству.
Коме того, различают также и внутренниепрерывания - прерывания, формируемые в самом МП при выполнении программы. Обычно они используются для сообщения о некорректных действиях в программах (например, делении на 0, сбоях в программе и т.п.).