Мікроконтролери RISC архітектури

Полтавський Військовий Інститут Зв’язку

Кафедра схемотехніки радіоелектронних систем

ЛЕКЦІЯ

ОБЧИСЛЮВАЛЬНА ТЕХНІКА ТА МІКРОПРОЦЕСОРИ

Мікропроцесорні системи.

Контролери в телекомунікаціях.

Мікроконтролери RISC архітектури.

Полтава – 2006

Навчальна література:

    Мікропроцесорна техніка: Підручник/ Ю.І. Якименко та інш. – К.: ІВЦ Політехніка; Кондор, 2004. с. 379-395.

    Схемотехніка електронних систем: У з кн. Кн. 3. Мікропроцесори та мікро контролери: Підручник/ В.І. Бойко, А.М. Гуржій, В.Я. Жуйков та ін. – 2-е вид. – К: Вища шк., 2004. с. 338 – 356 с.

ВСТУП

CISC МК характеризуються досить розвиненою системою команд, наприклад, МК серії і80х51 мають 111 команд. Однак аналіз програм показав, що 20% з них використовується в 80% випадків, а дешифратор команд займає більше 70% площі кристалу. Команди достатньо складні і виконуються за різний час. Тому у розробників виникла ідея скоротити кількість команд, надати їм єдиний формат і зменшити площу кристала, тобто використати RISC (Reduced Instruction Set Computer) архітектуру.

Особливістю МК, виконаних за RISC архітектурою, є те, що всі команди виконуються за один-три такти, тоді як у CISC контролерах – за один-три машинних цикли, кожний з яких складається з кількох тактів, наприклад для і80х51 – з 12 тактів. Тому RISC контролері мають значно більшу швидкодію. Однак повніша система команд CISC контролерів у деяких випадках сприяє економії часу виконання певних фрагментів програми та економії пам’яті програм.

    Особливості МК RISC архітектури

У процесорах з RISC-архітектурою набір команд, що виконуються, скорочений до мінімуму. До МК із RISC-процесором відносяться МК AVR фірми Atmel, МК PIC16 і PIC17 (Peripheral Interface Controller) фірми Microchip і інші.

RISC МК мають наступні характерні риси.

1. Всі команди мають формат фіксованої довжини (наприклад, 12, 14 або 16 біт).

2. Вибірка команди з пам'яті і її виконання здійснюється за один цикл (такт) синхронізації, що ілюструється рис. 1.


Рис. 1. Паралельні вибірки і виконання інструкцій.

3.Система команд процесора припускає можливість рівноправного використання всіх регістрів процесора. У МК із RISC-процесором усі регістри (часто й акумулятор) розташовуються по адресах, що явно задаються. Це забезпечує додаткову гнучкість при виконанні ряду операцій.

На перший погляд, МК із RISC-процесором повинні мати більш високу продуктивність у порівнянні з CISC МК при одній і тій же тактовій частоті внутрішньої магістралі ВКМ. Однак на практиці питання про продуктивність більш складне і неоднозначне.

По-перше, оцінка продуктивності МК за часом виконання команд різних систем (RISC і CISC) не зовсім коректна. Звичайно продуктивність МП і МК прийнято оцінювати числом операцій пересилання «регістр-регістр», що можуть бути виконані протягом однієї секунди. У МК із CISC-процесором час виконання операції «регістр-регістр» складає від 1 до 3 циклів, що, здавалося б, уступає продуктивності МК із RISC-процесором. Однак прагнення до скорочення формату команд RISC-процесора приводить до змушеного обмеження числа доступних в одній команді регістрів. Так, наприклад, системою команд МК PIC16 передбачена можливість пересилання результату операції тільки в один із двох регістрів — регістр-джерело операнда або робочий регістр. Таким чином, операція пересилання вмісту одного з доступних регістрів в іншій (не джерело операнда і не робочий) потребує використання двох команд. Така необхідність часто виникає при пересиланні вмісту одного з регістрів загального призначення (РЗП) в один з портів МК. У той же час, у системі команд більшості CISC-процесорів присутні команди пересилання вмісту РЗП в один з портів введення-виведення. Тобто більш складна система команд іноді дозволяє реалізувати більш ефективний спосіб виконання операції.

По-друге, оцінка продуктивності МК по швидкості пересилання «регістр-регістр» не враховує особливостей конкретного реалізованого алгоритму керування. Так, при розробці швидкодіючих пристроїв автоматизованого керування основну увагу варто приділяти часу виконання операцій множення і розподілу при реалізації рівнянь різних передаточних функцій. А при реалізації пульта дистанційного керування побутовою технікою варто оцінювати час виконання логічних функцій, що використовуються при опитуванні клавіатури і генерації послідовної кодової посилки керування. Тому в критичних ситуаціях, що вимагають високої швидкодії, варто оцінювати продуктивність на множині тих операцій, що переважно використовуються в алгоритмі керування і мають обмеження за часом виконання.

