Vad är inbyggd programvara?

”Vad är inbyggd programvara?” är en vanlig fråga. Världen och samhället omkring oss formas och styrs av system som bygger på mikroprocessorer – pacemakers, mobiltelefoner, hushållsapparater, bilar, järnvägskontrollsystem, satelliter – listan är nästan bokstavligen oändlig. Utan dem skulle det inte finnas någon energi, rinnande vatten eller livsmedelsförsörjning. Affärer eller transporter skulle vara omöjliga. Sjukdomar skulle spridas och samhället skulle snabbt sönderfalla.

Den programvara som körs i dessa system kallas inbyggd programvara. Detta är datormjukvara som är inbyggd i hårdvarusystem som är skrivna för att styra maskiner eller apparater. Inbäddad programvara är vanligtvis utformad för den särskilda maskinvara som den körs på och utför ofta en specifik funktion, även om en enda maskinvara kan innehålla flera inbäddade programvaruprogram.

Alla delar av tekniken som har kretskort och datachips kommer sannolikt att ha inbäddad programvara i den. Tillverkare införlivar inbyggd programvara i elektroniken i t.ex. bilar, telefoner, modem, apparater, leksaker, säkerhetssystem, pacemakers, TV-apparater och set-top-boxar samt digitalklockor.

Inbäddad programvara möjliggör många av de avancerade funktioner som är vanliga i moderna apparater. Inbäddad programvara kan vara mycket enkel, men den kan också vara mycket sofistikerad i tillämpningar som processkontrollsystem, militära vapen och flygplan.

Historia om inbäddad programvara

Den mest innovativa tekniken finansieras, forskas och utvecklas ofta för militära tillämpningar, och inbäddade system användes inom rymdforskning, missilstyrning och flygelektronik från slutet av 30-talet till mitten av 60-talet. Det var inte förrän i slutet av 60-talet som inbyggd programvara utvecklades till den punkt där den var användbar för människor utanför dessa specialområden.

Under 1970-talet fick de första integrerade mikrokontrollerchipen, såsom Intel 8008, inbyggd programvara att ta fart. Detta enda chip fungerade som en liten dator; det kunde läsa data från den verkliga världen, bearbeta dem och generera utdata, som styrdes av ett flexibelt programvaruprogram. Med dessa chip blev det möjligt att skriva ett enda program, ladda in det i chipet och sedan låta chipet utföra programmet när det fick rätt inmatning. I slutet av 1980-talet hade nästan alla former av konsumentelektronik någon form av mikrokontrollerchip inbäddat i sig.

Under de följande åren har kostnaden för att tillverka integrerade mikrokontroller sjunkit till småpengar. Som ett resultat av detta finns de i nästan alla elektroniska apparater, och vart och ett av dessa chip har en eller flera delar av inbyggd programvara. De finns till och med i föremål som de flesta människor inte skulle tro hade datorer, t.ex. brödrostar, elektriska fläktar eller barnleksaker.

Utmaningarna med inbäddad programvara

Inbäddad programvara är per definition en del av ett större hårdvarusystem, oavsett om det är en bil, en pacemaker eller ett industriellt automationssystem. Dessa system fungerar inte bara i realtid och måste under alla omständigheter åstadkomma den avsedda åtgärden inom en viss tid, utan de måste också fungera med begränsade resurser, t.ex. litet minnesutrymme, begränsad databehandlingskapacitet eller låg energiförbrukning. Inbyggd programvara måste också anpassa sig till ett stort antal förändringar i sin omgivning. Processorer, sensorer och hårdvarudelar förändras med tiden, medan programvaran förblir nästan densamma. Dessutom kräver programvaran portabilitet, autonomi, flexibilitet och anpassningsförmåga.

Pålitlighet är av största vikt. Ett oväntat beteende från ett inbäddat system kan allvarligt skada dess driftsmiljö. Eftersom slutanvändarna kräver långvariga beteenden från inbyggda system måste inbyggd programvara fungera i årtionden utan service.

Efter inbyggd programvaras nära koppling till kritiska miljöer och livshotande risker är säkerheten också ett nyckelkrav. Livscykeln för utveckling av inbyggd programvara styrs av standarder som kräver hög kvalitet och starka konstruktions- och förvaltningsprocesser. Kombinationen av detta med användningen av toppmodern teknik ställer höga krav på den tekniska expertis och professionalism som krävs av ingenjörer inom inbyggd programvara. I takt med att den inbyggda programvarans storlek och komplexitet ökar måste de standarder som tillämpas på programvaruutvecklingsprocessen ständigt förbättras trots ett hårt kostnadstryck.

Säkerheten blir allt viktigare i takt med att ”sakernas internet” innebär att inbyggda system används i allt större utsträckning och i högre grad är sammankopplade med varandra. I takt med att vardagliga apparater som tvättmaskiner och kylskåp inkluderar uppkoppling som en standardfunktion riskerar sakernas internet att exponera nya nivåer av osäkerhet och nya idéer behövs för att hjälpa till att avvärja hot om skadlig kod och hackning.

Slutsats

Inbäddad mjukvara ökar variabiliteten, konfigurerbarheten, utbyggbarheten och förändringsbarheten hos vardagliga produkter och ger också möjlighet till en större variation av funktionalitet. Den är nu en grundläggande del av många saker som vi tar för givna i det dagliga livet.

I framtiden kommer inbyggd programvara att finnas i allt – ditt automatiserade hem, din intelligenta bil, kommunikationsinfrastrukturer, medicinska instrument och implantat samt allestädes närvarande kontrollsystem. Ny energirelaterad teknik kommer att öka effektiviteten i överföringen av elektrisk ström och ge omedelbara, effektiva sätt att hantera energi- och klimatkrav.

Inbäddade system kommer inte längre att definieras av den datorhårdvara de använder. De kommer snarare att utformas för att utföra vilken funktion som helst för att uppnå flera och föränderliga mål, oavsett om det är på en mikrokontroller, en mikroprocessor, en signalprocessor, en biologisk sammansättning eller någon annan programmerbar logisk anordning.

Desto mer livskvalitet vi önskar, ju högre levnadsstandard vi vill etablera över hela planeten, och ju mer vi kräver säkerhet och trygghet, desto mer behöver vi inbyggd programvara.