Архітектура мк avr, призначення та основні характеристики, ядро мк, система команд.
Мікроконтролер містить: ПЗП (FLASH) – флеш-пам‘ять програм, ПЗП (EEPROM) – пам‘ять з електричним стиранням інформації; послідовний періферійний інтерфейс SPI (Serial Periphtral Interface); програмний лічильник PC (Program Counter), АЛП арифметико-логічний пристрій ; регістр команд IR (Instruction Register}; дешифратор команд ID ( Instruction Decoder ); 32регістри загального призначення (General Purpоse Registers ); ОЗП статичного типу SRAM; регістри введення виведення;таймери; АЦП;– аналоговий компаратор AC (Analog Comparator); UART універсальний асинхронний приймач-передавач;сторожевий таймер WDT (Watchdog Timer); порти введення-виведення; модуль переривань.
Основою ядра архітектури є Гарвардський процесор, регістрова пам’ять (регістри загального призначення та регістривведення-виведення), пам'ять програм та пам'ять даних.
Склад та кількість періферійних пристроїв (таймерів, портів введення-виведення, послідовних інтерфейсів, АЦП) залежить від конкретної моделі мікроконтролера.
Гарвардський процесор реалізує повний логічний і фізичний розподіл не тільки адресних просторів, але й інформаційних шин для звертання до пам'яті програм і до пам'яті даних, причому способи адресуванні і доступу до цих масивів пам'яті також різні. Подібна побудова вже ближче до структури цифрових сигнальних процесорів і забезпечує істотне підвищення продуктивності. Процесор працює одночасно як із пам'яттю програм, так і з пам'яттю даних; розрядність шини пам'яті програм розширена до 16 біт. В МК AVR використовується технології конвеєрізації, унаслідок чого цикл "вибірка - виконання" команди помітно скорочений.
Система команд АVR (Додаток В) містить п'ять груп команд: умовного розгалуження, безумовного розгалуження, арифметичні і логічні операції, команди пересилки даних, команди роботи з бітами. У останніх версіях AVR сімейства Megaреалізована функція апаратного множення. По розмаїтості і кількості реалізованих інструкцій AVR більше схожі на CISC, чим наRISC Наведена у Додатку система команд містить 121 інструкцію й застосовна без яких-небудь застережень для мікроконтролера Atmega103.
Молодші моделі AVR не мають деяких команд із наведеного списку. Основна відмінність полягає в тому, що ті мікроконтролери (AT90S1200, Attiny10/11), у яких відсутня SRAM, не містять і відповідних команд роботи з оперативною пам'яттю. Крім того, AT90S1200 не має команд ADIW, SBIW, IJMP, ICALL, LPM, а Attiny10/11 – команд ADIW, SBIW, IJMP,ICALL, LPM, а ATtiny10/11 - команд ADIW, SBIW, IJMP, ICALL.
Тільки Megaavr мають двослівні, виконувані за три такти, команди абсолютних переходів JMP і CALL. Усім іншим типам AVR (Tiny і Classic) ці повільні команди не потрібні, тому що весь адресний простір обсягом до 4K слів досяжне за допомогою команд відносних переходів RJMP, RCALL. Також команда ELPM сторінкового читання FLASH пам'яті існує й необхідна тільки для Atmega103 через збільшення розмірів пам'яті програм у цього мікроконтролера до 128K байт.
Спеціальна директива асемблера. device <типAVR> забезпечує контроль відповідності команд, використовуваних у тексті програми, типу зазначеного процесора.
РЗП
Регістри, доступні програмістові для зберігання даних, називаються регістрами загального призначення (мал. 2.2). Окрім них, процесор зазвичай має безліч інших регістрів. Деякі з них цікаві лише проектувальникам апаратури, з іншими — наприклад, регістрами диспетчера пам'яті — ми ще зустрінемося в наступних главах. Для доступу до регістрів процесору не потрібно займати зовнішню шину Даних, та і цикл доступу до регістра зазвичай дуже короткий і збігається з циклом роботи АЛУ. Отже, чим більше біля процесора регістрів, тим швидше він може працювати з оперативними даними. В ті часи, коли комп'ютери були великими, прагнення до збільшення кількості регістрів упиралося у вартісні і електротехнічні обмеження. Біля комп'ютерів перших поколінь для реалізації регістрів використовувалися окремі транзистори або мікросхеми малої міри інтеграції, Тому вони коштували набагато дорожче (з розрахунку на один біт пам'яті), споживали значно більше енергії і розсіювали значно більше тепла, чим феритова пам'ять. Перехід на сучасні кристали високої інтеграції змінив положення, але не принципово: тригери, які використовуються для реалізації регістрів, по перерахованих параметрах завжди гірше, ніж виконане за тією ж технологією динамічне ОЗУ. Тому комп'ютери перших поколінь зазвичай мали лише декілька регістрів, а міні- і мікрокомп'ютери 70-х і почала 80-х минулого століття — не більше декількох десятків.
Мал.
2.2. Регістри загального призначення в
системі команд х86
5. |
5. Організація ОП даних, робота з пам’яттю даних. |
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
Будь-яку послідовність нулів і одиниць прийнято називати двійковим кодом. У кожному конкретному випадку двійковий код має однозначну інтерпретацію. В одному випадку він може розглядатися як число, а в іншому уявляти собою деяке поняття, наприклад, символ алфавіту.
З метою стандартизації в комп'ютерах використовують стандартний код для обміну інформацією ASCII ("аскі" код). Восьмибітний розширений ASCII забезпечує уявлення 256 символів, включаючи символи для національного алфавіту (28= 256). Вихідною одиницею інформації є біт, зберігання якого здійснюється фізичним елементом, що може знаходитися в одному із двох стійких станів. Сукупність декількох таких елементів створює комірку пам'яті. Комірка, що містить вісім біт (вісім розрядів), є базовою і називається байтом.
Кількість біт у комірці пам'яті визначає її довжиною. Оперативна пам'ять ЕОМ представляє собою сукупність базових комірок, кожна з яких має свій порядковий номер, починаючи з нуля. Кількість базових комірок оперативної пам'яті прийнято робити кратним величині 1024 байта (1 Кбайт). Якщо базовій комірці зберігаються цілі числа, то у туди можна розмістити число не більше 255 (у шістнадцятковій системі числення - FF). Звичайно, довжина комірки для зберігання даних повинна бути більшою ніж один байт. Встановлено типові комірки, що складаються з базових:
В особливих випадках використовують типові комірки, що містять шістнадцять байт.
Правило запису слова в оперативну пам'ять: Слово займає дві комірки оперативної пам'яті. Молодший байт записується за молодшою адресою, а старший байт за старшою адресою.
Символ h у записі AFC9h означає, що це є шістнадцяткове представлення двійкового коду. Мікропроцесор при звертанні до комірки оперативної памўяті формує її адресу. Адресою типової комірки є адреса молодшого байта. На рис. 1 схематично показано розміщення слова AFC9h в базових комірках оперативної пам'яті.
|
|
||||||||||||||||||||||||||||||||||||||||||
Біля сучасних процесорів кількість регістрів вимірюється сотнями, а інколи і тисячами. Наприклад, замість буфера на одну лише поточну команду, всі без виключення сучасні процесори мають так звану чергу попередньої вибірки команд. Біля мікроконтроллерів PIC і Atmel те, що в специфікаціях вказано як ОЗУ (біля молодших моделей 128 або 256 байт, а біля старших — багато кілобайт), фактично є регістрами.
Послідо́вний порт (англ. serial port) — двонаправлений послідовний інтерфейс, призначений для обміну байтовою інформацією. Послідовний тому, що інформація через нього передається по одному біту, біт за бітом (на відміну від паралельного порту). Найчастіше для послідовного порту персональних комп'ютерів використовується стандарт RS-232c. Раніше послідовний порт використовувався для підключення терміналу, пізніше для модему абомиші. Зараз він використовується для з'єднання з джерелами безперебійного живлення, для зв'язку з апаратними засобами обчислювальних систем.
Самі найпростіші пристрої вводу/виводу видають на зовнішній пристрій код даних у паралельному форматі і приймають із зовнішнього пристрою код даних у паралельному форматі. Такі пристрої вводу/виводу часто називають паралельними портами вводу/виводу. Вони найбільш універсальні, тобто задовольняють потреби узгодження з великою кількістю зовнішніх пристроїв, тому їх часто уводять до складу мікропроцесорної системи як стандартні пристрої. Паралельні порти зазвичай є в складі мікроконтролерів. Саме через паралельні порти мікроконтролер зв'язується з зовнішнім світом.
6. паралельний порт — міжнародний стандарт паралельного інтерфейсу для підключення периферійних пристроїв персонального комп'ютера.
В основному використовується для підключення до комп'ютера таких пристроїв як: принтер, сканер та інших зовнішніх пристроїв (часто використовувався для підключення зовнішніх пристроїв зберігання даних), проте може застосовуватися і для інших цілей (організація зв'язку між двома комп'ютерами, підключення будь-яких механізмів телесигналізації і телекерування).
В основі даного стандарту лежить інтерфейс Centronics і його розширені версії (ECP, EPP).
Назва «LPT» походить від назви стандартного пристрою принтера «LPT1» (Line Printer Terminal або Line PrinTer) в операційних системах сімейства MS-DOS.
