Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава_5.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.43 Mб
Скачать

5.3.8. Прерывания

В микроЭВМ MC68HC11E9 предусмотрено два входа запросов внешних радиальных прерываний - IRQ и XIRQ. Кроме того, MC68HC11E9 поддерживает большое число внутренних прерываний. С каждым источником аппаратных (внутренних и внешних) и программных прерываний связан свой вектор, размещенный по фиксированному адресу в таблице векторов прерываний (табл. 5.12). К внутренним прерываниям относятся и различные варианты RESET. Прерывания MC68HC11E9 можно разделить на две категории: маскируемые и немаскируемые. Пятнадцать прерываний могут быть замаскированы битом I регистра признаков. Дополнительно к этому, все встроенные источники прерываний можно маскировать специальными управляющими битами. В приведены все источники прерываний, соответствующие им адреса векторов и биты локальных масок.

Программное прерывание (команда SWI) является скорее немаскируемой командой, чем маскируемым прерыванием. Прерывание по неверному коду команды - это немаскируемое прерывание. Внешний вход XIRQ\ рассматривается как источник немаскируемого прерывания, потому что будучи однажды разрешенным это прерывание не может быть запрещено программно; однако оно маскируется в течение RESET и при получении сигнала на выводе XIRQ.

Таблица 5.12. Назначение векторов прерываний.

Адрес

вектора

Источник

прерывания

Локальная

маска

FFC0,C1

Зарезервировано

-

.

.

.

.

FFD4,D5

Зарезервировано

-

FFD6,D7

Система SCI

1)

FFD8,D9

Завершение передачи SCI

SPIE 1)

FFDA,DB

Входной фронт счетчика импульсов

PAII 1)

FFDC,DD

Переполнение счетчика импульсов

PAOVI 1)

FFDE,DF

Переполнение таймера

TOI 1)

FFE0,E1

Выходное сравнение 5 таймера

OC5I 1)

FFE2,E3

Выходное сравнение 4 таймера

OC4I 1)

FFE4,E5

Выходное сравнение 3 таймера

OC3I 1)

FFE6,E7

Выходное сравнение 2 таймера

OC2I 1)

FFE8,E9

Выходное сравнение 1 таймера

OC1I 1)

FFEA,EB

Входная фиксация 3 таймера

IC3I 1)

FFEC,ED

Входная фиксация 2 таймера

IC2I 1)

FFEE,EF

Входная фиксация 1 таймера

IC1I 1)

FFF0,F1

Прерывания реального времени

RTI 1)

FFF2,F3

IRQ\ (Внешний вывод или параллельный ввод\вывод)

FI1)

FFF4,F5

XIRQ\ вывод (псевдо-немаскируемое прерывание)

Нет 2)

FFF6,F7

SWI

Нет 3)

FFF8,F9

Прерывание по неверному коду команды

Нет 3)

FFFA,FB

RESET, вызываемый системой слежения

NOCOP 3)

FFFC,FD

RESET, тактового монитора системы слежения

CME 3)

FFFE,FF

RESET

Нет 3)

Примечания:

1) Маскируется разрядом I регистра состояния CC

2) Маскируется разрядом X регистра состояния CC

3) Не маскируется

Некоторые источники могут генерировать запрос по нескольким различным причинам. Дополнительная идентификация причины в этом случае осуществляется программно

Таблица 5.13. Прерывания последовательного интерфейса связи.

Причина прерывания

Локальная маска

Регистр принимаемых данных полон

RIE

Приемник переполнен

RIE

Обнаружена свободная линия

ILIE

Регистр передаваемых данных пуст

TIE

Передача завершена

TCIE

Таблица 5.14. Прерывания по IRQ\.

Причина прерывания

Локальная маска

Внешний вывод

Нет

Квитирование параллельного ввода/вывода

STAI

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

СТЕК

SP

PCL

 SP до прерывания

SP-1

PCH

SP-2

IYL

SP-3

IYH

SP-4

IXL

SP-5

IXH

SP-6

ACCA

SP-7

ACCB

SP-8

CCR

SP-9

 SP после прерывания

Рис.5.36. Порядок заполнения стека при обслуживании

прерывания.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]