Vstavaný systém
Vstavaný systém je počítač, ktorý bol vytvorený na riešenie len niekoľkých veľmi špecifických problémov a nedá sa ľahko zmeniť. Slovo embedded znamená, že je zabudovaný do systému. Je trvalou súčasťou väčšieho systému. Zvyčajne nevyzerá ako počítač, často nemá klávesnicu, monitor ani myš. Ale ako každý počítač má procesor a softvér, vstup a výstup.
Napríklad riadiaca jednotka zabudovaná vo výťahu prikazuje motoru, aby na základe stlačených tlačidiel presunul výťah na rôzne poschodia. Dekodér je zabudovaný v satelitnom televíznom prijímači (nazývanom STB), aby čítal signál z antény a vysielal niečo, čomu televízor rozumie. Tento typ systému musí často vykonať svoju prácu za určitý čas. Nazýva sa to výpočet v reálnom čase. Ak by sa set-top box prerušil, aby vykonal inú úlohu, na televízore by sa napríklad zobrazil zlý obraz. Počítač na všeobecné účely bude mať často krátke prestávky, kým bude robiť niečo iné, nie je to počítač v reálnom čase.
Vstavané systémy riadia mnohé z bežne používaných zariadení, ako sú čítačky kariet v hotelových zámkoch alebo viaceré zariadenia v aute. Môžu ovládať malé veci, ako je prehrávač MP3 alebo digitálny fotoaparát, a veľké veci, ako sú systémy semaforov, lietadlá alebo montážne linky v továrni.
Obrázok vnútorných častí modemu/routeru ADSL. Moderný príklad vstavaného systému. Označené časti zahŕňajú mikroprocesor (4), pamäť RAM (6) a pamäť flash (7)
Príklady vstavaných systémov
Vstavané systémy sa používajú v mnohých druhoch elektrických zariadení vrátane:
- Telekomunikačné systémy ich používajú pre telefóny, mobilné siete a wi-fi routery.
- Spotrebná elektronika zahŕňa vysielacie prijímače, MP3 prehrávače, mobilné telefóny, herné konzoly, digitálne fotoaparáty, DVD prehrávače, GPS prijímače, domáce bezpečnostné systémy a tlačiarne.
- Domáce spotrebiče, ako sú mikrovlnné rúry, práčky, poplašné systémy proti vlámaniu a umývačky riadu, majú zabudované systémy.
- V doprave sa vstavané systémy používajú vo všetkých oblastiach, od lokomotív pre vlaky, lietadlá až po automobily.
- V priemysle sa používajú elektromotory s elektronickými riadiacimi jednotkami, čítačky kariet a CNC stroje, ktoré automaticky vyrábajú kovové diely.
- Zdravotnícke prístroje, ako sú defibrilátory, automatické snímače krvného tlaku a automatické inzulínové pumpy.
- Vojenské zariadenia, ako sú vysielačky, satelity a navádzacie systémy pre rakety.
Spoločné vlastnosti
- Na rozdiel od univerzálnych počítačov sú vstavané systémy určené na vykonávanie konkrétnych úloh.
- Nevyzerá ako počítač - nemusí mať plnohodnotný monitor ani klávesnicu.
- Mnohé vstavané systémy musia byť schopné vykonávať činnosti v reálnom čase - v krátkom čase (z ľudského pohľadu takmer okamžite).
- Mnohé vstavané systémy musia byť veľmi bezpečné a spoľahlivé, najmä v prípade zdravotníckych zariadení alebo avioniky riadiacej lietadlá.
- Začína veľmi rýchlo. Ľudia nechcú čakať minútu alebo dve, kým sa im naštartuje auto alebo núdzové zariadenie.
- Môže používať špeciálny operačný systém (alebo niekedy veľmi malý domáci operačný systém), ktorý pomáha splniť tieto požiadavky, nazývaný operačný systémreálneho času alebo RTOS.
- Programové inštrukcie napísané pre vstavané systémy sa označujú ako firmvér a sú uložené v pamäti určenej len na čítanie alebo v pamäťových čipoch flash. Pracujú s obmedzenými hardvérovými zdrojmi počítača: malá pamäť, malá alebo žiadna klávesnica a/alebo obrazovka.
Vstavané systémy nie sú vždy samostatné zariadenia. Niekedy sú vytvorené ako súprava, ako napríklad rôzne časti automobilu - rádio, ovládanie plynu, kontrola znečistenia atď. Niekedy môžu komunikovať s internetom alebo sieťou mobilného telefónu a môžu mať čítačku USB alebo iné pripojenia.
Používateľské rozhrania
Vstavané systémy sa pohybujú v rozmedzí od žiadneho používateľského rozhrania - iba odosielanie a prijímanie elektrických signálov - až po úplné grafické používateľské rozhranie, aké majú moderné počítače. Často majú niekoľko tlačidiel, malý displej a niekoľko LED diód. Zložitejší systém môže mať dotykový displej, ktorý umožňuje meniť význam tlačidiel s každou obrazovkou, ako je to v inteligentných telefónoch.
Príklad používateľského rozhrania s tlačidlami a jednoduchým LCD displejom.
Hardvér
Hardvér zahŕňa čipy, káble, dosky plošných spojov, tlačidlá a displeje.
CPU
Najdôležitejším čipom je centrálna procesorová jednotka alebo CPU. Ten vykonáva softvérové inštrukcie. Môže to byť štandardný mikroprocesor alebo mikrokontrolér. Mikrokontroléry obsahujú mikroprocesor, ako aj jednoduché periférne zariadenia, takže systém môže byť menší a lacnejší. Majú menšiu flexibilitu, pretože tieto časti nemožno meniť. Zvyčajne tieto časti zahŕňajú pamäť Flash a podporu sériových portov, USB atď.
Na rozdiel od mikroprocesora pre univerzálny počítač, väčší a rýchlejší nie je vždy lepší. Mnohé vstavané procesory sú veľmi malé. Niekedy je to preto, aby sa využilo menej miesta alebo menej energie, inokedy preto, aby boli lacnejšie. V počítačoch na všeobecné použitie sa používajú mikroprocesory, ktoré čítajú 32-bitové alebo 64-bitové slová a pracujú rýchlosťou meranou v GHz, ale vstavané procesory majú zvyčajne 4 až 32 bitov a pracujú rýchlosťou meranou v desiatkach MHz (stokrát pomalšie). (Programy sú však tiež menšie a nekontrolujú veci, ktoré sa nepoužívajú).
Hotové počítačové dosky
Existujú "hotové" počítačové dosky, ktoré možno použiť v niektorých vstavaných systémoch. Často používajú Windows CE, Linux, NetBSD alebo vstavaný operačný systém reálneho času.
Niekedy môže byť jednoduchšie použiť už vyrobenú dosku plošných spojov. Tie majú zvyčajne veľa spoločných komponentov s počítačmi na všeobecné použitie, ale sú menšie ako v počítači na všeobecné použitie. Na doskách, ako je napríklad VIA EPIA, možno spustiť operačný systém Microsoft Windows. Výhodou je, že sa ušetrí časť času elektrotechnikov a môžu sa používať rovnaké nástroje na vývoj softvéru, aké sa používajú na vývoj softvéru typu PC. Príkladom takýchto vstavaných zariadení sú bankomaty alebo displeje v kasínach. Tento spôsob funguje dobre, ak požiadavky na reálny čas nie sú skutočne prísne (nezáleží veľmi na tom, či úloha trvá napríklad osem sekúnd namiesto piatich).
Riešenia ASIC a FPGA
Ak má byť zariadenie veľmi malé alebo sa bude predávať vo veľmi veľkom množstve ("veľkoobjemové"), má zmysel vyrobiť vlastný alebo špecializovaný čip, ktorý robí presne to, čo je potrebné. Ide o systém na čipe (SoC), ktorý obsahuje kompletný systém - procesor, jednotku s pohyblivou rádovou čiarkou, vyrovnávaciu pamäť a rozhrania na jednom integrovanom obvode. SoC sa môžu vyrábať ako integrované obvody špecifické pre aplikáciu (ASIC) alebo pomocou poľa programovateľných hradiel (FPGA), ktoré programujú ľudia, ktorí vytvárajú vstavaný systém.
Periférne zariadenia
Vstavané systémy komunikujú s vonkajším svetom alebo inými komponentmi pomocou periférií, ako sú napr:
- Sériové porty: RS-232, RS-422, RS-485. Kedysi boli celkom bežné 9-pinové (alebo väčšie) konektory.
- Synchrónne sériové komunikačné rozhranie: I²C Inter-Integrated Circuit, I²S Inter-Integrated Sound, SPI, MIcrowire, ...
- Univerzálna sériová zbernica (USB).
- Siete: Siete: Ethernet, Controller Area Network, LonWorks, ...
- Diskrétny vstup/výstup: GPIO (General Purpose Input/Output). Môže to byť jeden vodič so signálom zapnuté/vypnuté. Môže sa použiť pre malú klávesnicu alebo na rozsvietenie LED.
- Analógovo-digitálne/číslicovo-analógové prevodníky (ADC/DAC). Tým sa meria niečo, čo mení svoju silu, napríklad svetelný senzor alebo ovládanie motora.
- Ladenie: JTAG, ICSP port, pre softvérových inžinierov.
Soekris net4801, vstavaný systém určený pre sieťové aplikácie.
Softvér
Operačné systémy
Vstavané systémy často nepotrebujú úplný operačný systém. Niektoré používajú špeciálne vytvorené malé a jednoduché operačné systémy, ktoré sa spúšťajú veľmi rýchlo, iné ho nepotrebujú vôbec. Vstavané systémy sa nedajú tak ľahko prispôsobiť, ale sú stavané tak, aby svoje úlohy vykonávali oveľa spoľahlivejšie. Keďže hardvér je jednoduchší, často je aj lacnejší na zostavenie a beží rýchlejšie.
Na rozdiel od toho musí byť univerzálny počítač pripravený na nové ovládače zariadení a softvér na spúšťanie hardvéru, o ktorom ešte nevie, ako sú nové tlačiarne alebo pevné disky. Potrebuje spúšťať rôzne aplikačné programy.
Keďže vstavané systémy sa zväčšujú, veci, ktoré sa predtým používali len na univerzálnych počítačoch alebo dokonca na mainframoch, sa teraz bežne používajú vo vstavaných systémoch. Patrí sem chránený pamäťový priestor a otvorené programovacie prostredie vrátane Linuxu, NetBSD atď.
Niektoré príklady operačných systémov, od jednoduchých po zložité:
- Jednoduchá riadiaca slučka - časovač a slučka sa používajú na opakované volanie rôznych podprogramov. Často ju vytvára jedna osoba pre menšie systémy.
- riadené prerušením - úlohy sa spúšťajú rôznymi druhmi udalostí. Udalosťou môže byť niečo časovo vymedzené (napríklad každých desať sekúnd) alebo stlačenie tlačidla či prijatie údajov.
- nonpreemptive multitasking - každá úloha sa dostane na rad a po dokončení zavolá plánovač v operačnom systéme, aby spustil ďalšiu úlohu.
- preemptívny multitasking alebo viacvláknovosť - úlohu možno po určitom čase zastaviť, aby mohla chvíľu bežať iná úloha. Žiadna úloha nemôže zaťažiť systém. Na tejto úrovni sa systém považuje za jadro "operačného systému" a úlohy môžu bežať paralelne. Tento typ operačného systému sa zvyčajne kupuje od spoločnosti, ktorá pracuje len na vstavaných operačných systémoch.
Operačné systémy reálneho času zahŕňajú produkty ako MicroC/OS-II, Green Hills INTEGRITY, QNX alebo VxWorks. Na rozdiel od operačných systémov MacOS alebo Windows 7 tieto operačné systémy väčšina ľudí veľmi nepozná. Používajú sa však na mnohých miestach, kde je čas a bezpečnosť veľmi dôležitá. Ľudia ich používajú každý deň a neuvedomujú si to.
Bežnými príkladmi väčších jadier sú Embedded Linux a Windows CE. Hoci tieto nemajú prísne časové limity potrebné pre prísny systém reálneho času, sú čoraz bežnejšie, najmä pre výkonnejšie zariadenia, ako sú bezdrôtové smerovače a GPS. Umožňujú opätovné použitie kódu vo verejnej doméne pre ovládače zariadení, webové servery, firewally a iný kód. Vývojári softvéru, ktorým sa viac osvedčilo písanie aplikácií pre osobné počítače, sa v nich tiež lepšie zorientujú. V prípade potreby sa môže použiť FPGA alebo iný špeciálny hardvér na veci, ktoré potrebujú prísne časové limity.
Nástroje
Podobne ako pri inom softvéri, aj pri vývoji softvéru vstavaných systémov používajú konštruktéri kompilátory, asemblery a ladiace programy. Môžu však používať aj niektoré špecifickejšie nástroje:
- V prípade systémov využívajúcich digitálne spracovanie signálov môžu vývojári použiť matematické nástroje, ako sú MATLAB, MathCad alebo Mathematica.
- Na zlepšenie optimalizácie pre konkrétny hardvér sa môžu použiť vlastné kompilátory a linkery.
- Vstavaný systém môže mať vlastný špeciálny jazyk alebo návrhový nástroj, alebo môže pridať vylepšenia k existujúcemu jazyku, ako je jazyk používaný v Basic Stamp.
Nástroje na ladenie:
- Debugger v obvode (ICD), hardvérové zariadenie, ktoré sa pripája k mikroprocesoru prostredníctvom rozhrania JTAG. Spúšťa a zastavuje mikroprocesor zvonku počas behu softvéru. Umožňuje tiež čítať pamäť a registre a ukladať softvérový program do pamäte.
- Externé ladenie pomocou protokolovania alebo výstupu sériového portu na sledovanie prevádzky pomocou blikajúceho monitora (printfs).
- Interaktívne rezidentné ladenie - ak to operačný systém podporuje, ide o shell na vstavanom procesore, ktorý spúšťa príkazy zadané vývojárom (napríklad Linux).
- Emulátor v obvode nahrádza mikroprocesor na doske a poskytuje úplnú kontrolu nad všetkým, čo mohol mikroprocesor robiť.
- Kompletný emulátor simuluje všetky funkcie hardvéru a umožňuje ho celý ovládať a upravovať. Hardvér v skutočnosti neexistuje, ale jeho predstieraná verzia ("virtuálny" stroj) je na bežnom počítači.
- Kontrola externých vedení pomocou logického analyzátora alebo multimetra.
Ak nie je obmedzené externé ladenie, programátor môže zvyčajne načítať a spustiť softvér prostredníctvom nástrojov, zobraziť kód bežiaci v procesore a spustiť alebo zastaviť jeho činnosť. Zobrazenie kódu môže byť vo forme kódu asembleru alebo zdrojového kódu. Niektoré integrované systémy (napríklad VxWorks alebo Green Hills) majú špeciálne funkcie, ako napríklad sledovanie toho, koľko miesta softvér zaberá počas svojho behu, aké úlohy sú spustené a kedy sa čo deje.
V závislosti od toho, aký druh vstavaného systému sa vyrába, sa ovplyvní spôsob jeho ladenia. Napríklad ladenie systému s jedným mikroprocesorom sa líši od ladenia systému, kde sa spracovanie vykonáva aj na periférii (DSP, FPGA, koprocesor).
Bezpečnosť a spoľahlivosť
Zabudované systémy sa často nachádzajú v strojoch, od ktorých sa očakáva, že budú bezchybne fungovať celé roky a v niektorých prípadoch sa v prípade chyby samy obnovia. To znamená, že softvér sa zvyčajne vyvíja a testuje starostlivejšie ako softvér pre osobné počítače a vyhýbajú sa nespoľahlivým mechanickým pohyblivým častiam, ako sú diskové jednotky a ventilátory.
Miesta, kde je dôležitá bezpečnosť a spoľahlivosť:
- Niektoré systémy nie je možné bezpečne odstaviť na opravu alebo je ich oprava príliš náročná. Príkladom sú vesmírne systémy (satelity, rovery), podmorské káble a ovládacie prvky jadrových elektrární.
- Systém by mohol v prípade zlyhania zabiť ľudí, ako napríklad ovládacie prvky lietadiel, ovládacie prvky chemických tovární, vlakové signály a srdcové defibrilátory.
- V prípade vypnutia systému alebo v prípade chyby príde systém o veľké sumy peňazí: Telefónne spínače, továrenské kontroly, pokladnice, bankomaty.
Spôsoby obnovy po chybách - softvérových chybách, ako sú úniky pamäte, a tiež mäkkých chybách hardvéru:
- Watchdog časovač, ktorý reštartuje vstavaný systém, ak niečo prestane fungovať.
- Duplicitné časti, kde jeden systém môže prevziať funkciu, ak iný prestane fungovať.
- Softvérové "ochabnuté režimy", ktoré zabezpečujú čiastočnú funkčnosť.
- Programovanie s ohľadom na imunitu
Súvisiace stránky
- Mikroprocesor
- Programovacie jazyky
- Firmvér
- Operačný systém v reálnom čase
Otázky a odpovede
Otázka: Čo je to vstavaný systém?
Odpoveď: Vstavaný systém je počítač vytvorený na riešenie špecifických problémov, ktorý sa nedá ľahko zmeniť.
Otázka: Čím sa vstavaný systém líši od univerzálneho počítača?
Odpoveď: Vstavaný systém zvyčajne nemá klávesnicu, monitor ani myš a má špecializované funkcie. Všeobecný počítač môže vykonávať širokú škálu úloh.
Otázka: Aké sú príklady vstavaných systémov?
Odpoveď: Medzi príklady vstavaných systémov patria ovládače výťahov, set-top boxy, čítačky kariet v hotelových zámkoch, systémy svetelnej signalizácie, lietadlá a montážne linky v továrňach.
Otázka: Čo je to výpočtová technika v reálnom čase?
Odpoveď: O výpočtoch v reálnom čase hovoríme vtedy, keď vstavaný systém musí dokončiť svoju prácu za určitý čas. Ak sa preruší, môže to spôsobiť problémy, ako je zlá kvalita obrazu na televízore.
Otázka: Aké sú komponenty vstavaného systému?
Odpoveď: Ako každý počítač, aj vstavaný systém má procesor, softvér, vstup a výstup.
Otázka: Aké úlohy môže vstavaný systém ovládať?
Odpoveď: Vstavaný systém môže riadiť malé zariadenia, ako sú MP3 prehrávače alebo digitálne fotoaparáty, alebo väčšie systémy, ako sú semafory alebo lietadlá.
Otázka: Čo znamená pojem "vstavaný" v súvislosti s vstavanými systémami?
Odpoveď: Pojem "vstavaný" znamená, že počítač je zabudovaný do väčšieho systému a nie je možné ho ľahko zmeniť.