Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[18]

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

Высокопроизводительное AVR ALU соединено непосредственно со всеми 32 быстродействующими регистрами общего назначения. За один тактовый цикл ALU выполняет операцию между регистрами этого регистрового файла. Операции ALU подразделяются на три основные категории: арифметические, логические и операции над битами.

Внутрисистемно программируемая Flash память программ

Коды программ микроконтроллеров ATmega603/103 записываются в 64/128 Кбайт встроенной внутрисистемно программируемой Flash памяти. Поскольку все команды имеют формат одного или двух 16-разрядных слов, то и память программ имеет организацию 32/64Кх16. Flash память обеспечивает не менее 1000 циклов стирания/записи.

Таблицы констант могут быть размещены в любом месте всего пространства памяти программ (см. описания команд LPM (Load Program Memory) - Загрузить байт памяти программ и ELPM (Extended Load Program Memory) - Загрузить байт памяти программ в расширенном режиме).

Конфигурация памяти

Микроконтроллеры ATmega603/103 поддерживают две конфигурации, как показано в таблице 2.

Таблица 2 Конфигурация памяти

Конфигурация

Встроенная SRAM данных

Внешняя SRAM данных

A

4000 байт

Нет

B

4000 байт

До 64Кбайт (1)

Примечание 1. Из 64 Кбайт внешней памяти будут доступны 60 Кбайт.

По первым 4096 адресам памяти данных размещаются регистровый файл, пространство памяти I/O и встроенная SRAM данных. Из них первые 96 адресов занимают регистровый файл и пространство памяти I/O, в следующих 4000 адресов размещается встроенная SRAM.

Конфигурация памяти А

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

$0000

32 регистра

64 регистра I/O

Встроенная

SRAM (4000 х 8)

$0000 - $001F $020 - $005F

$0060 $0FFF

$7FFF

$FFFF

Конфигурация памяти B

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

$0000

32 регистра

64 регистра I/O

Встроенная

SRAM

(4000 х 8)

Внешняя

SRAM

(0 - 64К х 8)

$0000 - $001F

$020 - $005F $0060

$0FFF $1000

$7FFF $FFFF

$FFFF

Рис. 7. Конфигурация памяти


Микроконтроллеры конфигурации B позволяют использовать дополнительную внешнюю память данных. Внешняя память будет адресоваться оставшимся до 64К пространством адресов, т.е. оно будет начинаться следом за пространством адресов встроенной SRAM. При использовании внешней SRAM емкостью 64К будут потеряны 4К внешней памяти, поскольку адреса этого объема будут заняты встроенной памятью. При обращении по адресам памяти данных за пределами встроенной SRAM используются те же команды, что для обращения к встроенной SRAM. При обращении к встроенной памяти данных выводы стробов управления внешней памятью данных (RD и WR) остаются неактивными во время всего цикла обращения.

Работа внешней SRAM разрешается установкой бита SRE в регистре MCUCR. По сравнению с обращением к встроенной памяти данных, обращение к внешней памяти данных требует дополнительного цикла на каждый байт. Это означает, что для выполнения команд LD, ST, LDS, STS, PUSH и POP требуется дополнительный тактовый цикл. Если стек размещен во внешней SRAM, то прерывания, вызов подпрограмм и возвраты потребуют два дополнительных цикла, поскольку в стеке будет опускаться и подниматься содержимое двухбайтового счетчика команд. Если интерфейс с внешней SRAM используется с состоянием ожидания, то на каждый байт необходимо еще два дополнительных тактовых цикла. Это приводит к следующему эффекту. Командам пересылки данных необходимо два дополнительных тактовых цикла, тогда как при обработке прерывания, вызове подпрограммы и при возврате из подпрограмм потребуется на четыре тактовых цикла больше, чем это указано в описании системы команд.

При адресации памяти данных используются пять режимов адресации: непосредственная адресация, косвенная со смещением, косвенная, косвенная с преддекрементом и косвенная с постдекрементом. Регистры с R26 по R31 регистрового файла работают как X, Y и Z регистры указатели косвенной адресации.

Косвенной адресации со смещением доступны 63 адреса относительно базовых адресов, находящихся в регистрах Y или Z. При использовании косвенной адресации с автоматическим преддекрементом и постдекрементом автоматически декрементируются и инкрементируются адреса записанные в регистры X, Y и Z. Всеми этими режимами перекрывается все адресное пространство данных, включая 32 регистра общего назначения и 64 регистра I/O. Подробное описание всех режимов адресации приведено в следующем разделе.

Режимы адресации памяти программ и данных

При обращении к Flash памяти программ и памяти данных (SRAM, регистровому файлу и памяти I/O) AVR Enhanced RISC микроконтроллерами ATmega603/103 используются мощные и эффективные режимы адресации. В данном разделе описываются режимы адресации, поддерживаемые AVR архитектурой. На рисунках OP обозначает часть слова команды, соответствующую операционному коду.


НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ, ОДИНОЧНЫЙ РЕГИСТР Rd

РЕГИСТРОВЫЙ ФАЙЛ

ЭР d

0

15

40

d

Рис.8 Непосредственная адресация одного регистра. Операнд содержится в регистре d (Rd).

НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ, ДВА РЕГИСТРА Rd и Rr

РЕГИСТРОВЫЙ ФАЙЛ

1595 40

31

0

ОР

d

d

31

Рис.9 Непосредственная регистровая адресация двух регистров. Операнды содержатся в регистрах r (Rr) и d (Rd). Результат сохраняется в регистре d (Rd).

НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ I/O

ОР n

ПАМЯТЬ I/O

0

5 0

5

63

Рис. 10 Непосредственная адресация I/O Адрес операнда содержится в 6 битах слова команды. Величина n определяет адрес регистра источника или регистра назначения.



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51]