Идея разработки нового прогрессивного RISK-ядра зародилась в норвежском городе Тронхейм (Trondheim) в светлых головах двух студентов Norwegian University of Science and Technology (NTNU). Звали изобретателей Альф Боген (Alf-Egil Bogen) и Вегард Воллен (Vegard Wollen). Находясь в очаровательном окружении смеси университетских зданий, вычислительных центров, будущие директора Atmel Norway создали архитектуру, которая стала одной из самых удачных на мировом рынке микроконтроллеров.
В 1995 году Боген и Воллен решили предложить американской корпорации Atmel, известной на тот момент своим "ноу-хау" изготовления чипов с Filash-памятью, выпускать новый 8-битный RISC-микроконтроллер и снабдить его Flash-памятью программ на кристалле. В 1996 году был основан исследовательский центр Atmel в Тронхейме. 150-тысячный Тронхейм усилиями своего университета каждый год порождает до 20-ти новых компаний, специализирующихся в секторах рынка начиная от автоматизации и до передачи и обработки данных. В конце 1996 года был выпущен опытный кристалл AT90S1200, а во второй половине 1997-го корпорация Atmel приступила к серийному производству нового семейства микроконтроллеров, к их рекламной и технической поддержке.
Новое ядро было запатентовано и получило название AVR, которое по прошествии уже нескольких лет стало трактоваться самыми различными способами. Кто-то утверждает, что это не иначе как Advanced Virtual RISC, другие полагают, что не обошлось здесь без Alf Egil Bogen Vegard Wollan RISC. Держателями патента при этом являются: Wollan, Vegard (NO); Bogen, Alf-Egil (NO); Myklebust, Gaute(NO); Bryant, John, D. (US). Самыми популярными на сегодняшний день являются микроконтроллеры серии AVR фирмы Atmel.
2. Общие сведения
AVR, пожалуй, одно из самых интересных направлений, развиваемых корпорацией Atmel. Они представляют собой мощный инструмент для создания современных высокопроизводительных и экономичных многоцелевых контроллеров. На настоящий момент соотношение "цена - производительность - энергопотребление" для AVR является одним из лучших на мировом рынке 8-разрядных микроконтроллеров. Объемы продаж AVR в мире удваиваются ежегодно. В геометрической прогрессии растет число сторонних фирм, разрабатывающих и выпускающих разнообразные программные и аппаратные средства поддержки разработок для них. Можно считать, что AVR постепенно становится еще одним индустриальным стандартом среди 8-разрядных микроконтроллеров общего назначения.
Серия AVR состоит из несколько семейств. Основу серии составляют два семейства: Микроконтроллеры семейства Tiny предназначены для простых недорогих устройств. Они имеют минимальный набор возможностей и невысокую цену. Микроконтроллеры семейства Mega напротив имеют развитую архитектуру и предназначены для более мощных микропроцессорных систем. Кроме того, фирма Atmel выпускает еще несколько видов микроконтроллеров, которые она так же относит к серии AVR.
3. Области применения
Для "mega" AVR - это аналоговые (NMT, ETACS, AMPS) и цифровые (GSM, CDMA) мобильные телефоны, принтеры и ключевые контроллеры для них, контроллеры аппаратов факсимильной связи и ксероксов, контроллеры современных дисковых накопителей, CD-ROM и т.д. Области применения микроконтроллера этой группы – от высоконадежных функций традиционного вычисления и управления до также высоконадежной обработки сигналов управления двигателями.
4. Характеристики
Для микроконтроллеров семейства Mega характерны:
- большой объем Flash-памяти программ (на текущий момент от8 до 128 Кбайт); -режим самопрограммирования, обеспеченный встроенной программой-загрузчиком; -встроенный умножитель, который поддерживает умножение дробных чисел со знаком и без знака; -расширенный набор встроенной периферии; -широкий набор специальных микроконтроллерных функций, в том числе до шести режимов энергосбережения и возможность программной установки тактовой частоты; -расширение системы команд до 130-133 команд, в том числе несколькими командами 32-разрядного формата; -организация в новых моделях интерфейса предельного сканирования (IEEE 1149.1/ JTAG), который поддерживает встроенную откладку и обеспечивает еще один путь программирования Flash- и EEPROM-памяти, перемычек и бит блокирования; -специальные микроконтроллерные функции, которые обеспечивают высокую устойчивость работы аппаратных и программных средств при случайных изменениях напряжения питания.
Итак, что же представляют собой микроконтроллеры серии AVR. Семейство AVR включает в себя микроконтроллеры самой разной конфигурации, разным объемом памяти и разным количеством встроенных портов ввода вывода и других дополнительных устройств. Конструктивное исполнение микроконтроллеров так же очень разнообразно. Применяется несколько типов корпусов (см. рис 1). Это традиционные корпуса типа PDIP с количеством ножек от 8 до 40. Корпуса типа SOIC с количеством выводов от 8 до 20. А большинство микроконтроллеров семейства Mega AVR выполнятся либо в сорокавыводных PDIP корпусах, либо в современных многовыводных корпусах типа TQFP или MLF (до 64 выводов).
Рис. 1. Типы корпусов
5. Состав микроконтроллера AVR
Кроме центрального процессора, памяти и портов ввода/вывода, любой микроконтроллер AVR содержит обязательный набор так называемых периферийных устройств. Периферийные они по отношению к ЦПУ микроконтроллера. Но находятся они так же внутри микросхемы. Перечислим эти устройства:
Встроенные таймеры/счетчики. Микроконтроллеры AVR содержат несколько их видов. Есть восьми и шестнадцатиразрядные таймеры. Их количество меняется от одного до трех.
Генератор сигнала с широтно-импульсной модуляцией (ШИМ)
Аналоговый компаратор.
Аналогово-цифровой преобразователь (АЦП). АЦП микроконтроллеров AVR имеют либо 6, либо 8 каналов (могут преобразовывать в цифры до 8 входных аналоговых сигналов).
Последовательный приемо-передатчик. Предназначен для организации последовательного канала связи с другими устройствами. Например, с COM-портом компьютера.
Специализированный последовательный канал SPI. Может применяться для обмена информацией между разными микроконтроллерами. А так же для программирования памяти программ в последовательном режиме.
6. Память программ
AVR имеет Flash-память программ, которая может быть загружена как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на целевой плате. Число циклов перезаписи - не менее 1000. Последние версии кристаллов семейства "mega" выпуска 2001-2002 года имеют возможность самопрограммирования. Это означает, что микроконтроллер способен самостоятельно, без какого-либо внешнего программатора, изменять содержимое ячеек памяти программ. То есть, новые AVR могут менять алгоритмы своего функционирования и программы, заложенные в них, и далее работать уже по измененному алгоритму или новой программе. Например, можно написать и сохранить несколько рабочих версий программы для конкретного приложения во внешней энергонезависимой памяти (DataFlash, SEEPROM и т.п.), а затем по мере необходимости или по реакции на какие-нибудь внешние или внутренние логические условия перегружать рабочие программы в тот же самый микроконтроллер AVR, не извлекая его из печатной платы. Для этого весь массив памяти программ делится на две неравные по объему области: блок загрузчика (программа, управляющая перезаписью Flash-памяти программ) и блок для размещения рабочего программного кода, причем свободная память в области загрузчика может быть использована в качестве дополнительного пространства для рабочего кода. Программа- загрузчик создается самим разработчиком и должна быть запрограммирована внешним программатором.
7.Память данных
AVR имеет также блок энергонезависимой электрически стираемой памяти данных EEPROM. Этот тип памяти, доступный программе микроконтроллера непосредственно в ходе ее выполнения, удобен для хранения промежуточных данных, различных констант, таблиц перекодировок, калибровочных коэффициентов и т.п. EEPROM также может быть загружена извне как через SPI интерфейс, так и с помощью обычного программатора.
Число циклов перезаписи - не менее 100000. Два программируемых бита секретности позволяют защитить память программ и энергонезависимую память данных EEPROM от несанкционированного считывания. Имеется внутренняя оперативная память SRAM.