По-третє, необхідно ще враховувати, що зазначені в довідкових даних на МК частоти синхронізації звичайно відповідають частоті кварцового резонатора, що підключається, у той час як тривалість циклу центрального процесора визначається частотою обміну по ВКМ. Співвідношення цих частот індивідуально для кожного МК і повинно бути прийняте в розрахунок при порівнянні продуктивності різних моделей контролерів.

    Однокристальні AVR-мікроконтролери

Архітектуру RISC МК розглянемо на прикладі AT90S 2313. Це малопотужний восьмирозрядний КМОП МК, заснований на розширеній AVR RISC-архітектурі. Він належить до сім’ї AVR-МК загального призначення і створений дослідницьким центром фірми Atmel Corp. (Норвегія). Взагалі у номенклатуру групи AT90S входять пристрої з ПЗП від 1 до 8 Кбайт, з різною перефірією, кількість виводів від 8 до 48. Всього випускається три сім’ї AVR-МК – Tiny, Classic, Mega. МК Tiny – найдешевші і мають найпростішу структуру, Mega – найпотужніші, а Classic – займають проміжне положення між ними.

Цей МК сімейства Classic виробляється за технологією високощільної енергонезалежної пам'яті компанії Atmel. Вбудована внутрішньосистемноперепрограмована флеш-пам’ять дозволяє перепрограмувати пам'ять програм безпосередньо усередині системи через послідовний інтерфейс SPI за допомогою простого програматора або за допомогою автономної програми в завантажувальному секторі. Завантажувальна програма може використовувати будь-який інтерфейс для завантаження прикладної програми у флеш-пам’ять. Програма в завантажувальному секторі продовжує роботу в процесі відновлення прикладної секції флэш-памяти, тим самим підтримуючи двохопераційність: читання під час запису. За рахунок об’єднання восьмирозрядного. RISC ЦП з внутрішньосистемносамопрограмованою флеш-пам’яттю в одній мікросхемі, МК дозволяє досягти високого ступеня гнучкості й ефективної вартості при проектуванні більшості додатків вбудованого керування.

Основні характеристики МК AT90S 2313

– 133 інструкцій, більшість з яких виконуються за один машинний цикл;

- Продуктивність: 1 млн. операцій у секунду/Мгц, що дозволяє проектувальникам систем оптимізувати співвідношення енергоспоживання і швидкодії.

– Вбудований пристрій множення виконує множення за 2 машинних цикли.

- Енергонезалежна пам'ять програм 1Кбайт х 16.

– Зносостійкість перепрограмованої флеш-пам’яті: 1000 циклів запис/стирання.

– Зносостійкість EEPROM (128 байт): 100000 циклів запис/стирання.

– Вбудований статичний ОЗП ємністю 128 байт.

–Можливість адресації зовнішньої пам'яті розміром до 64 кбайт.

– Програмований захист коду програми.

– Інтерфейс SPI для внутрішньо системного програмування

- Два 16-розрядних таймера-лічильника.

– 8 каналів 8-розрядного аналогово-цифрового перетворення.

– Послідовний інтерфейс, орієнтований на передачу даних у байтному форматі.

– Програмований сторожовий таймер з вбудованим генератором.

– Вбудований аналоговий компаратор.

Основні риси архітектури МК AT90S 2313

Взаємодія ядра та периферійних пристроїв МК AT90S 2313 зображена на рис. 2. Основна функція ядра ЦП полягає в гарантуванні коректності виконання програми. Крім цього, ЦП повинний мати можливість адресуватися до різних видів пам'яті, виконувати обчислення, керувати периферійними пристроями й обробляти переривання.

Рис. 2. Функціональна схема архітектури AVR.

З метою досягнення максимальної продуктивності і паралельності виконання операцій в AVR-МК використовується Гарвардська архітектура з роздільними пам'яттю і шинами програм і даних. Команди в пам'яті програм виконуються з однорівневою конвеєризацією. У процесі виконання однієї інструкції наступна попередньо зчитується з пам'яті програм. Дана концепція дозволяє виконувати одну інструкцію за один машинний цикл.

