Модуль прерываний МК

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

В качестве входов для приема запросов от внешних источников чаще всего используются выводы параллельных портов ввода/вывода, для ко­торых эта функция является альтернативной. Источниками запросов вне­шних прерываний также могут быть любые изменения внешних сигналов на некоторых специально выделенных линиях портов ввода/вывода.

Источниками внутренних запросов прерываний могут служить следу­ющие события:

• переполнение таймеров/счетчиков;

• сигналы от каналов входного захвата и выходного сравнения тайме­
ров/счетчиков или от процессора событий;

• готовность памяти ЕЕРRОМ;

• сигналы прерывания от дополнительных модулей МК, включая завершение передачи или приема информации по одному из последо­вательных портов и другие.

Любой запрос прерывания поступает на обработку, если прерывания в МК разрешены и разрешено прерывание по данному запросу. Адрес, ко­торый загружается в программный счетчик при переходе к обработке пре­рывания, называется «вектор прерывания». В зависимости от организа­ции модуля прерываний конкретного МК различные источники прерываний могут иметь разные векторы или использовать некоторые из них совместно. Использование различными прерываниями одного век-гора обычно не вызывает проблем при разработке программного обеспе­чения, так как аппаратная часть МК фиксирована, а контроллер чаще всего выполняет одну-единственную программу.

Вопрос о приоритетах при одновременном поступлении нескольких опросов на прерывание решается в различных МК по-разному. Есть МК с одноуровневой системой приоритетов (все запросы равноценны), мно­гоуровневой системой с фиксированными приоритетами и многоуровневой программируемой системой приоритетов.

Отдельно необходимо описать аппаратные прерывания, связанные с включением питания, подачей сигнала «сброс» и переполнением сторо­жевого таймера. Они имеют немаскируемый характер и чаще всего разделяют один общий вектор прерывания. Это вполне логично, поскольку результатом каждого из событий является начальный сброс МК.


Контрольные вопросы

ЛЕКЦИЯ № 9

1. Какое значение сигнала считывается при вводе данных с порта микроконтроллера?

q содержимое триггера данных

q содержимое триггера регистра управления

q логическое "И" над содержимым триггера данных и значением сигнала на внешнем выводе МК

q значение сигнала на внешнем выводе МК

 

2. При каких условиях триггер переполнения таймера/счетчика генерирует запрос на прерывание микроконтроллера?

q при переполнении таймера/счетчика

q при сбросе таймера/счетчика

q при сбросе запроса на прерывания

q при переполнении таймера/счетчика, если прерывания от таймера разрешены

 

3. Для чего в первую очередь предназначен модуль выходного сравнения микроконтроллера?

q для формирования временных интервалов заданной длительности

q для сравнения информации на двух портах МК

q для измерения интервалов между событиями на выходах МК

q для выдачи импульсов фиксированной частоты

 


4. Какой тип логической функции позволяет реализовать объединение «квазидвунаправленных» выходов микроконтроллера?

q сложение по модулю 2

q логическое "И"

q логическое "ИЛИ"

q константа"1"

 

5. Для чего в первую очередь предназначен модуль входного захвата микроконтроллера?

q для отслеживания изменений сигнала на входе МК для подсчета количества событий на входе МК

q для измерения временных интервалов между событиями на входах МК

q для выдачи импульсов фиксированной продолжительности

 

6. Какой параметр выходного сигнала изменяется при широтно-импульсной модуляции?

q частота

q уровень логического "О"

q скважность

q уровень логической "1"

7. Какова типичная разрядность таймера/счетчика в составе микроконтроллера?

q 32

q 64

q 8 или 16


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

q ошибки, связанные с временем перехода к подпрограмме обработки прерывания

q потери времени на перезагрузку таймера/счетчика

q потери времени при фиксации события захвата

q потери времени при чтении содержимого регистра входного захвата

 

9. Что называется «вектором прерывания» микроконтроллера?

q уровень приоритета данного типа прерывания

q состояние линии приема запросов на прерывание

q адрес перехода к подпрограмме обработки прерывания

q состояние бита разрешения прерываний МК