====== Vestavěné systémy (Embedded Systems) ====== **Vestavěný systém** (anglicky //embedded system//) je speciální počítačový systém, který je navržen pro provádění jedné nebo několika málo specifických funkcí v rámci většího mechanického, elektrického nebo elektronického celku. Na rozdíl od běžného osobního počítače (PC), který je univerzální a uživatel si na něj může nainstalovat libovolný software (od textového editoru po moderní hry), je vestavěný systém pevně spjat s hardwarem daného zařízení a vykonává pouze dedikovaný program, pro který byl stvořen. ===== Základní charakteristiky ===== Vestavěné systémy se od klasických počítačů liší v několika klíčových oblastech: * **Omezené zdroje:** Často disponují velmi malým výpočetním výkonem a pamětí (RAM a Flash paměť se běžně pohybují v řádech kilobajtů nebo megabajtů). * **Vysoká spolehlivost a stabilita:** Tyto systémy musí fungovat nepřetržitě měsíce či roky bez restartu a bez lidského zásahu (např. kardiostimulátor nebo řídicí jednotka v automobilu). * **Efektivita a nízká spotřeba:** Mnohá zařízení jsou napájena z baterií nebo solárních panelů, proto je kladen extrémní důraz na minimální spotřebu energie (např. bezdrátové senzory). * **Real-time provoz (Reálný čas):** Velká část embedded systémů spadá do kategorie //Real-Time Systems//. To znamená, že systém musí na vnější podnět reagovat v přesně definovaném a garantovaném časovém okně. Pokud reakce přijde pozdě, je považována za selhání celého systému (např. vystřelení airbagu). ===== Hardwarová architektura ===== Srdcem každého vestavěného systému je řídicí čip. Podle složitosti aplikace se používají dva hlavní typy: ==== 1. Mikrokontrolér (MCU - Microcontroller Unit) ==== Jedná se o kompletní počítač integrovaný na jediném křemíkovém čipu (tzv. //System on a Chip//). Obsahuje: * **Procesorové jádro (CPU)** – vykonává instrukce. * **Paměť (RAM a ROM/Flash)** – pro běh programu a uložení kódu. * **Periferie** – časovače, čítače, analogově-digitální převodníky (ADC) a komunikační rozhraní (UART, SPI, I2C). //Příklady architektur:// AVR (využívané v Arduino), ARM Cortex-M, ESP32, PIC. ==== 2. Mikroprocesor (MPU - Microprocessor Unit) ==== Pro výkonnější vestavěné systémy (např. chytré televize, bankomaty, routery) se používají klasické mikroprocesory, které potřebují externí paměť RAM a Flash úložiště. //Příklad:// Architektury ARM Cortex-A běžící na jednodeskových počítačích jako Raspberry Pi. ===== Softwarová vrstva ===== Software pro vestavěné systémy se zásadně liší od běžných aplikací. Program, který ovládá hardware na té nejnižší úrovni a je trvale uložen v paměti čipu, se nazývá **firmware**. Podle složitosti systému může software fungovat v několika režimech: * **Bare-metal (Bez OS):** Kód běží přímo na hardwaru v nekonečné smyčce (tzv. //super-loop//). Typické pro velmi jednoduché aplikace (např. blikač, jednoduchý termostat). * **RTOS (Real-Time Operating System):** Odlehčený operační systém navržený pro plánování úloh s garantovanou odezvou. Umožňuje multitasking na mikroprocesorech s omezenými zdroji. (Příklady: FreeRTOS, Zephyr, Zephyr RTOS). * **Embedded Linux:** Upravená a ořezaná verze operačního systému Linux pro výkonnější embedded zařízení, která vyžadují síťovou konektivitu, grafické rozhraní a složité ovladače. ===== Příklady využití v každodenním životě ===== S vestavěnými systémy se setkáváme na každém kroku, i když jsou často skryté uvnitř spotřebičů: * **Automobilový průmysl:** Moderní auta obsahují desítky embedded systémů (tzv. ECU) – řízení motoru, ABS, ESP, tempomat, parkovací asistenti. * **Spotřební elektronika:** Pračky, mikrovlnné trouby, kávovary, chytré televize, digitální fotoaparáty. * **Lékařská zařízení:** Insulinové pumpy, monitory životních funkcí, rentgeny. * **Průmyslová automatizace:** Programovatelné logické automaty (PLC), které řídí výrobní linky a robotická ramena. * **Internet věcí (IoT):** Chytré žárovky, meteostanice, dálkově ovládané senzory a zámky. ---- //Související články:// * [[it:iot:index|Internet věcí (IoT) a jeho architektura]] * [[it:iot:mqtt|Protokol MQTT pro komunikaci senzorů]] * [[it:hardware:microcontrollers|Srovnání mikrokontrolérů: Arduino vs. ESP32 vs. STM32]]