Регістровий файл зі швидким доступом містить 32 x 8-розрядних робочих регістрів загального призначення з однотактовим циклом доступу. Завдяки цьому досягнута однотактність роботи АЛП (див. рис. 3). При звичайній роботі в АЛП спочатку з регістрового файлу завантажується два операнда, потім виконується операція, а після результат відправляється назад у регістровий файл і все це відбувається за один машинний цикл. Шість регістрів з 32 можуть використовуватися як три 16-розрядних регістра непрямої адреси для ефективної адресації в межах пам'яті даних. Один з цих покажчиків адреси може також використовуватися як покажчик адреси для доступу до таблиці перетворення у флеш-пам’яті програм. Дані 16-разр. регістри називаються X-регістр, Y-регістр і Z-регістр.


Рис. 3. Однотактність роботи АЛП.

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

Для розгалуження програми підтримуються інструкції умовних і безумовних переходів і викликів процедур, що дозволяють безпосередньо адресуватися в межах адресного простору. Більшість інструкцій являють собою одне 16-розрядне слово. Кожна адреса пам'яті програм містить 16- або 32-розрядну інструкцію. Пам’ять програм розділена на два сектори: сектор програми початкового завантаження і сектор прикладної програми. Обидва сектори мають роздільні біти захисту від запису і читання/запису. Оскільки всі AVR-інструкції є 16 або 32-розрядними, флеш-пам’ять організована як 1 кбайт х 16. Програмний лічильник РС у МК є 16-розрядним, тому дозволяє адресувати до 64 кбайт пам'яті програм.

При генерації переривання і виклику підпрограм адреса повернення з програмного лічильника записується в стек. Стек ефективно розподілений у статичному ОЗП пам'яті даних і, отже, розмір стека обмежений загальним розміром статичного ОЗП і використовуваним його обсягом. У будь-якій програмі відразу після скидання повинна бути виконана ініціалізація покажчика стека (SP) (тобто перед виконанням процедур обробки переривань або викликом підпрограм). Покажчик стека – SP – доступний для читання і запису у просторі введення-виведення.

Доступ до статичного ОЗП даних може бути легко здійснений через 5 різних режимів адресації архітектури AVR і виконується за два машинних цикли відповідно до рис. 4.

МК містить 128 байт пам'яті даних типу EEPROM.

Гнучкий модуль переривань містить свої керуючі регістри в просторі введення - виведення і має додатковий біт загального дозволу роботи системи переривань у регістрі статусу. У всіх переривань мається свій вектор переривання відповідно до таблиці векторів переривань. Переривання мають пріоритет відповідно до позиції їхнього вектора. Переривання з меншою адресою переривання мають більш високий пріоритет.

Простір пам'яті введення - виведення містить 32 адреси з безпосередньою адресацією або може адресуватися як пам'ять даних.

Таймери-лічильники МК призначені для точного завдання часових інтервалів, генерації прямокутних імпульсів і виміру часових характеристик імпульсних сигналів.

Рис. 4. Часова діаграма доступу до вбудованого статичного ОЗП даних.

      Спеціальні можливості МК

– Скидання при подачі живлення і програмована схема скидання при зниженні напруги живлення.

– Вбудований калібрований RC-генератор.

– Десять зовнішніх і внутрішніх джерел переривань.

- Програмний вибір тактової частоти.

- Шість режимів зниження енергоспоживання:

1.Режим холостого ходу (Idle).

Зупиняє ЦП, але при цьому підтримує роботу статичного ОЗП, таймерів-лічильників, SPI-порту і системи переривань У режимі холостого ходу допускається пробудження від будь-якого зовнішнього або внутрішнього переривання, наприклад, при переповненні таймера.

2. Режим зменшення шумів АЦП (ADC Noise Reduction).

Зупиняє ЦП і всі модулі введення-виведення, крім асинхронного таймера й АЦП для мінімізації імпульсних шумів у процесі перетворення АЦП. Вихід з даного режиму допускається не тільки при генерації запиту на переривання по завершенню перетворення АЦП, але і при зовнішнім скиданні, скиданні по сторожовому таймері, скиданні при неприпустимому зниженні живлення, перериванні при виявленні встановленої адреси на послідовній шині, перериванні по таймеру-лічильнику 0, перериванні по входах INT0, 1.

3. Режим вимикання (Power-down).

У даному режимі припиняє роботу зовнішній генератор, але в дії залишаються зовнішні переривання, спостереження за адресою на послідовній шині і сторожовий таймер (за умови, що вони активізовані). Вихід з даного режиму можливий тільки по зовнішньому скиданню, скиданню сторожовим таймером, скиданню супервізором живлення, перериванні по виявленні встановленої адреси на послідовній шині, перериванні по входах INT0, 1. У даному режимі фактично відключена генерація всіх тактових частот, тому подальша робота модулів продовжується тільки в асинхронному режимі.

