Dom > Izložba > Sadržaj

Arhitekture ugrađenog softvera

Mar 08, 2019

Postoji nekoliko različitih tipova softverske arhitekture u zajedničkoj upotrebi.


Jednostavna upravljačka petlja

U ovom dizajnu, softver jednostavno ima petlju. Petlja poziva podrutine, od kojih svaka upravlja dijelom hardvera ili softvera. Stoga se naziva jednostavna kontrolna petlja ili kontrolna petlja.


Sustav kontroliranog prekidom

Neki ugrađeni sustavi uglavnom se kontroliraju prekidima. To znači da se zadaci koje izvodi sustav pokreću različitim vrstama događaja; prekid može biti generiran, na primjer, pomoću tajmera u unaprijed definiranoj frekvenciji ili kontrolera serijskog porta koji prima bajt.


Takvi sustavi koriste se ako rukovatelji događajima trebaju nisku latenciju, a rukovatelji događajima su kratki i jednostavni. Obično, takvi sustavi pokreću jednostavan zadatak u glavnoj petlji, ali taj zadatak nije jako osjetljiv na neočekivana kašnjenja.


Ponekad će rukovatelj prekidom dodati duže zadatke strukturi reda. Kasnije, nakon što je prekidač završio, ovi zadaci se izvršavaju u glavnoj petlji. Ova metoda dovodi sustav u blizinu višezadaćnog jezgre s diskretnim procesima.


Zadružni višezadaćnost

Sustav neuplitanja višezadaćnosti vrlo je sličan jednostavnoj shemi kontrolne petlje, osim što je petlja skrivena u API-ju. Programer definira niz zadataka, a svaki zadatak dobiva svoje okruženje za "pokretanje". Kada je zadatak u stanju mirovanja, on poziva neaktivnu rutinu, obično nazvanu "pauza", "čekanje", "prinos", "nop" (ne znači ništa), itd.


Prednosti i nedostaci slični su onima u kontrolnoj petlji, osim što je dodavanje novog softvera lakše, jednostavnim pisanjem novog zadatka ili dodavanjem u red.


Preventivni višenamjenski ili višestruki rad

U ovoj vrsti sustava, nizak nivo koda prebacuje između zadataka ili niti na temelju tajmera (spojenog na prekid). To je razina na kojoj se sustav općenito smatra da ima kernel "operativnog sustava". Ovisno o tome koliko je funkcionalnosti potrebno, uvodi više ili manje složenosti upravljanja višestrukim zadacima koji se odvijaju konceptualno paralelno.


Budući da bilo koji kôd potencijalno može oštetiti podatke drugog zadatka (osim u većim sustavima koji koriste MMU), programi moraju biti pažljivo dizajnirani i testirani, a pristup dijeljenim podacima mora kontrolirati neka strategija sinkronizacije, kao što su redovi poruka, semafori ili ne - sinkronizacijska shema blokiranja.


Zbog tih složenosti, uobičajeno je da organizacije koriste operativni sustav u stvarnom vremenu (RTOS), koji programerima aplikacija omogućuje da se koncentriraju na funkcionalnost uređaja, a ne na usluge operativnog sustava, barem za velike sustave; manji sustavi često ne mogu priuštiti opterećenje povezano s generičkim sustavom u stvarnom vremenu, zbog ograničenja vezanih uz veličinu memorije, performanse ili trajanje baterije. Međutim, izbor koji se zahtijeva od RTOS-a donosi vlastita pitanja, no odabir se mora obaviti prije početka procesa razvoja aplikacija. To vrijeme prisiljava programere da izaberu ugrađeni operativni sustav za svoj uređaj na temelju trenutnih zahtjeva i tako ograničava buduće opcije u velikoj mjeri. Ograničenje budućih opcija postaje više problem jer se životni vijek proizvoda smanjuje. Osim toga, razina složenosti se neprestano povećava jer su uređaji potrebni za upravljanje varijablama kao što su serijski, USB, TCP / IP, Bluetooth, bežični LAN, trunk radio, višestruki kanali, podaci i glas, poboljšana grafika, više država, više niti, brojne države čekanja i tako dalje. Ovi trendovi dovode do prihvaćanja ugrađenog middleware-a uz operativni sustav u stvarnom vremenu.


Mikrokerneli i egzokeri

Mikrokernel je logičan korak od operativnog sustava u stvarnom vremenu. Uobičajeni aranžman je da kernel operativnog sustava dodjeljuje memoriju i prebacuje CPU na različite niti izvršenja. Procesi korisničkog načina implementiraju glavne funkcije kao što su datotečni sustavi, mrežna sučelja itd.


Općenito, mikrokerneli uspijevaju kada je zamjena zadatka i komunikacija među zadacima brza i ne uspijevaju kada su spori.


Exokerneli učinkovito komuniciraju putem normalnih poziva na potprogramu. Hardver i sav softver u sustavu su dostupni i proširivi od strane aplikacijskih programera.


Monolitna jezgra

U ovom slučaju, relativno veliki kernel sa sofisticiranim mogućnostima prilagođen je ugrađenom okruženju. To daje programerima okruženje slično operativnom sustavu poput Linuxa ili Microsoft Windowsa, te je stoga vrlo produktivno za razvoj; S druge strane, to zahtijeva znatno više hardverskih resursa, često je skuplje i zbog složenosti tih kernela može biti manje predvidljivo i pouzdano.


Uobičajeni primjeri ugrađenih monolitnih kernela su ugrađeni Linux i Windows CE.


Unatoč povećanom trošku hardvera, ovaj tip ugrađenog sustava je sve popularniji, posebno na snažnijim ugrađenim uređajima kao što su bežični usmjerivači i GPS navigacijski sustavi. Evo nekoliko razloga:


Dostupni su priključci za zajedničke ugrađene skupove čipova.

Dopuštaju ponovno korištenje javno dostupnog koda za upravljačke programe uređaja, web-poslužitelje, vatrozide i druge kodove.

Razvojni sustavi mogu početi sa širokim skupovima značajki, a zatim se distribucija može konfigurirati tako da isključuje nepotrebnu funkcionalnost i štedi trošak memorije koju će potrošiti.

Mnogi inženjeri vjeruju da je pokretanje aplikacijskog koda u korisničkom modu pouzdaniji i lakši za otklanjanje grešaka, što olakšava razvojni proces, a kod je prenosiviji.

Značajke koje zahtijevaju brži odgovor nego što se može jamčiti, često se mogu postaviti u hardver.

Dodatne softverske komponente

Osim osnovnog operativnog sustava, mnogi ugrađeni sustavi imaju dodatne softverske komponente gornjeg sloja. Te se komponente sastoje od nizova mrežnih protokola poput CAN-a, TCP / IP-a, FTP-a, HTTP-a i HTTPS-a, a uključuju i mogućnosti pohrane kao što su sustavi za upravljanje FAT-om i flash memorijom. Ako ugrađeni uređaj ima audio i video mogućnosti, u sustavu će biti prisutni odgovarajući upravljački programi i kodeci. U slučaju monolitnih jezgri, mnogi od tih softverskih slojeva su uključeni. U RTOS kategoriji, dostupnost dodatnih softverskih komponenti ovisi o komercijalnoj ponudi.


Arhitekture specifične za domenu

U automobilskom sektoru, AUTOSAR je standardna arhitektura za ugrađeni softver.