AVR микроконтроллеры: очередной этап на пути развития

№ 3’2002
PDF версия
Представляем очередную версию обзора линии 8-разрядных высокопроизводительных RISC-микроконтроллеров общего назначения производства Atmel Corp., объединенных общей маркой AVR.

Представляем очередную версию обзора линии 8-разрядных высокопроизводительных RISC-микроконтроллеров общего назначения производства Atmel Corp., объединенных общей маркой AVR. Серийное призводство AVR началось в 1996 году, а в настоящее время в серийном производстве у Atmel находятся три семейства AVR — «tiny», «classic» и «mega». Многие российское специалисты и разработчики уже по достоинству оценили высокую скорость работы и мощную систему команд AVR, наличие двух типов энергонезависимой памяти на одном кристалле и активно развивающуюся периферию. Для тех читателей, которые , возможно, еще не слышали про AVR или просто пока присматриваются к этой микроконтроллерной платформе, данная статья может оказаться полезной.

Казалось бы, что еще нового можно было придумать в этой области и для чего? Ведь к началу 1990-х годов широко распространенное семейство микроконтроллеров MCS51, выпускаемое целым рядом фирм-производителей (Intel, Philips, Temic, OKI, Siemens и др.), уже являлось де-факто промышленным стандартом для 8-разрядных систем и прекрасно подходило для использования в широком классе задач, особенно если выбирались кристаллы с дополнительными встроенными периферийными устройствами и повышенной тактовой частотой. Конечно, была и оборотная сторона медали — значительное удельное энергопотребление этих микроконтроллеров. Тогда, если необходимо было получить высокую производительность кристалла при фиксированном энергопотреблении или, наоборот, снизить последнее не теряя производительности, внимание разработчика, как правило, останавливалось на микросхемах Dallas Semiconductor, Microchip или Hitachi. Широко развитые линии PIC-контроллеров фирмы Microchip и микроконтроллеров H8/300 фирмы Hitachi обеспечивают достаточно высокую производительность при небольшом энергопотреблении. Эффективность работы микроконтроллеров Dallas Semiconductor, имеющих базовую архитектуру MCS51, в среднем превышает стандартную в 2,5–3 раза. Появившиеся в последнее время новые процессорные платформы MSP430 фирмы Texas Instruments и XE8000 фирмы Xemics также заслуживают самого пристального внимания, особенно если основным критерием для конечного приложения является минимальное энергопотребление

.

Окончательный выбор разработчиком той или иной микропроцессорной платформы для реализации своей задачи зависит, естественно, от большого числа разнообразных факторов, включая экономические. Но обычно первостепенным условием остается получение максимально выгодного соотношения «цена — производительность — энергопотребление», определяемого сложностью решаемой задачи. Видимо, это обстоятельство и послужило толчком к разработке в середине 1990-х годов нового 8-разрядного микроконтроллера.

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

Области применения AVR многогранны. Для семейства «tiny» — это интеллектуальные автомобильные датчики различного назначения, игрушки, игровые приставки, материнские платы персональных компьютеров, контроллеры защиты доступа в мобильных телефонах, зарядные устройства, детекторы дыма и пламени, бытовая техника, разнообразные инфракрасные пульты дистанционного управления.

Для семейства «classic» — это модемы различных типов, современные зарядные устройства, изделия класса Smart Cards и устройства чтения для них, спутниковые навигационные системы для определения местоположения автомобилей на трассе, сложная бытовая техника, пульты дистанционного управления, сетевые карты, материнские платы компьютеров, сотовые телефоны нового поколения, а также различные и разнообразные промышленные системы контроля и управления. Для «mega» AVR — это аналоговые (NMT, ETACS, AMPS) и цифровые (GSM, CDMA) мобильные телефоны, принтеры и ключевые контроллеры для них, контроллеры аппаратов факсимильной связи и ксероксов, контроллеры современных дисковых накопителей, CD-ROM и т. д.