4. Економічний режим (Power-save).

Даний режим ідентичний режимові вимикання за деякими виключеннями:

Якщо Т/С 0 тактується асинхронно, то він у режимі сну продовжить роботу. Вихід з режиму сну можливий по переповненню таймера. У даному режимі зупиняються всі тактові джерела за винятком асинхронних (clkASY), що працюють тільки разом з асинхронними модулями, у т.ч. Т/С 0 з дозволеною опцією асинхронного тактуваня.

5. Режим чергування (Standby).

Кварцовий генератор продовжує роботу, а інша частина МК знаходиться в режимі сну. Даний режим характеризується малою споживаною потужністю, але при цьому дозволяє досягти самого швидкого повернення в робочий режим (за 6 машинних циклів).

6. Розширений режим чергування (Extended Standby).

В даному режимі основний генератор і асинхронний таймер продовжують працювати. Вихід з розширеного чергового режиму відбувається за шість машинних циклів.

Описані вище модулі складають так називаний базовий комплект МК і входять до складу будь-якого сучасного контролера. Очевидна необхідність включення до складу МК додаткових модулів, склад і можливості яких визначаються конкретною розв'язуваною задачею. Серед таких додаткових модулів випливає, насамперед, відзначити:

    модулі послідовного введення/виведення даних;

    модулі аналогового введення/ виведення.

Модулі послідовного введення/ виведення.

Наявність у складі 8-розрядного МК модуля контролера послідовного введення-виведення стало останнім часом звичайним явищем. Задачі, що вирішуються засобами модуля контролера послідовного введення/виведення, можна розділити на три основні групи:

    зв'язок вбудованої мікроконтролерної системи із системою керування верхнього рівня, наприклад, з персональним комп'ютером. Найчастіше для цієї мети використовуються інтерфейс RS-232C;

    зв'язок із зовнішніми стосовно МК периферійними інтегральними схемами, а також з датчиками фізичних величин з послідовним виходом. Для цих цілей використовуються інтерфейси I2C, SPI, а також нестандартні протоколи обміну;

    інтерфейс зв'язку з локальною мережею в мультимікроконтролерних системах. У системах з числом МК до п'яти звичайно використовуються мережі на основі інтерфейсів I2C, RS-232C і RS-485 із власними мережними протоколами високого рівня. У більш складних системах усе більш популярним стає протокол CAN.

З погляду організації обміну інформацією згадані типи інтерфейсів послідовного зв'язку відрізняються режимом передачі даних (синхронним або асинхронним), форматом кадру (число біт у посилці при передачі байта корисної інформації) і часовими діаграмами сигналів на лініях (рівні сигналів і положення фронтів при переключеннях).

Число ліній, по яких відбувається передача в послідовному коді, звичайно дорівнює двом (I2C, RS-232C, RS-485) або трьом (SPI, деякі нестандартні протоколи). Дана обставина дозволяє спроектувати модулі контролерів послідовного обміну таким чином, щоб з їхньою допомогою на апаратному рівні можна було реалізувати кілька типів послідовних інтерфейсів. При цьому режим передачі (синхронний або асинхронний) і формат кадру підтримуються на рівні логічних сигналів, а реальні фізичні рівні сигналів для кожного інтерфейсу одержують за допомогою спеціальних інтегральних схем, що називають прийомопередатчиками, конверторами, трансиверами.

Серед різних типів вбудованих контролерів послідовного обміну, що входять до складу 8-розрядних МК, склався стандарт «де-факто» — модуль UART (Universal Asynchronous Receiver and Transmitter). UART — це універсальний асинхронний приемопередатчик. Однак більшість модулів UART, крім асинхронного режиму обміну, здатні також реалізувати режим синхронної передачі даних.

Модулі аналогового введення/ виведення.

Найпростішим пристроєм аналогового введення в МК є вбудований компаратор напруги. Компаратор порівнює вхідну аналогову напругу з опорним потенціалом V>REF> і встановлює на виході логічну «1», якщо вхідна напруга більше опорної. Їх зручніше за усе використовувати для контролю визначеного значення вхідної напруги, наприклад, у термостатах. Компаратор дозволяє реалізувати на МК інтегруючий АЦП.

Однак більш широкі можливості для роботи з аналоговими сигналами дає АЦП, вбудований у МК. Найчастіше він реалізується у виді модуля багатоканального АЦП, призначеного для введення в МК аналогових сигналів з датчиків фізичних величин і перетворення цих сигналів у двійковий код.

