Vestavěný systém
Vestavěný systém je počítač, který byl vytvořen pro řešení pouze několika velmi specifických problémů a který nelze snadno změnit. Slovo embedded znamená, že je zabudován do systému. Je trvalou součástí většího systému. Obvykle nevypadá jako počítač, často nemá klávesnici ani monitor nebo myš. Ale jako každý počítač má procesor a software, vstup a výstup.
Například řídicí jednotka zabudovaná ve výtahu říká motoru, aby na základě stisknutých tlačítek přesunul výtah do různých pater. Dekodér je zabudován v satelitním televizním set-top boxu (tzv. STB), který čte signál z antény a vysílá něco, čemu televizor rozumí. Tento typ systému musí často vykonat svou práci za určitý čas. Tomu se říká výpočet v reálném čase. Pokud by byl set-top box přerušen, aby provedl jinou úlohu, viděli byste na televizoru například špatný obraz. Počítač pro všeobecné použití bude mít často krátké pauzy, zatímco bude dělat něco jiného, není to počítač pracující v reálném čase.
Vestavěné systémy řídí mnoho dnes běžně používaných zařízení, například čtečky karet v zámcích hotelových dveří nebo několik věcí v autě. Mohou řídit malé věci, jako je přehrávač MP3 nebo digitální fotoaparát, i velké věci, jako jsou systémy semaforů, letadla nebo montážní linky v továrně.
Obrázek vnitřních částí modemu/směrovače ADSL. Moderní příklad vestavěného systému. Označené části zahrnují mikroprocesor (4), paměť RAM (6) a paměť flash (7).
Příklady vestavěných systémů
Vestavěné systémy se používají v mnoha druzích elektrických zařízení, včetně:
- Telekomunikační systémy je používají pro telefony, mobilní telefonní sítě a wi-fi routery.
- Spotřební elektronika zahrnuje vysílací přijímače, přehrávače MP3, mobilní telefony, herní konzole, digitální fotoaparáty, přehrávače DVD, přijímače GPS, domácí bezpečnostní systémy a tiskárny.
- Domácí spotřebiče, jako jsou mikrovlnné trouby, pračky, poplašné systémy proti vloupání a myčky nádobí, mají vestavěné systémy.
- V dopravě se vestavěné systémy používají ve všech oblastech, od lokomotiv pro vlaky, letadla až po automobily.
- V průmyslu se používají elektromotory s elektronickými řídicími jednotkami, čtečky karet a CNC stroje, které automaticky vyrábějí kovové díly.
- Zdravotnické přístroje, jako jsou defibrilátory, automatické snímače krevního tlaku a automatické inzulinové pumpy.
- Vojenská zařízení, jako jsou vysílačky, satelity a naváděcí systémy pro rakety.
Společné rysy
- Vestavné systémy jsou na rozdíl od univerzálních počítačů určeny k plnění konkrétních úkolů.
- Nevypadá jako počítač - nemusí mít plnohodnotný monitor ani klávesnici.
- Mnoho vestavných systémů musí být schopno provádět činnosti v reálném čase - v krátkém čase (z lidského pohledu téměř okamžitě).
- Mnoho vestavěných systémů musí být velmi bezpečných a spolehlivých, zejména v případě lékařských přístrojů nebo avioniky řídící letadla.
- Startuje velmi rychle. Lidé nechtějí čekat minutu nebo dvě, než se jim nastartuje auto nebo nouzové zařízení.
- Může používat speciální operační systém (nebo někdy velmi malý domácí operační systém), který pomáhá splnit tyto požadavky a nazývá se operační systémreálného času (RTOS).
- Programové instrukce napsané pro vestavné systémy se označují jako firmware a jsou uloženy v paměti pouze pro čtení nebo v paměťových čipech flash. Pracují s omezenými hardwarovými prostředky počítače: malou pamětí, malou nebo neexistující klávesnicí a/nebo obrazovkou.
Vestavěné systémy nejsou vždy samostatná zařízení. Někdy jsou sestaveny jako sada, jako různé části automobilu - rádio, ovládání plynu, kontrola znečištění atd. Někdy mohou komunikovat s internetem nebo sítí mobilních telefonů a mohou mít čtečku USB nebo jiná připojení.
Uživatelská rozhraní
Vestavěné systémy mají různé varianty, od zcela chybějícího uživatelského rozhraní - pouze odesílání a přijímání elektrických signálů - až po plné grafické uživatelské rozhraní, jako je tomu u moderních počítačů. Poměrně často mají několik tlačítek, malý displej a několik LED diod. Složitější systém může mít dotykový displej, který umožňuje měnit význam tlačítek s každou obrazovkou, jako je tomu u chytrých telefonů.
Příklad uživatelského rozhraní s tlačítky a jednoduchým displejem LCD.
Hardware
Hardware zahrnuje čipy, dráty, desky plošných spojů, tlačítka a displeje.
Procesory
Nejdůležitějším čipem je centrální procesorová jednotka neboli CPU. Ten spouští softwarové instrukce. Může to být standardní mikroprocesor nebo mikrokontrolér. Mikrokontroléry obsahují mikroprocesor i jednoduchá periferní zařízení, takže systém může být menší a levnější. Jsou méně flexibilní, protože tyto části nelze měnit. Obvykle tyto části zahrnují paměť Flash a podporu sériových portů, USB atd.
Na rozdíl od mikroprocesoru pro univerzální počítač neznamená větší a rychlejší vždy lepší. Mnoho vestavných procesorů je velmi malých. Někdy proto, aby zabíraly méně místa nebo měly menší spotřebu energie, jindy proto, aby byly levnější. V počítačích pro všeobecné použití se používají mikroprocesory, které čtou 32bitová nebo 64bitová slova a pracují rychlostí měřenou v GHz, ale vestavné procesory jsou obvykle 4 až 32bitové a pracují rychlostí měřenou obvykle v desítkách MHz (stokrát pomaleji). (Programy jsou však také menší a nekontrolují věci, které se nepoužívají).
Hotové počítačové desky
Existují "hotové" počítačové desky, které lze použít v některých vestavných systémech. Ty často používají Windows CE, Linux, NetBSD nebo vestavný operační systém reálného času.
Někdy může být jednodušší použít již vyrobenou desku plošných spojů. Ty obvykle sdílejí mnoho součástek s počítači pro všeobecné použití, ale jsou menší než deska v počítači pro všeobecné použití. Na deskách, jako je VIA EPIA, lze spustit systém Microsoft Windows. Výhodou je, že se ušetří část elektrotechnického času a lze použít stejné nástroje pro vývoj softwaru, které se používají pro vývoj softwaru typu PC. Příkladem takových vestavných zařízení jsou bankomaty nebo displeje v kasinech. To se dobře osvědčuje, pokud požadavky na reálný čas nejsou skutečně přísné (příliš nezáleží na tom, zda úloha trvá například osm sekund místo pěti).
Řešení ASIC a FPGA
Pokud má být zařízení velmi malé nebo se bude prodávat ve velkém množství ("high-volume"), má smysl vyrobit vlastní nebo specializovaný čip, který dělá přesně to, co je potřeba. Jedná se o systém na čipu (SoC), který obsahuje kompletní systém - procesor, jednotku s plovoucí desetinnou čárkou, cache paměť a rozhraní na jediném integrovaném obvodu. SoC lze vyrobit jako integrovaný obvod pro speciální aplikace (ASIC) nebo pomocí programovatelného hradlového pole (FPGA), které programují lidé, kteří vestavěný systém vytvářejí.
Periferní zařízení
Vestavěné systémy komunikují s okolním světem nebo jinými součástmi pomocí periferií, jako jsou např.:
- Sériové porty: RS-232, RS-422, RS-485. Dříve se běžně používaly 9pinové (nebo větší) konektory.
- Synchronní sériové komunikační rozhraní: I²C Inter-Integrated Circuit, I²S Inter-Integrated Sound, SPI, MIcrowire, ...
- Univerzální sériová sběrnice (USB).
- Sítě: Sítě: Ethernet, Controller Area Network, LonWorks, ...
- Diskrétní vstup/výstup: GPIO (General Purpose Input/Output). Může se jednat o jeden vodič se signálem zapnuto/vypnuto. Lze jej použít pro malou klávesnici nebo k rozsvícení LED diody.
- Analogově-digitální/číslicově-analogové převodníky (ADC/DAC). Měří něco, co mění svou sílu, například světelný senzor nebo ovládání motoru.
- Ladění: JTAG, port ICSP, pro softwarové inženýry.
Soekris net4801, vestavný systém určený pro síťové aplikace.
Software
Operační systémy
Vestavné systémy často nepotřebují plnohodnotný operační systém. Některé používají speciálně vytvořené malé a jednoduché operační systémy, které se spouštějí velmi rychle, jiné je nepotřebují vůbec. Vestavěné systémy se nepřizpůsobují tak snadno, ale jsou konstruovány tak, aby své úkoly plnily mnohem spolehlivěji. Protože jsou hardwarově jednodušší, jsou také často levnější na sestavení a pracují rychleji.
Na rozdíl od toho musí být univerzální počítač připraven na nové ovladače zařízení a software pro provoz hardwaru, o kterém ještě neví, jako jsou nové tiskárny nebo pevné disky. Potřebuje spouštět různé aplikační programy.
S tím, jak se vestavné systémy zvětšují, se věci, které se dříve používaly pouze v univerzálních počítačích nebo dokonce v mainframech, nyní běžně používají ve vestavných systémech. Patří sem chráněný paměťový prostor a otevřené programovací prostředí včetně Linuxu, NetBSD atd.
Některé příklady operačních systémů, od jednoduchých po složité:
- Jednoduchá řídicí smyčka - časovač a smyčka slouží k opakovanému volání různých podprogramů. U menších systémů ji často vytváří jeden člověk.
- řízené přerušením - úlohy jsou spouštěny různými druhy událostí. Událostí může být něco časově omezeného (například každých deset sekund) nebo stisknutí tlačítka či přijetí dat.
- nepreemptivní multitasking - každá úloha se dostane na řadu, a když skončí, zavolá plánovač v operačním systému, aby spustil další úlohu.
- preemptivní multitasking neboli vícevláknový - úlohu lze po určité době zastavit a nechat chvíli běžet jinou úlohu. Žádná úloha nemůže zahlcovat systém. Na této úrovni je systém považován za jádro "operačního systému" a může spouštět úlohy paralelně. Tento typ operačního systému se obvykle kupuje od společnosti, která se zabývá pouze vestavnými operačními systémy.
Operační systémy reálného času zahrnují produkty jako MicroC/OS-II, Green Hills INTEGRITY, QNX nebo VxWorks. Na rozdíl od systémů MacOS nebo Windows 7 tyto operační systémy většina lidí příliš nezná. Používají se však na mnoha místech, kde je čas a bezpečnost velmi důležitá. Lidé je používají každý den a ani si to neuvědomují.
Běžnými příklady větších jader jsou Embedded Linux a Windows CE. Přestože nemají tak přísné časové limity, jaké jsou potřeba pro přísný systém reálného času, jsou stále běžnější, zejména pro výkonnější zařízení, jako jsou bezdrátové směrovače a GPS. Umožňují opakované použití kódu ve veřejné doméně pro ovladače zařízení, webové servery, firewally a další kód. Vývojáři softwaru, kterým je bližší psaní aplikací pro osobní počítače, se s nimi také lépe seznámí. V případě potřeby lze použít FPGA nebo jiný speciální hardware pro věci, které potřebují přísné časové limity.
Nástroje
Stejně jako u jiného softwaru používají návrháři vestavných systémů k vývoji softwaru vestavných systémů překladače, assemblery a ladicí programy. Mohou však používat i některé specifičtější nástroje:
- U systémů využívajících digitální zpracování signálu mohou vývojáři použít matematické nástroje, jako je MATLAB, MathCad nebo Mathematica.
- Pro zlepšení optimalizace pro konkrétní hardware lze použít vlastní kompilátory a linkery.
- Vestavný systém může mít svůj vlastní speciální jazyk nebo návrhový nástroj nebo může přidat vylepšení ke stávajícímu jazyku, jako je jazyk používaný v Basicu Stamp.
Nástroje pro ladění:
- Debugger v obvodu (ICD), hardwarové zařízení, které se připojuje k mikroprocesoru prostřednictvím rozhraní JTAG. To spouští a zastavuje mikroprocesor zvenčí, zatímco běží software. Umožňuje také čtení paměti a registrů a ukládání softwarového programu do paměti.
- Externí ladění pomocí protokolování nebo výstupu sériového portu pro sledování provozu pomocí blikajícího monitoru (printfs).
- Interaktivní rezidentní ladění - pokud to operační systém podporuje, jedná se o shell na vestavěném procesoru, který spouští příkazy zadané vývojářem (například Linux).
- Obvodový emulátor nahrazuje mikroprocesor na desce a poskytuje plnou kontrolu nad vším, co mohl mikroprocesor dělat.
- Kompletní emulátor simuluje všechny funkce hardwaru a umožňuje jej ovládat a upravovat. Hardware ve skutečnosti neexistuje, ale jeho předstíraná verze ("virtuální" stroj) je na běžném počítači.
- Kontrola vnějších vedení pomocí logického analyzátoru nebo multimetru.
Pokud není omezeno externí ladění, může programátor obvykle prostřednictvím nástrojů načíst a spustit software, zobrazit kód běžící v procesoru a spustit nebo zastavit jeho činnost. Zobrazení kódu může být ve formě kódu assembleru nebo zdrojového kódu. Některé integrované systémy (například VxWorks nebo Green Hills) mají speciální funkce, jako je sledování toho, kolik místa software zabírá při svém běhu, jaké úlohy jsou spuštěny a kdy se co děje.
Způsob ladění závisí na tom, o jaký vestavný systém se jedná. Například ladění systému s jedním mikroprocesorem se liší od ladění systému, kde se zpracování provádí také na periferii (DSP, FPGA, koprocesor).
Bezpečnost a spolehlivost
Vestavěné systémy jsou často ve strojích, od kterých se očekává, že budou bezchybně fungovat po celé roky a v některých případech se v případě chyby samy obnoví. To znamená, že software je obvykle vyvíjen a testován pečlivěji než u osobních počítačů a že se vyhýbáme nespolehlivým mechanickým pohyblivým částem, jako jsou diskové jednotky a ventilátory.
Místa, kde je důležitá bezpečnost a spolehlivost:
- Některé systémy nelze bezpečně odstavit kvůli opravě nebo je jejich oprava příliš obtížná. Příkladem jsou vesmírné systémy (družice, rovery), podmořské kabely a řídicí systémy jaderných elektráren.
- Systém by mohl v případě selhání usmrtit lidi, jako je tomu například u řízení letadel, chemických továren, vlakových návěstidel nebo srdečních defibrilátorů.
- Při vypnutí systému nebo při chybě dojde ke ztrátě velkých částek: Telefonní spínače, tovární kontroly, pokladny, bankomaty.
Způsoby zotavení z chyb - jak softwarových, jako jsou úniky paměti, tak i měkkých chyb v hardwaru:
- Hlídací časovač, který restartuje vestavěný systém, pokud něco přestane fungovat.
- Duplicitní části, kdy jeden systém může převzít funkci, pokud jiný přestane fungovat.
- Softwarové "ochromené režimy", které zajišťují částečnou funkčnost.
- Programování s ohledem na imunitu
Související stránky
- Mikroprocesor
- Programovací jazyky
- Firmware
- Operační systém reálného času
Otázky a odpovědi
Otázka: Co je to vestavěný systém?
Odpověď: Vestavěný systém je počítač vytvořený k řešení specifických problémů, který není snadné měnit.
Otázka: Jak se vestavěný systém liší od počítače pro všeobecné použití?
A: Vestavěný systém obvykle nemá klávesnici, monitor ani myš a má specializované funkce. Univerzální počítač může provádět širokou škálu úloh.
Otázka: Jaké jsou příklady vestavných systémů?
Odpověď: Mezi příklady vestavěných systémů patří řídicí jednotky výtahů, set-top boxy, čtečky karet v hotelových dveřních zámcích, systémy semaforů, letadla a montážní linky v továrnách.
Otázka: Co je to výpočetní technika v reálném čase?
Odpověď: Výpočet v reálném čase je situace, kdy vestavěný systém musí dokončit svou práci v určitém čase. Pokud je přerušen, může to způsobit problémy, jako je špatná kvalita obrazu na televizoru.
Otázka: Jaké jsou součásti vestavěného systému?
Odpověď: Jako každý počítač má vestavěný systém procesor, software, vstup a výstup.
Otázka: Jaké úlohy může vestavěný systém řídit?
Odpověď: Vestavěný systém může řídit malá zařízení, jako jsou přehrávače MP3 nebo digitální fotoaparáty, nebo větší systémy, jako jsou semafory nebo letadla.
Otázka: Co znamená pojem "vestavěný" v souvislosti s vestavěnými systémy?
Odpověď: Pojem "vestavěný" znamená, že počítač je zabudován do většího systému a nelze jej snadno změnit.