
- •1.Основные сведения .
- •1.1 Обработка прерывания
- •1.2. Описание работы контроллера прерывания
- •1.3. Описание работы периферийной станции транзакций (pts)
- •1.4. Приоритеты прерывания
- •1.5. Изменение приоритетов прерывания
- •1.6. Программы обработки прерывания
- •1.7. Распознавание прерываний
- •1.8. Время ожидания прерывания
- •1.9. Специальные прерывания
- •1.9.1. Прерывание по невыполняемому коду операции
- •1.9.2. Прерывание по ловушке программного обеспечения
- •1.9.3. Немаскируемое прерывание
- •1.10. Программирование прерываний
- •Pts Select Register
- •1.11. Предоставление pts прерывания
- •1.12. Предоставление стандартных прерываний
- •1.13. Выбор источников прерывания
- •1.14. Регистры маскирования прерываний
- •1.15. Регистры захвата прерывания
- •1.16. Pts прерывания
- •1.16.1. Управляющие блоки pts
- •1.16.1.1. Регистр ptscount
- •1.16.1.2. Прерывание End-of-pts
- •1.16.1.3. Регистр ptscon
- •1.16.2. Краткий обзор режима одиночной передачи
- •1.16.2.1. Пример режима одиночной передачи
- •1.16.3. Краткий обзор режима поблочной пересылки
- •1.16.3.1. Пример режима поблочной пересылки
- •1.16.4. Краткий обзор режима сканирования
- •1.16.4.1. Pts циклы в режиме сканирования ацп
- •1.16.5. Краткий обзор режима hsi
- •1.16.5.1. Пример режима hsi
- •1.16.6. Краткий обзор режима hso
- •1.16.6.1. Пример режима hso
1.9. Специальные прерывания
8XC196KC/KD поддерживает три специальных прерывания: невыполняемый код операции (Unimplemented Opcode), программная ловушка (TRAP) и NMI. На эти прерывания не воздействует бит разрешения прерывания (I) (PSW.1), и они не могут маскироваться. Все эти прерывания обслуживаются контроллером прерывания; они не могут быть назначены к PTS.
Из этих трех прерываний, только NMI идет через детектор фронта прерывания и приоритетный шифратор, а другие два специальных прерывания идут непосредственно для обслуживания в контроллер прерывания .
1.9.1. Прерывание по невыполняемому коду операции
Если CPU пытается выполнить несуществующий код операции , происходит косвенное обращение по вектору в ячейке 2012H . Это предотвращает произвольное выполнение программ во время отказов программного обеспечения и аппаратных средств.
Вектор прерывания должен содержать начальный адрес программы обработки ошибок, которая не будет далее усугублять уже ошибочную ситуацию. Прерывание по невыполняемому коду операции запрещает другие прерывания от момента подтверждения до того, пока не выполнится следующая команда.
1.9.2. Прерывание по ловушке программного обеспечения
Команда TRAP ( код операции 0F7H ) выполняет вызов прерывания по вектору в ячейке 2010H. Команда TRAP выполняет прерывание одиночной команды, которое используется при отладке программного обеспечения или при генерации программных прерываний. Команда TRAP запрещает подтверждение других прерываний, пока не выполнится следующая команда .
1.9.3. Немаскируемое прерывание
Внешний вывод NMI (P2.2, если IOC1.1=0, P0.7, если IOC1.1=1) генерирует немаскируемое прерывание для реализации критических подпрограмм прерывания. NMI имеет самый высокий приоритет относительно всех располагаемых по приоритетам прерываний. Оно идет непосредственно от детектора фронта прерывания к приоритетному шифратору и оттуда к программе по вектору в ячейке 203EH. Прерывание NMI генерируется в течение Фазы 1 ( CLKOUT =0 ) и внутренне защелкивается. Если вывод удерживается в высоком состоянии, многократные прерывания не будут происходить. Если ваша система не использует NMI прерывание, для предотвращения ложных прерываний присоедините контактный вывод NMI к земле . Хотя в регистре INT_MASK1 существует бит маскирования NMI, однако, он не выполняет никакой функции; NMI разрешен и при установленном и при сброшенном бите NMI в INT_MASK1. Чтобы гарантировать совместимость с будущими изделиями(программами), всегда сбрасывайте в нуль бит маскирования NMI.
1.10. Программирование прерываний
В табл.@.2 приведены программируемые регистры, которые воздействуют на работу и функции контроллера прерывания и PTS.
Табл.2 Регистры состояния и управления прерываниями и PTS.
Мнемоника |
Название регистра |
Описание регистра |
INT_MASK INT_MASK1 |
Маска прерывания |
Эти регистры разрешают/запрещают любое маскируемое прерывание |
INT_PEND INT_PEND1 |
Задержка прерывания |
Биты в этих регистрах устанав-ливаются аппаратными средствами и показывают какое прерывание задержано. |
IOC1 |
Управление ВВОДОМ-ВЫВОДОМ |
Этот регистр выбирает источник прерываний INT00, INT02, и INT07. |
IOS1 |
Состояние ВВОДА -ВЫВОДА |
Этот регистр содержит флажки которые указывают какое событие вызвало прерывание. |
PSW |
Слово состояния процессора |
Этот регистр содержит один бит который глобально разрешает или запрещает обслуживание всех маскируемых прерываний и другой, который разрешает или запрещает PTS. |
PTSSEL |
Выбор PTS |
Этот регистр выбирает или цикл PTS или стандартную программу обслуживания прерывания для каждого из пятнадцати маскируемых запросов прерывания. |
PTSRV |
Обслужива- ние PTS |
Биты этого регистра устанавливаются аппаратными средствами при требовании конца PTS прерывания. |
Регистр PTSSEL (05H/04H, Hwindow1) состоит из двух байтов. Установка бита выбирает PTS цикл, очистка - стандартную подпрограмму обработки прерывания.
После сброса PTSSEL = 0000 0000 0000 0000 B