Beágyazott rendszer
A beágyazott rendszer egy olyan számítógép, amelyet csak néhány nagyon speciális probléma megoldására építettek, és amelyet nem könnyű megváltoztatni. A beágyazott szó azt jelenti, hogy a rendszerbe van építve. Egy nagyobb rendszer állandó része. Általában nem úgy néz ki, mint egy számítógép, gyakran nincs billentyűzet, monitor vagy egér. De mint minden számítógépnek, ennek is van processzora és szoftvere, bemenete és kimenete.
Például egy liftbe épített vezérlő a megnyomott gombok alapján utasítja a motort, hogy a liftet különböző emeletekre mozgassa. A műholdas televíziós set-top boxba (STB) beágyazott dekóder a parabolaantennáról érkező jelet olvassa, és olyasmit küld, amit a televízió megért. Az ilyen típusú rendszereknek gyakran meghatározott idő alatt kell elvégezniük a munkájukat. Ezt nevezik valós idejű számítástechnikának. Ha a set-top box megszakadna, hogy más feladatot végezzen, akkor például rossz képet látna a tévén. Egy általános célú számítógép gyakran tart rövid szüneteket, amíg valami mást csinál, ez nem valós idejű.
A beágyazott rendszerek számos ma használatos eszközt vezérelnek, például a szállodai ajtózárak kártyaolvasóit vagy az autóban lévő számos dolgot. Vezérelhetnek olyan kis dolgokat, mint egy MP3-lejátszó vagy egy digitális fényképezőgép, és olyan nagy dolgokat, mint a közlekedési lámpák, repülőgépek vagy egy gyár összeszerelősorai.
Kép egy ADSL modem/router belsejéről. A beágyazott rendszer modern példája. A felcímkézett részek közé tartozik a mikroprocesszor (4), a RAM (6) és a flashmemória (7).
Példák beágyazott rendszerekre
Beágyazott rendszereket számos elektromos eszközben használnak, többek között:
- A távközlési rendszerek telefonokhoz, mobiltelefon-hálózathoz és wi-fi routerekhez használják őket.
- A szórakoztató elektronika a műsorszóró vevőkészülékeket, MP3-lejátszókat, mobiltelefonokat, videojáték-konzolokat, digitális fényképezőgépeket, DVD-lejátszókat, GPS-vevőket, otthoni biztonsági rendszereket és nyomtatókat foglalja magában.
- Az olyan háztartási készülékek, mint a mikrohullámú sütők, mosógépek, betörésjelző rendszerek és mosogatógépek beágyazott rendszerekkel rendelkeznek.
- A közlekedés beágyazott rendszereket használ a mozdonyoktól kezdve a vonatokon, repülőgépeken és autókon át mindenre.
- Az ipar elektronikus vezérlőkkel ellátott elektromos motorokat, kártyaolvasókat és CNC-gépeket használ, amelyek automatikusan fémalkatrészeket gyártanak.
- Orvostechnikai eszközök, például defibrillátorok, automata vérnyomásmérő készülékek és automata inzulinpumpák.
- Katonai eszközök, például rádiótelefonok, műholdak és rakéták irányítórendszerei.
Közös jellemzők
- A beágyazott rendszereket egy adott feladat elvégzésére tervezték, ellentétben az általános célú számítógépekkel.
- Nem úgy néz ki, mint egy számítógép - nem biztos, hogy van rajta teljes monitor vagy billentyűzet.
- Sok beágyazott rendszernek képesnek kell lennie arra, hogy valós időben - rövid időn belül (emberi szemmel nézve szinte azonnal) - elvégezzen dolgokat.
- Sok beágyazott rendszernek nagyon biztonságosnak és megbízhatónak kell lennie, különösen az orvosi eszközök vagy a repülőgépeket vezérlő avionika esetében.
- Nagyon gyorsan elindul. Az emberek nem akarnak egy-két percet várni arra, hogy elinduljon az autójuk vagy a vészhelyzeti felszerelésük.
- Használhat egy speciális operációs rendszert (vagy néha egy nagyon kis házi készítésű operációs rendszert), amely segít megfelelni ezeknek a követelményeknek, és amelyet valós idejű operációs rendszernek vagy RTOS-nek neveznek.
- A beágyazott rendszerekhez írt programutasításokat firmware-nek nevezik, és csak olvasható memóriában vagy flash memóriachipekben tárolják. Korlátozott számítógépes hardverforrásokkal működnek: kevés memória, kicsi vagy nem létező billentyűzet és/vagy képernyő.
A beágyazott rendszerek nem mindig önálló eszközök. Néha készletként épülnek fel, mint például egy autó különböző részei - a rádió, a gázpedálvezérlő, a környezetszennyezés-szabályozó stb. Néha képesek kommunikálni az internettel vagy egy mobiltelefon-hálózattal, és rendelkezhetnek USB-olvasóval vagy más csatlakozókkal.
Felhasználói felületek
A beágyazott rendszerek a felhasználói felület nélküli - csak elektromos jeleket küldő és fogadó - és a modern számítógépekhez hasonló teljes grafikus felhasználói felületig terjednek. Gyakran néhány nyomógombot, egy kis kijelzőt és néhány LED-et tartalmaznak. Egy összetettebb rendszer érintőképernyővel is rendelkezhet, amely lehetővé teszi, hogy a gombok jelentése minden egyes képernyőn változzon, mint az okostelefonok esetében.
Egy példa egy gombokkal és egy egyszerű LCD-kijelzővel ellátott felhasználói felületre.
Hardver
A hardverhez tartoznak a chipek, vezetékek, áramköri lapok, gombok és kijelzők.
CPU-k
A legfontosabb chip a központi feldolgozó egység vagy CPU. Ez futtatja a szoftver utasításait. Ez lehet szabványos mikroprocesszor vagy mikrokontroller. A mikrokontrollerek a mikroprocesszort, valamint egyszerű perifériákat tartalmaznak, így a rendszer kisebb és olcsóbb lehet. Kevésbé rugalmasak, mivel ezek az alkatrészek nem változtathatók. Általában ezek az alkatrészek közé tartozik a Flash-memória és a soros portok, USB stb. támogatása.
Az általános célú számítógépek mikroprocesszorával ellentétben a nagyobb és gyorsabb nem mindig jobb. Sok beágyazott processzor nagyon kicsi. Néha azért, hogy kevesebb helyet vagy energiát használjanak, néha pedig azért, hogy olcsóbbak legyenek. Az általános célú számítógépek 32 vagy 64 bites szavakat olvasó és GHz-ben mért sebességű mikroprocesszorokat használnak, a beágyazott processzorok azonban általában 4-32 bitesek és általában több tíz MHz-es (százszor lassabb) sebességgel működnek. (Viszont a programok is kisebbek, és nem ellenőrzik a nem használt dolgokat).
Kész számítógépes táblák
Vannak "kész" számítógépes lapok, amelyek egyes beágyazott rendszerekben használhatók. Ezek gyakran Windows CE, Linux, NetBSD vagy beágyazott valós idejű operációs rendszert használnak.
Néha egyszerűbb lehet egy már elkészített áramköri lapot használni. Ezek általában sok alkatrészen osztoznak az általános célú számítógépekkel, de kisebbek, mint egy általános célú számítógépben. Az olyan alaplapok, mint a VIA EPIA, képesek a Microsoft Windows futtatására. Előnye, hogy némi villamosmérnöki időt takarít meg, és ugyanazokat a szoftverfejlesztő eszközöket használhatja, amelyeket a PC-típusú szoftverfejlesztéshez használnak. Ilyen beágyazott eszközökre példák az ATM-ek vagy a kaszinókban lévő kijelzők. Ez jól működik, ha a valós idejű követelmények nem igazán szigorúak (nem sokat számít, ha egy feladat például öt helyett nyolc másodpercig tart).
ASIC és FPGA megoldások
Ha az eszköznek nagyon kicsinek kell lennie, vagy nagyon nagy számban fogják értékesíteni ("nagy mennyiségben"), akkor érdemes olyan egyedi vagy speciális chipet készíteni, amely pontosan azt teszi, amire szükség van. Ez a "system on a chip" (SoC), amely egy teljes rendszert - processzor, lebegőpontos egység, memória gyorsítótár és interfészek - egyetlen integrált áramkörön tart. A SoC-k készülhetnek speciális megrendelésű, alkalmazásspecifikus integrált áramkörként (ASIC), vagy egy FPGA (field-programmable gate array) alkalmazásával, amelyet a beágyazott rendszert építő személyek programoznak.
Perifériák
A beágyazott rendszerek a külvilággal vagy más komponensekkel olyan perifériák segítségével kommunikálnak, mint például:
- Soros portok: RS-232, RS-422, RS-485. Ez régebben eléggé elterjedt volt, a 9 tűs (vagy nagyobb) csatlakozókkal.
- Szinkron soros kommunikációs interfész: I²C Inter-Integrált áramkör, I²S Inter-Integrált hang, SPI, MIcrowire, ...
- Univerzális soros busz (USB).
- Hálózatok: Ethernet, vezérlőhálózat, LonWorks, ...
- Diszkrét bemenet/kimenet: Általános célú bemenet/kimenet (GPIO). Ez lehet egyetlen vezeték is, be/ki jelzéssel. Használható egy kis billentyűzethez, vagy egy LED világításához.
- Analóg-digitális/digitális-analóg átalakítók (ADC/DAC). Ez olyan dolgokat mér, amelyek erőssége változik, mint például egy fényérzékelő vagy egy motorvezérlő.
- Hibakeresés: JTAG, ICSP port, szoftvermérnökök számára.
Soekris net4801, egy hálózati alkalmazásokat célzó beágyazott rendszer.
Szoftver
Operációs rendszerek
A beágyazott rendszereknek gyakran nincs szükségük teljes operációs rendszerre. Egyesek speciálisan erre a célra készített kis és egyszerű operációs rendszereket használnak, amelyek nagyon gyorsan elindulnak, másoknak pedig egyáltalán nincs szükségük ilyenre. A beágyazott rendszerek nem alkalmazkodnak olyan könnyen, de úgy vannak megépítve, hogy sokkal megbízhatóbban lássák el feladataikat. Mivel a hardver egyszerűbb, gyakran olcsóbb is a megépítése, és gyorsabban fut.
Ezzel szemben egy általános célú számítógépnek készen kell állnia az új eszközillesztőprogramokra és szoftverekre, hogy olyan hardvereket futtasson, amelyekről még nem tud, például új nyomtatókat vagy merevlemezeket. Különböző alkalmazási programokat kell futtatnia.
Ahogy a beágyazott rendszerek egyre nagyobbak lesznek, olyan dolgok, amelyek korábban csak általános célú számítógépeken vagy akár nagyszámítógépeken voltak, ma már a beágyazott rendszerekben is gyakoriak. Ilyen például a védett memóriaterület és a nyílt programozási környezet, beleértve a Linuxot, NetBSD-t stb.
Néhány példa az operációs rendszerekre, az egyszerűtől az összetettig:
- Egyszerű vezérlőhurok - Egy időzítő és egy ciklus különböző alprogramok ismételt hívására szolgál. Ezt gyakran egy személy készíti kisebb rendszerekhez.
- megszakításvezérelt - A feladatokat különböző típusú események indítják el. Az esemény lehet valami időzített (például tíz másodpercenként), vagy egy gombnyomás, illetve a beérkező adatok alapján.
- nonpreemptive multitasking - Minden feladat sorra kerül, és amikor befejezi, az operációs rendszerben lévő ütemezőt hívja meg a következő feladat futtatására.
- preemptív multitasking vagy multi-threading - Egy feladat bizonyos idő után leállítható, hogy egy másik feladat egy ideig futhasson. Egyetlen feladat sem foglalhatja el a rendszert. Ezen a szinten a rendszer "operációs rendszer" kernellel rendelkezőnek tekinthető, és párhuzamosan futtathat feladatokat. Az ilyen típusú operációs rendszert általában olyan cégtől vásárolják meg, amely csak beágyazott operációs rendszerekkel foglalkozik.
A valós idejű operációs rendszerek közé olyan termékek tartoznak, mint a MicroC/OS-II, a Green Hills INTEGRITY, a QNX vagy a VxWorks. A MacOS-szel vagy a Windows 7-tel ellentétben ezeket az operációs rendszereket a legtöbb ember nem ismeri túl jól. De sok helyen használják őket, ahol az idő és a biztonság nagyon fontos. Az emberek nap mint nap használják őket, és nem veszik észre.
A nagyobb rendszermagok gyakori példái a beágyazott Linux és a Windows CE. Bár ezeknek nincsenek olyan szoros időkorlátai, mint egy szigorúan valós idejű rendszernek, mégis egyre gyakoribbak, különösen az olyan nagyobb teljesítményű eszközök esetében, mint a vezeték nélküli útválasztók és a GPS-ek. Ezek lehetővé teszik a közszférában lévő kód újrafelhasználását eszközmeghajtók, webkiszolgálók, tűzfalak és egyéb kódok számára. Azok a szoftverfejlesztők, akik kényelmesebben írnak alkalmazásokat PC-kre, ezt is ismerősebbnek fogják találni. Szükség esetén FPGA vagy más speciális hardver használható olyan dolgokhoz, amelyekhez szűk időkorlátok szükségesek.
Eszközök
Más szoftverekhez hasonlóan a beágyazott rendszerek tervezői is használnak fordítókat, asszemblerezőket és hibakeresőket a beágyazott rendszerek szoftverének fejlesztéséhez. Használhatnak azonban néhány speciálisabb eszközt is:
- A digitális jelfeldolgozást alkalmazó rendszerek esetében a fejlesztők olyan matematikai eszközöket használhatnak, mint a MATLAB, a MathCad vagy a Mathematica.
- Egyedi fordítók és linkerek használhatók az adott hardverre való optimalizálás javítására.
- Egy beágyazott rendszernek lehet saját speciális nyelve vagy tervezőeszköze, vagy egy meglévő nyelv, például a Basic Stamp által használt nyelv továbbfejlesztése.
Hibakeresési eszközök:
- Egy ICD (in-circuit debugger), egy hardvereszköz, amely a mikroprocesszorhoz JTAG-interfészen keresztül csatlakozik. Ez kívülről indítja és állítja le a mikroprocesszort, miközben az a szoftvert futtatja. Lehetővé teszi továbbá a memória és a regiszterek olvasását, valamint a szoftverprogram memóriában való tárolását.
- Külső hibakeresés naplózással vagy soros port kimenettel a működés nyomon követésére akár egy villogó monitor (printfs) segítségével.
- Interaktív rezidens hibakeresés - ha az operációs rendszer támogatja, ez egy héj a beágyazott processzoron, amely a fejlesztő által begépelt parancsokat futtatja (például Linux).
- Egy áramkörön belüli emulátor helyettesíti a mikroprocesszort a lapon, és teljes mértékben vezérli mindazt, amit a mikroprocesszor tudott.
- Egy teljes emulátor a hardver összes funkcióját szimulálja, lehetővé téve az egész vezérlését és módosítását. A hardver valójában nem létezik, de annak egy színlelt változata (egy "virtuális" gép) van egy normál PC-n.
- Külső vonalak ellenőrzése logikai analizátorral vagy multiméterrel.
Hacsak nem korlátozódik a külső hibakeresésre, a programozó általában betölthet és futtathat szoftvert az eszközökön keresztül, megtekintheti a processzorban futó kódot, és elindíthatja vagy leállíthatja annak működését. A kód megtekintése történhet assembly kódként vagy forráskódként. Egyes integrált rendszerek (mint a VxWorks vagy a Green Hills) speciális funkciókkal rendelkeznek, például nyomon követik, hogy a szoftver futás közben mennyi helyet foglal, milyen feladatok futnak, és mikor történnek a dolgok.
Attól függően, hogy milyen beágyazott rendszerről van szó, a hibakeresés módja is függ. Például egy egyetlen mikroprocesszoros rendszer hibakeresése különbözik egy olyan rendszer hibakeresésétől, ahol a feldolgozás egy periférián (DSP, FPGA, társprocesszor) is történik.
Biztonság és megbízhatóság
A beágyazott rendszerek gyakran olyan gépekben vannak, amelyeknek évekig hiba nélkül kell működniük, és bizonyos esetekben hiba esetén maguktól helyreállnak. Ez azt jelenti, hogy a szoftvert általában gondosabban fejlesztik és tesztelik, mint a személyi számítógépekét, és a megbízhatatlan mechanikus mozgó alkatrészek, például a lemezmeghajtók és a ventilátorok kerülendők.
Olyan helyek, ahol fontos a biztonság és a megbízhatóság:
- Egyes rendszereket nem lehet biztonságosan leállítani javítás céljából, vagy a javítás túl nehézkes. Ilyenek például az űrrendszerek (műholdak, roverek), a tenger alatti kábelek és az atomerőművek vezérlése.
- A rendszer meghibásodása embereket ölhet, például repülőgépek, vegyi üzemek, vonatjelzők és szívdefibrillátorok vezérlése esetén.
- A rendszer nagy összegeket veszít, ha leállítják, vagy ha hibát követnek el: Telefonkapcsolók, gyári vezérlők, pénztárgépek, bankautomaták.
A hibák - mind a szoftveres hibák, például a memóriaszivárgás, mind a hardverben fellépő puha hibák - helyreállításának módjai:
- Watchdog időzítő, amely újraindítja a beágyazott rendszert, ha valami leáll.
- Duplikált alkatrészek, ahol az egyik rendszer átveheti a helyét, ha egy másik leáll.
- Részleges működést biztosító szoftveres "sántítási módok".
- Immunitás-tudatos programozás
Kapcsolódó oldalak
- Mikroprocesszor
- Programozási nyelvek
- Firmware
- Valós idejű operációs rendszer
Kérdések és válaszok
K: Mi az a beágyazott rendszer?
V: A beágyazott rendszer egy olyan számítógép, amelyet speciális problémák megoldására építettek, és nem könnyű megváltoztatni.
K: Miben különbözik egy beágyazott rendszer egy általános célú számítógéptől?
V: A beágyazott rendszer általában nem rendelkezik billentyűzettel, monitorral vagy egérrel, és speciális funkciókkal rendelkezik. Egy általános célú számítógép a feladatok széles körét képes ellátni.
K: Milyen példák vannak a beágyazott rendszerekre?
V: A beágyazott rendszerek közé tartoznak például a liftvezérlők, a set-top boxok, a szállodai ajtózárakban lévő kártyaolvasók, a közlekedési lámparendszerek, a repülőgépek és a gyári összeszerelősorok.
K: Mi az a valós idejű számítástechnika?
V: Valós idejű számítástechnika az, amikor egy beágyazott rendszernek meghatározott időn belül kell elvégeznie a munkáját. Ha ez megszakad, az olyan problémákat okozhat, mint például a rossz képminőség a televízión.
K: Melyek a beágyazott rendszerek összetevői?
V: Mint minden számítógép, a beágyazott rendszer is rendelkezik processzorral, szoftverrel, bemenettel és kimenettel.
K: Milyen feladatokat vezérelhet egy beágyazott rendszer?
V: Egy beágyazott rendszer vezérelhet kisebb eszközöket, például MP3-lejátszókat vagy digitális kamerákat, vagy nagyobb rendszereket, például közlekedési lámpákat vagy repülőgépeket.
K: Mit jelent a "beágyazott" kifejezés a beágyazott rendszerekkel kapcsolatban?
V: A "beágyazott" kifejezés azt jelenti, hogy a számítógép egy nagyobb rendszerbe van beépítve, és nem változtatható meg könnyen.