mikrokontrolér (MCU)

Mikrokontrolér je kompaktní integrovaný obvod určený k řízení určité operace ve vestavěném systému. Typický mikrokontrolér obsahuje procesor, paměť a vstupně-výstupní (I/O) periferie na jediném čipu.

Mikrokontroléry, někdy označované jako vestavný řadič nebo jednotka mikrokontroléru (MCU), se nacházejí mimo jiné ve vozidlech, robotech, kancelářských strojích, lékařských přístrojích, mobilních rádiových vysílačích, prodejních automatech a domácích spotřebičích. Jsou to v podstatě jednoduché miniaturní osobní počítače (PC) určené k ovládání malých funkcí větších součástí bez složitého front-end operačního systému (OS).

Jak fungují mikrokontroléry?

Mikrokontrolér je zabudován uvnitř systému, aby ovládal jednotlivou funkci v zařízení. Dělá to tak, že pomocí svého centrálního procesoru interpretuje data, která přijímá z I/O periferií. Dočasné informace, které mikrokontrolér přijímá, jsou uloženy v jeho datové paměti, odkud k nim procesor přistupuje a pomocí instrukcí uložených v jeho programové paměti dešifruje a aplikuje příchozí data. Ke komunikaci a provedení příslušné akce pak využívá své vstupně-výstupní periferie.

Mikrokontroléry se používají v celé řadě systémů a zařízení. Zařízení často využívají více mikrokontrolérů, které v rámci zařízení spolupracují při řešení příslušných úkolů.

Například automobil může mít mnoho mikrokontrolérů, které v něm řídí různé jednotlivé systémy, například protiblokovací brzdový systém, kontrolu trakce, vstřikování paliva nebo řízení odpružení. Všechny mikrokontroléry spolu komunikují, aby informovaly o správných činnostech. Některé mohou komunikovat se složitějším centrálním počítačem v automobilu a jiné mohou komunikovat pouze s jinými mikrokontroléry. Odesílají a přijímají data pomocí svých vstupně-výstupních periferií a zpracovávají tato data k provádění určených úkolů.

Jaké jsou prvky mikrokontroléru?

Základní prvky mikrokontroléru jsou:

  • Procesor (CPU) — Procesor si lze představit jako mozek zařízení. Zpracovává a reaguje na různé instrukce, které řídí funkci mikrokontroléru. Jedná se o provádění základních aritmetických, logických a I/O operací. Provádí také operace přenosu dat, kterými sděluje příkazy ostatním součástem většího vestavěného systému.
  • Paměť — Paměť mikrokontroléru slouží k ukládání dat, která procesor přijímá a používá k reakci na instrukce, k jejichž provedení byl naprogramován. Mikrokontrolér má dva hlavní typy paměti:
    1. Programová paměť, která uchovává dlouhodobé informace o instrukcích, které procesor provádí. Programová paměť je nevolatilní paměť, což znamená, že uchovává informace po delší dobu, aniž by potřebovala zdroj napájení.
    2. Datová paměť, která je potřebná pro dočasné uložení dat během provádění instrukcí. Datová paměť je volatilní, což znamená, že data, která uchovává, jsou dočasná a udržují se pouze v případě, že je zařízení připojeno ke zdroji napájení.
  • I/O periferie — Vstupní a výstupní zařízení jsou rozhraním procesoru s vnějším světem. Vstupní porty přijímají informace a posílají je procesoru ve formě binárních dat. Procesor tato data přijímá a posílá potřebné instrukce výstupním zařízením, která vykonávají úlohy vně mikrokontroléru.

Přestože jsou procesor, paměť a vstupně-výstupní periferie určujícími prvky mikroprocesoru, často jsou součástí i další prvky. Samotný termín I/O periferie jednoduše označuje podpůrné komponenty, které komunikují s pamětí a procesorem. Existuje mnoho podpůrných komponent, které lze klasifikovat jako periferie. Mít nějaký projev I/O periferie je pro mikroprocesor elementární, protože jsou mechanismem, jehož prostřednictvím se uplatňuje procesor.

