Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AVR.doc
Скачиваний:
17
Добавлен:
26.04.2019
Размер:
2.79 Mб
Скачать

1.4. Организация памяти

Реализация Гарвардской архитектуры в АTmega8515 разделяет не только память программ и данных, но и каждая из областей памяти данных (ОЗУ и EEPROM) расположены в своем адресном пространстве.

1.4.1. Карта памяти

Рис. 4. Карта памяти микроконтроллера АTmega8515

1.4.2. Память программ (Flash – пзу)

Память программ предназначена для хранения последовательности команд, управляющих функционированием микроконтроллера, и имеет 16-ти битную организацию. Все AVR имеют Flash-память программ, которая может быть различного размера - от 1 до 256 КБайт. В МК АTmega8515 объем Flash-памяти программ 4Кх16 (длина команды 16 разрядов, следовательно каждая команда находится в одной ячейке памяти). Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т. е. допускает многократное стирание и запись информации. Программа заносится во Flash-память AVR как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на собранной плате. Возможностью внутрисхемного программирования через коммуникационный интерфейс SPI обладают практически все микроконтроллеры AVR.

Все микроконтроллеры семейства Mega имеют возможность самопрограммирования, т. е. самостоятельного изменения содержимого своей памяти программ. Эта особенность позволяет создавать на их основе очень гибкие системы, алгоритм работы которых будет меняться самим микроконтроллером в зависимости от каких-либо внутренних условий или внешних событий.

Логически память программ разделена на 2 части – область прикладной программы и область загрузчика. В области загрузчика располагается специальная программа – загрузчик, позволяющая МК самостоятельно управлять загрузкой и выгрузкой прикладных программ.

При адресации памяти программ используется 12 разрядный счетчик команд (Program Counter). По адресу $000 в памяти программ находится вектор сброса. После инициализации МК выполнение программы начинается с этого адреса.

Гарантированное число циклов перезаписи Flash-памяти у микроконтроллеров AVR второго поколения составляет не менее 1 тыс. циклов при типовом значении 100 тыс. циклов.

1.4.3. Память данных

Память данных разделена на три части:

– регистровая память,

–оперативная память (ОЗУ – оперативное запоминающее устройство или RAM),

– энергонезависимая память (ЭСППЗУ или EEPROM).

Регистровая память (рон и рвв)

Регистровая память включает 32 регистра общего назначения (РОН или GPR), объединенных в файл, и служебные регистры ввода/вывода (РВВ). И те и другие расположены в адресном пространстве ОЗУ, но не являются его частью.

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

Файл регистров общего назначения

Структура 32 регистров общего назначения:

Рис. 5. Регистры общего назначения CPU микроконтроллеров AVR

Все регистровые команды обращаются непосредственно к регистрам в течение одного тактового цикла. Исключением являются пять логических и арифметических операций с константами (SBCI, SUBI, CPI и ANDI) и операция ORI между константой и содержимым регистра, и команда непосредственной загрузки константы LDI. Эти команды используют вторую половину регистров регистрового файла - R16..R31.

Самые общие команды SBC, SUB, CP, AND и OR и все прочие операции между двумя регистрами или с одним регистром используют для записи результата регистровый файл.

Как показано на Рис. 5, каждому регистру соответствует адрес памяти данных, отображающий их в первых 32 ячейках пользовательского пространства данных. Хотя они не используются как физические ячейки SRAM, такая организация памяти обеспечивает гибкое обращение к регистрам, поскольку X,Y и Z регистры могут быть использованы для индексации любого регистра в файле.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]