Разработка устройства управления на базе микроконтроллера AVR семейства Classic фирмы Atmel
Введение
Микропроцессором (МП) называют построенное на одной или нескольких
БИС/СБИС программно-управляемое устройство, осуществляющее процесс обработки
информации и управление им.
МП - центральный процессорный элемент микропроцессорной системы, в
которую также входят память и устройства ввода/вывода.
Решаемая задача определяется реализуемой программой, структура МП системы
остается неизменной, что и определяет ее универсальность.
Совокупность больших/сверхбольших интегральных схем (БИС/СБИС), пригодных
для совместного применения в составе микро-ЭВМ, называют микропроцессорным
комплектом БИС/СБИС (МПК).
Понятие МПК задает номенклатуру микросхем с точки зрения возможностей их
совместного применения. В состав МПК могут входить микросхемы различных серий и
схемотехнологических типов при условии их совместимости.
Основной особенностью современного этапа развития микропроцессорных
систем является завершение перехода от систем, выполненных на основе нескольких
БИС, к однокристальным микроконтроллерам (МК). Микроконтроллеры - разновидность
МПС, ориентированная на реализацию алгоритмов управления техническими
устройствами и технологическими процессами. Первые МК выпущены фирмой Intel в 1976 г.
МК объединяют в одном кристалле все основные элементы МПС: центральный
процессор (ЦП), постоянное запоминающее устройство (ПЗУ), оперативное
запоминающее устройство (ОЗУ), последовательные и параллельные порты
ввода/вывода, таймеры, аналого-цифровые и цифроаналоговые преобразователи и
другие узлы вычислительной системы. Поэтому вторым названием МК стало название
«однокристальная микро-ЭВМ».
В настоящее время выпускается целый ряд типов МК. Все эти приборы можно
условно разделить на три основных класса:
8-разрядные МК для встраиваемых приложений;
16- и 32-разрядные МК;
цифровые сигнальные процессоры (DSP).
Наиболее распространенным представителем семейства МК являются
8-разрядные приборы, широко использованные в промышленности, бытовой и
компьютерной технике.
Росту популярности 8-разрядных МК способствует постоянное расширение номенклатуры
изделий, выпускаемых такими известными фирмами, как Motorola, Microchip, Intel, Zilog,
Atmel и многие другие.
В данном курсовом проекте рассматривается микроконтроллер AVR семейства Classic фирмы Atmel.
Микроконтроллеры этого семейства (впрочем, как и все микроконтроллеры AVR фирмы «Atmel») являются 8-разрядными микроконтроллерами,
предназначенными для встраиваемых приложений.
В семейство Classic входят
микроконтроллеры с различным сочетанием периферийных устройств, различными
объемами встроенной памяти и различным количеством выводов. Такое разнообразие
дает разработчику возможность сделать оптимальный выбор и использовать именно
тот микроконтроллер, который наилучшим образом подходит для его нужд.
.
Структурная схема устройства управления
микроконтроллер управление схема
Для выполнения функций, перечисленных в техническом задании, схема
устройства управления чтения/записи должна содержать следующие блоки:
─ микроконтроллер (AVR);
─ блок схемы питания;
─ генератор тактовых импульсов, обеспечивающий работу
центрального процессорного элемента;
─ блок объект управления;
Все перечисленные устройства и связи между ними показаны на схеме
электрической структурной устройства управления на базе микроконтроллера.
Алгоритм работы устройства поясняется в главе 2.
2. Алгоритм функционирования системы
Алгоритм работы микроконтроллера в составе устройства управления обычно
имеет цикличную структуру и состоит из следующих блоков:
. блок подпрограммы начального пуска;
. блок настройки таймера Т0;
. блок пуска АЦП;
. блок проверки входного сигнала;
. переход в спящий режим и ожидание сигнала таймера;
. переход к возобновлению цикла работы.
Блок-схема алгоритма работы устройства управления представлена на
рисунках 1 и 2. Также на рисунках 3 и 4 представлены диаграммы циклов чтения и
записи.
Рисунок 1. Блок-схема алгоритма работы устройства управления команда
чтение
Рисунок
2. Блок-схема алгоритма работы устройства управления команда чтение
Рисунок
3. Диаграмма цикла чтения
Рисунок
4. Диаграмма цикла записи
.
Выбор элементной базы
В
качестве центрального процессорного элемента выбран микроконтроллер AT90S2313,
структурная схема которого показана на рисунке 5. Он обладает следующими
параметрами:
20
портов ввода/вывода
Ресурс:
100 000 циклов запись/ стирание
2
Кбайт Flash- памяти с поддержкой внутрисистемного
программирования
Рабочие
регистры общего назначения 32 х 8
Один
8-ми разрядный таймер/ счетчик с отдельным предварительным делителем частоты
Один
16-ти разрядный таймер/ счетчик с отдельным предварительным делителем частоты с
режимами сравнения и захвата
Программируемый
следящий таймер с встроенным тактовым генератором
Выбираемые
8, 9, или 10-ти разрядные режимы широтно - импульсной модуляции (ШИМ)
15
программируемых линий I/O
Программируемый
сторожевой таймер с отдельным независимым генератором
Встроенный аналоговый компаратор
Сброс
при включении питания, программируемая защита от провалов питания
Программируемая
блокировка для безопасности программного обеспечения
Внешние и внутренние источники прерывания
Экономичные
режимы ожидания и пониженного энергопотребления
Питание
VCC: от 2.7 В до 6.0 В
Полностью
статический режим работы:
От
0 до 10 МГц, при питании от 4.0 В до 6.0 В
От
0 до 4 МГц, при питании от 2.7 В до 6.0 В
Тактовая
частота 0-16 МГц
Расположение выводов модели показано на рисунке 5.
Микроконтроллер AT90S2313 выполнен по технологии CMOS, 8-разрядный, микропотребляющий,
основан на AVR-архитектуре PISC. Выполняя одну полноценную инструкцию за один такт, AT90S2313 достигает производительности 1 MIPS на МГц, позволяя достигнуть оптимального соотношения
производительности к потребляемой энергии.
Память данных предназначена для работы с данными (чтение и запись
данных), которые используются в программе-прошивке микроконтроллера AT90S2313.Память данных является энергозависимой. Это значит, что
при отключении питания микроконтроллера все данные в ней будут потеряны.
Встроенная Flash - память с
поддержкой внутрисистемного программирования обеспечивает возможность
перепрограммирования программного кода в составе системы, посредством SPI последовательного интерфейса, или с
помощью стандартного программатора энергонезависимой памяти. Благодаря
совмещению усовершенствованного 8-ми разрядного RISC CPU с Flash-
памятью с поддержкой внутрисистемного программирования на одном кристалле
получился высокопроизводительный микроконтроллер AT90S2313,
обеспечивающий гибкое и экономически- высокоэффективное решение для многих
приложений встраиваемых систем управления.
Область регистров общего назначения (рабочих регистров) используется для
хранения переменных и указателей. В микроконтроллере AT90S2313 область
рабочих регистров состоит из 32-х восьмиразрядных регистров (диапазон адресов
0x000-0x01F). Если прошивка микроконтроллера пишется на языке С, то обращаться
к этим регистрам обычно не требуется (хотя к ним можно обратиться при помощи
ассемблерных вставок в С-программу).
Регистры ввода/вывода микроконтроллера AT90S2313 включают в
себя 64 регистра, которые используются для управления периферийными
устройствами, а также для хранения данных периферийных устройств.
В режиме Power Down сохраняется содержимое регистров, но
приостанавливается работа внутреннего генератора и отключаются все остальные
функции микросхемы. Выход из режима возможен по внешнему прерыванию или после
системного сброса. Такое решение позволяет совмещать быстрый старт с низким
энергопотреблением.
Рисунок 5. Расположение выводов микроконтроллера AT90S2313
Состав устройств микроконтроллера AVR меняется от модели к модели, более того, одно и то же
устройство в разных моделях использует различные ресурсы микроконтроллера (в
частности, различные выводы). Разумеется, существует ряд периферийных
устройств, присутствующих во всех микроконтроллерах семейства: сторожевой
таймер, 8-разрядный таймер/счетчик реального времени (таймер T0) и,
естественно, порты ввода/вывода. Структурная схема микроконтроллера AT90S2313 представлена на рисунке 6. Внутренний тактовый генератор
AVR может запускаться от нескольких
источников опорной частоты. Поскольку AVR-микроконтроллеры полностью статические, минимальная допустимая частота
ничем не ограничена. Максимальная рабочая частота определяется конкретным типом
микроконтроллера и составляет 4,8,14,16 МГц.
Рисунок 6. Структурная схема микроконтроллера AT90S2313
Микроконтроллеры AVR
имеют в своем составе от 1 до 4 таймеров/ счетчиков общего назначения с
разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего
источника опорной частоты, и как счетчики внешних событий с внешним
тактированием.
Также имеется сторожевой (WDT)
таймер, который предназначен для защиты микроконтроллера от сбоев в процессе
работы. Он имеет собственный RC-генератор,
работающий на частоте 1МГц. WDT-таймер
снабжен собственным предделителем входной частоты, что позволяет программно
регулировать временной интервал переполнения таймера (т.н. тайм-аут), по
истечении которого происходит сброс микроконтроллера.
AVR -
микроконтроллеры могут быть переведены программным путем в один из режимов
пониженного энергопотребления. Для разных семейств AVR и разных микроконтроллеров в пределах каждого
семейства изменяются количество и сочетание доступных режимов пониженного
энергопотребления
AVR
функционируют в широком диапазоне питающих напряжений от 1,8 до 6,0 В.
Температурные диапазоны работы микроконтроллеров AVR - коммерческий (0С…70С), индустриальный (-40С…+85С),
автомобильный (-40С…+125С) и военный (-55С…+125С).
4. Принципиальная схема устройства управления
Принципиальная схема устройства управления на базе микроконтроллера AT90S2313 показана на схеме СЕРБ.6100101.Э3. Основной микросхемой
в ней является сам микроконтроллер; остальные элементы либо обеспечивают его
рабочий режим, либо используются для ввода/вывода информации.
Кварцевый резонатор ZQ с
номиналом 4МГц задает тактовую частоту работы микроконтроллера. В результате
время выполнения одной команды составит 1мс. Конденсаторы С1=С2=C3=30 пФ образуют цепь запуска
генератора.
Питание контроллера осуществляется от сети переменного тока с напряжением
220 В и частотой 50 Гц. Поскольку напряжение питание контроллера осуществляется
постоянным током с напряжением +5 В, то ставится схема питания, которая состоит
из понижающего трансформатора, выпрямителя, выполненного по схеме диодного
моста и стабилизатора напряжения.
5. Расчет временных параметров работы схемы
Для отсчета временных интервалов, равных периоду чтения/записи, удобно
использовать модуль таймера Т0, входящий в состав микроконтроллера AT90S2313.
Модуль содержит 8-разрядный таймер - счетчик, содержимое которого
инкрементируется от 00H до FFH и при переполнении снова переходит в
состояние 00H. Прерывание от таймера Т0
генерируется при переполнении, при этом устанавливается флажок TOV0 (разряд 0 регистра TIFR). Это прерывание можно использовать
для пробуждения МК и начала нового цикла чтения/записи.
Структурная схема таймера/счетчика Т0 показана на рисунке 6.
Рисунок 6. Структурная схема таймера/счетчика Т0
Таймер/счетчика Т0 может работать в двух режимах:
Режим таймера. В этом режиме на вход таймера/счетчика поступают
импульсы тактового сигнала микроконтроллера (непосредственно или через
предделитель);
Режим счетчика событий. В этом режиме инкремент содержимого
счетного регистра производится по активному фронту сигнала на входе T0
микроконтроллера.
Выбор режима работы (источника тактового сигнала), а также запуск и
остановка таймера/счетчика осуществляются с помощью разрядов CS02…CS00 регистра
управления таймером TCCR0.
Предделитель таймера Т0 позволяет формировать продолжительные временные
интервалы (задержки). Для его программирования необходимо загрузить код
начальной установки в счетный регистр таймера TCNT0 (адрес $32)и определить коэффициент деления
предделителя в регистре управления TCCR0 (адрес $33). Для расчета величины временной задержки используется
формула:
Τзад = (2k -Ainu)× kдел / fCLK : (1)
где
– Ainu - код инициализации;
– k - разрядность счетчика таймера;
– kдел - коэффициент деления частоты;
– fCLK - тактовая частота микроконтроллера;
Выразим код инициализации Ainu:
Ainu = 2k
- (Τзад× fCLK / kдел), (2)
Т.к. разрядность счетчика таймера Т0 8-разрядная, то 28= 256.
Согласно заданию, длительность сигнала равно 1 мс, следовательно, величина
временной задержки таймера
Τзад = 0.001 (с)
Полагая что, kдел= 1024, а тактовая частота
микроконтроллера fCLK=
4МГц, то по формуле (2) определяем значение кода инициализации
Ainu= 256 - (0,001*4*106 / 1024)= 256 - 4 = 252
Полученное значение переводим в шестнадцатеричный код:
D=FC
Это означает, что в процессе программирования в счетный регистр TCNT0 таймера Т0 должно быть записано
значение FC.
В регистр управления таймера Т0 TCCR0 должно быть записано слово, определяющее режим работы таймера и
коэффициент предделителя его входной частоты k дел.=1024. Код слова:
Разряды TCCR0
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
TCCR0:
= 11111100D
Заключение
В ходе курсовой работы мы рассмотрели особенности и возможности
микроконтроллеров AVR. Также было
разработано устройство на основе микроконтроллера AVR, а именно матрицу кнопочных переключателей.
Особенностью разработанного устройства является минимальное использование
различных составляющих компонентов, а следовательно и низкая стоимость при
значительных функциональных возможностях.
Список литературы
1 Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы. - М.:
Издательский дом «Додэка - XXI»,
2004. - 288 с.: ил. (Серия «Мировая электроника»).
2 Евстифеев А.В.
Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL.
- M.: Издательский дом «Додэка - XXI», 2005. - 560 с.: ил. (Серия
«Мировая электроника»);
Трофименко В.Н., Трофименко
Е.Н. Цифровые устройства и микропроцессоры: микроконтроллеры. Учебное пособие
для выполнения лабораторных работ. Часть 2. Ростов- на-Дону: РИСЮРГУЭС, 2006
-104 с.