Основные характеристики семейства микроконтроллеров AVR

В принципе, все микроконтроллёры построены по одной схеме. Система управления, состоящая из счётчика команд и схемы декодирования, берёт на себя считывание и декодирование команд из памяти программ, а операционное устройство отвечает за выполнение арифметических и логических операций; интерфейс ввода/вывода позволяет обмениваться данными с периферийными устройствами; запоминающее устройство служит для хранения программ и данных (рис. 2).


 

Рис.2.

 

Операционное устройство, как правило, состоит из арифметико-логического устройства (АЛУ), накапливающего сумматора и нескольких вспомогательных регистров. В классической программе почти половина всех команд – это команды пересылки (move) для передачи данных от вспомогательных регистров к накапливающему сумматору и обратно. В семействе микроконтроллеров AVR накапливающий сумматор становится не столь критически важным, благодаря применению 32-х рабочих регистров, связанных с блоком АЛУ. В результате арифметические и логические операции могут быть выполнены в течение единственного такта.

Арифметико-логическое устройство

Операции АЛУ можно разделить на три основные категории: арифметические, логические и поразрядные. Каждой из этих категорий соответствуют мощные команды. Некоторые (новые) микроконтроллеры семейства AVR имеют также аппаратные умножители в арифметическом блоке АЛУ.

 

Структура команд

Несмотря на RISC-архитектуру, запас команд не так уж ограничен: AT90S8515, самый производительный микроконтроллер базовой серии, имеет 118 команд, в высшей степени оптимизированных с точки зрения целесообразности и эффективности, а самый “слабый” представитель семейства – AT90S1200 – едва ли сильно отстает от AT90S8515 со своими 89 командами. В микроконтроллёрах AVR базовой серии все команды имеют одинаковую ширину слова 16 бит (2 байта). Исключением являются только две команды для прямой адресации статической памяти данных lds и sts, состоящие из двух слов (4 байт).

За немногими исключениями (команда перехода, операции с непосредственной адресацией и пересылки в память/из памяти) все команды обрабатываются в течение одного такта системной синхронизации.

 

Архитектура памяти

В запоминающих устройствах, соответствующих классической концепции фон Неймана, данные и команды хранятся в одной памяти. В противоположность этому, память по Гарвардской архитектуре, используемой в микроконтроллерах AVR, состоит из нескольких компонентов. В данном случае разделены память команд и память данных, то есть, обращение к командам осуществляется независимо от доступа к данным.

В микроконтроллерах AVR отдельные сегменты памяти устроены по-другому также и физически.

1. Память программ реализована на основе программируемой и электрически стираемой флэш-технологии. Во всех микроконтроллерах AVR память 16-разрядная (двухбайтовая), и всегда находится “на кристалле”. Расширение памяти программ с помощью блоков EPROM или флэш невозможно.

2. Внутренняя память для энергонезависимых данных (то есть, данных, которые будут потеряны после отключения рабочего напряжения), представляет собой статическую память RAM (SRAM). Преимущество этого заключается в том, что отпадает всякая необходимость во внутренней регенерации как в случае с некоторыми другими процессорами, которые используют динамическую память. По этой причине микроконтроллеры AVR могут работать с тактами

вплоть до 0 Гц. В дополнение к этому, некоторые микроконтроллеры AVR для увеличения объема обрабатываемых данных могут работать с подключаемой внешней памятью SRAM. Для этого, однако, приходится жертвовать контактами ввода/вывода портов А и С.

3. Для данных, которые должны сохраниться после отключения рабочего напряжения, в распоряжении имеется микросхема EEPROM (Electrically EPROM – электрически стираемое ППЗУ). В память EEPROM можно записывать данные во время нормального выполнения программы. Для области EEPROM также нет обязательной необходимости в программирующем устройстве.

 

Область ввода/вывода

В микроконтроллерах AVR область ввода/вывода занимает 64 байта и находится в блоке статической памяти SRAM по адресам от $20 до $5F. В микроконтроллерах AVR функции ввода/вывода для взаимодействия со внешним миром применимы не только для портов (от А до D), но также и для всех регистров состояния и управления таких “встроенных в кристалл” периферийных функций как таймер, устройство UART, сторожевой таймер, доступ на запись и чтение к памяти EEPROM, интерфейс SPI и т.д.