Mitä on sulautettu ohjelmisto?

”Mitä sulautettu ohjelmisto on?” on usein esitetty kysymys. Maailmaa ja yhteiskuntaa ympärillämme muokkaavat ja ohjaavat mikroprosessoreihin perustuvat järjestelmät – sydämentahdistimet, matkapuhelimet, kodinkoneet, autot, rautateiden ohjausjärjestelmät, satelliitit – luettelo on lähes kirjaimellisesti loputon. Ilman niitä ei olisi energiaa, juoksevaa vettä tai ruokaa. Liiketoiminta tai liikenne olisi mahdotonta. Sairaudet leviäisivät ja yhteiskunta hajoaisi nopeasti.

Näissä järjestelmissä suoritettavia ohjelmistoja kutsutaan sulautetuiksi ohjelmistoiksi. Se on tietokoneohjelmisto, joka on rakennettu laitteistojärjestelmiin, jotka on kirjoitettu ohjaamaan koneita tai laitteita. Sulautetut ohjelmistot on tyypillisesti suunniteltu tiettyä laitteistoa varten, jossa ne toimivat, ja ne suorittavat usein tietyn toiminnon, vaikka yksittäinen laitteisto voi sisältää useita sulautettuja ohjelmistoja.

Mikä tahansa tekniikan osa, jossa on piirilevyjä ja tietokonesiruja, sisältää todennäköisesti sulautettuja ohjelmistoja. Valmistajat sisällyttävät sulautettuja ohjelmistoja elektroniikkaan esimerkiksi autoissa, puhelimissa, modeemeissa, kodinkoneissa, leluissa, turvajärjestelmissä, sydämentahdistimissa, televisioissa ja digisovittimissa sekä digitaalikelloissa.

Sulautetut ohjelmistot mahdollistavat monet nykyaikaisissa laitteissa yleiset kehittyneet toiminnot. Vaikka sulautetut ohjelmistot voivat olla hyvin yksinkertaisia, ne voivat olla myös hyvin kehittyneitä sovelluksissa, kuten prosessinohjausjärjestelmissä, sotilasaseissa ja lentokoneissa.

Sulautettujen ohjelmistojen historia

Suurinta osaa innovatiivisesta teknologiasta rahoitetaan, tutkitaan ja kehitetään usein sotilaallisia sovelluksia varten, ja sulautettuja järjestelmiä käytettiin avaruustutkimuksessa, ohjusten ohjauksessa ja ilmailuelektroniikassa 30-luvun loppupuolelta 60-luvun puoliväliin asti. Vasta 60-luvun lopulla sulautetut ohjelmistot kehittyivät niin pitkälle, että niistä oli hyötyä näiden erikoisalojen ulkopuolella.

1970-luvulla ensimmäiset integroidut mikro-ohjainsirut, kuten Intel 8008, saivat sulautetut ohjelmistot nousuun. Tämä yksittäinen siru toimi kuin pieni tietokone; se pystyi lukemaan reaalimaailman tietoja, käsittelemään niitä ja tuottamaan tuotoksia, joita ohjattiin joustavalla ohjelmisto-ohjelmalla. Näiden sirujen avulla voitiin kirjoittaa yksi ohjelma, ladata se sirulle ja saada siru suorittamaan ohjelmansa aina, kun se sai oikean syötteen. 1980-luvun loppuun mennessä lähes kaikenlainen kulutuselektroniikka sisälsi jonkinlaisen mikrokontrollerisirun.

Seuraavina vuosina integroitujen mikrokontrollerien valmistuskustannukset ovat laskeneet penniäkään. Tämän seurauksena niitä on lähes jokaisessa elektroniikkalaitteessa, ja jokaisessa näistä siruista on yksi tai useampi sulautettu ohjelmisto. Niitä on jopa sellaisissa esineissä, joissa useimmat ihmiset eivät uskoisi olevan tietokoneita, kuten leivänpaahtimissa, sähkötuulettimissa tai lasten leluissa.

Sisäänrakennettujen ohjelmistojen haasteet

