logo
Методичка

13.3 Общие сведения об омк avr

Однокристальные AVR-микроконтроллеры представляют высокопродуктивные RISC-контроллеры общего назначения. Они были созданы группой разработчиков исследовательского центра корпорации Atmel (Норвегия), инициалы которых и сформировали марку AVR. Особенностью AVRмикроконтроллеров является их широкая номенклатура, которая позволяет пользователю выбрать микроконтроллер с минимальной аппаратной избыточностью и, следовательно, наименьшей стоимости. Так, например, в номенклатуру группы AT90S входят контроллеры с ПЗУ объемом от 1 до 8 Кбайт, с самыми разными наборами периферии и в корпусах с количеством выводов от 8 до 48. В данное время в серийном производстве находятся несколько семейств AVR: Tiny, Classic, Mega, Xmega, picoPower, CAN-AVR, USB-AVR, LCD-AVR, Lighting-AVR, Smart-Battery-AVR, Automotive, AVR-Z-Link.

Микроконтроллеры Tiny  наиболее дешевые и простые, Mega  более мощные, a Classic занимают промежуточное место между ними. Xmega – с улучшенными по сравнению с Mega характеристиками, LCD-AVR – со встроенным драйвером жидкокристаллического индикатора, CAN-AVR – для организации обмена информации по сети CAN, USB-AVR – со встроенным USB интерфейсом (опционально: датчиком реального времени и скоростным ШИМом), Lighting-AVR имеет встроенный ЦАП, Smart-Battery-AVR имеет встроенный драйвер управления устройствами бесперебойного питания, Automotive – для управления различными автомобильными системами (имеет встроенный датчик температуры и CAN-интерфейс), AVR-Z-Link – радио-приёмо-передатчик.

Рассмотрим архитектуру AVR-микроконтроллеров на примере МК семейства Classic AT90S8535 (рис. 13.3). Микроконтроллер содержит гарвардский процессор, регистровый файл, память программ, память данных и различные интерфейсные схемы (периферию).

Гарвардский процессор реализует полное логическое и физическое разделение не только адресных пространств, но и информационных шин для обращения к памяти программ и к памяти данных, причем способы адресации и доступа к этим массивам памяти также разные. Подобное построение уже более близко к структуре цифровых сигнальных процессоров и обеспечивает повышение производительности. Процессор работает одновременно как с памятью программ, так и с памятью данных; разрядность шины памяти программ расширена до 16 бит. В МК AVR используется технология конвейеризации, вследствие чего цикл "выборка  выполнение" команды существенно сокращен. Для сравнения, у микроконтроллеров семейства MCS51 корпорации Intel короткая команда выполняется за 12 тактов генератора (1 машинный цикл), на протяжении которого процессор последовательно считывает код операции и выполняет ее. В PIC-контроллерах фирмы Microchip, где уже реализован конвейер, короткая команда выполняется на протяжении 8 периодов тактовой частоты (2 машинных цикла). За это время последовательно дешифруется и считывается код операции, выполняется команда, фиксируется результат и одновременно считывается код следующей операции (одноуровневый конвейер). Поэтому в общем потоке команд одна короткая команда реализуется за 4 периода тактовой частоты или за один машинный цикл. В МК AVR тоже используется одноуровневый конвейер при обращении к памяти программ и короткие команды в общем потоке выполняется, как и в PIC-контроллерах, за один машинный цикл. Главное же отличие заключается в том, что этот цикл в МК AVR составляет всего один период тактовой частоты.

Регистровый файл занимает 32 младших байта в общем адресном пространстве статического ОЗУ (SRAM) ОМК. Шесть старших байтов из них могут использоваться как три 16-разрядных указателя адреса при косвенной адресации данных. Один из этих указателей (Z Pointer) применяется также для доступа к данным, записанным в памяти программ микроконтроллера. Использование трех 16-битных указателей (X, Y и Z Pointers) существенным образом повышает скорость пересылки данных при работе прикладных программ.

Память программ. Все AVR-микроконтроллеры имеют Flash-память программ, которая может быть загружена как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на плате. Число циклов перезаписи  не меньше 1000. Некоторые версии кристаллов семейства Mega имеют возможность самопрограммирования, т. е. микроконтроллер способен самостоятельно, без внешнего программатора, изменять содержимое ячеек памяти программ. Это дает возможность записать во внешнюю энергонезависимую память несколько рабочих версий программы, а потом по мере необходимости или по реакции на внешние или внутренние логические условия перегружать рабочие программы в тот же микроконтроллер AVR без извлечения его из печатной платы. Для этого весь массив памяти программ делится на две неравные по объему области: блок загрузчика (программа, которая управляет перезаписью Flash-памяти программ) и блок для размещения рабочих программ. Программа-загрузчик создается самим разработчиком и должна быть запрограммирована внешним программатором.

