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

4. Архитектура мк aTmega16

Порт А

AVR-МК представляет собой объединение на одном кристалле центрального процессора (ЦП), ПЗУ, ОЗУ и периферийных узлов (рис. 2.5).

Генератор тактовых импульсов

Указатель стека

АЦП

Порт В

Счетчик команд

Frame5

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

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

Сторожевой таймер

ОЗУ

Порт D

Регистр команд

Frame9

Рабочие регистры

X

Y

Z

Компаратор

АЛУ

Frame12 Frame13

Порт С

Последовательный интерфейс связи

с периферией

К линиям управления ЦПУ

Периферия

Рис. 2.5. Архитектура МК ATmega16

ПЗУ включает в себя две раздельные области - память программ и память данных. Программа МК хранится в памяти программ; в

памяти данных могут храниться пользовательские данные (которые временно могут также храниться в ОЗУ).

Распределение адресного пространства памяти программ МК ATmega16 показано на рис. 2.6.

Память программ пользователя 8К ? 16

Загрузочная область

$0000

$1FFF

Рис. 2.6. Распределение адресного пространства памяти программ

Память программ делится на две

секции

– секцию

пользовательской программы (Application

Flash

Section) и

загрузочную секцию (Boot Flash Section).

В первой

секции размещаются

команды основной

пользовательской

программы, во второй

– код, связанный с

реализацией функций самопрограммирования МК.

Большинство команд AVR-МК имеют формат одного 16- разрядного слова, в связи с чем по каждому из адресов памяти программ размещается одна команда. Размещение команд начинается с нулевого адреса ($0000).

Выполнение программы после сброса МК начинается с команды, которая размещается по нулевому адресу в памяти программ.

При работе с памятью программ используется так называемый одноуровневый конвейер – в то время как одна команда выполняется, следующая команда выбирается из памяти программ. Такой прием позволяет выполнять команду в каждом тактовом цикле. При этом адрес команды, которая должна выбираться из памяти программ, находится в счетчике команд (таким образом, счетчик команд задает адрес следующей команды). Счетчик команд в штатном режиме работы автоматически увеличивает свое значение на единицу с каждым импульсом тактового генератора, но возможны ситуации, когда пользовательская программа или узлы МК воздействуют на содержимое счетчика команд.

После выборки команда попадает в регистр команд.