AVR— это относительно молодой продукт корпорации Atmel. В этой линии микроконтроллеров общего назначения постоянно появляются новые кристаллы, обновляются версии уже существующих микросхем, совершенствуется и расширяется программное обеспечение поддержки. Так, первое официальное издание — каталог Atmel, посвященный AVR, датирован маем 1997 года. В него были включены всего четыре первых AVR-микроконтроллера семейства AT90S «classic». Второе, существенно расширенное издание каталога вышло в августе 1999 года, и в него уже были включены три семейства AVR— «tiny», «classic» и «mega». И досих пор более «свежей» версии каталога в печатном виде не существует, постоянно обновляются лишь технические данные в электронном виде (Data Sheet), которые Atmel Corp. размещает на своей информационной странице в Интернете
http://www.atmel.com/atmel/products/prod23.htm. Скорее всего, к моменту выхода этой статьи представленная информация уже будет нуждаться в дополнениях и коррективах. Будьте внимательны, разрабатывая ваши конечные системы и программное обеспечение с использованием AVR, потому что многое может измениться и, пожалуйста, регулярно следите за обновлениями технической документации, выпускаемой Atmel.

Что же представляют собой микроконтроллеры AVR? Начнем знакомство с аппаратных возможностей, которые сведены для разных семейств в табл. 1–3. В таблицах представлены уже существующие, серийно выпускаемые кристаллы AVR, а также планируемые к выпуску в 2002 году. Отметим, что объемы массивов Flash-, EEPROM- и SRAM-памяти, набор периферийных узлов и построение схемы тактирования существенно различаются как между семействами, так и между микроконтроллерами внутри каждого семейства. Поэтому приведенное здесь краткое вводное описание основных возможностей AVR-микроконтроллеров не будет исчерпывающим.

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

  • Flash ROM— объем энергонезависимой памяти программ (в килобайтах);
  • EEPROM — объем энергонезависимой памяти данных (в байтах);
  • RAM — объем статической памяти данных (в байтах);
  • External RAM — возможность подключения к микроконтроллеру дополнительной микросхемы внешней статической памяти данных (в килобайтах);
  • ISP — возможность программирования микроконтроллера в системе (на целевой плате) при основном напряжении питания;
  • SPM — функция самопрограммирования Flash ROM памяти микроконтроллера в системе без участия внешнего программатора;
  • JTAG — встроенный JTAG-интерфейс;
  • I/O (pins) — максимальное количество доступных линий ввода-вывода;
  • Timer(s) 8/16 bit — количество и разрядность таймеров (счетчиков);
  • USI — универсальный коммуникационный интерфейс;
  • AC — аналоговый компаратор;
  • ADC (channels) — количество каналов аналого-цифрового преобразования;
  • Internal RC — наличие внутренней RC-цепочки для автономной работы микроконтроллера (без внешнего источника опорной частоты);
  • WDT — сторожевой таймер;
  • BDC — аппаратный программируемый блок защиты от сбоев при внезапном (в том числе и кратковременном) пропадании напряжения питания микроконтроллера;
  • UART — асинхронный последовательный приемопередатчик;
  • SPI — синхронный трехпроводной последовательный интерфейс;
  • I2C — двухпроводной последовательный интерфейс;
  • RTC— система реального времени;
  • PWM (channels) — количество независимых каналов широтно-импульсной модуляции;
  • Command Set — количество различных инструкций в системе команд микроконтроллера;
  • Vcc — диапазон рабочих напряжений питания (в вольтах);
  • Clock — диапазон рабочих частот (в мегагерцах);
  • Packages — типы корпусов, в которые опрессовывается микроконтроллер, и общее количество выводов.
Таблица 1. Микроконтроллеры AVR семейства «classic»
Тип Напр. питания, В Такт. Частота, МГц I/O Flash EEPROM SRAM Интер-

фейсы
АЦП Таймеры ISP Корпус
AT90S1200 2.7-6.0

4.0-6.0
4

12
15 1K 64 1x8bit I DIP20 SO20 SSOP20
AT90S2313 2.7-6.0

4.0-6.0
4

10
15 2K 128 128 UART 1x8bit

