Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






В микроконтроллерах AVR семейства Mega реализована Гарвардская архитектура, в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ, так и с памятью данных, что существенно увеличивает производительность. Каждая из областей памяти данных (ОЗУ и EEPROM) также расположена в своем адресном пространстве.

Обобщенная карта памяти микроконтроллеров AVR семейства Mega приведена на Рис. 2.12.

Обратите внимание на следующее. Поскольку микроконтроллеры AVR

имеют 16-битную систему команд, объем памяти программ на рисунке

указан не в байтах, а в 16-битных словах.

 

Рис. Карта памяти микроконтроллеров семейства Mega

 

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

 

Память программ

Память программ предназначена для хранения команд,

управляющих работой микроконтроллера. Память программ также часто

используется для хранения таблиц констант, не меняющихся во время работы

программы.

Как было сказано выше, память программ представляет собой

электрически стираемое ППЗУ (FLASH-ПЗУ). В связи с тем, что длина всех

команд кратна одному слову A6 бит), память программ имеет 16-битную

организацию. Соответственно, объем памяти микроконтроллеров семейства

составляет от 4К Dx1024) до 64К F4x1024) 16-битных слов. В

подавляющем большинстве моделей микроконтроллеров семейства Mega память

программ логически разделена на две неравные части: область прикладной

программы и область загрузчика. В последней может располагаться

специальная программа (загрузчик), позволяющая микроконтроллеру

самостоятельно управлять загрузкой и выгрузкой прикладных программ. Подробно

использование этой области и реализация программы-загрузчика будут

рассмотрены в главе 14. Если же возможность самопрограммирования

микроконтроллера не используется, прикладная программа может

располагаться и в области загрузчика.

Для адресации памяти программ используется счетчик команд

(Program Counter — PC). Размер счетчика команд составляет от И до

17 бит, в зависимости от объема адресуемой памяти.

По адресу $0000 памяти программ находится вектор сброса. После

инициализации (сброса) микроконтроллера выполнение программы

начинается с этого адреса (по этому адресу должна размещаться команда

перехода к инициализационной части программы). Начиная с адреса $001

(модели с памятью программ 8 Кбайт и меньше) или $0002 (остальные

модели) памяти программ располагается таблица векторов прерываний.

Размер этой области зависит от модели микроконтроллера (подробнее о

распределении области векторов прерывания см. раздел 5.2).

При возникновении прерывания после сохранения в стеке текущего

значения счетчика команд происходит выполнение команды, расположенной

по адресу соответствующего вектора. Поэтому по данным адресам

располагаются команды перехода к подпрограммам обработки прерываний. В

моделях с памятью программ небольшого объема (8 Кбайт и менее) в таблицах

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

(RJMP), а в остальных моделях — команды абсолютного перехода (JMP).

В большинстве микроконтроллеров семейства Mega положение

вектора сброса и/или таблицы векторов прерываний может быть изменено. Они

могут располагаться не только в начале памяти программ, как описано

выше, но и в начале области загрузчика. Подробнее об этом будет сказано в

Если в программе прерывания не используются либо таблица векторов

прерываний располагается в области загрузчика, то основная программа

может начинаться непосредственно с адреса $0001.

В заключение следует отметить, что FLASH-ПЗУ, используемое в

микроконтроллерах AVR, рассчитано, как минимум, на 10 000 циклов

стирания/записи (типовое значение — 100 000 циклов).

 

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

Память данных микроконтроллеров семейства Mega разделена на три

части: регистровая память, оперативная память (статическое ОЗУ) и

энергонезависимое ЭСППЗУ (EEPROM).

Регистровая память включает 32 регистра общего назначения (РОН),

объединенных в файл, и служебные регистры ввода/вывода (РВВ). В

сложных моделях с развитой периферией имеется также область

дополнительных (extended) регистров ввода/вывода (ДРВВ). Под РВВ в памяти

микроконтроллера отводится 64 байта, а под ДРВВ — 160 или 416 байт (в

зависимости от модели).

В обеих областях регистров ввода/вывода располагаются различные

служебные регистры (регистр управления микроконтроллера, регистр

состояния и т. п.), а также регистры управления периферийными

устройствами, входящими в состав микроконтроллера. Общее количество РВВ и

ДРВВ зависит от конкретной модели микроконтроллера.

Для хранения переменных помимо регистров общего назначения

также используется статическое ОЗУ объемом от 512 байт до 8 Кбайт. Ряд

микроконтроллеров семейства, кроме того, имеют возможность

подключения внешнего статического ОЗУ объемом до 64 Кбайт.

Для долговременного хранения различной информации, которая

может изменяться в процессе функционирования готовой системы

(калибровочные константы, серийные номера, ключи и т. п.), в микроконтроллерах

семейства может использоваться встроенная EEPROM-память. Ее объем

составляет для различных моделей от 256 байт до 4 Кбайт. Эта память

расположена в отдельном адресном пространстве, а доступ к ней

осуществляется с помощью определенных РВВ.

 

Статическое ОЗУ

Прежде всего, следует сказать, что в микроконтроллерах AVR

семейства Mega используется линейная организация памяти. Объем статического

ОЗУ для различных моделей семейства составляет от 512 байт до 8 Кбайт

(см. Табл. 1.1).

В адресном пространстве ОЗУ также расположены все регистры

микроконтроллеров, под них отведены младшие 96 B56) адресов (см.

Рис. 2.15). Остальные адреса отведены под 512/1К/2К/4К...64К ячеек

статического ОЗУ

 

Рис. Организация статического ОЗУ






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.