
- •1.Генераторы на логических элементах
- •4.Другой вариант применения таймера – в качестве мультивибратора
- •5. Микросхема позволяет с минимальным количеством навесных
- •8.Підсистема живлення
- •11.Память програм і даних мк.
- •12. Організація пам'яті
- •13.Загальна характеристика мк pic16f628a
- •14.Порты ввода-вывода
- •20. Фарт ))
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 РЗП безпосередньо доступні, на відміну від мікроконтроле- рів інших фірм, у яких є тільки один такий регістр — робочий регістр \У (акумулятор). Завдяки цьому будь-який РЗП може використовуватися
практично у всіх командах і як операнд-джерело і як операнд-приймач. Таке рішення (у поєднанні з конвейерною обробкою) дозволяє АЛУ виконувати одну операцію (витягання операндів з регістрового фай¬лу, виконання команди і запис результату назад в регістровий файл) за один машинний цикл.