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

Система прерываний

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

Векторная система, так как определяется по началу вектора прерывания.

Маскируемая система, так как каждый источник прерывания может быть замаскирован.

Приоритетная – чем меньше цифра, тем выше приоритет.

Приоритет Адрес

RESET – высший приоритет, не рассматриваем как вектор прерываний 00 h

INT0 (устанавливается IE0) – внешнее прерывание 0 03 h

T/C0 (устанавливается TF0) – прерывание таймера 0 0b h

INT1 (устанавливается IE1) – внешнее прерывание 1 13 h

T/C1 (устанавливается TF1) – прерывание таймера 1 1b h

SP (устанавливается TI, RI) – прерывание последовательного порта 23 h

T2 (устанавливается T2F, ExF) – прерывание дополнительного устройства 2b h

(МК 80С535)

Схема 21. Система прерываний

При контекстуальном переключении сохраняется регистр в стеке (push), указатель переходит на следующую команду. Выполняется прерывание, TI=0. Дальше происходит обратное контекстуальное переключение, при котором извлекаются данные из стека (pop). При обслуживании запроса прерывания текущая команда выполняется до конца, а после IRET выполняется еще одна команда.

Могут быть вложенные прерывания. Глубина вложенности определяется стеком.

Схема22. Система вложенных прерываний

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

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

Сброс флага IE необходим, чтобы обрабатывать следующие прерывания.

Особенности системы прерываний

Сама подпрограмма обработки должна определять, что является источником запроса прерываний, и после обработки прерываний(программно)

Ie(разрешение прерываний)

EA

-

ET2

ES

ET1

EX1

ET0

EX0

IP(priority)

-

-

PT2

PS

PT1

PX1

PT0

PX0

PT2 – приоритет TF2 или EXF2

Машинный цикл равен 6 состояниям. Состояние делят на 2 фазы (первая и вторая)

C1 S5P2 – состояние 5, фаза 2.

Сам запрос прерывания распознаётся во время выполнения цикла. Следующий машинный цикл используется для проверки других запросов и сравнения приоритетов.

С2 – цикл 2

С3 выполняется команда LCALL (длинный вызов)

С4

Как минимум, 3 машинных цикла требуется на то, чтобы начать выполнять подпрограмму обработки прерываний.

Особенности системы прерываний мк Infineon 80c535

Всего 12 источников запросов прерываний - 12 векторов прерываний, они объединены в пары.

Ext Int0 ADC Int

T0 Ext Int2

Ext Int1 Ext Int3

T1 Ext Int4

SP Ext Int5

T2 Int Ext Int6

У базовой модели запрос прерывания должен держаться, пока не выполнится. Но ему мешают запросы с более высоким приоритетом. Если система не удержит запрос, то он пропадёт, то есть, надо куда-то записывать «заявки» от регистров.