- •Гоу впо "Воронежский государственный технический университет" Кафедра «Автоматика и информатика в технических системах» микроконтроллеры в системах управления
- •Исследование системы управления исполнительного уровня на микроконтроллерах Лабораторная работа № 4
- •Структура системы управления
- •Описание фрагмента платы управления, используемого в лабораторной работе
- •Описание платы драйвера
- •Режимы управления шаговым двигателем
- •Структура мк семейства х51
- •Описание системы средств отладки ретро
- •Основы работы в системе
- •Состав программного обеспечения
- •Справочная система
- •Порядок работы с системой ретро
- •Предварительное задание
- •Рабочее задание
- •Содержание отчета
- •Контрольные вопросы
- •О рганизация памяти
- •Регистры общего назначения
- •Р егистры ввода/вывода
- •Основные служебные регистры мк
- •Порты ввода/вывода
- •Средства разработки алгоритмов и программ для мк
- •Предварительное задание
- •Рабочее задание
- •Контрольные вопросы
- •Предварительное задание
- •Рабочее задание
- •Указания по применению программы Algorithm Builder Метки обслуживания прерываний
- •Память данных
- •Контрольные вопросы
- •Приложение Названия и номера регистров и портов avr Classic
- •Библиографический список
- •Содержание
- •394026 Воронеж, Московский просп., 14
Контрольные вопросы
Перечислите основные особенности программ для управляющих ЭВМ.
Перечислите основные требования к структуре и составу управляющей ЭВМ.
Опишите состав и основные возможности среды Algorithm Builder.
Каково быстродействие исследованных вами МК?
Опишите состав РСП и назначение его разрядов.
Опишите организацию портов МК AVR.
Конфигурирование портов и управление данными.
Представьте краткое содержание каждого проработанного вами алгоритма.
Объясните, как изменяются в ходе эмуляции разряды РСП и значение SP и как используются эти изменения в программе.
Приведите метод вычисления длительности перехода «1» из одного разряда порта B в другой и результат.
Объясните механизмы действия макрооператоров и инструмента SETTER.
Перечислите полученные навыки составления алгоритмов и навыки пользования средой Algorithm Builder.
ФОРМИРОВАНИЕ АЛГОРИТМОВ УПРАВЛЕНИЯ В РЕАЛЬНОМ ВРЕМЕНИ
Лабораторная работа № 6
Цель работы – изучить возможности управления процессами в реальном времени
Теоретические сведения
Микроконтроллеры AVR имеют в своем составе от одного до трех таймеров/счетчиков общего назначения (плюс сторожевой таймер для предотвращения зацикливания программы).
Таймеры позволяют микроконтроллеру, не загружая процессор, решать следующие задачи:
• отсчет равных интервалов времени заданной длительности, повтор алгоритма управления по истечении каждого такого временного интервала; обычно эту функцию называют формированием меток реального времени.
• контроль за изменением состояния линии ввода МК;
• измерение длительности сигнала заданного логического уровня на линии ввода МК;
• подсчет числа импульсов внешнего сигнала на заданном временном интервале;
• формирование на линии вывода МК сигнала заданного логического уровня с программируемой задержкой по отношению к изменению сигнала на линии ввода;
• формирование на линии вывода МК импульсного сигнала с программируемой частотой и программируемым коэффициентом заполнения.
Отсюда следует функциональное назначение таймеров/ счетчиков.
В данной работе будет исследоваться Т1, поэтому рассмотрим его подробнее. Структурная схема Т1 приведена на рис. 6.1.
Функционирование T1 зависит от содержимого следующих регистров управления, состояния и данных (табл. 6.1-6.3):
Рис. 6.1. Структурная схема таймера Т1
Таблица 6.1
Название |
Функция |
TCNT1H |
Счетный регистр таймера/счетчика 1 (ст. байт) |
TCNT1L |
Счетный регистр таймера/счетчика 1 (мл. байт) |
TCCR1A |
Регистр управления А таймером/счетчиком 1 |
TCCR1B |
Регистр управления B таймером/счетчиком 1 |
ICR1H |
Регистр захвата таймера/счетчика 1 (старший байт) |
ICR1L |
Регистр захвата таймера/счетчика 1 (младший байт) |
OCR1AH |
Регистр совпадения выхода A (старший байт) |
OCR1AL |
Регистр совпадения выхода A (младший байт) |
OCR1BH |
Регистр совпадения выхода B (старший байт) |
OCR1BL |
Регистр совпадения выхода B (младший байт) |
TIFR |
Регистр флагов событий таймера/ счетчика |
TIMSK |
Регистр маски прерываний от таймера/ счетчика |
SREG |
Регистр состояния – флаг разрешения прерываний I (см. табл. 17.1) |
Рассмотрим реализацию основных режимов работы таймера, начиная со счетного режима.
Основным элементом любого таймера является счетный регистр. Счетный регистр таймера/счетчика Т1 реализован как суммирующий (в режиме ШИМ – как суммирующий/вычитающий) 16-разрядный счетчик. Физически регистр TCNT1 размещен в двух регистрах TCNT1H:TCNT1L. После подачи напряжения питания в регистре TCNT1 находится нулевое значение. При его переполнении устанавливается флаг TOV1 регистра событий TIFR (см. ниже) и счет начинается с нуля, а также запрос на прерывание (при наличии соответствующих разрешений – см. ниже).
TCNT1 доступен в любой момент времени как для чтения, так и для записи. При записи в счетный регистр во время работы таймера счет будет продолжен по следующему за операцией записи импульсу тактового сигнала таймера/счетчика. Чтобы при обращении ЦПУ микроконтроллера к этим регистрам запись или чтение обоих байтов содержимого счетного регистра происходило одновременно, обращение производится с использованием специального 8-разрядного регистра TEMP (этот регистр используется только процессором и программно недоступен). Этот же регистр используется и при обращении к остальным 16-разрядным регистрам таймера/ счетчика Т1: OCR1 (OCR1A и OCR1B) и ICR1. Прерывания на время обращения к любому из этих регистров должны быть запрещены. Для выполнения полного цикла записи в 16-разрядный регистр первым должен быть загружен старший байт (регистр TCNT1Н). Для выполнения полной операции чтения 16-разрядного регистра первым должен быть прочитан младший байт (регистр TCNT1L).
У правление таймером/счетчиком Т1 осуществляется с помощью регистров управления TCCR1A и TCCR1B (рис. 6.2).
Рис.
6.2. Формат регистров TCCR1A
и TCCR1B
Значение необходимых для выполнения работы разрядов этих регистров будет описано далее. Неиспользуемые разряды регистров доступны только для чтения и содержат «0». Начальное значение (после сброса микроконтроллера) всех разрядов регистра – «0».
В частности, выбор источника тактового сигнала, а также запуск и остановка таймера/счетчика осуществляются с помощью разрядов CS12...CS10 регистра управления таймером TCCR1B. Соответствие между состоянием этих разрядов и режимом работы таймера/счетчика приведено в табл. 6.2.
Таблица 6.2
Выбор источника тактового сигнала для таймера/счётчика Т1
CS12 |
CS11 |
CS10 |
Источник тактового сигнала |
2 |
1 |
0 |
← Номера разрядов TCCR1B |
0 |
0 |
0 |
Таймер/счетчик остановлен |
0 |
0 |
1 |
СК (тактовый сигнал микроконтроллера) |
0 |
1 |
0 |
CK/8 |
0 |
1 |
1 |
СК/64 |
1 |
0 |
0 |
СК/256 |
1 |
0 |
1 |
СК/1024 |
В таймере предусмотрен режим контроля совпадения текущего значения отсчета с одним из двух заранее заданных значений. Если состояние таймера/счетчика становится равным числу, находящемуся в одном из регистров совпадения, то в следующем машинном цикле устанавливается соответствующий этому регистру флаг события в регистре TIFR (для регистра OCR1A – флаг ОСЕ1А, для регистра OCR1В – флаг OCF1B) и генерируется запрос на прерывание. Разрешение прерываний осуществляется установкой в «1» соответствующих флагов регистра TIMSK (OCIE1, OCIE1A и OCIE1B для регистров OCR1, OCR1A и OCR1B соответственно). Сигнал совпадения выводится в качестве альтернативной функции на один из выводов МК, обозначаемый ОС1А для регистра OCR1A и ОС1В для OCR1В. Управление характером переключения сигнала ведется разрядами TCCR1A и TCCR1В. Для регистра OCR1А при равенстве данных счетного регистра и регистра сравнения может выполняться сброс таймера/счетчика.
Каждый регистр сравнения физически размещается в двух регистрах ввода-вывода PBВ: OCR1A – OCR1AH:OCR1AL; OCR1B – OCR1BH:OCR1BL.
Реализованный в таймере режим захвата позволяет зафиксировать значение кода в счетном регистре в момент появления внешнего сигнала захвата, сохранив этот код в регистре захвата ICR1. В данной лабораторной работе он не исследуется.
Выполнение таймером своих функций отображается в регистре событий TIFR в значениях соответствующих битов (флагов) – табл. 6.3.
Таблица 6.3
Разряд |
Название |
Описание |
5 |
ICF1 |
Флаг устанавливается в «1» при загрузке содержимого таймера/счетчика в регистр ICR1 (событие «захват») |
4 |
ОСF1A |
Флаг устанавливается в «1» при совпадении значения таймера/ счетчика Т1 с содержимым регистра OCR1A (событие «совпадение A») |
3 |
ОСF1B |
Флаг устанавливается в «1» при совпадении значения таймера/ счетчика Т1 с содержимым регистра OCR1B (событие «совпадение B») |
2 |
TOV1 |
Флаг устанавливается в «1» при переполнении таймера/счетчика Т1 |
Каждый флаг этого регистра сбрасывается аппаратно при запуске подпрограммы обработки соответствующего прерывания или программно – записью в него лог. «1».
Для разрешения какого-либо прерывания от таймера необходимо установить в «1» соответствующий разряд регистра маски TIMSK (табл. 6.4) и, разумеется, флаг I регистра SREG.
Таблица 6.4
Разряд |
Название |
Описание |
5 |
TICIE1 |
Флаг разрешения прерывания по событию «Input Capture» («захват») таймера/счетчика Т1 |
4 |
ОСIЕ1A |
Флаг разрешения прерывания по событию «Compare Match A» («совпадение A») Т1 |
3 |
ОСIЕ1B |
Флаг разрешения прерывания по событию «Compare Match B» («совпадение B») Т1 |
2 |
ТОIЕ1 |
Флаг разрешения прерывания по переполнению таймера-счетчика Т1 |
Для выполнения перечисленных функций каждый таймер использует один или более выводов МК. Как правило, эти выводы – линии портов ввода/вывода общего назначения, а функции, реализуемые этими выводами при работе совместно с таймерами/счетчиками, являются их альтернативными функциями. В этих случаях необходимо предварительно самостоятельно сконфигурировать эти выводы в соответствии с их функциональным назначением (выход или вход с/без подтягивающего резистора).