- •1 Аналіз вихідних даних
- •1.1 Короткий оглядмікроконтролера
- •1.2 Електричні характеристики мк
- •1.3 Управління енергоспоживанням і режими сну
- •1.5 Опис виводів мк
- •1.6 Короткий опис ядра центрального процесорного пристрою avr
- •1.7 Регістри мікроконтролера
- •1.8 Тимчасова діаграма виконання інструкції
- •1.9 Скидання й обробка переривань
1.6 Короткий опис ядра центрального процесорного пристрою avr
введення
У даному розділі описуються загальні особливості архітектури ядра AVR. Основна функція ядра ЦПУ полягає в гарантуванні коректності виконання програми. Крім цього, ЦПУ повинен мати можливість адресуватися до різних видів пам'яті, виконувати обчислення, управляти периферійними пристроями та обробляти переривання. На рисунку 2.1 зображено короткий огляд архітектури ядра AVR.
Рисунок1.2 - Короткий огляд архітектури ядраAVR
З метою досягнення максимальної продуктивності і паралелізму у AVR-мікроконтролерів використовується гарвардська архітектура з роздільними пам'яттю і шинами програм і даних. Команди в пам'яті програм виконуються з однорівневою конвеєризацією. У процесі виконання однієї інструкції наступна попередньо зчитується з пам'яті програм. Дана концепція дозволяє виконувати одну інструкцію за один машинний цикл. Пам'ять програм являє собою внутрішньо-системну програмовану флеш-пам'ять.
Регістровий файл з швидким доступом містить 32 x 8-розр. робочих регістрів загального призначення з однотактовим циклом доступу. Завдяки цьому досягнута однотактна робота арифметико-логічного пристрою (АЛП). При звичайній роботі АЛП спочатку з реєстрового файлу завантажується два операнда, потім виконується операція, а після результат відправляється назад в регістровий файл і все це відбувається за один машинний цикл.
6 регістрів з 32 можуть використовуватися як три 16-розр. регістра непрямої адреси для ефективної адресації в межах пам'яті даних. Один з цих покажчиків адреси може також використовуватися як покажчик адреси для доступу до таблиці перетворення у флеш-пам'яті програм. Дані 16-розр. регістри називаються X-регістр, Y-регістр і Z-регістр і описуються далі в цьому розділі.
АЛП підтримує арифметичні і логічні операції між регістрами, а також між константою і регістром. Крім того, АЛП підтримує дії з одним регістром. Після виконання арифметичної операції регістр статусу оновлюється для відображення результату виконання операції.
Для розгалуження програми підтримуються інструкції умовних і безумовних переходів і викликів процедур, що дозволяють безпосередньо адресуватися в межах адресного простору. Більшість інструкцій являють собою одне 16-розр. слово. Кожна адреса пам'яті програм містить 16- або 32-розр. інструкцію. Флеш-пам'ять програм розділена на дві секції: секція програми
початкового завантаження і секція прикладної програми. Обидві секції мають
роздільні біти захисту від запису і читання / запису. Інструкція SPM (запис в
секцію прикладної програми) повинна використовуватися тільки усередині секції програми початкового завантаження.
При генерації переривання і виклику підпрограм адреса повернення з програмного лічильника записується в стек. Стек ефективно розподілений у статичному ОЗП пам'яті даних і, отже, розмір стека обмежений загальним
розміром статичного ОЗП і використовуваним його обсягом. У будь-якій програмі відразу після скидання повинна бути виконана ініціалізація покажчика стека (SP) (тобто перед виконанням процедур обробки переривань або викликом підпрограм). Покажчик стека - SP - доступний на читання і запис в просторі вводу-виводу. Доступ до статичного ОЗП даних може бути легко здійснений через 5 різних режимів адресації архітектури AVR.
Гнучкий модуль переривань містить свої керуючі регістри в просторі вводу-виводу і має додатковий біт загального дозволу роботи системи переривань в регістрі статусу. У всіх переривань є свій вектор переривання відповідно до таблиці векторів переривань. Переривання мають пріоритет відповідно до позиції їх вектора. Переривання з меншою адресою переривання мають більш високий пріоритет.
Простір пам'яті введення-виведення містить 64 адреси з безпосередньою адресацією або може адресуватися як пам'ять даних, наступна за регістрами за адресами $ 20 - $ 5F. Крім того, Atmega8 має простір розширеного введення-виведення за адресами $ 60 - $ FF у статичному ОЗП, для доступу до якого можуть використовуватися тільки процедури ST / STS / STD і LD / LDS / LDD.
АЛП - арифметико-логічний пристрій
Високопродуктивне АЛПAVR-мікроконтролерів працює в безпосередньому зв'язку з усіма 32 універсальними робочими регістрами.
АЛПдозволяєвиконати за один машинний цикл операціюміждвомарегістрамиабоміжрегістром і константою. ОпераціїАЛПможуть бути
класифіковані на три групи: арифметичні, логічні та бітові. Крім того, архітектуроюAtmega8підтримуютьсяопераціїмноженнязі знаком і без знака і дробовим форматом.
Регістр статусу
Регістр статусу міститьінформацію про результат тількищовиконаної
арифметичноїінструкції. Дана інформаціяможевикористовуватися для розгалуженняпрограми за умовою. Слідрозуміти, щорегістр статусу оновлюєтьсяпіслявиконаннявсіхопераційАЛП в обсязіпередбаченому для кожноїконкретноїінструкції. Прапорицьогорегістра в більшостівипадківдозволяютьвідмовитисявідвикористанняінструкційпорівняння, роблячи код програмибільшкомпактним і швидким. На рисунку 2.2 наведено структуру мікроконтролера SREG AVR регістр статусу.
Рисунок 1.3- Структурамікроконтролера SREG AVR регістра статусу
Розряд 7 - I: Загальний дозвіл переривань
Біт загального дозволу переривань використовується для активізації роботи системи переривань. Дозвіл окремих переривань здійснюється у відповідних керуючих регістрах. Якщо біт загального дозволу переривань скинути, то жоден з переривання не буде активним незалежно від їх індивідуальної конфігурації. Біт 1 скидається в 0 апаратно після генерації запиту на переривання, а після виконання інструкції повернення з переривання RETI знову встановлюється до 1 для виконання подальших переривань. Біт 1 може також скидатися і встановлюватися за допомогою інструкцій CLI і SEI, відповідно.
Розряд 6 - T: Зберігання копійованого біта
Спеціальні бітові операції BLD (копіювання з Т-біта) і BST (копіювання в Т-біт) використовують як джерело і одержувача даних біт T. Будь-який біт з реєстрового файлу може бути скопійований в біт T інструкцією BST, а також вміст біта Т може бути скопійовано в будь-який біт реєстрового файлу за допомогою інструкції BLD.
Розряд 5 - H: Прапор половинного перенесення
Даний прапор встановлюється при виконанні деяких арифметичних інструкцій і повідомляє про виникнення половинного перенесення. Як правило половинне перенесення широко використовується в двійково-десятковій арифметиці.
Розряд 4 - S: біт знака, S = Викл. АБО (N,? V)
Біт S - результат виконання логічної операції виключає АБО між прапором негативного результату N і прапором переповнення довічного доповнення V.
Розряд 3 - V: Прапор переповнення довічного доповнення
Прапор переповнення довічного доповнення V підтримує арифметику з двійковим доповненням.
Розряд 2 - N: Прапор негативного результату
Прапор негативного результату N повідомляє, що результатом виконання арифметичної або логічної операції є від'ємне значення.
Розряд 1 - Z: Прапор нульового результату
Прапор нульового результату Z вказує, що результатом виконання арифметичної або логічної операції є нуль.
Розряд 0 - C: Прапор переносу
Прапор переносу C повідомляє про виникнення переносу в результаті виконання арифметичної або логічної операції.
Файл регістрів оптимізований під розширений набір інструкцій AVR-мікроконтролерів. З метою досягнення необхідної продуктивності і гнучкості файлом регістрів підтримуються наступні схеми введення-виведення:
Один 8-розр. операнд і один 8-розр. результат
Два 8-розр. операнда і один 8-розр. результат
Два 8-розр. операнда і один 16-розр. результат
Один 16-розр. операнд і один 16-розр. Результат
На рисунку 1.4 показано структуру 32 робочих регістрів загального призначення в ЦПУ.
Рисунок 1.4-Регістрів загального призначення в ЦПУ
Більшість інструкцій працюють з файлом регістрів і мають безпосередній доступ до всіх регістрів, чим досягається виконання їх за один машинний цикл.
Як показано на рисунку 1.4, кожен регістр має свою адресу в області пам'яті даних, для чого відведено там перші 32 позиції. Не дивлячись на фізичну реалізацію не по адресах статичного ОЗП, дана архітектура пам'яті забезпечує високу гнучкість доступу до регістрів, наприклад, регістри-покажчики X, Y і Z можуть бути встановлені для присвоєння індексу будь-якому регістру у файлі.
