Johdanto
Sulautettujen järjestelmien määritelmä, historia ja kehitysmenetelmät
“Sulautettu järjestelmä: Laite, joka sisältää elektroniikkaa, mekaniikkaa sekä laitteelle erityisesti suunniteltua ohjelmistoa.”
Määritelmä
Sulautettu järjestelmä on jonkin tehtävän suorittamiseen suunniteltu laite, joka sisältää elektroniikkaa, mahdollisesti mekaniikkaa sekä laitteelle erityisesti suunniteltua ohjelmistoa. Sulautetun järjestelmän suunnittelu edellyttää eri alojen kehittäjien tiivistä yhteistyötä.
Sulautetussa järjestelmässä ohjelmallisen osuuden on tarkoitus olla sulautuneena laitteen toimintaan siten, ettei laitteen käyttäjän tarvitse välttämättä tiedostaa sen luonnetta ja olemassaoloa. Sulautetuille ohjelmistoille on usein ominaista reaaliaikainen toiminta. Käyttöliittymän tulee reagoida lähes välittömästi ja useat laitteiden toiminnot edellyttävät ennustettavaa, reaaliaikaista toimintaa. Monelle sulautetulle järjestelmälle on myös ominaista käytettävissä olevan energian rajallisuus johtuen muun muassa virtalähteenä käytettävistä akuista. Nämä piirteet aiheuttavat omat haasteensa laitteiden suunnitteluprosessille.
Sulautetun järjestelmän koko voi vaihdella hyvin pienestä ja yksinkertaisesta laitteesta, kuten sähköhammasharjasta, suuriin teollisuusrobotteihin ja vaikka lentokoneisiin. Sulautetut järjestelmät muodostavat keskeisen osan monen arkipäiväisen laitteen näkyvästä kehityksestä. Esimerkiksi suuri osa autoteollisuudessa viime vuosina esitellyistä ominaisuuksista, kuten ajonvakautusjärjestelmistä, perustuu sulautettuihin järjestelmiin.
Historia
Monet sulautetut järjestelmät ovat laitteita, joiden toteuttaminen sellaisenaan on tullut mahdolliseksi vasta tekniikan kehittymisen ja sulautetun järjestelmän käsitteen myötä. Sulautettujen järjestelmien historian alkuhetkeä on täten vaikea määritellä. Laitteet, jotka sisältävät mikrokontrollereja ja niiden avulla ohjelmoimalla toteutettuja toimintoja, voidaan nähdä sulautettujen järjestelmien varhaisina edustaijina.
Tekniikan ja sen mukana sulautettujen järjestelmien kehittymisen myötä sulautetut järjestelmät lähestyvät ominaisuuksiltaan yleiskäyttöisiä tietokonejärjestelmiä. Monet laitteet ovat uudelleen ohjelmoitavissa ja niihin voidaan jälkikäteen helposti lisätä uusia ohjelmallisia ominaisuuksia.
Kehitysmenetelmät
Sulautettujen järjestelmien kehityksessä perinteinen lähestymistapa on niin sanottu vesiputousmalli . Tyypillinen sulautetun järjestelmän kehitysprojekti alkaa järjestelmän määrittelyllä ja suunnittelulla. Järjestelmäsuunnittelussa määritellään järjestelmän laitteisto- ja ohjelmisto-osat, joita aletaan suunnitella rinnakkaisissa, toisistaan pääosin erillisissä prosesseissa. Osien valmistuttua ne integroidaan yhteen ja järjestelmä testataan kokonaisuutena.
Sulautettujen järjestelmien suunnittelussa voidaan noudattaa myös niin sanottua yhteissuunnittelua, jossa laitteistoa ja ohjelmistoa kehitetään yhdessä ja yhtä aikaa. Useissa tapauksissa osa-alueet kuitenkin muodostavat omat niin monimutkaiset ja laajat kokonaisuutensa, ettei täydellinen yhteissuunnittelu ole mahdollista.
Sulautettujen järjestelmien osa-alueiden – ohjelmisto, elektroniikka ja mekaniikka – väliset riippuvuussuhteet asettavat vaatimuksia ja rajoituksia, jotka on otettava tarkasti huomioon. Sulautettujen järjestelmien suunnittelulle tyypillistä on tilanne, jossa elektroniikka tarvitsisi ohjelmistoa ja ohjelmisto elektroniikkaa, jotta kumpaakin osa-aluetta saataisiin edistettyä ja testattua. Tästä syystä ohjelmisto- ja laitteistokehitys tekevät yleensä yhteistyötä myös erillisten kehitysprosessiensa aikana.
Lisää aiheesta
Catsoulis J.: Designing Embedded Hardware.
White E.: Making Embedded Systems: Design Patterns for Great Software.