logo search
Кафедра “Системы автоматического управления”

14.2. Организация радиальной системы прерываний.

Для восприятия сигнала запроса на прерывание от внешнего устройства МП должен иметь специальные входы управления - так называемые линии IRQ (Interrupt Request). В наиболее простом случае МП имеет одну линию IRQ. Для программиста такая система прерываний представляется в виде точки входа (начального адреса) в процедуру обслуживания прерываний.

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

Процесс обработки запроса на прерывание во многом подобен процессам вызова и возврата из подпрограмм. Однако, в первом случае, вызов осуществляется командой САLL, которая сформирована и подставлена в общую последовательность с помощью аппаратуры системы прерываний, во втором случае команда САLL действительно присутствует в последовательности команд. По этой причине запрос на прерывание часто называют аппаратным вызовом подпрограмм.

Для увеличения числа одновременно обслуживаемых источников прерываний в систему вводится несколько линий IRQi с фиксированными стартовыми адресами подпрограмм обслуживания.

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

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

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

В одноуровневых системах в каждый момент времени допускается лишь один подтвержденный запрос. Обработка всех других запросов откладывается до окончания текущего обслуживания. Примером одноуровневой системы прерываний с двумя источниками запросов служит система прерываний однокристального МК К1816ВЕ48.

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

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

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

Примером МПС с двухуровневой системой прерываний и пятью источниками запросов служит однокристальный МК К1816ВЕ51.