Další podpůrné prvky mikrokontroléru zahrnují:

  • Analogově-digitální převodník (ADC) — ADC je obvod, který převádí analogové signály na digitální. Umožňuje procesoru v centru mikrokontroléru komunikovat s externími analogovými zařízeními, jako jsou například senzory.
  • Digitálně analogový převodník (DAC) — DAC plní inverzní funkci ADC a umožňuje procesoru v centru mikrokontroléru komunikovat své výstupní signály s externími analogovými součástkami.
  • Systémová sběrnice — Systémová sběrnice je spojovací vodič, který propojuje všechny součásti mikrokontroléru.
  • Sériový port — Sériový port je jedním z příkladů I/O portu, který umožňuje připojení mikrokontroléru k externím součástem. Má podobnou funkci jako USB nebo paralelní port, ale liší se způsobem výměny bitů.

Vlastnosti mikrokontroléru

Procesor mikrokontroléru se liší podle použití. Možnosti sahají od jednoduchých 4bitových, 8bitových nebo 16bitových procesorů až po složitější 32bitové nebo 64bitové procesory. Mikrokontroléry mohou používat volatilní typy paměti, jako je paměť s náhodným přístupem (RAM), a nevolatilní typy paměti — patří sem paměť flash, vymazatelná programovatelná paměť jen pro čtení (EPROM) a elektricky vymazatelná programovatelná paměť jen pro čtení (EEPROM).

Obvykle jsou mikrokontroléry navrženy tak, aby byly snadno použitelné bez dalších výpočetních komponent, protože jsou navrženy s dostatečnou vestavěnou pamětí a také nabízejí piny pro obecné vstupně-výstupní operace, takže mohou přímo komunikovat se senzory a dalšími komponentami.

Architektura mikrokontrolérů může být založena na harvardské architektuře nebo von Neumannově architektuře, přičemž obě nabízejí různé metody výměny dat mezi procesorem a pamětí. U harvardské architektury jsou datová a instrukční sběrnice oddělené, což umožňuje současné přenosy. U von Neumannovy architektury se pro data i instrukce používá jedna sběrnice.

Procesory mikrokontrolérů mohou být založeny na komplexní instrukční sadě (CISC) nebo na redukované instrukční sadě (RISC). CISC má obecně asi 80 instrukcí, zatímco RISC asi 30, a také více adresovacích režimů, 12-24 oproti 3-5 u RISC. CISC lze sice snáze implementovat a efektivněji využívat paměť, ale kvůli vyššímu počtu taktů potřebných k provedení instrukcí může dojít ke snížení výkonu. Procesory RISC, které kladou větší důraz na software, často poskytují vyšší výkon než procesory CISC, které kladou větší důraz na hardware, a to díky zjednodušené instrukční sadě, a tedy větší jednoduchosti návrhu, ale vzhledem k důrazu, který kladou na software, může být software složitější. To, který ISC se používá, se liší v závislosti na aplikaci.

Když byly mikrokontroléry poprvé k dispozici, používaly výhradně jazyk assembler. Dnes je oblíbenou variantou programovací jazyk C. Mezi další běžné jazyky mikroprocesorů patří Python a JavaScript.

MCU jsou vybaveny vstupními a výstupními piny pro implementaci periferních funkcí. Mezi takové funkce patří analogově-digitální převodníky, řadiče displejů z tekutých krystalů (LCD), hodiny reálného času (RTC), univerzální synchronní/asynchronní vysílač přijímače (USART), časovače, univerzální asynchronní vysílač přijímače (UART) a připojení k univerzální sériové sběrnici (USB). K mikrokontrolérům jsou také často připojeny senzory sbírající mimo jiné údaje týkající se vlhkosti a teploty.

