Siemens ponuja oboje avtomobilska vgrajena programska oprema in vgrajeno programsko inženirstvo rešitve. Siemens je prenehal ponuditi samostojno vgrajeno programsko opremo za SoC-je, saj so novembra 2023 upokojili izdelke Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux in Sourcery CodeBench (vključno s povezanimi dodatki). Obstoječe pogodbe o podpori za te izdelke še vedno izpolnjujejo, obrnite se na Siemens Center za podporo za več informacij.
Katere so različne vrste vgrajene programske opreme in njihovi nameni?
- Operacijski sistem (OS) je v splošnem pomenu programska oprema, ki uporabniku omogoča zagon drugih aplikacij na računalniški napravi. Operacijski sistem upravlja strojne vire procesorja, vključno z vhodnimi napravami, kot sta tipkovnica in miška, izhodnimi napravami, kot so zasloni ali tiskalniki, omrežnimi povezavami in napravami za shranjevanje, kot so trdi diski in pomnilnik. OS ponuja tudi storitve za lažje učinkovito izvajanje in upravljanje programskih aplikacij ter dodelitev pomnilnika za njih.
- Firmware - Firmware je vrsta programske opreme, ki je napisana neposredno za kos strojne opreme. Deluje brez uporabe API-jev, operacijskega sistema ali gonilnikov naprav — zagotavlja potrebna navodila in navodila za komunikacijo z drugimi napravami ali izvajanje osnovnih nalog in funkcij, kot je bilo predvideno.
- Vmesna programska oprema - Middleware je programska plast, ki se nahaja med aplikacijami in operacijskimi sistemi. Vmesna programska oprema se pogosto uporablja v distribuiranih sistemih, kjer poenostavi razvoj programske opreme z zagotavljanjem naslednjega:
- Skrivanje zapletenosti porazdeljenih aplikacij
- Prikrivanje heterogenosti strojne opreme, operacijskih sistemov in protokolov
- Zagotavljanje enotnih vmesnikov na visoki ravni, ki se uporabljajo za izdelavo interoperabilnih, večkratnih in prenosnih aplikacij.
- Zagotavljanje skupnih storitev, ki zmanjšujejo podvajanje prizadevanj in krepijo sodelovanje med aplikacijami
- Uporaba — Končni uporabnik razvije končno programsko aplikacijo, ki deluje na operacijskem sistemu, uporablja ali sodeluje z vmesno programsko opremo in vdelano programsko opremo ter je primarni fokus ciljne funkcije vgrajenih sistemov. Vsaka končna aplikacija je edinstvena, medtem ko so operacijski sistemi in vdelana programska oprema lahko enaki od naprave do naprave.
Vgrajena programska oprema vs vgrajeni sistemi
Komponente strojne opreme znotraj naprave z vgrajeno programsko opremo se imenujejo »vgrajeni sistem«. Nekateri primeri komponent strojne opreme, ki se uporabljajo v vgrajenih sistemih, so napajalna vezja, centralne procesorske enote, pomnilniške naprave, časovniki in serijska komunikacijska vrata. V zgodnjih fazah oblikovanja naprave se odloča o strojni opremi, ki bo sestavljala vgrajeni sistem - in njegova konfiguracija znotraj naprave. Nato se vgrajena programska oprema razvije iz nič, ki deluje izključno na tej strojni opremi v tej natančni konfiguraciji. Zaradi tega je oblikovanje vgrajene programske opreme specializirano področje, ki zahteva poglobljeno poznavanje zmogljivosti strojne opreme in računalniškega programiranja.
Primeri vgrajenih funkcij, ki temeljijo na programski opremi
Skoraj vsaka naprava s vezji in računalniškimi čipi ima te komponente, razporejene v vgrajen programski sistem. Posledično so vgrajeni programski sistemi vseprisotni v vsakdanjem življenju in jih najdemo v potrošniški, industrijski, avtomobilski, vesoljski, medicinski, komercialni, telekomunikacijski in vojaški tehnologiji.
Pogosti primeri vgrajenih funkcij, ki temeljijo na programski opremi, vključujejo:
- Sistemi za obdelavo slik, ki jih najdemo v medicinski opremi
- Krmilni sistemi Fly-by-Wire, najdeni v zrakoplovu
- Sistemi za zaznavanje gibanja v varnostnih kamerah
- Sistemi za nadzor prometa, ki jih najdemo v semaforjih
- Časovni in avtomatizacijski sistemi, ki jih najdemo v pametnih hišnih napravah
Katere so različne vrste vgrajenih sistemov?
Na podlagi zmogljivosti in funkcionalnih zahtev obstaja pet glavnih razredov vgrajenih sistemov:
- Vgrajeni sistemi v realnem času naloge opravljajo na determinističen in ponovljiv način, na kar vplivajo osnovna arhitektura in načrtovanje operacijskih sistemov ter delovanje niti, razvejanje in prekinitev zakasnitve. Vgrajeni sistemi za splošne namene ne vsebujejo zahtev v realnem času in lahko upravljajo prekinitve ali razvejanje brez odvisnosti od časa zaključka. Grafični zasloni ter upravljanje tipkovnice in miške so dobri primeri splošnih sistemov.
- Samostojni vgrajeni sistemi lahko opravljajo naloge brez gostiteljskega sistema ali zunanjih virov obdelave. Lahko oddajajo ali sprejemajo podatke iz povezanih naprav, vendar niso odvisni od njih pri dokončanju svoje naloge.
- Samostojni vgrajeni sistemi lahko opravijo svojo nalogo brez gostiteljskega sistema ali zunanjih virov obdelave. Lahko oddajajo ali sprejemajo podatke iz povezanih naprav, vendar niso odvisni od njih pri dokončanju svoje naloge.
- Omrežni vgrajeni sistemi so odvisni od povezanega omrežja za izvajanje dodeljenih nalog.
- Glede na kompleksnost strojne arhitekture sistema obstajajo tri glavne vrste vgrajenih sistemov: Omrežni vgrajeni sistemi so odvisni od povezanega omrežja za izvajanje dodeljenih nalog.
Kako končni trgi vplivajo na vgrajene sisteme
Vgrajene sistemske zahteve in komponente se bodo razlikovale glede na zahteve ciljnega trga. Nekateri primeri vključujejo:
- Potrošnik - V aplikacijah, kot so potrošniško blago, kot so pralne stroje, nosljive naprave in mobilni telefoni, vgrajeni sistemi poudarjajo zmanjšano velikost
- Sistem na čipu, nizka poraba energije ali delovanje baterije in grafični vmesniki. V teh aplikacijah so cenjeni nastavljivi operacijski sistemi in možnost izklopa nedelujočih »domen« zasnove.
- Omrežje — aplikacije, ki omogočajo povezljivost, komunikacijo, delovanje in upravljanje omrežja podjetja. Zagotavlja komunikacijsko pot in storitve med uporabniki, procesi, aplikacijami, storitvami in zunanjimi omrežji/internetom. Vgrajene omrežne aplikacije se osredotočajo na hitrost odziva, obdelavo paketov in poti periferne strojne opreme.
- Industrijski — Pri aplikacijah, kot so upravljanje tovarniških tal, motorji in vetrnice, je poudarek na varni povezljivosti v oblaku in determinističnemu delovanju v realnem času ter se lahko močno osredotoči na vmesno programsko opremo.
- Medicinska, avtomobilska in vesoljska industrija — te industrije potrebujejo sisteme, kritične za mešano varnost, kjer so deli konstrukcije izolirani drug od drugega, da se zagotovi samo potrebni podatki, ki vstopajo ali zapustijo sistem (varnost), hkrati pa ne zagotavljajo škode za končnega uporabnika (varnost). Primeri so sistemi avtonomne vožnje v avtomobilih in medicinskih pripomočkih. Ti vgrajeni sistemi imajo lahko mešanico odprtokodnih (Linux) in determinističnih operacijskih sistemov v realnem času (RTOS) ter močno uporabljajo dokazano vmesno programsko opremo.
Zakaj je avtomobilska vgrajena programska oprema drugačna?
V avtomobilski elektroniki se zapletene interakcije v realnem času pojavljajo v več vgrajenih sistemih, ki jih vsak upravlja, kot so zaviranje, krmiljenje, vzmetenje, pogonski sklop itd. Fizično ohišje, ki vsebuje vsak vgrajeni sistem, se imenuje elektronska krmilna enota (ECU). Vsak ECU in njegova vgrajena programska oprema sta del kompleksne električne arhitekture, znane kot porazdeljeni sistem.
Z medsebojno komunikacijo lahko ECU-ji, ki sestavljajo porazdeljeni sistem vozila, izvajajo različne funkcije, kot so samodejno zaviranje v sili, prilagodljivi tempomat, nadzor stabilnosti, prilagodljivi žarometi in še veliko več. Ena funkcija bo morda potrebovala interakcije v 20 ali več vgrajenih programskih aplikacijah, razporejenih po številnih ECU-jih, povezanih z več omrežnimi protokoli. Kompleksni nadzorni algoritmi, uporabljeni z vgrajeno programsko opremo, zagotavljajo pravilen čas funkcij, potrebne vhode in izhode ter varnost podatkov.
Pogosti primeri funkcij, ki temeljijo na aplikacijah avtomobilske programske opreme, vključujejo:
- Funkcije ADAS (Advanced Driver Assist Systems), kot so prilagodljivi tempomat, samodejno zaviranje v sili, pomoč pri ohranjanju proge, pomoč pri prometu, opozorila o odhodu iz proge
- Upravljanje baterij
- Kompenzacija navora
- Nadzor hitrosti vbrizgavanja goriva
Zbirka programske opreme ECU
Elektronska krmilna enota ali ECU je sestavljena iz glavne računalniške enote s strojno opremo na ravni čipa in kupom vgrajene programske opreme. Vendar pa med proizvajalci avtomobilov narašča trend, da oblikujejo ECU-je s kompleksnimi integriranimi vezji, ki vsebujejo več računalniških jeder na enem čipu - kar imenujemo sistem na čipu (SoC). Ti SoC-ji lahko gostijo množico abstrakcij ECU, da bi utrdili strojno opremo. Zbirka programske opreme za ECU običajno vključuje vrsto rešitev, od strojne programske opreme na nizki ravni do vgrajenih programskih aplikacij na visoki ravni.
ECU sklad | Opis |
Vgrajena programska aplikacija | Nadzorni algoritmi, obdelava, storitve |
Okvir uporabe | Varnostni in varnostni okviri |
Delovno okolje | AUTOSAR classic, AUTOSAR Adaptive, Vhodni/izhodni kanali |
Vgrajene virtualizacije | OS v realnem času, abstrakcije ECU |
Strojna programska oprema | Zagonski nakladalniki, varno shranjevanje, varno navajanje |
Strojna oprema | Naprave na osnovi silicija, mikrokrmilniki, enoslojne ali večplastne plošče |