Тема
3. Мікроконтролери.
Класифікація та структура
Мікроконтролер
- мікросхема, призначена для керування електронними пристроями. Типовий
мікроконтроллер поєднує в собі функції процесора і периферійних пристроїв, може
містити ОЗУ і ПЗУ. По суті, це однокристальний комп'ютер, здатний виконувати
прості завдання. Використання однієї мікросхеми, замість цілого набору, як у
випадку звичайних процесорів, що застосовуються в персональних комп'ютерах,
значно знижує розміри, енергоспоживання і вартість пристроїв, побудованих на
базі мікроконтролерів. Мікроконтролери є основою для побудови вбудованих
систем, їх можна зустріти в багатьох сучасних приладах, таких, як телефони,
пральні машини і т.п.
Термін
«мікроконтроллер» (МК) витіснив з ужитку раніше використовуваний термін
«однокристальна мікро-ЕОМ». Перший же патент на однокристальних мікро-ЕОМ був
виданий в 1971 році інженерам М. Кочрену і Г. Буну, співробітникам Texas
Instruments. Саме вони запропонували на одному кристалі розмістити не тільки
мікропроцесор, але й пам'ять, пристрої введення-виведення. З появою
однокристальних мікро-ЕОМ пов'язують початок ери комп'ютерної автоматизації в
галузі керування. Саме ця обставина і визначило термін «мікроконтроллер»
(control - керування).
Популярністю
у розробників користуються 8-бітні мікроконтролери PIC фірми Microchip
Technology і AVR фірми Atmel, 16-бітні MSP430 фірми TI, а також ARM,
архітектуру яких розробляє фірма ARM і продає ліцензії іншим фірмам для їх
виробництва.
Класифікація
і структура мікроконтролерів
В
даний час випускається цілий ряд типів МК. Всі ці прилади можна умовно
розділити на три основні класи:
·
8-розрядні МК для
вбудованих додатків;
·
16- та 32-розрядні МК;
·
цифрові сигнальні процесори (DSP).
Найбільш
розповсюдженим представником сімейства МК є 8-розрядні прилади, широко
використовуються в промисловості, побутовій та комп'ютерній техніці. Причиною
життєздатності 8-розрядних МК є використання їх для керування реальними
об'єктами, де застосовуються, в основному, алгоритми з переважанням логічних
операцій, швидкість обробки яких практично не залежить від розрядності
процесора.
Зростанню
популярності 8-розрядних МК сприяє постійне розширення номенклатури виробів, що
випускаються такими відомими фірмами, як Motorola, Microchip, Intel, Zilog,
Atmel і багатьма іншими. Сучасні 8-розрядні МК володіють, як правило, радом
відмітних ознак. Перерахуємо основні з них:
·
модульна організація,
при якій на базі одного процесорного ядра (центрального процесора) проектується
ряд (лінійка) МК, що розрізняються обсягом і типом пам'яті програм, обсягом
пам'яті даних, набором периферійних модулів, частотою синхронізації;
·
використання закритої
архітектури МК, яка характеризується відсутністю ліній магістралей адреси і
даних на висновках корпусу МК. Таким чином, МК являє собою закінчену систему
обробки даних, нарощування можливостей якої з використанням паралельних
магістралей адреси і даних не передбачається;
·
використання типових функціональних
периферійних модулів (таймери, процесори подій, контролери послідовних
інтерфейсів, аналого-цифрові перетворювачі та ін), що мають незначні
відмінності в алгоритмах роботи в МК різних виробників;
·
розширення числа режимів
роботи периферійних модулів, які задаються в процесі ініціалізації
регістрів спеціальних функцій МК.
При
модульному принципі побудови всі МК одного сімейства містять процесорний ядро,
однакове для всіх МК даного сімейства, і змінюваний функціональний блок, який
відрізняє МК різних моделей. Процесорний ядро включає в себе:
·
центральний процесор;
·
внутрішню контролерну магістраль
(ВКМ) у складі шин адреси, даних і управління;
·
схему синхронізації МК;
·
схему управління режимами
роботи МК, включаючи підтримку режимів зниженого енергоспоживання, початкового
запуску (скидання) і т.д.
Змінний
функціональний блок містить у собі модулі пам'яті різного типу й обсягу, порти
вводу/виводу, модулі тактових генераторів (Г), таймери. У відносно простих
МК модуль обробки переривань входить до складу процесорного ядра. У більш
складних МК він являє собою окремий модуль з розвиненими можливостями. До
складу змінюваного функціонального блоку можуть входити і такі додаткові модулі
як компаратори напруги, аналого-цифрові перетворювачі (АЦП) та інші.
При
проектуванні мікроконтролерів доводиться дотримувати баланс між розмірами і
вартістю з одного боку і гнучкістю і продуктивністю з іншого. Для різних
застосувань оптимальне співвідношення цих і інших параметрів може розрізнятися
дуже сильно. Тому існує величезна кількість типів мікроконтролерів, що
відрізняються архітектурою процесорного модуля, розміром і типом вбудованої
пам'яті, набором периферійних пристроїв, типом корпусу.
В
той час, як 8-розрядні процесори загального призначення повністю витіснені
продуктивнішими моделями, 8-розрядні мікроконтролери продовжують широко
використовуватися. Це пояснюється тим, що існує велика кількість застосувань, в
яких не потрібна висока продуктивність, але важлива низька вартість. В той же
час, є мікроконтролери, з більшими обчислювальними можливостями, наприклад
цифрові сигнальні процесори.
Обмеження
за ціною і енергоспоживанням стримують також зростання тактової частоти
контроллерів. Хоча виробники прагнуть забезпечити роботу своїх виробів на
високих частотах, вони, в той же час, надають замовникам вибір, випускаючи
модифікації, розраховані на різні частоти і напругу живлення. У багатьох
моделях мікроконтролерів використовується статична пам'ять для ОЗП і внутрішніх
регістрів. Це дає контролеру можливість працювати на менших частотах і навіть
не втрачати дані при повній зупинці тактового генератора. Часто передбачені
різні режими енергозбереження, в яких відключається частина периферійних
пристроїв і обчислювальний модуль.
Окрім
ОЗП, мікроконтролер може мати вбудовану незалежну пам'ять для зберігання
програми і даних. У багатьох контролерах взагалі немає шин для підключення
зовнішньої пам'яті. Найбільш дешеві типи пам'яті допускають лише одноразовий
запис. Такі пристрої підходять для масового виробництва в тих випадках, коли
програма контролера не оновлюватиметься. Інші модифікації контролерів мають
можливість багатократного перезапису незалежної пам'яті. На відміну від
процесорів загального призначення, в мікроконтролерах часто використовується
гарвардська архітектура.
Програмування
мікроконтролерів зазвичай здійснюється на асемблері або Сі, хоча існують компілятори
для інших мов, використовуються також вбудовані інтерпретатори Бейсіка і Форту.
Для відлагодження програм використовуються програмні симулятори (спеціальні
програми для персональних комп'ютерів, що імітують роботу мікроконтролера),
внутрішньосхемні емулятори (електронні пристрої, що імітують мікроконтролер,
які можна підключити замість нього до вбудованого пристрою, що розробляється)
та інтерфейс JTAG.