Sisäänrakennetut ohjelmistot ovat määritelmällisesti osa suurempaa laitteistojärjestelmää, olipa kyse sitten autosta, sydämentahdistimesta tai teollisuusautomaatiojärjestelmästä. Sen lisäksi, että nämä järjestelmät toimivat reaaliajassa ja niiden on kaikissa olosuhteissa tuotettava suunniteltu toiminto määrätyssä ajassa, niiden on myös toimittava rajoitetuilla resursseilla, kuten pienellä muistitilalla, rajallisilla tietojenkäsittelyominaisuuksilla tai alhaisella virrankulutuksella. Sulautettujen ohjelmistojen on myös sopeuduttava monenlaisiin ympäristönsä muutoksiin. Prosessorit, anturit ja laitteiston osat muuttuvat ajan myötä, kun taas ohjelmisto pysyy lähes samana. Lisäksi ohjelmistoilta vaaditaan siirrettävyyttä, itsenäisyyttä, joustavuutta ja mukautuvuutta.

Luotettavuus on ensiarvoisen tärkeää. Sulautetun järjestelmän odottamaton käyttäytyminen voi vahingoittaa vakavasti sen käyttöympäristöä. Koska loppukäyttäjät vaativat sulautetuilta järjestelmiltä pitkäaikaista käyttäytymistä, sulautettujen ohjelmistojen on toimittava vuosikymmeniä ilman huoltoa.

Koska sulautetut ohjelmistot ovat läheisessä yhteydessä kriittisiin ympäristöihin ja hengenvaarallisiin riskeihin, myös turvallisuus on keskeinen vaatimus. Sulautettujen ohjelmistojen kehittämisen elinkaarta säätelevät standardit, jotka edellyttävät korkeaa laatua sekä vahvoja suunnittelu- ja hallintaprosesseja. Kun tämä yhdistetään uusimman teknologian käyttöön, sulautettujen ohjelmistojen suunnittelijoilta vaaditaan teknistä asiantuntemusta ja ammattitaitoa. Sulautettujen ohjelmistojen koon ja monimutkaisuuden kasvaessa ohjelmistokehitysprosessiin sovellettavia standardeja on jatkuvasti parannettava kovista kustannuspaineista huolimatta.

Turvallisuudesta tulee yhä tärkeämpää, kun ”esineiden internetin” myötä sulautetut järjestelmät yleistyvät ja kytkeytyvät yhä tiiviimmin toisiinsa. Koska jokapäiväisissä laitteissa, kuten pesukoneissa ja jääkaapeissa, liitettävyys on vakio-ominaisuus, esineiden internet on vaarassa paljastaa uusia turvattomuuden tasoja, ja tarvitaan uusia ideoita, joiden avulla voidaan torjua haittaohjelmia ja hakkerointiuhkia.

Johtopäätökset

Sisäänsulautetut ohjelmistot lisäävät jokapäiväisten tuotteiden muunneltavuutta, konfiguroitavuutta, laajennettavuutta ja muunneltavuutta, ja ne myös mahdollistavat monipuolisempia toimintoja. Se on nyt olennainen osa monia asioita, joita pidämme itsestäänselvyyksinä jokapäiväisessä elämässä.

Tulevaisuudessa sulautettuja ohjelmistoja on kaikessa – automatisoidussa kodissasi, älykkäässä autossasi, tietoliikenneinfrastruktuureissa, lääketieteellisissä instrumenteissa ja implanteissa sekä kaikkialla läsnä olevissa ohjausjärjestelmissä. Uudet energiaan liittyvät teknologiat lisäävät sähkövirran siirron tehokkuutta ja tarjoavat välittömiä ja tehokkaita tapoja vastata energia- ja ilmastovaatimuksiin.

Sisäänrakennettuja järjestelmiä ei enää määrittele niiden käyttämä laskentalaitteisto. Pikemminkin ne suunnitellaan suorittamaan mitä tahansa toimintoa moninaisten ja muuttuvien tavoitteiden saavuttamiseksi, olipa kyseessä sitten mikrokontrolleri, mikroprosessori, signaaliprosessori, biologinen kokoonpano tai mikä tahansa muu ohjelmoitava logiikkalaite.

Mitä enemmän elämänlaatua haluamme, mitä korkeamman elintason haluamme vakiinnuttaa eri puolilla planeettaa ja mitä enemmän vaadimme turvallisuutta ja varmuutta, sitä enemmän tarvitsemme sulautettuja ohjelmistoja.