Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Маскируемые прерывания






 

Прерывание по внешнему запросу

. Все МК 68HC12/HCS12 имеют вывод внешнего маскируемого прерывания

. Активный уровень сигнала для генерации запроса на прерывание — логический 0. В некоторых приложениях требуется принять запросы от нескольких внешних источников сигналов. Для таких случаев следует использовать дополнительный логический элемент, который объединяет запросы от всех источников по логике ИЛИ (рис. 4.16). Если запрос на вход

поступил, и МК перешел к выполнению подпрограммы прерывания, то в этой подпрограмме следует опросить линии порта для того, чтобы установить, какой из источников вызвал прерывание. Обработка нескольких объединенных по ИЛИ запросов с программным поиском установившего запрос источника называется поллингом.

 

Рис. 4.16. Внешняя цепь для подключения сигналов нескольких внешних запросов на прерывание

 

Прерывание по таймеру меток реального времени RTI. Таймер меток реального времени генерирует последовательность равноотстоящих во времени запросов на прерывание. Период повторения запросов настраивается программистом. Эти прерывания могут быть использованы для регулярного выполнения микроконтроллером некоторой задачи. Например, для измерения напряжения аккумуляторной батареи каждые три мин, чтобы сигнализировать о необходимости ее замены. Мы рассмотрим особенности прерываний RTI в главе 7 на примере управления скоростью вращения электрическим двигателем.

Прерывание по событию канала захвата/сравнения (IC/OC) таймера. Восемь одинаковых блоков в составе модуля таймера, которые именуют «каналами», предназначены для контроля за уровнем сигнала на входе канала или для изменения в строго определенный момент времени логического уровня на выходе канала. Заданное программистом изменение входного или выходного сигнала канала рассматривается как событие, которое генерирует запрос на прерывание. Например, если канал настроен на слежение за перепадом входного сигнала из 1 в 0, то когда такое изменение произойдет, будет выставлен запрос на прерывание.

Прерывание по переполнению таймера. Основным блоком модуля таймера является 16 разрядный счетчик временной базы. Этот счетчик невозможно остановить. Также невозможно изменить его коэффициент счета, который составляет 216 = 65536. Поэтому регулярно счетчик временной базы изменяет свой код с $FFFF на $0000. Такое изменение кода называют переполнением счетчика. В момент переполнения по желанию программиста может генерироваться запрос на прерывание, в то время как счетчик продолжает считать дальше. Такие прерывания особенно удобны при необходимости измерения очень больших временных интервалов. Для этого в микроконтроллере производят подсчет, сколько переполнений счетчика произошло за этот временной интервал, и, зная период счета счетчика, определяют длительность исследуемого временного интервала.

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

Прерывание по событию на входе счетчика внешних событий. Этот запрос на прерывание формируется, если сигнал на входе счетчика внешних событий изменил свое значение. Характер изменения, т.е. перепад из 0 в 1, или из 1 в 0, или любое изменение логического уровня, определяется программистом.

Прерывание от модулей контроллеров последовательного ввода/вывода SCI и SPI. Каждый модуль последовательного ввода/вывода формирует целую группу запросов на прерывание: при завершении передачи слова, при приеме слова, при обнаружении различного рода нарушений в протоколе передачи информации.

Прерывание от модуля АЦП. Модуль аналого-цифрового преобразователя формирует запрос на прерывание, когда процесс оцифровки очередного сигнала завершен, и двоичный код сигнала может быть считан в память МК.

Прерывание при выходе МК из энергосберегающих режимов. Это прерывание позволяет вывести МК из состояния STOP или WAIT, в котором он находился с целью снижения потребляемой энергии. Такие прерывания очень полезны при объединении нескольких МК в информационную сеть. Мы рассмотрим этот тип прерывания более подробно в следующем параграфе.

 

Вопросы для самопроверки

 

1. Каковы различия между прерыванием и сбросом?

Ответ: И прерывание, и сброс МК вызывают принудительный останов выполнения текущей прикладной программы. Поэтому эти два состояния МК характеризуют общим термином «исключение». Сброс МК обычно вызывается нарушениями в работе узлов МК или ошибках при исполнении прикладной программы. Когда такие неисправности возникают, состояние сброса переводит МК в некоторое начальное состояние, из которого и аппаратные средства и программа могут начать правильное функционирование. Таким образом, возникшая не фатальная неисправность будет устранена. В отличие от сброса, запросы на прерывание генерируются при штатной работе микропроцессорной системы. Они используются для организации работы системы в реальном времени. Запросы могут генерироваться встроенными в МК периферийными модулями или внешними сигналами. В отличие от сброса, при обслуживании запроса на прерывание выполняется специальная подпрограмма прерывания.

2. Каково различие между маскируемыми и немаскируемыми прерываниями?

Ответ: Немаскируемое прерывание не может быть запрещено программистом. Напротив, маскируемое прерывание может быть многократно разрешено и запрещено в ходе исполнения прикладной программы.

3. Каково различие между прерываниями по входам

и

?

Ответ: И

, и

являются входами МК для подключения внешних источников запросов на прерывания. Но прерывания по входу

— маскируемые, а по входу

— немаскируемые.

4. Как организовать подсистему прерывания с несколькими внешними запросами для МК семейства 68HC12/HCS12, используя лишь один вход внешнего прерывания

.

Ответ: Вход внешнего прерывания

обладает низким активным уровнем сигнала. Это означает, что если сигнал на этом входе изменил свое значение с 1 на 0, то в МК генерируется запрос на прерывание. Множество сигналов запросов на прерывание следует объединить по И. Кроме того, каждый из этих сигналов следует подключить к отдельному входу порта МК. Тогда, если все сигналы запросов находятся в неактивном состоянии, на выходе элемента формируется И высокий логический уровень, и вход

также в находится в неактивном состоянии. Если же на одном из входов запросов устанавливается низкий логический уровень, то на входе

формируется активный уровень запроса, в результате по истечении некоторого времени МК переходит к выполнению подпрограммы прерывания. В этой подпрограмме МК опрашивает последовательно все линии порта, к которым подключены сигналы внешних запросов с целью определения, какой из сигналов вызвал прерывание. Далее МК переходит на подпрограмму обслуживания именно этого запроса. Схема подключения сигналов запросов к МК по предложенному способу приведена на рис. 4.16.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.