Typy mikrokontrolérů

Mezi běžné MCU patří mikrokontrolér Intel MCS-51, často označovaný jako 8051, který byl poprvé vyvinut v roce 1985; mikrokontrolér AVR vyvinutý společností Atmel v roce 1996; programovatelný řadič rozhraní (PIC) od společnosti Microchip Technology; a různé licencované mikrokontroléry Advanced RISC Machines (ARM).

Mikrokontroléry vyrábí a prodává řada společností, například NXP Semiconductors, Renesas Electronics, Silicon Labs a Texas Instruments.

Použití mikrokontrolérů

Mikrokontroléry se používají v mnoha odvětvích a aplikacích, mimo jiné v domácnostech a podnicích, při automatizaci budov, ve výrobě, v robotice, v automobilovém průmyslu, v osvětlení, v inteligentní energetice, v průmyslové automatizaci, v komunikaci a při zavádění internetu věcí (IoT).

Jednou z velmi specifických aplikací mikrokontroléru je jeho použití jako digitálního signálového procesoru. Příchozí analogové signály často přicházejí s určitou úrovní šumu. Šum v tomto kontextu znamená nejednoznačné hodnoty, které nelze snadno převést na standardní digitální hodnoty. Mikrokontrolér může pomocí svých ADC a DAC převést příchozí zašuměný analogový signál na rovnoměrný odchozí digitální signál.

Nejjednodušší mikrokontroléry usnadňují provoz elektromechanických systémů, které se nacházejí v předmětech každodenní potřeby, jako jsou trouby, ledničky, toustovače, mobilní zařízení, klíčenky, systémy videoher, televizory a systémy pro zavlažování trávníku. Jsou také běžné v kancelářských strojích, jako jsou kopírky, skenery, faxy a tiskárny, a také v inteligentních měřičích, bankomatech a bezpečnostních systémech.

Složitější mikrokontroléry plní kritické funkce v letadlech, kosmických lodích, zaoceánských plavidlech, vozidlech, lékařských systémech a systémech podpory života a také v robotech. V lékařských scénářích mohou mikrokontroléry regulovat činnost umělého srdce, ledvin nebo jiných orgánů. Mohou se také podílet na fungování protetických zařízení.

Mikrokontroléry vs. mikroprocesory

Rozdíl mezi mikrokontroléry a mikroprocesory se stal méně zřetelným, protože hustota a složitost čipů se stala relativně levnou na výrobu a mikrokontroléry tak integrovaly více funkcí typu „obecný počítač“. Celkově však lze říci, že mikrokontroléry fungují užitečně samy o sobě, s přímým připojením ke snímačům a akčním členům, kdežto mikroprocesory jsou navrženy tak, aby maximalizovaly výpočetní výkon na čipu, s interními sběrnicovými připojeními (spíše než přímými I/O) k podpůrnému hardwaru, jako je paměť RAM a sériové porty. Jednoduše řečeno, kávovary používají mikrokontroléry; stolní počítače používají mikroprocesory.

Mikrokontrolér Microchip Technology ATtiny817.

Mikrokontroléry jsou levnější a spotřebovávají méně energie než mikroprocesory. Mikroprocesory nemají v čipu zabudovanou paměť RAM, paměť jen pro čtení (ROM) ani další periferní zařízení, ale připojují se k nim svými vývody. Mikroprocesor lze považovat za srdce počítačového systému, zatímco mikrokontrolér za srdce vestavěného systému.

Výběr správného mikrokontroléru

Při výběru mikrokontroléru pro projekt je třeba mít na paměti řadu technologických a obchodních aspektů.

Kromě ceny je důležité zvážit maximální rychlost, množství paměti RAM nebo ROM, počet nebo typy vstupně-výstupních pinů na MCU, stejně jako spotřebu energie a omezení a podporu vývoje. Nezapomeňte se ptát na následující otázky: