Мікроконтролер
Мікроконтро́лер (англ. microcontroller), або однокристальний мікрокомп'ютер — виконаний у вигляді мікросхеми спеціалізований комп'ютер, що включає мікропроцесор, оперативну та постійну пам'ять для збереження виконуваного коду програм і даних, порти вводу-виводу і блоки зі спеціальними функціями (лічильники, компаратори, АЦП та інші).
Використовується для керування електронними пристроями. По суті, це — однокристальний комп'ютер, здатний виконувати прості завдання. Використання однієї мікросхеми значно знижує розміри, енергоспоживання і вартість пристроїв, побудованих на базі мікроконтролерів.
Мікроконтролери можна зустріти в багатьох сучасних приладах, таких як телефони, пральні машини, вони відповідають за роботу двигунів і систем гальмування сучасних автомобілів, з їх допомогою створюються системи контролю і системи збору інформації. На основі мікроконтролерів проектують та створюють вимірювальні пристрої, системи керування об'єктами та процесами, вони є основою охоронних, протипожежних систем, домофонів, сигналізацій тощо.[1] Більшість процесорів, що випускаються у світі — мікроконтролери.
Історія
Перший контролер був розроблений в 1971 році інженером англ. Gary W. Boone, співробітником Texas Instruments. У 1980 році фірма Intel випускає мікроконтролер i8048, і того ж року пізніше — i8051. Вдалий набір периферійних пристроїв, можливість гнучкого вибору зовнішньої або внутрішньої програмної пам'яті і прийнятна ціна забезпечили цьому мікроконтролеру успіх на ринку. З погляду технології мікроконтролер i8051 був для свого часу дуже складним виробом — у кристалі було використано 128 тисяч транзисторів, що в 4 рази перевищувало кількість транзисторів в 16-розрядному мікропроцесорі i8086.
Існує[коли?] більше 200[2][3] модифікацій мікроконтролерів, сумісних з i8051, що випускаються двома десятками компаній. А також велика кількість мікроконтролерів інших типів. Популярністю у розробників користуються 8-бітові мікроконтролери PIC від фірми «Microchip Technology» і «AVR» від фірми «Atmel».
Опис
При проектуванні мікроконтролерів доводиться дотримувати баланс між розмірами і вартістю з одного боку і гнучкістю і продуктивністю з іншого. Для різних застосувань оптимальне співвідношення цих і інших параметрів може розрізнятися дуже сильно. Тому існує величезна кількість типів мікроконтролерів, що відрізняються архітектурою процесорного модуля, розміром і типом вбудованої пам'яті, набором периферійних пристроїв, типом корпусу.
В той час, як 8-розрядні процесори загального призначення повністю витіснені продуктивнішими моделями, 8-розрядні мікроконтролери продовжують широко використовуватися. Це пояснюється тим, що існує велика кількість застосувань, в яких не потрібна висока продуктивність, але важлива низька вартість. В той же час, є мікроконтролери, з більшими обчислювальними можливостями, наприклад цифрові сигнальні процесори.
Обмеження за ціною і енергоспоживанням стримують також зростання тактової частоти контролерів. Хоча виробники прагнуть забезпечити роботу своїх виробів на високих частотах, вони, в той же час, надають замовникам вибір, випускаючи модифікації, розраховані на різні частоти і напругу живлення. У багатьох моделях мікроконтролерів використовується статична пам'ять для ОЗП і внутрішніх регістрів. Це дає контролеру можливість працювати на менших частотах і навіть не втрачати дані при повній зупинці тактового генератора. Часто передбачені різні режими енергозбереження, в яких відключається частина периферійних пристроїв і обчислювальний модуль.
Окрім ОЗП, мікроконтролер може мати вбудовану незалежну пам'ять для зберігання програми і даних. У багатьох контролерах взагалі немає шин для підключення зовнішньої пам'яті. Найбільш дешеві типи пам'яті допускають лише одноразовий запис. Такі пристрої підходять для масового виробництва в тих випадках, коли програма контролера не оновлюватиметься. Інші модифікації контролерів мають можливість багатократного перезапису незалежної пам'яті. На відміну від процесорів загального призначення, в мікроконтролерах часто використовується гарвардська архітектура.
Периферія
Неповний список периферії, яка може бути присутня у мікроконтролерах, включає:
- Різні інтерфейси вводу-виводу, такі як UART, I2C, SPI, CAN, USB
- Аналого-цифрові і цифро-аналогові перетворювачі
- Компаратори
- Широтно-імпульсні модулятори
- Таймери
Програмування
Програмування мікроконтролерів зазвичай здійснюється на мові асемблера або C, хоча існують компілятори для інших мов, використовуються також вбудовані інтерпретатори Бейсіка і Форту. Для відлагодження програм використовуються програмні симулятори (спеціальні програми для персональних комп'ютерів, що імітують роботу мікроконтролера), внутрішньосхемні емулятори (електронні пристрої, що імітують мікроконтролер, які можна під'єднати замість нього до вбудованого пристрою, що розробляється) та інтерфейс JTAG.
Програмування на мові асемблера
Програма написана на мові асемблера, що зазвичай називається вихідний код програми проходить трансляцію в об'єктний код.
Технологія пам'яті
За допомогою мікроконтролерів зазвичай використовуються два види пам'яті, енергонезалежна пам'ять для зберігання мікропрограмного забезпечення та пам'ять для читання-запису для тимчасових даних.
Дані
Від найдавніших мікроконтролерів до сьогодні, шість-транзисторів SRAM майже завжди використовується як робоча пам'ять для читання / запису, при цьому в регістровому файлі використовується ще кілька транзисторів на біт. FRAM або MRAM потенційно можуть замінити його, оскільки він у 4–10 разів щільніше, що зробить його більш економічним.
Окрім SRAM, деякі мікроконтролери також мають внутрішній EEPROM для зберігання даних; і навіть ті, у яких немає (або їх недостатньо), часто підключаються до зовнішнього послідовного мікросхеми EEPROM (наприклад, штампу BASIC) або зовнішнього мікросхема послідовної флеш-пам'яті.
Прошивка
Старі мікроконтролери використовували маску ROM для зберігання мікропрограмного забезпечення. Більш нові мікроконтролери (такі як ранні версії мікроконтролерів Freescale 68HC11 та ранні мікроконтролери PIC) мали пам'ять EPROM, яка використовувала напівпрозоре вікно для забезпечення стирання через УФ світло, тоді як виробничі версії не мали такого вікна, будучи OTP (одноразового програмування) . Оновлення мікропрограмного забезпечення були еквівалентними заміні самого мікроконтролера, тому багато продуктів не можна було оновити.
Архітектури мікроконтролерів
Станом на 2011 рік є декілька архітектур мікроконтролерів:
- Altera 16-біт soft microprocessor: Nios
- Altera 32-біти soft microprocessor: Nios II
- ARM (32-біти)
- Atmel 4-біт: MARC4
- Atmel 8-біт RISC: AVR
- Atmel 32-біти RISC: AVR32
- Cypress 8-bit: M8C (використовується у системах PSoC 1)
- Digi International 8-біт: Rabbit 2000, Rabbit 3000, Rabbit 4000, Rabbit 5000
- Digi International 8/32-біти: Rabbit 6000
- Freescale 8-біт: HC05 (застаріла), HC11 (застаріла), S08, RS08, HC08
- Freescale 16-біт: HC12 (застаріла), S12, HCS12 та S12X, HC16
- Freescale 16-біт цифрові сигнальні контролери: MC56F, DSP56F
- Freescale 32-біти: Coldfire
- Intel 8-біт: 8051
- Infineon 8-біт: XC800
- Infineon 16-біт: C166, C167, XC16x, XE166, XC2000
- Infineon 32-біти: TriCore
- Lattice Semiconductor 8-біт soft microprocessor: Mico8
- Lattice Semiconductor 32-біти soft microprocessor: Mico32
- Maxim 16-біт RISC: MAXQ
- Microchip 8-біт: PIC10, PIC12, PIC16, PIC18
- Microchip 16-біт: PIC24F, PIC24H
- Microchip 16-біт цифрові сигнальні контролери: dsPIC30F, dsPIC33F
- MIPS (32-біти, 64-біти)
- Parallax 8-біт: SX
- Parallax 32-біти 8 ядер: Propeller
- PowerPC ISA (32-біти, 64-біти)
- Renesas 8-біт: 78K
- Renesas 16-біт: 78K, R8C, M16C
- Renesas 32-біти: SuperH, RX, V850
- STMicroelectronics 8-біт: ST6, ST7, STM8
- STMicroelectronics 16-біт: ST10
- Texas Instruments 16-біт RISC: MSP430
- Texas Instruments 32-біти цифрові сигнальні контролери: C2000
- Toshiba 8-біт: TLCS-870/C, TLCS-870/X
- Toshiba 32-біти: TLCS-900
- Toshiba 32-біти RISC: TX19A, TX19A/H1
- Xilinx 8-біт soft microprocessor: Picoblaze
- Xilinx 32-біти soft microprocessor: Microblaze
- Zilog 8-біт: eZ8, eZ80
- Zilog 16-біт: ZNEO
Наведені лише унікальні архітектури мікроконтролерів. Мікроконтролери на базі стандартних індустріальних архітектур (таких, як Intel MCS-51, ARM, MIPS, PowerPC ISA) випускаються багатьма фірмами.
Див. також
- Програмований логічний контроллер (ПЛК)
- UART — Універсальний асинхроний приймач/передавач
- Тактова частота
- Контролер
Джерела
- | Мікроконтролери довкола нас — Коледж телекомунікацій та комп'ютерних технологій 28 жовтня 2019
- | Проектування мікропроцесорних систем: Кредитний модуль «Проектування мікропроцесорних систем на базі мікроконтролерів сімейства MCS-51»: Програмування мікроконтролерів сімейства MCS–51: Навчальний посібник для студентів напряму підготовки 6.050201 «Системна інженерія» кафедри Автоматики та управління у технічних системах / Автор: А. О. Новацький– К: НТУУ «КПІ», 2016—156с.
- | Чешко І. В. Вступ до спеціальності «Електроніка»: навчальний посібник — Суми: Сумський державний університет, 2017. — 148 с.
Література
- Мікроконтролерні пристрої: навч. посіб. для студ. спец. «Мікро- та наноелектроніка» / О. С. Тонкошкур, І. В. Гомілко, О. В. Коваленко ; Дніпропетровський нац. ун-т ім. О. Гончара. — Д. : Вид-во ДНУ, 2011. — 264 c.
- Сучасні мікроконтролери. Теорія і практика використання стандартних модулів Arduino: [навч. посіб. для студентів ВНЗ] / А. А. Зорі, В. П. Тарасюк, О. А. Штепа ; Держ. ВНЗ «Донец. нац. техн. ун-т». — Покровськ (Донец. обл.): ДонНТУ, 2017. — 281 с. : іл., табл. — ISBN 978-966-377-209-7.
- Лисенков М. О. Мікроконтролери в приладах і пристроях: підруч. для студ. техн. спец. вищ. навч. закл. / М. О. Лисенков, І. І. Ключник ; МОН України, Харк. нац. ун-т радіоелектроніки. — Харків: ХНУРЕ, 2014. — 368 с. : іл. — ISBN 978-966-659-203-6