Dom > Razstava > Vsebine

Arhitekture vdelane programske opreme

Mar 08, 2019

Obstaja več različnih vrst arhitekture programske opreme, ki so v splošni rabi.


Enostavna krmilna zanka

V tej zasnovi ima programska oprema preprosto zanko. Zanka kliče podprograme, od katerih vsak upravlja del strojne ali programske opreme. Zato se imenuje preprosta krmilna zanka ali kontrolna zanka.


Sistem prekinjenega krmiljenja

Nekatere vgrajene sisteme večinoma nadzorujejo prekinitve. To pomeni, da se naloge, ki jih izvaja sistem, sprožijo z različnimi vrstami dogodkov; prekinitev se lahko ustvari, na primer, s časovnikom v vnaprej določeni frekvenci ali s krmilnikom serijskih vrat, ki sprejema bajt.


Takšni sistemi se uporabljajo, če je treba opraviti z nizko latenco dogodkov, in rokovniki dogodkov so kratki in preprosti. Običajno te vrste sistemov vodijo preprosto nalogo tudi v glavni zanki, vendar ta naloga ni zelo občutljiva na nepričakovane zamude.


Včasih bo prekinjevalnik dodal daljše naloge v strukturo čakalne vrste. Kasneje, ko se je prekinil vodnik, te naloge izvede glavna zanka. Ta metoda prinaša sistem blizu večopravilnemu jedru z diskretnimi procesi.


Zadružna večopravilnost

Sistem, ki ne predčasno opušča večopravilnost, je zelo podoben preprosti shemi kontrolne zanke, razen da je zanka skrita v API-ju. Programer definira vrsto nalog in vsaka naloga dobi svoje lastno okolje, v katerem se »zažene«. Ko je opravilo nedejavno, kliče neaktivno rutino, ki se običajno imenuje »pavza«, »čakaj«, »donos«, »nop« (ne pomeni nobene operacije) itd.


Prednosti in slabosti so podobne tistim v krmilni zanki, le da je dodajanje nove programske opreme lažje, s preprosto pisanjem nove naloge ali dodajanjem v čakalno vrsto.


Prednostna večopravilna ali večkratna obdelava

Pri tej vrsti sistema nizko raven kode preklaplja med nalogami ali nitmi, ki temeljijo na časovniku (povezanem s prekinitvijo). To je raven, na kateri se sistem na splošno šteje za jedro operacijskega sistema. Glede na to, koliko funkcionalnosti je potrebnih, uvaja več ali manj zapletenosti upravljanja več nalog, ki se odvijajo konceptualno vzporedno.


Ker lahko katera koli koda potencialno poškoduje podatke druge naloge (razen v večjih sistemih, ki uporabljajo MMU), morajo biti programi skrbno oblikovani in preizkušeni, dostop do podatkov v skupni rabi pa mora nadzorovati neka strategija sinhronizacije, kot so čakalne vrste sporočil, semafori ali ne sinhronizacijska shema.


Zaradi te zapletenosti je običajno, da organizacije uporabljajo operacijski sistem v realnem času (RTOS), ki programerjem aplikacij omogoča, da se osredotočijo na funkcionalnost naprave in ne na storitve operacijskega sistema, vsaj za velike sisteme; manjši sistemi pogosto ne morejo privoščiti režijskih stroškov, povezanih z generičnim sistemom v realnem času, zaradi omejitev glede velikosti pomnilnika, zmogljivosti ali trajanja baterije. Izbira, ki jo zahteva RTOS, prinaša lastna vprašanja, vendar mora biti izbira opravljena pred začetkom procesa razvoja aplikacij. Ta časovna razporeditev prisili razvijalce, da izberejo vgrajeni operacijski sistem za svojo napravo na podlagi trenutnih zahtev in tako omejujejo prihodnje možnosti v veliki meri. Omejevanje prihodnjih možnosti postaja bolj problematično, saj se življenjska doba izdelkov zmanjšuje. Poleg tega stopnja kompleksnosti nenehno narašča, saj so naprave potrebne za upravljanje spremenljivk, kot so zaporedna, USB, TCP / IP, Bluetooth, brezžično omrežje LAN, radio v večjih omrežjih, več kanalov, podatki in glas, izboljšana grafika, več držav, več niti, številne čakajočih držav in tako naprej. Ti trendi vodijo k prevzemu vgrajene vmesne programske opreme poleg operacijskega sistema v realnem času.


Mikro jedra in eksokerneli

Mikrokernel je logični korak od operacijskega sistema v realnem času. Običajna ureditev je, da jedro operacijskega sistema dodeli pomnilnik in preklopi CPU na različne niti izvajanja. Procesi uporabniškega načina izvajajo glavne funkcije, kot so datotečni sistemi, omrežni vmesniki itd.


Na splošno mikrokerneli uspevajo, ko je preklapljanje nalog in komunikacija med nalogami hitra in neuspešna, ko sta počasna.


Exokerneli učinkovito komunicirajo z običajnimi klici podprogramov. Strojna oprema in vsa programska oprema v sistemu sta na voljo in razširljiva s strani aplikacijskih programerjev.


Monolitna jedra

V tem primeru je relativno veliko jedro s prefinjenimi zmožnostmi prilagojeno vgrajenemu okolju. To daje programerjem okolje, podobno namiznemu operacijskemu sistemu, kot sta Linux ali Microsoft Windows, in je zato zelo produktivno za razvoj; navzdol, zahteva precej več virov strojne opreme, je pogosto dražja in je zaradi kompleksnosti teh jeder lahko manj predvidljiva in zanesljiva.


Pogosti primeri vdelanih monolitnih jeder so vdelani Linux in Windows CE.


Kljub povečanim stroškom v strojni opremi se ta vrsta vgrajenega sistema vse bolj uveljavlja, zlasti na zmogljivejših vgrajenih napravah, kot so brezžični usmerjevalniki in GPS navigacijski sistemi. Tukaj je nekaj razlogov:


Na voljo so vrata skupnih vgrajenih čipov.

Omogočajo ponovno uporabo javno dostopne kode za gonilnike naprav, spletne strežnike, požarne zidove in drugo kodo.

Razvojni sistemi se lahko začnejo s širokim naborom funkcij, nato pa se lahko distribucija konfigurira tako, da izključi nepotrebno funkcionalnost in shrani stroške pomnilnika, ki bi ga porabili.

Mnogi inženirji verjamejo, da je zagonska koda aplikacije v uporabniškem načinu bolj zanesljiva in lažja za razhroščevanje, zaradi česar je razvojni proces lažji in koda bolj prenosljiva.

Funkcije, ki zahtevajo hitrejši odziv, kot je mogoče zagotoviti, se lahko pogosto namesti v strojno opremo.

Dodatne komponente programske opreme

Poleg osnovnega operacijskega sistema ima veliko vgrajenih sistemov še dodatne programske komponente zgornje plasti. Te komponente so sestavljene iz nizov omrežnih protokolov, kot so CAN, TCP / IP, FTP, HTTP in HTTPS. Če ima vgrajena naprava avdio in video zmožnosti, bodo v sistemu prisotni ustrezni gonilniki in kodeki. V primeru monolitnih jeder je vključenih veliko teh slojev programske opreme. V kategoriji RTOS je razpoložljivost dodatnih komponent programske opreme odvisna od komercialne ponudbe.


Arhitekture, specifične za domeno

V avtomobilskem sektorju je AUTOSAR standardna arhitektura za vgrajeno programsko opremo.