Mikrokontroléry
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 jednom čipu. Významnými zástupci výrobců mirokontrolérů jsou STMicroelectronics, Espressif Systems, Nordic Semiconductor, Microchip Technology. Mikrokontroléry obvykle vyžadují ke svému provozu další periférie a proto jsou prodávány na takzvaných vývojových, nebo vestavných deskách, které umožňují používání standartních I/O rozhraní.
ESP32-S2-WROVER je výkonný, generický modul Wi-Fi + Bluetooth + Bluetooth LE MCU, který cílí na široké různé aplikace, od nízkoenergetických senzorových sítí až po nejnáročnější...
CH32 ANT je vývojová deska založená na mikrokontroléru CH32V003F4U6. Je to malá přátelská deska s kompatibilitou logického napětí 3v3 a 5v, I2C komunikací a USB C...
Blue Pill je vývojová deska založená na mikrokontroléru STMicroelectronics STM32F103C8T6 (jádro ARM Cortex-M3)
Klon populární vývojové desky Arduino Uno. Kromě čipu ATmega328 má i USB-UART převodník CH340.
Mikrokontroléry jsou také označovány jako jednočipové počítače, vestavný řadič a zkratkou MCU (Micro Controller Unit). Jejich uplatnění nalezneme v automobilech, robotech, kancelářských pří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í počítače určené k ovládání malých funkcí větších součástí bez složitého operačního systému.
Základní prvky mikrokontroléru jsou:
- Procesor (CPU) 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é sdělují příkazy ostatním součástem většího vestavěného systému.
- 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:
- 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 dlouhou dobu, aniž by potřebovala zdroj napájení.
- 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í.
- Vstupně-výstupní periferní 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á provádějí úlohy vně mikrokontroléru.
Mezi další podpůrné prvky mikrokontroléru patří např:
- ADC (Analog to Digital Converter) 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) plní inverzní funkci ADC a umožňuje procesoru v centru mikrokontroléru komunikovat výstupní signály s externími analogovými součástmi.
- Systémová sběrnice je spojovací rozhraní, které propojuje všechny součásti mikrokontroléru.
- Sériový port je jedním z příkladů I/O portu, který umožňuje mikrokontroléru připojit se k externím komponentám. Má podobnou funkci jako USB nebo paralelní port, ale liší se způsobem výměny bitů.
Procesor mikrokontroléru se liší podle aplikace. 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, např. paměť flash a elektricky vymazatelná programovatelná paměť jen pro čtení (EEPROM).
Architektura mikrokontrolérů může být založena na harvardské 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á sběrnice a instrukce oddělené, což umožňuje souběžné 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ší. Který ISC se používá, se liší v závislosti na aplikaci.
V počátcích vyzniku MCU byly tyto programovány pomocí zadávání instrukcí páčkovými přepínači (1/0) a výstupy, nebo nastevené hodnoty, byly zobrazeny pomocí LED nebo žárovek. Příkladem takovéhoto uplatnění z roku 1974, byl první osobní počítač Altair 8800, postavený na MCU Intel 8080. MCU se obvykle neprogramuje přímo například rozšížřením MCU o vstupně-výstupní grafické periferie, ale pomocí PC na kterém se používá jazyk symbolických adres (JSA) který je pomocí assembleru přeložen pro konkrétní architekturu. Ještě lépe je možné využít vyšší programovací jazky, např. jazyly vzniklé pro sálové počítače Algol, Fortran, Cobol, nebo dnes moderní jazyky C/C++ jejichž kód se pomocí překladače a kompilátoru převedou pro konkrétní architekturzu MCU. Stále populárnější je použití interpretovaných jazyků např. Python a JavaScript které využívají vysokou abstrakční vrstvu pro snadné programování komplexních programů běžících v ROS na MCU.
Mezi periferní funkce MCU patří analogově-digitální převodníky, řadiče displejů z tekutých krystalů (LCD), hodiny reálného času (RTC), časovače, univerzální synchronní/asynchronní vysílač přijímač (USART), SPI, I2C, připojení k univerzální sériové sběrnici (USB), Wi-Fi, BLE. K mikrokontrolérům jsou také často připojeny senzory sbírající údaje týkající se mimo jiné vlhkosti a teploty.