47
ния программно запрещается реагирование МП на это прерывание; в конце рабо-
ты этой подпрограммы реагирование разрешается.
Совокупность прерываний, которые могут быть реализованы в устройстве, на-
зывают системой прерываний. Особое значение система прерываний имеет для
систем управления. Системы управления относятся к системам реального време-
ни, которые предполагают совершенно конкретные, рассчитываемые на этапе
разработки интервалы времени реакции на внешние события. Задержки сверх
расчетных здесь просто недопустимы, т. к. они могут приводить к катастрофиче-
ским последствиям.
Проблема быстрой реакции на события решается организацией системы пре-
рываний. Она подразумевает, что для каждого такого события разрабатывается
отдельная подпрограмма, который формирует реакцию устройства на него. При
наступлении события должен формироваться запрос прерывания, который вызо-
вет соответствующую подпрограмму.
Важной характеристикой системы прерываний является организация приори-
тетов прерываний. Понятие
приоритет означает, что выполняемая подпрограмма
прерывания может быть прервана другим событием только при условии, что оно
имеет более высокий приоритет, чем текущее. В ином случае МП перейдет к об-
работке прерывания от нового события после окончания обработки предыдущего.
Для организации системы прерываний в микропроцессорной системе могут
использоваться специальные ИС — контроллеры прерываний, например,
КР580ВГ59. Однако современные МП сами имеют мощные системы прерываний.
Рассмотрим систему прерываний МП Z80. Как отмечено ранее, МП Z80 имеет
два входа, предназначенные для приема запросов на прерывание: запрос на пре-
рывание
INT и немаскируемый запрос на прерывание NMI .
Немаскируемое прерывание имеет вектор рестарта, равный 066
16
. Это значит,
что, когда поступит сигнал запроса немаскируемого прерывания, МП начнет вы-
полнение подпрограммы обработки прерывания, первая команда которой нахо-
дится по указанному адресу. Переход на подпрограмму обработки немаскируемо-
го прерывания в МП Z80 осуществляется следующим образом, рис. 25. Внутри
МП вход
NMI соединен с триггером, состояние которого может быть изменено
импульсным сигналом длительностью не менее 80 нс, поступающим на этот вход.
В конце последнего цикла выполняемой МП команды он проверяет состояние
этого триггера и, если оно изменилось, запоминает состояние маскируемого пре-
рывания (разрешено или запрещено), запрещает его и формирует цикл подтвер-
ждения немаскируемого прерывания. В цикле подтверждения прерывания МП не
реагирует на сигнал
WAIT.В след за циклом подтверждения прерывания обяза-
тельно следуют два цикла записи данных в память, в которые в вершину стека ав-
томатически записываются старший и младший содержимого счетчика команд
PC. Тем самым в стеке сохраняется адрес возврата, адрес команды, к выполнению
которой МП приступит после окончания выполнения подпрограммы обработки
прерывания. Автоматическое сохранение адреса возврата при работе с подпро-
граммами характерно для любого процесса.