Motorola MC68HC705C8

Рис. 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 Диаграмма, иллюстрирующая второй режим обнаружения внешнего прерывания.

2.3 Таймер и связанные с ним устройства.

Блок таймера МС68НС705С8 имеет следующие характеристики:

16-битный программируемый счетчик с предделителем тактовой частоты.

Флаг переполнения таймера.

16-битный регистр выходного сравнения.

16-битный регистр входной фиксации.

Три вида генерируемых прерываний.

Основу таймера составляет 16-битный программируемый счетчик, синхронизируемый внутренней тактовой частотой, деленной на 4. Функция переполнения таймера позволяет расширить возможность измерения промежутков времени путем фиксации момента переполнения счетчика и установки соответствующего флага в регистре статуса. Функция входной фиксации может использоваться для автоматической записи времени определенного процесса, например для измерения длительности внешнего сигнала. Функция выходного сравнения дает возможность реализовать генерацию сигналов различной частоты, формировать импульсы различной длительности, а так же задержки в программе и многое другое.

Таймер позволяет формировать прерывания по переполнению как основного счетчика, так и 16-битного регистра входной фиксации и 16-битного регистра выходного сравнения.

Блок-схема таймера представлена на рис. 2-8.

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

Рис. 2-8 Блок-схема таймера.

При начальной установке 16-битный счетчик таймера, расположенный по адресу 18Н-19Н, начинает работу со значения FFFCН. Далее значение счетчика увеличивается на единицу при поступлении синхроимпульса с предделителя частоты, дающего разрешение в 2 мкс при использовании кварца 4МГц. Когда значение счетчика достигает FFFFH, он сбрасывается в 0000H, устанавливая флаг переполнения. Значение счетчика дублируется в альтернативном счетчике, расположенном по адресу 1АН-1ВН. Единственное различие этих регистров состоит в том, что при чтении счетчика происходит сброс флага переполнения, а при обращении к альтернативному счетчику этого не происходит. Счетчик, как и альтернативный счетчик, может быть прочитан в любой момент, но не может быть записан. Если сначала читается старший байт счетчика (18Н), то младший байт запоминается в буфере. Это значение остается в буфере неизменным даже если старший байт читается несколько раз. Доступ к буферу осуществляется при чтении младшего байта счетчика. Если же считывать несколько раз только содержимое младшего байта счетчика, то каждый раз при этом будут считываться разные значения, соответствующие моменту считывания.


Страница: