Микроконтроллер процессор регистр память адресация




Понимание того, как адресуются регистры общего назначения, а как – SRAM, может быть затруднено. Это верно, когда контроллеры младших моделей семейства AVR1200 работают вместе с контроллерами AVR8515, реализующими полный набор функций. Реализация обращения к памяти, регистрам общего назначения и регистрам ввода-вывода может показаться сложной, так как существует два способа обращения к ним. Первый способ – прямое обращение к каждой из этих областей данных. Этот способ прямого доступа является основным при выполнении арифметических операций. Второй способ доступа объединяет все три области регистров и памяти, включая внешнюю память, образуя общее адресное пространство данных (рисунок 8).

Регистры ввода-вывода – это 64-байтовый блок, который содержит как регистры управления процессором, так и регистры интерфейса ввода-вывода. Команды in и out используются для обмена данными между РОН и регистрами ввода-вывода. Внутренняя память SRAM – это блок оперативной памяти для хранения переменных. Эта память доступна при помощи команд load и store, которые позволяют также обращаться к РОН и регистрам ввода-вывода, которые располагаются в соответствующих областях адресного пространства данных.

 

Рис. 8. Организация адресного пространства процессоров AVR


 

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

 

Таблица 2

Адреса
Регистры ввода-вывода Область данных Имя регистра Назначение
$3F $5F SREG Регистр состояния
$ЗЕ $5Е SPH Указатель стека – старший байт
$3D $5D SPL Указатель стека – младший байт
$ЗВ $5В GIMSK Регистр маски прерываний
$ЗА $5А GIFR Регистр запросов прерываний
$35 $55 MCUCR Регистр управления микроконтроллера

Адреса в пространстве регистров ввода-вывода

 

Другие регистры выполняют функции ввода-вывода, которые специфичны для определенных моделей микроконтроллеров.

При выполнении арифметических операций используются только регистры общего назначения, и их адреса не зависят от того, используется ли для обращения к ним адреса РОН (при использовании арифметических инструкций) или адресное пространство данных (при использовании команд load, store). Обращение к регистрам ввода-вывода производится либо при помощи команд in, out с использованием области адресов ввода-вывода или при помощи команд load, store в адресном пространстве данных. Если используются команды load, store, то к абсолютному адресу должно быть прибавлено начальное смещение $20 (десятичное число 32), как показано в приведенной выше таблице адресов регистров ввода-вывода.

Обращение к внутренней памяти SRAM или внешней памяти производится только через адресное пространство данных при помощи команд load, store, которые используют абсолютные адреса. Если надо считать операнд из внешней памяти, то обращение займет на один или два цикла больше, чем при использовании внутренней памяти.

Команды load, store позволяют использовать индексные регистры. В адресном пространстве РОН последние 6 регистров могут использоваться как три 16-разрядных индексных регистра, содержимое которых загружается либо из адресного пространства данных, либо из памяти программ. Эти индексные регистры имеют имена X (адреса $1А–$1В), Y (адреса $1C–$1D) и Z (адреса $1E–$1F). Индексный регистр Z может также использоваться для чтения из памяти программ отдельных байтов, что позволяет хранить в ней таблицы данных.

После всего указанного структура AVR становится такой, как показано на рисунке 7.9. В этой структуре показана шина адреса, которая используется для адресации регистров и оперативной памяти. Адрес может формироваться разными способами, например, он может быть указан в команде или определяться с использованием индексного регистра

Младшие модели микроконтроллеров AVR1200 не содержат оперативной памяти SRAM и не выполняют команды обращения к РОН и регистрам ввода-вывода, использующие единое адресное пространство данных (рисунок 10). В этой модели имеются три отдельных адресных пространства для памяти программ, РОН и регистров ввода-вывода, которые не объединяются в единое адресное пространство данных. К регистрам ввода-вывода можно обратиться только при помощи команд in и out, а команды load, store фактически не используются. Младшие модели AVR имеют также только один индексный регистр Z, расположенный по адресам $1E–$1F в области регистров общего назначения. Этот индексный регистр может использоваться для выборки данных, хранящихся или в РОН, или в памяти программ.


 

Рис. 9. Структура AVR с памятью SRAM и регистрами ввода-вывода

 

Рис. 10. Области памяти в архитектуре младших моделей AVR



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: