Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.06.2025

Просмотров: 1579

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

радой в байте.

S - флаг знака, его значение определяется суммой по mod 2 флагов N ® V. V - флаг дополнения до двух.

N - флаг отрицательного результата арифметических или логических опе­ раций.

Z - флаг нулевого результата арифметических или логических операций. С - флаг переноса в арифметических или логических операциях.

Регистр - указатель стека имеет размер 2 байта и состоит из двух реги­ стров SPL, SPH файла регистров ввода-вывода. При инициализации необ­ ходимо всегда определять адрес вершины стека. Рекомендуется задавать максимальный физический адрес ОЗУ с символическим именем RAMEND, тогда объем стека будет определяться физическим объемом ОЗУ. Стек все­ гда используется при вызове векторов прерываний для сохранения текуще­ го состояния программного счетчика.

Сигналы внешних прерываний INTO (альтернативная функция линии PD2) и INT1 (альтернативная функция линии PD3) обрабатываются с помощью регистров GIFR, GIMSK и общего регистра управления MCUCR файла регистров ввода-вывода. В регистре GIMSK биты INT1 (бит 7) и INTO (бит 6) определяют разрешение внешних прерываний, а в регистре GIFR флаги INTF1 (бит 7) и INTFO (бит 6) обеспечивают вызов векторов внешних прерываний по процедурам, аналогичным обработке других векторов прерываний.

Параметры сигналов, формирующие флаги внешних прерываний, опре­ деляются битами ISC01, ISC00 и ISCll, ISC10 регистра MCUCR. Осталь­ ные биты этого регистра определяют параметры режима sleep, в этом ре­ жиме приостанавливается работа основных устройств микроконтроллера для снижения энергопотребления и уровня помех.

Символические имена битов управления в регистре MCUCR

1 - 1 SE | SMI | SMO | ISCll | ISC10 \ ISC01 I ISCOO I

SE - бит разрешения режима sleep; если бит установлен, микроконтроллер программно переводится в режим sleep командой "sleep".

SMI и SMO определяют вид режима sleep: 00 - режим idle,

01 - не используется,

10 - режим power-down,

11 - режим power save.

Младшие 4 бита определяют параметры сигналов внешних прерываний для формирования флагов INTF1, INTF0. Биты попарно управляют обработкой

69


каждого из этих сигналов, ISCX1, ISCX0 (X - это 0 или 1) могут прини­ мать следующие значения:

00 - низкий уровень сигнала внешнего прерывания ус­ танавливает флаг,

01 - не используется,.

10 - падающий фронт сигнала внешнего прерывания устанавливает флаг,

11 - нарастающий фронт сигнала внешнего прерывания устанавливает флаг.

Необходимо учитывать, что при конфигурировании PD2 или PD3 выходом, программное изменение этих сигналов также формирует соответствующие флаги и может приводить к вызову векторов прерываний.

Сторожевой таймер (Watchdog Timer) можно использовать для кон­ троля корректности работы микроконтроллера. Если сторожевой таймер включен битами управления регистра WDTCR, через определенные ин­ тервалы времени (задаются программно в интервале от 15 мс до 2 с) фор­ мируется сигнал RESET. Корректно работающая программа должна преду­ сматривать периодический сброс сторожевого таймера, предотвращая по­ вторную инициализацию микроконтроллера сигналом RESET. Отсутствие своевременного сброса сторожевого таймера может рассматриваться как некорректное выполнение каких-либо функций и приведет к повторной инициализации. Режимы и параметры работы сторожевого таймера опреде­ ляются программно через регистр управления WDTCR, который досту­ пен для записи и чтения.

Символические имена битов управления в регистре WDTCR

-.

-

- WDTOE J WDE