1x16bit
I DIP20 SO20
AT90LS2323 2.7-6.0 4 3 2K 128 128 1x8bit I DIP8 SO8
AT90S2323 4.0-6.0 10 3 2K 128 128 1x8bit I DIP8 SO8
AT90LS2343 2.7-6.0 4 5 2K 128 128 1x8bit I DIP8 SO8
AT90S2343 4.0-6.0 10 5 2K 128 128 1x8bit I DIP8 SO8
AT90LS4433 2.7-6.0 4 20 4K 256 128 UART

SPI
6x10bit 1x8bit

1x16bit
I DIP28 TQFP32
AT90S4433 4.0-6.0 8 20 4K 256 128 UART

SPI
6x10bit 1x8bit

1x16bit
I DIP28 TQFP32
AT90LS8515 2.7-6.0 4 32 8K 512 512 UART

SPI
2x8bit

1x16bit
I DIP40 TQFP44 PLCC44
AT90S8515 4.0-6.0 8 32 8K 512 512 UART

SPI
2x8bit

1x16bit
I DIP40 TQFP44 PLCC44
AT90LS8535 2.7-6.0 4 32 8K 512 512 UART

SPI
8x10bit 2x8bit

1x16bit
I DIP40 TQFP44 PLCC44
AT90S8535 4.0-6.0 8 32 8K 512 512 UART

SPI
8x10bit 2x8bit

1x16bit
I DIP40 TQFP44 PLCC44
Таблица 3. Микроконтроллеры AVR семейства «tiny»
Тип Напр. питания

В
Такт. Частота

МГц
I/O Flash EEPROM SRAM Интер-

фейсы
АЦП Таймеры ISP Корпус
ATtiny11 2.7-5.5 6 6 1K 1x8bit PDIP8 SOIC8
ATtiny11L 2.7-5.5 6 6 1K 1x8bit | PDIP8 SOIC8
ATtiny12 1.8-5.5 6 6 1K 64 1x8bit I PDIP8 SOIC8
ATtiny12V 1.8-5.5 0-1 6 1K 64 1x8bit I DIP8 SOIC8
ATtiny12L 2.7-5.5 0-4 6 1K 64 1x8bit I DIP8 SOIC8
ATtiny13 1.8-5.5 16 6 1K 64 64 4x10bit 1x8bit

2xPWM
I PDIP8 SOIC8
ATtiny15 2.7-5.5 6 6 1K 64 4x10bit 2x8bit I PDIP8 SOIC8
ATtiny15L 2.7-5.5 1.6 6 1K 64 4x10bit 2x8bit I DIP8 SOIC8
ATtiny2313 1.8-5.5 16 15 2K 128 128 SPI

UART
1x8bit

1x16bit
I PDIP20 SOIC20 MLF32
ATtiny25L 2.7-5.5 0-8 16 2K 128 128 SPI

UART
11x10bit 2x8bit I PDIP20 SOIC20
ATtiny26 2.7-5.5 16 16 1K 128 128 SPI

UART
11x10bit 2x8bit I PDIP20 SOIC20 MLF32
ATtiny28 1.8-5.5 4 20 2K 1x8bit PDIP20 SOIC20 MLF32
ATtiny28V 1.8-5.5 0-1 20 2K 1x8bit PDIP8 TQFP32
ATtiny28L 2.7-5.5 0-4 20 2K 1x8bit PDIP20 TQFP32

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

Все AVR имеют также блок энергонезависимой электрически стираемой памяти данных EEPROM. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, таблиц перекодировок, калибровочных коэффициентов и т. п. EEPROM также может быть загружена извне как через SPI-интерфейс, так и с помощью обычного программатора. Число циклов перезаписи — не менее 100000. Два программируемых бита секретности позволяют защитить память программ и энергонезависимую память данных EEPROM от несанкционированного считывания. Внутренняя оперативная память SRAM имеется у всех AVR семейств «classic» и «mega» и у одного нового кристалла семейства «tiny» — ATtiny26/L.

Для некоторых микроконтроллеров возможна организация подключения внешней памяти данных объемом до 64К.

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

