Материал: Микропроцессорные устройства систем управления (2005)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

каждого из этих сигналов, 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

6.Интерфейс UART реализует обмен данными с СОМ-портом персональ­ ного компьютера для координации работы микроконтроллера с другими устройствами.

7.Внешние прерывания обеспечивают прием и обработку сигналов циф­ ровых датчиков и сигналов управления, требующих быстрой реакции микроконтроллера (например, сигнал аварийной остановки системы управления и т.п.).

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

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

73

4. СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРОВ AVR

Реализация необходимых функций микроконтроллером требует эффек­ тивного управления его программно-аппаратными средствами. Это управ­ ление и координация работы различных средств производится рабочими программами. Подготовка рабочих программ микроконтроллеров может выполняться на персональном компьютере с помощью инструментальных средств фирмы ATMEL, например, AVR Studio.

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

Система команд микроконтроллера AT90S8535 содержит 118 команд и предусматривает выполнение стандартных операций пересылки данных, арифметических и логических операций, команд управления. К дополни­ тельным возможностям, реализованным в системе команд, можно отнести:

• выполнение двух операций одной командой (например, команда

Id r24, X+ производит пересылку байта данных из ОЗУ в регистр R24 с последующим инкрементом адреса в регистре X);

•операции с отдельными битами (например, команда cbr r18, 2 очищает (обращает в 0) бит 1 регистра R18);

•операции с данными не только в файле регистров общего назначения, но и в файле регистров ввода-вывода (например, команда sbi PORTC, PC7 устанавливает (обращает в 1) бит 7 регистра PORTC);

•условные команды управления по состоянию любого бита регистра со­ стояния SREG или других регистров (например, команда brtc label вы­ полняет переход к метке label, если флаг копирования Т очищен).

В дальнейшем будут использоваться стандартные мнемонические обо­ значения как для команд, так и для их параметров. Стандартные мнемони­ ческие обозначения (имена) регистров и отдельных битов в них содержатся в специальных файлах, например, M8535def.inc", и включаются с помощью директив компилятора в тексты программ. Регистр состояния (флагов) микроконтроллера SREG играет важную роль в рабочих программах, биты этого регистра определяют условия для выполнения команд управления.

74

Источник: https://studfile.net/preview/16521245/