WDP2 ] WPP1 PwDPO [

WDTOE - бит разрешения для изменения состояния сторожевого таймера. WDE - бит включения сторожевого таймера; 1 - таймер включен,

0 - таймер выключен.

WDP2, WDP1, WDP0 - биты управления периодом формирования сигнала RESET сторожевым таймером. 000 - минимальный период (около 15 мс), 1 1 1 - максимальный период (около 2 с).

Изменение состояния сторожевого таймера (включен/выключен, бит WDE) возможно только по следующему алгоритму: биты WDTOE, WDE обязательно и одновременно должны быть установлены в единицу; затем в течение 4 тактов микроконтроллера в бит WDE должно быть записано тре­ буемое значение (0 - выключение, 1 - включение). После 4 тактов WDTOE сбрасывается автоматически. Период работы сторожевого таймера зависит

70


от битов управления и напряжения питания, более подробную информацию можно найти в руководствах фирмы ATMEL.

Основное назначение рассматриваемой системы прерываний - организа­ ция взаимодействия всех средств микроконтроллера при решении приклад­ ных задач. Все аппаратные средства микроконтроллера (процессор, тайме­ ры, интерфейсы, АЦП и т.п.) могут работать и работают параллельно и не­ зависимо друг от друга. В то же время каждое из устройств обеспечивает выполнение каких-либо ограниченных функций, которые являются только элементами общей прикладной задачи. Эта общая задача на определенных этапах требует обмена данными между устройствами, запуска или останова отдельных процедур, изменения параметров или режимов работы и т.п. Система векторов прерываний позволяет выделить моменты времени, ко­ гда завершаются очередные операции и требуется определенная реакция других элементов микроконтроллера для продолжения работы.

Очевидно, что возможность параллельной реализации нескольких функ­ ций весьма существенно расширяет возможности микроконтроллера и уве­ личивает быстродействие. Во всех моделях микроконтроллеров AVR со­ держатся средства аппаратной, а, следовательно, параллельной реализации разнообразных стандартных задач, которые должны решаться при управле­ нии техническими объектами. Как показано ранее, все эти аппаратные средства многофункциональны, в них предусмотрены различные режимы и параметры работы, и они требуют программной настройки через соответ­ ствующие регистры ввода-вывода. Многофункциональность позволяет в процессе работы на различных ее этапах управлять параметрами и режи­ мами аппаратных средств. Эта возможность также может использоваться для повышения эффективности применения микроконтроллеров.

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

Именно процедуры обработки прерываний в микроконтроллерах AVR позволяют выполнять достаточно гибкий, программно-управляемый кон­ троль реализуемых функций. Средства управления работой аппаратных средств в обработке прерываний следующие:

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

71


программное управление флагом общего разрешения прерывания (флаг I регистра SREG) - в любых программах на произвольных этапах с по­ мощью этого флага можно программно запрещать или разрешать обра­ ботку всех прерываний;

аппаратное управление флагом общего разрешения прерывания - при вызове любого вектора прерывания флаг глобального разрешения I очищается аппаратно и восстанавливается (командой reti) при заверше­ нии обработки прерывания (кроме того, подпрограмма обработки любо­ го вектора прерывания также может программно изменять состояние флага I, разрешая обработку и других прерываний);

вектора прерываний содержат в соответствующих регистрах вводавывода индивидуальные флаги разрешения (маскирования) - это позво­ ляет программно разрешать или запрещать вызов каждого из векторов прерываний на любых этапах работы независимо от других векторов;

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

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

Стандартное распределение параллельно реализуемых в микроконтрол­ лере функций для управления техническим объектом может быть следую­ щим (каждый пункт в данном примере - отдельный параллельно реализуе­ мый процесс):

1.АЦП выполнят преобразование поступающего от датчика аналогового сигнала (время преобразования около 100 мкс, за этот период процессор может выполнить несколько сот команд рабочей программы).

2.Процессор, выполняя команды основной программы, производит обра­ ботку кодов, поступивших ранее от АЦП и других интерфейсов микро­ контроллера, и формирует новые значения управляющих сигналов и данных для индикации.

3.Параллельные порты ввода-вывода обеспечивают вывод сформиро­ ванных ранее сигналов управления и индикации.

4.Таймеры формируют сигналы с заданными ранее в программе времен­ ными характеристиками и/или в режиме модулятора ШИМ выдают сиг­ налы управления исполнительными устройствами.

5.Интерфейс SPI передает полученные от процессора данные для управ­ ления символьным или матричным индикатором.

72