Контроллер прерываний и внешние прерывания 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Контроллер прерываний и внешние прерывания



Гибкий модуль прерываний содержит свои управляющие регистры в пространстве ввода-вывода и имеет дополнительный бит общего разрешения работы системы прерываний в регистре статуса.

У всех прерываний имеется свой вектор прерывания в соответствии с таблицей векторов прерываний, указанных в таблице 37.1.

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

Некоторые выводы микроконтроллера могут использоваться в качестве внешних прерываний.

Внешние прерывания — это задание микроконтроллеру при выполнении программы режима перехода на процедуру обработки при возникновении изменения внешней линии ввода/вывода(INT).

Выбор изменения линии задается в регистре конфигурации внешних прерываний и определяется:

- по нарастающему фронту;

- по спаду;

- по нулевому уровню.

 


Таблица 37.1 - Вектора сброса микроконтроллера и обработки прерываний

Номер вектора Адрес перехода Источник Описание прерывания
1. 0x0000 RESET Внешний сброс, сброс при включении питания, сброс при срабатывании охранного таймера
2. 0x0001 INT0 Внешний запрос на прерывание по входу INT0
3. 0x0002 INT1 Внешний запрос на прерывание по входу INT1
4. 0x0003 TIMER1 CAPT Прерывание по захвату таймера/ счетчика 1
5. 0x0004 TIMER1 COMPA Прерывание по совпадению таймера/счетчика 1, Канал А
6. 0x0005 TIMER1 OVF Прерывание по переполнению таймера/счетчика 1
7. 0x0006 TIMER0 OVF Прерывание по переполнению таймера/счетчика 0
8. 0x0007 USART0, RX USART0, прием завершен
9. 0x0008 USART0, UDRE USART0, буфер данных пуст
10. 0x0009 USART0, TX USART0, передача завершена
11. 0x000A ANALOG COMP Прерывание от аналогового компаратора
12. 0x000B PCINT Прерывание по изменению на любом из выводов
13. 0x000C TIMER1 COMPB Прерывание по совпадению таймера/счетчика 1, Канал В
14. 0x000D TIMER0 COMPA Прерывание по совпадению таймера/счетчика 0, Канал В
15. 0x000E TIMER0 COMPB Прерывание по совпадению таймера/счетчика 0, Канал А
16. 0x000F USI START Прерывание по USI. Готовность к старту
17. 0x00010 USI OVERFLOW Прерывание по USI. Переполнение
18. 0x00011 EE READY Готовность EEPROM
19. 0x00012 WDT OVERFLOW Переполнение охранного таймера

 

Таймеры/счетчики

Все микроконтроллеры имеют в своем составе таймеры/счетчики количеством до десятка штук и с различной разрядностью (в основном 8 рисунок37.7 или 16 бит рисунок37.8), которые могут работать как таймеры от внутреннего источника опорной частоты, и как счетчики внешних событий с внешним тактированием.

Рисунок 37.7 - Блок-схема восьмиразрядного таймер-счетчика

Рисунок 37.8 - Блок-схема шестнадцатиразрядного таймер-счетчика

 

Общие черты всех таймеров/счетчиков следующие:

- наличие программируемого предварительного делителя входной частоты с различными градациями деления;

- отличительной чертой является возможность работы таймеров/счетчиков на основной тактовой частоте микроконтроллера без предварительного ее понижения, что существенно повышает точность генерации временных интервалов системы;

- независимое функционирование от режима работы процессорного ядра микроконтроллера (т.е. они могут быть, как считаны, так и загружены новым значением в любое время);

- возможность работы или от внутреннего источника опорной частоты, или в качестве счетчика событий. Верхний частотный порог определен в этом случае как половина основной тактовой частоты микроконтроллера.

Выбор перепада внешнего источника (фронт или срез) программируется пользователем;

- наличие различных векторов прерываний для нескольких различных событий (переполнение, захват, сравнение).

Таймеры/счетчики можно использовать для:

- точного формирования временных интервалов,

- подсчета импульсов на выводах МК.

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

- по нарастающему фронту;

- по спаду;

- по нулевому уровню.

Также в таймерах встречается аппаратно реализованный цифровой фильтр нижних частот.

- формирования последовательности импульсов ШИМ-режим (на основе ШИМ можно легко реализовать ЦАП).

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

 


Аналоговый компаратор

Аналоговый компаратор представленный на рисунке 37.9, входит в состав большинства микроконтроллеров. Типовое напряжение смещения равно 10 мВ, время задержки распространения составляет 500 нс и зависит от напряжения питания микроконтроллера. Так, например, при напряжении питания 2,7 вольт оно равно 750 нс. Аналоговый компаратор имеет свой собственный вектор прерывания в общей системе прерываний микроконтроллера. При этом тип перепада, вызывающий запрос на прерывание при срабатывании компаратора, может быть запрограммирован пользователем как фронт, срез или переключение. Логический выход компаратора может быть программным образом подключен ко входу одного из таймеров/счетчиков. Это дает возможность измерять длительность аналоговых сигналов, а также максимально просто реализовывать АЦП двухтактного интегрирования.

Рисунок 37.9 - Блок-схема аналогового компаратора в МК

 



Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 144; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.187.233 (0.008 с.)