- •Однокристальная микроЭвмìñ68íñ705ñ8 Введение
- •Содержание
- •1. Программная модель оэвм мс68нс705с8.
- •1.1 Внутренняя структура.
- •1.2 Память.
- •1.3 Регистры.
- •1.4. Режимы адресации.
- •1.5. Набор команд.
- •Команды пересылки данных.
- •Арифметические и логические команды, битовые операции.
- •2. Аппаратные средства
- •2.1 Линии (порты) параллельного ввода-вывода.
- •2.2 Система прерываний.
- •2.3 Таймер и связанные с ним устройства.
- •2.4 Последовательный интерфейс
- •3. Специальные режимы работы.
- •3.1 Reset.
- •3.2 Режимы с пониженным энергопотреблением.
- •Приложение 1. Расположение и назначение выводов мс68нс705с8.
- •Приложение 2. Типовая схема подключения мс68нс705с8.
2.2 Система прерываний.
МС68НС705С8 имеет 5 типов прерываний, включающих 4 маскируемых аппаратных прерывания и одно немаскируемое программное прерывание. К аппаратным прерываниям относятся:
-внешнее прерывание, поступающее через вывод IRQ/ микросхемы
-прерывание от последовательного интерфейса связи
-прерывание от последовательного периферийного интерфейса
-прерывание от таймера
При возникновении прерывания процессор сохраняет содержимое регистров в стеке, и затем устанавливает бит маски прерываний I в регистре признаков, запрещая последующие прерывания. Команда возврата из прерывания (RTI), которая является последней командой в программе обработки любого прерывания, восстанавливает содержимое регистров из стека. Порядок загрузки и выгрузки регистров из стека показан на рис. 2-3.
В отличие от RESET, прерывание не вызывает прекращения выполнения текущей команды, обработка прерывания начинается лишь после ее завершения.
Таймер и оба последовательных интерфейса имеют собственные регистр статуса и управляющий регистр. В регистре статуса расположены флаги прерываний, каждый из которых соответствует определенному действию, вызвавшему прерывание. Например, у таймера таких флагов три. Флаги в регистрах статуса предназначены только для чтения. В управляющем регистре каждому из этих флагов поставлен в соответствие управляющий бит, с помощью которого можно разрешить или запретить определенное прерывание установкой или сбросом соответствующего бита. Если управляющий бит сброшен, то прерывание блокируется, но это не мешает изменению состояния флага запроса прерывания. Во время начальной установки все управляющие биты сбрасываются, чтобы предотвратить прерывания в течение процедуры начальной установки.
Рис. 2-3 Порядок загрузки регистров в стек и
выгрузки их из стека.
На рисунке 2-4 показан процесс обработки прерывания, а в таблице 2-2 даны векторы всех прерываний. В первом столбце таблицы указан регистр статуса, в котором находится соответствующий флаг прерывания, во втором столбце даны названия флагов прерываний. В третьем столбце кратко описана причина возникновения прерывания, в четвертом столбце указано устройство-источник прерывания, и в пятом столбце приведен адрес по которому хранится вектор прерывания. Важно отметить, что бит маски прерываний (бит I в регистре признаков) будет сброшен только в том случае, если соответствующий бит в стеке хранит 0.
Рассмотрим подробнее каждый тип прерывания.
Программное прерываниеявляется результатом выполнения команды SWI (SoftWare Interrupt). Оно возникает вне зависимости от состояния бита I. Вектор прерывания содержится в ячейках памяти с адресами 1FFCH и 1FFDH.
Внешнее прерывание происходит если бит маски прерываний (бит I) сброшен и на внешний вывод IRQ/ поступает сигнал активного уровня (режим срабатывания задается записью в бит IRQ регистра конфигурации, см. п. 1.3). Затем текущее состояние процессора запоминается в стеке, и бит I устанавливается в 1 для маскирования всех прерываний до тех пор, пока обслуживается внешнее.
Прерывание от таймераможет быть вызвано тремя флагами, как уже упоминалось ранее. Эти три флага расположены в регистре статуса таймера, и имеют один и тот же вектор (см. таблицу 2-2). Каждый флаг имеет соответствующий управляющий бит (ICIE, OCIE и TOIE) в регистре управления таймером. Установка этих битов разрешает соответствующее прерывание, сброс-запрещает. Подробнее назначение каждого флага описано в главе 2.3 "Таймер".
ᄉ ᄃ
Рис. 2-4 Процесс обработки прерывания
Прерывание от последовательного интерфейса связипроисходит в том случае, если один из пяти флагов (TDRE, TC, RDRF, IDLE, OR) в регистре статуса интерфейса связи установлен, бит I в регистре признаков сброшен и управляющий бит во втором управляющем регистре установлен. При обслуживании прерывания приоритет обработки задается программно через проверку флагов в регистре статуса. Подробнее о регистрах интерфейса связи рассказывается в главе 2.4 "Последовательный интерфейс".
Прерывание от последовательного периферийного интерфейсапроисходит при тех же условиях (установлен один из двух флагов в регистре статуса периферийного интерфейса (SPIF или MODF), бит I сброшен, и управляющий бит в управляющем регистре установлен). Подробнее о периферийном интерфейсе рассказывается в главе 2.4 "Последовательный интерфейс".
Функциональная схема обработки внешних прерываний приведена на рис. 2-5. Внешнее прерывание может определяться либо фронтом сигнала, либо его фронтом и уровнем. Задается это программно через регистр конфигурации (см. гл. 1.3). Если прерывание определяется фронтом сигнала, то следующее прерывание не должно возникать до тех пор, пока не будет обработано первое, т. е. пока не будет выполнена команда возврата из прерывания (RTI). Время между двумя прерываниями должно быть минимум на 21 машинный цикл больше, чем время обработки прерывания (не включая команду RTI). При определении прерывания по уровню сигнала, следующее прерывание будет определяться в том случае, если после обработки первого прерывания на выводе IRQ/ будет сохраняться сигнал низкого уровня. Этот метод обычно используется при работе с несколькими источниками прерываний, объединенными в одну линию. Оба режима реакции на внешнее прерывание наглядно демонстрируются на рис. 2-6 и 2-7, соответственно.
Таблица 2-2. Векторы прерываний.
-
Регистр
Имя флага
Причина прерывания
Прерывание ЦПУ
Адрес вектора
RESET
RESET
1FFE-1FFF
Программное
SWI
1FFC-1FFD
Внешнее
IRQ
1FFA-1FFB
Регистр статуса таймера
ICF
OFC
TOF
Входная фиксация
Выходное сравнение
Переполнение
TIMER
1FF8- 1FF9
Регистр статуса интерфейса связи
TDRE
TC
RDRF
IDLE
OR
Буфер передачи пуст
Передача завершена
Полон буфер приема
Обнаружена свободная линия
Переполнение
SCI
1FF6-1FF7
Регистр статуса периферий-ного интерфейса
SPIF
MODF
Передача завершена
Режим ошибочен
SPI
1FF4-1FF5
Рис. 2-5 Функциональная схема обработки внешнего прерывания.
ᄉ ᄃ
Рис. 2-6 Диаграмма, иллюстрирующая первый режим обнаружения внешнего прерывания.
Рис. 2-7 Диаграмма, иллюстрирующая второй режим обнаружения внешнего прерывания.