Власне АЦП виконаний по методу послідовного наближення. Практично у всіх моделях 8-розр. МК розрядність АЦП також складає 8 розрядів. Відповідно, формат представлення результатів виміру АЦП — однобайтовий. Тривалість такту перетворення задає генератор синхронізації: один цикл дорівнює двом періодам частоти генератора t>ADC>. Час перетворення для типових модулів АЦП МК складає від одиниць до десятків мікросекунд.

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

Більшість модулів АЦП мають тільки режим програмного запуску: установка одного з бітів регістра режиму запускає черговий вимір. Найбільш універсальні модулі АЦП мають також режим автоматичного запуску, при якому після завершення одного циклу перетворення негайно починається наступний. Однак дані виміри кожного циклу повинні бути лічені програмним способом.

Цифро-аналогові перетворювачі в складі МК є великою рідкістю. Функція ЦАП реалізується засобами модуля програмованого таймера в режимі ШІМ. На одному з виводів МК формується високочастотна імпульсна послідовність з регульованою тривалістю імпульсу. Отриманий сигнал згладжується фільтром нижніх частот на операційному підсилювачі.

Розширення адресованої пам’яті МК.

Характеристики інтерфейсу зовнішньої пам’яті дозволяє використовувати його не тільки для підключення до зовнішнього статичного ОЗП або флеш-пам’яті, але і в якості інтерфейсу з зовнішніми периферійними пристроями, наприклад, ЖК- дисплеї, АЦП і ЦАП. Після дозволу зовнішньої пам’яті (XMEM) стає доступним адресний простір за межами внутрішнього статичного ОЗП через визначені для цієї функції виводи. Інтерфейс складається з:

    AD7:0: Мультиплексована молодша шина адреси/шина даних.

    A15:8: Старша шина адреси.

    ALE: Строб адреси зовнішньої пам’яті.

    RD: Строб читання із зовнішньої пам’яті.

WR: Строб запису у зовнішню пам’ять.

Інтерфейс XMEM автоматично визначає до якої пам’яті зовнішньої або внутрішньої здійснюється доступ. Під час доступу до зовнішньої пам’яті інтерфейс XMEM буде формувати сигнали шин адреси, даних і керування на лініях порта у відповідності з рис. 5. При переході ALE з 1 в 0 на лініях AD7:0 будуть присутні дійсні адресні сигнали. ALE знаходиться на низькому рівні під час передавання даних. Після дозволу роботи інтерфейсу доступ до внутрішньої пам’яті буде ініціювати зміни на шинах даних і адреси, а також строба ALE, при цьому, строби RD и WR залишаться незмінними. Рис. 5 ілюструє як підключити зовнішнє статичне ОЗП до AVR- мікроконтролеру за допомогою 8-розр. регістра, який передає дані напряму при високому рівні на вході G.


Рис. 5. Підключення зовнішнього статичного ОЗП до AVR-МК.

Поряд зі створенням складних і високоінтегрованих схем, також удосконалюються мікросхеми, випуск яких був освоєний давно, наприклад, однокристальні ЕОМ сімейства MCS-51. Ці мікросхеми добре зарекомендували себе в недорогих і порівняно нескладних пристроях. Основними напрямками модернізації даних МК є:

    збільшення внутрішньої пам'яті програм до 32 Кбайт, причому вона може бути масочною, одноразово програмованою або з ультрафіолетовим стиранням;

    зниження споживаної потужності шляхом застосування КМОП-технології і спеціальних режимів зниженого енергоспоживання;

    збільшення тактової частоти до 20 Мгц;

    модифікація режимів роботи лічильників-таймерів і послідовного порту;

    розміщення на кристалі додаткового устаткування.

ВИСНОВОК

У процесорах з RISC-архітектурою набір команд, що виконуються, скорочений до мінімуму. Для реалізації більш складних операцій приходиться комбінувати команди.

RISC МК мають наступні характерні риси:

1. Всі команди мають формат фіксованої довжини.

2. Вибірка команди з пам'яті і її виконання здійснюється за один цикл синхронізації.

3. Система команд дає можливість рівноправного використання всіх регістрів ЦП.

МК AT90S 2313 – малопотужний 8-розрядний КМОП МК, заснований на розширеній AVR RISC-архітектурі. З метою досягнення максимальної продуктивності і паралельності виконання операцій в AVR-МК використовується Гарвардська архітектура з роздільними пам'яттю і шинами програм і даних. Команди в пам'яті програм виконуються з однорівневою конвеєризацією. У процесі виконання однієї інструкції наступна попередньо зчитується з пам'яті програм. Дана концепція дозволяє виконувати одну інструкцію за один машинний цикл.