Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ura_33.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.73 Mб
Скачать

12. Організація пам'яті

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

Карта пам’яті мікроконтролера ATmega8515 наведена на рис. 3.3.

3.2.2.1. Пам'ять програм

Пам’ять програм призначена для зберігання команд, які керують функціонуванням мікроконтролера. Пам’ять програм також часто ви¬користовується для збереження таблиць констант, які не змінюються під час роботи програми.

Як вже було сказано, пам’ять програм є електрично стираною ППЗП (РЬАБН-ПЗП). У зв’язку з тим шо довжина всіх команд крат¬на одному слову (16 біт), пам’ять програм має 16-розрядну організацію. Відповідно, ємність пам’яті мікроконтролерів сімейства складає від 4К (4х 1024) до 64К (64х 1024) 1б-розрядних слів. Логічно пам’ять про¬грам розділена на дві нерівні частини — область прикладної програми і область завантажувача. В останній може розташовуватися спеціальна програма (завантажувач), шо дозволяє мікроконтролеру самостійно ке-

рувати завантаженням і вивантаженням прикладних програм. Якщо ж можливістьсамопрограмування мікроконтролера не використовується, прикладна програма може розташовуватися і в області завантажувача.

Для адресації пам’яті програм використовується лічильник команд (PC - Program Counter). Розмір лічильника команд складає для мікроконтро¬лера ATmega8515 12 розрядів, залежно від об'єму пам’яті, шо адресується.

За адресою 0000Н пам’яті програм знаходиться вектор скидання. Після ініціалізації (скидання) мікроконтролера виконання програми по¬чинається з цієї адреси (за цією адресою повинна розмішуватися команда переходу до частини ініціалізації програми). Починаючи з адреси 001Н у моделі ATmega8515x розташовується таблиця векторів переривань.

При виникненні переривання після збереження в стеку поточного значення лічильника команд відбувається виконання команди, розта¬шованої за адресою відповідного вектора. Тому за цима адресами роз¬ташовуються команди переходу до підпрограм обробки переривань. У моделі ATmega8515 з ємністю пам’яті 8 Кбайт як ця команда викорис¬товується команда відносного переходу (RJMP).

На відміну від м ікро контролер і в AVR інших сімейств в більшості мі- кроконтролерів сімейства Mega положення вектора скидання та/або таблиці векторів переривань може бути змінене. Вони можуть розта¬шовуватися не тільки на початку пам’яті програм, як описано вище, але і на початку області завантажувача.

Якщо переривання в програмі не використовуються або таблиця векторів переривань розташовується в області завантажувача, то осно¬вна програма може починатися безпосередньо з адреси 0001Н.

Як відомо, пам’ять програм може використовуватися не тільки для зберігання коду програми, але також і для зберігання різних констант. Для пересилки байта з пам’яті програм у пам’ять даних є спеціальна ко¬манда — LPM. При використанні команди LPM адреса, за якою про¬водиться читання, визначається вмістом індексного регістра Z. Приводиться читання, визначається вмістом індексного регістра Т. При цьому старші 15 розрядів вмісту регістра визначатимуть адресу слова (0...32К), а молодший розряд визначатиме, який з байтів буде прочита¬ний: “0” — молодший байт, “1 ” - старший байт (рис. 3.4).

Слід зазначити, що ПЗП (FLASH), який використовується в мікро- контролерах AVR, розрахований як мінімум на 1000 циклів стирань/за¬писів.

3.2.2.2. Пам'ять даних

Пам’ять даних мікроконтролерів сімейства Mega розділена на три частини: регістрова пам’ять, оперативна пам’ять (статичне ОЗП) і не¬залежний, той що електрично стирається, постійний запам’ятувальний пристрій ЕСППЗП (EEPROM).

Регістрова пам’ять включає 32 регістри загального призначення (РОН), об’єднаних у файл, і службові регістри вводу/виводу (РВВ). Під РВВ в пам’яті м ікро контролера відводиться 64 байт.

В області регістрів вводу/виводу розташовуються різні службові ре¬гістри (регістр керування мікроконтролером, регістр стану та ін.), а та¬кож регістри керування периферійними пристроями, що входять до складу мікроконтролера.

Для зберігання змінних програм крім регістрів загального призна¬чення, також може використовуватися статичне ОЗП ємністю 512 байт. Мікроконтролер, крім того, має можливість підключення зовнішнього статичного ОЗП ємністю до 64 Кбайт.

Для довготривалого зберігання різної інформації, яка може змі¬нюватися в процесі функціонування готової системи (калібруючі кон¬станти, серійні номери, ключі та ін.), в мікроконтролерах сімейства може використовуватися EEPROM-пам’ять. Її ємність у мікроконтро¬лера ATmega8515 складає 512 байт. Ця пам’ять розташована в окремому адресному просторі, а доступ до неї здійснюється за допомогою кон¬кретних РВВ.

Статичне ОЗП. Перш за все слід сказати, шо в мікроконтролерах AVR сімейства Mega використовується лінійна організація пам’яті: ємність статичного ОЗП для мікроконтролера ATmega8515 складає 512 байт.

В адресному просторі ОЗП також розташовані всі регістри мікро- контролерів, під них відведені молодші 96 адрес (рис. 3.5). Інші адреси відведені під 512 комірок статичного ОЗП.

Регістри загального призначення. Усі регістри загального призна¬чення (РЗП) об’єднані в регістровий файл швидкого доступу, структура якого показана на рис. 3.6. Як вже було сказано, в мікроконтролерах ДУИ. всі 32 РЗП безпосередньо доступні, на відміну від мікроконтроле- рів інших фірм, у яких є тільки один такий регістр — робочий регістр \У (акумулятор). Завдяки цьому будь-який РЗП може використовуватися

практично у всіх командах і як операнд-джерело і як операнд-приймач. Таке рішення (у поєднанні з конвейерною обробкою) дозволяє АЛУ виконувати одну операцію (витягання операндів з регістрового фай¬лу, виконання команди і запис результату назад в регістровий файл) за один машинний цикл.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]