Приветствую Вас, Гость
Главная » Статьи » Компьютеры » МПС (Микропроцессорные системы)

Прерывания программы
Важнейшее значение имеет способность большинства микропроцессоров прерывать выполняемую программу в ответ на внешнее событие и выполнять программу, специально предназначенную для обработки этого события. Это называется прерыванием программы. Воспользоваться прерыванием по готовности порта, как правило, много удобнее и эффективнее, чем непрерывно опрашивать его состояние. Микропроцессор освобождается для выполнения других функций и, в частности, может заняться работой с другим портом. Прерывание программы для большинства микропроцессоров напоминает переход на подпрограмму с той лишь разницей, что оно инициируется не командой в программе, а приходом внешнего сигнала по управляющей шине. Этот сигнал называется запросом на прерывание. Обнаружив запрос на прерывание, процессор откладывает выполнение текущей программы и начинает выполнять программу прерывания. Программа прерывания обычно заканчивается командой возврата, после которой продолжается выполнение прерванной программы. Обычно процессор обладает возможностью запрещать или блокировать прерывание на какие-то отрезки времени, когда их обработка по тем или иным причинам нежелательна. При заблокированных прерываниях поступающие запросы на прерывание игнорируются. Обычно в микропроцессорных системах запросы на прерывание могут поступать от нескольких устройств, поэтому возникает проблема идентификации устройства, приславшего запрос с тем, чтобы можно было выполнить действия по обслуживанию именно этого устройства. Для увеличения гибкости системы прерывания вводят дополнительные условия:

1)    система приоритетов;
2)    вложенность прерываний;
3)    способ маскирования;
4)    режим обслуживания прерывания;
5)    способ определения начального адреса программы обработки прерывания;
6)    вид сигнала от устройства ввода/вывода, вызывающего прерывание.

1.    Сущность системы приоритетов состоит в том, что каждому из устройств ввода/вывода присваивается число (1,2,3,…), называемое приоритетом. При одновременном поступлении нескольких запросов на прерывание обслуживается тот из них, который имеет старший приоритет.

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

3.    Маскирование применяется для запрета прерывания выполняемой программы. Замаскированное устройство не чувствительно к запросам на прерывание. Эти запросы либо теряются, либо запоминаются, и будут обслужены, когда система выйдет из состояния маскирования. Для указания маскированных запросов служит регистр масок. Обычно процессор имеет 1 немаскируемый вход и 1 или несколько маскируемых. Немаскируемый вход используется для обслуживания экстренных ситуаций, например, пропадание питания. Для расширения числа обслуживаемых прерываний используется специальное устройство — контроллер прерывания. В его состав обычно входят: регистр запроса прерывания, дешифратор приоритетов, регистр масок, регистр обслуживаемых прерываний и регистр адресов прерываний. Регистр адресов прерываний позволяет реализовать векторную систему прерывания. Контроллер представляет из себя устройство, на которое подаются запросы.
    INT – сигнал запроса прерывания процессору.
    INTA – подтверждение прерывания от процессора.
    По сигналу INTA из контроллера прерывания считывается вектор или адрес подпрограммы прерывания по шине данных
 
   
4.    По режиму обслуживания прерывания различают:
1)    режим прерываний с последующим программным опросом;
2)    режим векторной системы прерывания;
3)    режим программного опроса регистра состояния.
В схеме прерываний с программным опросом все запросы на прерывание поступают по одной управляющей линии. Эта линия является выходом схемы ИЛИ, на входы которой поступают запросы от индивидуальных устройств. У каждого устройства есть порт состояния, хранящий бит запроса прерывания. После поступления прерывания микропроцессор опрашивает по порядку все внешние устройства на предмет наличия запроса прерывания. Главный недостаток – это время, затрачиваемое программой на опрос состояния отдельных устройств. В векторной системе прерывания устройство, вызвавшее прерывание, идентифицируется с помощью внешних по отношению к микропроцессору схем. В этом режиме процессор после получения сигнала запроса прерывания считывает начальный адрес программы обработки прерывания. Этот адрес называется еще вектором прерывания. Обычно этот адрес выдает контроллер прерывания.
Режим опроса регистра состояния:
При работе в режиме опроса регистра состояния прерывания процессора запрещены. И для определения наличия поступления запроса от внешнего устройства ему приходится их опрашивать. Этот режим характеризуется большим временем реакции на прерывание, но обеспечивает более простое написание программ обработки.

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


6.    По виду сигнала различают входы прерывания по уровню и по фронту. В первом случае, если поступил сигнал прерывания, а перехода на программу обработки не произошло (вход был замаскирован или в это время выполнялась подпрограмма с более высоким приоритетом) за время его присутствия, то по его снятию запрос теряется. С другой стороны, если за время присутствия сигнала запроса прерывания была выполнена программа его обработки, а он не снялся, то вновь осуществится переход на эту программу. Прерывания по фронту запоминаются в регистре запросов и сбрасываются самим процессором после обслуживания запроса. Таким образом, система прерывания микропроцессорного устройства может выглядеть следующим образом:
 


NMI – немаскируемый вход прерывания
PIC – приоритетный контроллеры прерывания
INTA – подтверждение прерывания.



Источник: Автор Мясников. В.И, Прерывания программы
Категория: МПС (Микропроцессорные системы) | Добавил: Zixerok (25.01.2012)
Просмотров: 1712 | Теги: Прерывания программы | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: