Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

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

Микроконтроллеры AVR имеют статическую память данных. Ее содержимое остается неизменным даже при полной остановке источника тактовой частоты. После отключения напряжения питания вся информация, записанная в ячейках SRAM, теряется. В любой микропроцессорной системе память данных является самой быстрой.
При частоте 20 МГц и однотактовом машинном цикле время модификации SRAM составляет 50 нс.

Организация памяти данных SRAM ATmega8
Рис.6 Организация памяти данных SRAM ATmega8

Линейная память данных AVR разбита на три отдельные части, как показано на рис.6. Это регистры общего назначения (РОН) или GPR (General Purpose Registers), регистры ввода-вывода (РВВ) или IO (Input-Output Registers) и ОЗУ микроконтроллера. РОН и РВВ, кроме этого имеют индивидуальный диапазон адресов (собственное адресное пространство), который могут использовать только команды определенного типа.

AVR содержат 32 регистра общего назначения с символьными именами R0…R31. Эти регистры подключены непосредственно к арифметико-логическому устройству (АЛУ) и, главным образом, служат для обработки данных и вычислительных операций. Большая часть команд в качестве своих параметров использует РОНы. Поэтому и любая программа наиболее интенсивно использует именно эти ячейки памяти. В индивидуальном и абсолютном адресных пространствах РОНы занимают адреса 0…31 (0…0x1F).

Доступ ко всем аппаратным ресурсам микроконтроллера производится через РВВ. Управление линиями ввода-вывода, прерываниями и любыми другими интерфейсами сводится к обыкновенным процедурам чтения/записи этих регистров. AVR содержат, как минимум 64 РВВ, которые имеют индивидуальный диапазон адресов 0…63 (0…0x3F). В абсолютном адресном пространстве РВВ занимают адреса 32…95 (0x20…0x5F) сразу за регистрами общего назначения. Для обращения к РВВ в индивидуальном диапазоне адресов разработаны команды in Rd,P (Записать содержимое РВВ в РОН), out P,Rd (Вывести содержимое РОН в РВВ). Кроме этого у первой половины РВВ разрешен доступ к их битовым полям. Установить или сбросить любой бит в регистрах 0…31 (0…0x1F) можно командами sbi P,b (Установить бит b в РВВ) и 
сbi P,b (Сбросить бит b в РВВ) соответственно. Символьные имена регистров и месторасположения в пространстве РВВ зависят от конкретной модели микроконтроллера и оговорены в технической документации.

После РВВ, собственно, начинается адресное пространство внутреннего ОЗУ, основным предназначением которого является хранение переменных прикладной программы (имеется не во всех моделях ATtiny). Некоторые микроконтроллеры старшего семейства допускают подключение внешнего ОЗУ или XRAM (External Random Access Memory). Такая возможность реализована у них на аппаратном уровне (отдельные порты начинают работать как шины адресов/данных). В этом случае адресное пространство внешней памяти данных размещается сразу за адресным пространством памяти SRAM. Обращаться к абсолютным адресам памяти данных можно, например, с помощью инструкций lds Rd,k (Переместить содержимое ячейки по адресу k SRAM в РОН), sts Rd,k (Переместить содержимое РОН в ячейку SRAM по адресу k) и т.д.

Таким образом, существуют два независимых способа доступа к РОН и РВВ. Первый заключается в использовании группы команд, которые обращаются к индивидуальным адресам регистров (0…0x1F для РОН и 0…0x3F для РВВ) напрямую. Второй – в применении инструкций, которые обращаются к ячейкам абсолютного адресного пространства SRAM, отдельной частью которого являются РОН и РВВ. Так пересылка из регистра общего назначения R16 в РВВ SPH с помощью команд out SPH,R16 и sts R16,SPH+0x20 приведет к одному и тому же результату. Во второй команде к имени SPH, которое представляет собой адрес 0x3E в пределах РВВ, добавлено смещение 0x20 для задания абсолютного адреса 0x5E в SRAM.

По мере развития линейки ATmega, новым моделям с наиболее развитой периферией стало уже не достаточно 64 РВВ (в ATmega2560 их порядка 200). Atmel очень просто решила этот вопрос, разместив ряд управляющих регистров в так называемом дополнительном адресном пространстве ввода-вывода. Под дополнительное пространство отводится диапазон адресов SRAM 0x0060…0x00FF (160 добавочных регистров) либо 0x0060…0x01FF (416 добавочных регистров). Естественно, что к этим РВВ можно обращаться только как к ячейкам памяти из абсолютного адресного пространства SRAM.

После подачи напряжения питания, все РОНы микроконтроллера обнуляются. Начальное содержимое РВВ (начальные настройки аппаратной части) зависит от конкретного предназначения регистра. Ячейки же ОЗУ не имеют собственных цепей сброса, и после запуска в них находится “мусор”. Эти произвольные данные можно использовать как, входные параметры при генерации случайных чисел.

Перейти к следующей части:

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (4) | Я собрал (0) | Подписаться

0
Сергей Иванович #
В индивидуальном и абсолютном адресных пространствах РОНы занимают адреса 0…31 (0…0x1F).
В абсолютном адресном пространстве РВВ занимают адреса 64…95 (0x20…0x5F) сразу за регистрами общего назначения.
Неделю голову ломал. Не понимаю я что находится в абсолютном адресном пространстве по адресам 32...63.
Ответить
0
Максим Альбертович #
Да, тоже заметил опечатку, думал писать или нет, а тут уже написали. Должно быть так: 0…31 (0…0x1F) и 32…95 (0x20…0x5F)!
Ответить
0
Евгений Р #
Важно отметить, что OUT или IN выполняются за 1 машинный цикл, а LDS или STS - за 2. Поэтому эффективнее использовать IN и OUT где это возможно. Иначе удобнее было бы вообще ко всем регистрам обращаться по абсолютному адресу как к расширенным по LDS и STS и не путаться где использовать IN/OUT, а где LDS/STS.
Ответить
0
Александр Х #
С помощью команд out SPH,R16 и sts R16,SPH+0x20 приведет к одному и тому же результату. операнды перепутаны местами?
sts SPH+0x20, R16
Так будет правильней?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
UNI-T UT-61A Автомобильный GPS-трекер с GSM/GPRS и дистанционным управлением
вверх