Максимальная рабочая частота определяется конкретным типом микроконтроллера. Верхние границы частотного диапазона, указанные в табл. 1–3, гарантируют устойчивую работу микроконтроллеров при работе во всем температурном диапазоне (хотя, например, AT90S8515 при комнатной температуре может быть «разогнан» до 14 МГц). Интересную аппаратную особенность имеет микроконтроллер ATtiny15L. Он содержит блок PLL для аппаратного умножения основной тактовой частоты в 16 раз. При номинальном значении последней 1,6 МГц получаемая вспомогательная периферийная частота равна 25,6 МГц. Эта частота может служить источником для одного из таймеров/счетчиков микроконтроллера, значительно повышая временное разрешение его работы.

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

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

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

Система реального времени (RTC) реализована во всех микроконтроллерах семейства «mega» и в двух кристаллах семейства «classic» — AT90(L)S8535. Таймер/счетчик RTC имеет свой собственный предделитель, который может быть программным способом подключен или к основному внутреннему источнику тактовой частоты микроконтроллера, или к дополнительному асинхронному источнику опорной частоты (кварцевый резонатор или внешний синхросигнал). Для этой цели зарезервированы два внешних вывода микроконтроллера. Внутренний осциллятор, нагруженный на счетный вход таймера/счетчика RTC, оптимизирован для работы с внешним «часовым» кварцевым резонатором 32,768 кГц.

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

Интересная архитектурная особенность построения портов ввода-вывода у AVR заключается в том, что для каждого физического вывода существует 3 бита контроля и управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т. д.). Упрощенная структурная схема элемента ввода-вывода AVR-микроконтроллера приведена на рис. 1. Здесь DDRx — бит контроля направления передачи данных и привязки вывода к шине питания (VCC), PORTx — бит привязки вывода к VCC и бит выходных данных, PINx — бит для отображения логического уровня сигнала на физическом выводе микросхемы.

Естественно возникает вопрос: а зачем необходимы именно 3 бита? Дело в том, что использование только двух бит контроля и управления порождает ряд проблем при операциях типа «чтение-модификация-запись». Например, если имеют место две последовательные операции «чтение — модификация — запись», то первый результат может быть потерян безвозвратно, если вывод порта работает на емкостную нагрузку и требуется некоторое время для стабилизации уровня сигнала на внешнем выводе микросхемы. Архитектура построения портов ввода-вывода AVR с тремя битами контроля и управления позволяет разработчику полностью контролировать процесс ввода-вывода. Если необходимо получить реальное значение сигнала на физическом выводе микроконтроллера — читайте содержимое бита по адресу PINx. Если требуется обновить выходы— прочитайте защелку PORTx и потом модифицируйте данные. Это позволяет избежать необходимости иметь копию содержимого порта в памяти для безопасности и повышает скорость работы микроконтроллера при работе с внешними устройствами. Особую значимость приобретает данная возможность AVR для реализации систем, работающих в условиях внешних электрических помех.

Аналоговый компаратор входит в состав большинства микроконтроллеров AVR. Типовое напряжение смещения равно 10 мВ, время задержки распространения составляет 500 нс и зависит от напряжения питания микроконтроллера. Так, например, при напряжении питания 2,7 В оно равно 750 нс. Аналоговый компаратор имеет свой собственный вектор прерывания в общей системе прерываний микроконтроллера. При этом тип перепада, вызывающий запрос на прерывание при срабатывании компаратора, может быть запрограммирован пользователем как фронт, срез или переключение. Логический выход компаратора может быть программным образом подключен ко входу одного из 16-разрядных таймеров/счетчиков, работающего в режиме захвата. Это дает возможность измерять длительность аналоговых сигналов, а также максимально просто реализовывать АЦП двухтактного интегрирования.

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

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

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