Память данных. Все AVR-микроконтроллеры имеют также энергонезависимую память данных с электрическим стиранием EEPROM. Этот тип памяти используется для хранения промежуточных данных, разных констант, таблиц перекодировок, калибровочных коэффициентов и т. п. Данные в EEPROM могут быть загружены как через SPI-интерфейс, так и с помощью обычного программатора. Число циклов перезаписи  не меньше 100000. Два программируемых бита защиты информации позволяют защитить память программ и энергонезависимую память данных EEPROM от несанкционированного считывания.

Внутренняя оперативная память SRAM есть во всех AVR семейств Classic и Mega и в одном новом кристалле семейства Tiny  ATtiny26/L. Для некоторых микроконтроллеров возможно подключение внешней памяти данных объемом до 64 Кбайт.

Периферия МК AVR. К числу традиционных периферийных устройств относятся 8-разрядные порты ввода/вывода, последовательный порт, таймеры/ счетчики и контроллер прерываний.

Число независимых линий портов ввода/вывода  от 3 до 53. Каждый разряд порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают токовую нагрузочную возможность 20 мА по линии порта при максимальном значении 40 мА, что дает возможность, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения приведены для напряжения питания 5 В).

Микроконтроллеры AVR имеют в своем составе от 1 до 4 таймеров/счетчиков с разрядностью 8 или 16 бит, которые могут работать и как таймеры от внутреннего источника опорной частоты, и как счетчики внешних событий с внешним тактированием.

Таймер/счетчик RTC (есть во всех микроконтроллерах семейства Mega и в некоторых МК Classic) реализует систему реального времени. Таймер имеет свой собственный делитель, который может быть программным способом подключен или к основному внутреннему источнику тактовой частоты микроконтроллера, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели МК имеет два внешних вывода. Внутренний осциллятор, нагруженный на счетный вход таймера/счетчика RTC, оптимизирован для работы с внешним "часовым" кварцевым резонатором на 32,768 кГц.

Новыми периферийными устройствами являются блок последовательного периферийного интерфейса (SPI), сторожевой таймер (WDT) и аналоговый компаратор (АС).

Блок SPI предназначен для последовательного ввода и вывода данных и используется для программирования микроконтроллера после установки его на печатную плату.

Сторожевой таймер WDT предназначен для перезапуска программы при появлении сбоя в ходе ее выполнения. Программа, которая работает без сбоев, периодически сбрасывает сторожевой таймер, не допуская его переполнения. Сторожевой таймер имеет свой собственный RC-генератор, который работает на частоте 1 МГц. На входе WDT включен делитель входной частоты с программируемым коэффициентом деления, позволяющий регулировать временной интервал переполнения таймера для сброса микроконтроллера. Таймер WDT может быть отключен программным способом во время работы микроконтроллера как в активном режиме, так и в любом из режимов пониженного энергопотребления. В последнем случае это приводит к значительному снижению потребляемого тока.

Аналоговый компаратор АС сравнивает по величине напряжения сигналы, поступающие на входы AIN0 и AIN1. Результат сравнения записывается в бит ACO (Analog Comparator Output) регистра ACSR (Analog Comparator Control and Status Register), который не имеет внешнего вывода.

Аналого-цифровой преобразователь ADC построен по классической схеме последовательного приближения с устройством выборки/хранения (УВХ). Каждый из аналоговых входов может быть соединен с входом УВХ через аналоговый мультиплексор. Устройство выборки/хранения имеет свой собственный усилитель, который гарантирует, что измеряемый аналоговый сигнал будет стабильным на протяжении всего времени преобразования. Разрядность АЦП составляет 10 бит при нормированной погрешности ±2 разряда. АЦП может работать в двух режимах  однократное преобразование по любому выбранному каналу и последовательный циклический опрос всех каналов. Время преобразования выбирается программно с помощью установки коэффициента деления частоты специального предварительного делителя, который входит в состав блока АЦП. Оно составляет 70280 мкс для ATmega103 и 65260 мкс для всех других микроконтроллеров, имеющих в своем составе АЦП.

Внутренний тактовый генератор МК AVR может запускаться от нескольких источников опорной частоты (внешний генератор, внешний кварцевый резонатор, внутренняя или внешняя RC-цепочка). Поскольку AVR-микроконтроллеры полностью статические (выполнены по статической технологии), минимальная допустимая частота ничем не ограничена, т. е. возможно обеспечить даже пошаговый режим выполнения программы. Максимальная рабочая частота определяется конкретным типом микроконтроллера.

Микроконтроллеры AVR могут быть переведены программным путем в один из шести режимов пониженного энергопотребления.

Система команд AVR насчитывает до 133 различных команд. Различают пять групп команд AVR: условного разветвления, безусловного разветвления, арифметические и логические операции, команды пересылки данных, команды работы с битами. В последних версиях AVR семейства Mega реализована функция аппаратного умножения. По разнообразию и количеству команд AVR больше похожи на CISC-, чем на RISC-процессоры. У PIC-контроллеров система команд исчисляет до 75 разных команд, а в MCS51 она составляет 111.

Интересной особенностью семейства микроконтроллеров AVR является то, что система команд всего семейства совместима при переносе программы со слабого на более мощный микроконтроллер.