Для разных семейств AVR и разных микроконтроллеров в пределах каждого семейства изменяются количество и сочетание доступных режимов пониженного энергопотребления. Подробную информацию можно найти в оригинальной технической документации Atmel.

  • Режим холостого хода (IDLE), в котором прекращает работу только процессор и фиксируется содержимое памяти данных, а внутренний генератор синхросигналов, таймеры, система прерываний и WATCHDOG-таймер продолжают функционировать.
  • Режим микропотребления (Power Down), в котором сохраняется содержимое регистрового файла, но останавливается внутренний генератор синхросигналов. Выход из Power Down возможен либо по общемусбросу микроконтроллера, либо по сигналу (уровень) от внешнего источника прерывания. При включенном WATCHDOG-таймере ток потребления в этом режиме составляет около 60–80 мкА, а при выключенном — менее 1 мкА для всех типов AVR. Вышеприведенные значения справедливы для величины питающего напряжения 5 В.
  • Режим сохранения энергии (Power Save), который реализован только у тех AVR, которые имеют в своем составе систему реального времени. В основном, режим Power Save идентичен Power Down, но здесь допускается независимая работа дополнительного таймера/счетчика RTC. Выход из режима Power Save возможен по прерыванию, вызванному или переполнением таймера/счетчика RTC, или срабатыванием блока сравнения этого счетчика. Ток потребления в этом режиме составляет 6–10 мкА при напряжении питания 5 В на частоте 32,768 кГц.
  • Режим подавления шума при работе аналого-цифрового преобразователя (ADC Noise Reduction). Как уже отмечалось, в этом режиме останавливается процессорное ядро, но разрешена работа АЦП, двухпроводногоинтерфейса I2C и сторожевого таймера.
  • Основной режим ожидания (Standby). Идентичен режиму Power Down, но здесь работа тактового генератора не прекращается. Это гарантирует быстрый выход микроконтроллера из режима ожидания всего за 6 тактов генератора.
  • Дополнительный режим ожидания (Extended Standby). Идентичен режиму Power Save, но здесь работа тактового генератора тоже не прекращается. Это гарантирует быстрый выход микроконтроллера из режимаожидания всего за 6 тактов генератора.

Микроконтроллеры AVR mega64, mega103 и mega128 имеют еще одну примечательную архитектурную особенность, позволяющую значительно снизить энергопотребление всего кристалла в целом, когда в процессе работы возникают вынужденные паузы ожидания. В этом случае целесообразно уменьшить ток потребления центрального процессора и периферийных устройств как в активном режиме, так и в режиме холостого хода, понизив основную тактовую частоту микроконтроллера. Для этой цели на кристалле размещен специальный предделитель, позволяющий делить основную тактовую частоту на целое число в диапазоне от 2 до 129. Включение или выключение данной функции осуществляется одной короткой командой в программе.

AVR функционируют в широком диапазоне питающих напряжений от 1,8 до 6,0 В. Энергопотребление в активном режиме зависит от величины напряжения питания, от частоты, на которой работает AVR и от конкретного типа микроконтроллера. Подробные спецификации обычно приводятся в оригинальной технической документации Atmel Corp. Температурные диапазоны работы микроконтроллеров AVR — коммерческий (0…70 °С) и индустриальный (–40…+85 °С). К сожалению, корпорация Atmel не выпускает и не планирует выпускать AVR для работы в автомобильном (–40…+125 °С) и военном (–55…+125 °С) температурных диапазонах.

С точки зрения программиста AVR представляет собой 8-разрядный RISC-микроконтроллер, имеющий быстрый гарвардский процессор, память программ, память данных, порты ввода-вывода и различные интерфейсные схемы. Структурная схема микроконтроллера приведена на рис. 2. Гарвардская архитектура AVR реализует полное логическое и физическое разделение не только адресных пространств, но и информационных шин для обращения к памяти программ и к памяти данных, причем способы адресации и доступа к этим массивам памяти также различны.

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

Следующая отличительная черта архитектуры микроконтроллеров AVR — регистровый файл быстрого доступа, структурная схема которого показана на рис. 4. Каждый из 32-х регистров общего назначения длиной 1 байт непосредственно связан с арифметико-логическим устройством (ALU) процессора. Другими словами, в AVR существует 32 регистра — аккумулятора (сравните, например, с MCS51).

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

Регистровый файл занимает младшие 32 байта в общем адресном пространстве SRAM AVR. Такое архитектурное решение позволяет получать доступ к быстрой «регистровой» оперативной памяти микроконтроллера двумя путями — непосредственной адресацией в коде команды к любой ячейке и другими способами адресации ячеек SRAM.

В технической документации фирмы Atmel это полезное свойство носит название «быстрое контекстное переключение» и является еще одной отличительной особенностью архитектуры AVR, повышающей эффективность работы микроконтроллера и его производительность. Особенно заметно данное преимущество при реализации процедур целочисленной 16-битной арифметики, когда исключаются многократные пересылки между различными ячейками памяти данных при обработке арифметических операндов в ALU.

Система команд AVR весьма развита и насчитывает до 133 различных инструкций. Конкретное количество команд для каждого микроконтроллера того или иного семейства AVR приведено в табл. 1–2. Почти все команды имеют фиксированную длину в одно слово (16 бит), что позволяет в большинстве случаев объединять в одной команде и код операции, и операнд(ы). Лишь немногие команды имеют размер в 2 слова (32 бит) и относятся к группе команд вызова процедуры CALL, длинных переходов в пределах всего адресного пространства JMP, возврата из подпрограмм RET и команд работы с памятью программ LPM. Различают пять групп команд AVR: условного ветвления, безусловного ветвления, арифметические и логические операции, команды пересылки данных, команды работы с битами. В последних версиях кристаллов AVR семейства «mega» реализована функция аппаратного умножения, что придает новым микроконтроллерам еще больше привлекательности с точки зрения разработчика.

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

Корпорация Atmel планирует дальнейшее развитие перспективной линии AVR-микроконтроллеров. Исключение составляет лишь семейство «classic», развитие которого не планируется. Считается, что это семейство функционально сбалансировано и разнообразно представлено. В семействе «tiny» анонсирован очень интересный микроконтроллер — ATtiny26, имеющий в своем составе блок SRAM емкостью 128 байт и модуль USI (Universal Serial Interface). Это означает, что один и тот же периферийный узел связи на кристалле может быть программным образом сконфигурирован для работы в качестве коммуникационных интерфейсов SPI (Master/Slave) или I2C (Master/Slave). Дополнительно USI может быть запрограммирован для работы в качестве полудуплексного UART или 4/12 разрядного счетчика. Но наиболее интересные решения реализованы в семействе «mega», где анонсирован и начат серийный выпуск целого ряда кристаллов, которые будут выпускаться по технологии 0,35 мкм. Объем Flash-памяти программ с функциями ISP и SPM у новых «mega» будет варьироваться от 8 до 128 килобайт, а выпускаться они будут в корпусах MLF, DIP и TQFP с количеством выводов от 32 до 64. Все новые микроконтроллеры семейства «mega» будут иметь JTAG-интерфейс (за исключением mega8), аппаратный умножитель 8.8, дающий 16-разрядный результат, схему защиты от сбоев, двухпроводной последовательный интерфейс, аналого-цифровой преобразователь (за исключением ATmega162) и ряд других аппаратных особенностей (см. табл. 3). Помимо этого, вдвое будет повышена скорость работы всех периферийных узлов (SPI, PWM, UART и др.), улучшена работа схемы тактированияи упрощен доступ к внешней памяти данных.

Хорошо известно, что развитые средства поддержки разработок при освоении и знакомстве с любым микроконтроллерным семейством играют не менее значимую роль, чем сами кристаллы. Atmel уделяет этому вопросу большое внимание. Программные и аппаратные средства для AVR всегда разрабатывались и разрабатываются параллельно с самими микроконтроллерами и включают в себя компиляторы, внутрисхемные эмуляторы, отладчики, программаторы, простейшие отладочные платы — конструкторы практически на любой вкус. Немаловажную роль играет и открытая политика Atmel Corp. в вопросах развития и распространения разнообразных, доступных средств поддержки разработок. Это позволяет разработчикам и производителям электронной техники надеяться на сохранение полноценной поддержки для перспективного семейства микроконтроллеров, закладывая AVR в свои новые изделия.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *