Sulautettu järjestelmä

Sulautettu järjestelmä on tietokone, joka on rakennettu ratkaisemaan vain muutamia hyvin erityisiä ongelmia, eikä sitä ole helppo muuttaa. Sana sulautettu tarkoittaa, että se on sisäänrakennettu järjestelmään. Se on pysyvä osa isompaa järjestelmää. Se ei yleensä näytä tietokoneelta, eikä siinä useinkaan ole näppäimistöä, näyttöä tai hiirtä. Mutta kuten missä tahansa tietokoneessa, siinä on prosessori ja ohjelmisto, tulo ja lähtö.

Esimerkiksi hissiin upotettu ohjain käskee moottoria siirtämään hissin eri kerroksiin painettujen painikkeiden perusteella. Satelliittitelevision digisovittimeen (STB) on upotettu dekooderi, joka lukee lautasantennista tulevan signaalin ja lähettää jotain, mitä televisio ymmärtää. Usein tämäntyyppisen järjestelmän on tehtävä työnsä tietyssä ajassa. Tätä kutsutaan reaaliaikaiseksi tietojenkäsittelyksi. Jos digisovitin keskeytyisi suorittamaan toista tehtävää, televisiossa näkyisi esimerkiksi huono kuva. Yleiskäyttöisessä tietokoneessa on usein lyhyitä taukoja, kun se tekee jotain muuta, se ei ole reaaliaikainen.

Sulautetut järjestelmät ohjaavat monia nykyisin käytössä olevia yleisiä laitteita, kuten hotellin ovien lukkojen kortinlukijoita tai useita autossa olevia laitteita. Niillä voidaan ohjata pieniä asioita, kuten MP3-soitinta tai digitaalikameraa, ja suuria asioita, kuten liikennevalojärjestelmiä, lentokoneita tai tehtaan kokoonpanolinjoja.

Kuva ADSL-modeemin/-reitittimen sisäosista. Nykyaikainen esimerkki sulautetusta järjestelmästä. Merkityt osat ovat mikroprosessori (4), RAM-muisti (6) ja flash-muisti (7).Zoom
Kuva ADSL-modeemin/-reitittimen sisäosista. Nykyaikainen esimerkki sulautetusta järjestelmästä. Merkityt osat ovat mikroprosessori (4), RAM-muisti (6) ja flash-muisti (7).

Esimerkkejä sulautetuista järjestelmistä

Sulautettuja järjestelmiä käytetään monenlaisissa sähkölaitteissa, kuten:

  • Tietoliikennejärjestelmissä niitä käytetään puhelimissa, matkapuhelinverkossa ja wi-fi-reitittimissä.
  • Viihde-elektroniikkaan kuuluvat yleisradiovastaanottimet, MP3-soittimet, matkapuhelimet, videopelikonsolit, digitaalikamerat, DVD-soittimet, GPS-vastaanottimet, kodin turvajärjestelmät ja tulostimet.
  • Kodinkoneissa, kuten mikroaaltouuneissa, pesukoneissa, murtohälytysjärjestelmissä ja astianpesukoneissa on sulautettuja järjestelmiä.
  • Liikenteessä käytetään sulautettuja järjestelmiä kaikkeen junien vetureista lentokoneisiin ja autoihin.
  • Teollisuudessa käytetään sähkömoottoreita, joissa on elektroniset ohjaimet, kortinlukijat ja CNC-koneet, jotka valmistavat automaattisesti metalliosia.
  • Lääkinnälliset laitteet, kuten defibrillaattorit, automaattiset verenpainelukijat ja automaattiset insuliinipumput.
  • Sotilaslaitteet, kuten radiopuhelimet, satelliitit ja ohjusten ohjausjärjestelmät.

Yhteiset ominaisuudet

  • Sulautetut järjestelmät on suunniteltu suorittamaan tiettyä tehtävää, toisin kuin yleiskäyttöiset tietokoneet.
  • Se ei näytä tietokoneelta - siinä ei ehkä ole täyttä näyttöä tai näppäimistöä.
  • Monien sulautettujen järjestelmien on pystyttävä tekemään asioita reaaliajassa - lyhyessä ajassa (ihmisen näkökulmasta lähes välittömästi).
  • Monien sulautettujen järjestelmien on oltava erittäin turvallisia ja luotettavia, erityisesti lääkinnällisten laitteiden tai lentokoneita ohjaavan ilmailutekniikan osalta.
  • Käynnistyy hyvin nopeasti. Ihmiset eivät halua odottaa minuuttia tai kahta autonsa käynnistymistä tai hätävarusteiden käynnistymistä.
  • Se voi käyttää erityistä käyttöjärjestelmää (tai joskus hyvin pientä kotitekoista käyttöjärjestelmää), joka auttaa täyttämään nämä vaatimukset ja jota kutsutaan reaaliaikaiseksi käyttöjärjestelmäksi (RTOS).
  • Sulautettuja järjestelmiä varten kirjoitettuja ohjelmaohjeita kutsutaan laiteohjelmiksi, ja ne tallennetaan lukumuistiin tai flash-muistisiruille. Ne toimivat rajoitetuilla tietokonelaitteistoresursseilla: vähän muistia, pieni tai olematon näppäimistö ja/tai näyttö.

Sulautetut järjestelmät eivät aina ole itsenäisiä laitteita. Joskus ne on rakennettu kokonaisuuksiksi, kuten auton eri osat - radio, kaasunohjain, saastevalvonta jne. Joskus ne voivat olla yhteydessä internetiin tai matkapuhelinverkkoon, ja niissä voi olla USB-lukija tai muita liitäntöjä.

Käyttöliittymät

Sulautetut järjestelmät vaihtelevat käyttöliittymättömistä järjestelmistä, joissa ei ole lainkaan käyttöliittymää - ainoastaan sähköisten signaalien lähettäminen ja vastaanottaminen - aina nykyaikaisen tietokoneen kaltaiseen graafiseen käyttöliittymään. Usein niissä on muutama painike, pieni näyttö ja joitakin LED-valoja. Monimutkaisemmissa järjestelmissä voi olla kosketusnäyttö, jolloin painikkeiden merkitys voi muuttua jokaisen näytön yhteydessä, kuten älypuhelimissa.

Esimerkki käyttöliittymästä, jossa on painikkeita ja yksinkertainen LCD-näyttö.Zoom
Esimerkki käyttöliittymästä, jossa on painikkeita ja yksinkertainen LCD-näyttö.

Laitteisto

Laitteisto sisältää sirut, johdot, piirilevyt, painikkeet ja näytöt.

Suoritinyksiköt

Tärkein siru on keskusyksikkö eli CPU. Se suorittaa ohjelmiston ohjeet. Se voi olla tavallinen mikroprosessori tai mikrokontrolleri. Mikrokontrollerit sisältävät mikroprosessorin sekä yksinkertaisia oheislaitteita, joten järjestelmä voi olla pienempi ja halvempi. Niiden joustavuus on vähäisempää, koska näitä osia ei voi muuttaa. Yleensä näihin osiin kuuluvat Flash-muisti ja tuki sarjaporteille, USB:lle jne.

Toisin kuin yleistietokoneen mikroprosessorissa, suurempi ja nopeampi ei ole aina parempi. Monet sulautetut prosessorit ovat hyvin pieniä. Joskus syynä on pienempi tilankäyttö tai pienempi virrankulutus, joskus taas halvempi hinta. Yleiskäyttöisissä tietokoneissa käytetään mikroprosessoreita, jotka lukevat 32- tai 64-bittisiä sanoja ja toimivat GHz:n nopeudella, mutta sulautetut prosessorit ovat yleensä 4-32-bittisiä ja toimivat yleensä kymmenien MHz:n nopeudella (sata kertaa hitaammin). (Mutta ohjelmat ovat myös pienempiä eivätkä ne tarkista asioita, joita ei käytetä).

Valmiit tietokonelevyt

Joissakin sulautetuissa järjestelmissä voidaan käyttää "valmiita" tietokonelevyjä. Näissä käytetään usein Windows CE:tä, Linuxia, NetBSD:tä tai sulautettua reaaliaikaista käyttöjärjestelmää.

Joskus voi olla helpompaa käyttää valmiiksi tehtyä piirilevyä. Näillä on yleensä monia yhteisiä komponentteja yleiskäyttöisten tietokoneiden kanssa, mutta ne ovat pienempiä kuin yleiskäyttöisen tietokoneen piirilevy. VIA EPIAn kaltaisilla piirilevyillä voidaan käyttää Microsoft Windowsia. Etuna on, että sähkötekniikan suunnitteluun kuluva aika säästyy ja että voidaan käyttää samoja ohjelmistokehitystyökaluja, joita käytetään PC-tyyppisten ohjelmistojen kehittämisessä. Esimerkkejä tällaisista sulautetuista laitteista ovat pankkiautomaatit tai kasinoiden näytöt. Tämä toimii hyvin, jos reaaliaikavaatimukset eivät ole kovin tiukat (ei ole paljon väliä sillä, kestääkö työ esimerkiksi kahdeksan sekuntia viiden sijasta).

ASIC- ja FPGA-ratkaisut

Jos laitteen on oltava hyvin pieni tai sitä myydään hyvin suuria määriä ("high volume"), on järkevää valmistaa räätälöity tai erikoistunut siru, joka tekee juuri sen, mitä tarvitaan. Kyseessä on "system on a chip" (SoC), joka sisältää koko järjestelmän - prosessorin, liukulukuyksikön, muistin välimuistin ja liitännät - yhdellä integroidulla piirillä. SoC-piirit voidaan valmistaa sovelluskohtaisena integroituna piirinä (ASIC, Application Specific Integrated Circuit) tai käyttämällä FPGA:ta (FPGA, Field-programmable Gate Array), jonka sulautetun järjestelmän rakentajat ohjelmoivat.

Oheislaitteet

Sulautetut järjestelmät keskustelevat ulkomaailman tai muiden komponenttien kanssa käyttämällä oheislaitteita, kuten:

  • Sarjaportit: RS-232, RS-422, RS-485. Tämä oli ennen melko yleistä, 9-nastaisilla (tai suuremmilla) liittimillä.
  • Synkroninen sarjaliikenneliitäntä: I²C Inter-Integrated Circuit, I²S Inter-Integrated Sound, SPI, MIcrowire, ...
  • Universal Serial Bus (USB).
  • Verkostot: Ethernet, ohjainverkko, LonWorks, ...
  • Diskreetti tulo/lähtö: Yleiskäyttöinen tulo/lähtö (GPIO). Tämä voi olla yksi johdin, jossa on/off-signaali. Sitä voidaan käyttää pieneen näppäimistöön tai LEDin sytyttämiseen.
  • Analogi-digitaali/digitaali-analogiamuuntimet (ADC/DAC). Tämä mittaa jotakin, jonka voimakkuus muuttuu, kuten valoanturi tai moottorinohjaus.
  • Virheenkorjaus: JTAG, ICSP-portti, ohjelmistoinsinööreille.
Soekris net4801, verkkosovelluksiin tarkoitettu sulautettu järjestelmä.Zoom
Soekris net4801, verkkosovelluksiin tarkoitettu sulautettu järjestelmä.

Ohjelmisto

Käyttöjärjestelmät

Sulautetut järjestelmät eivät useinkaan tarvitse täyttä käyttöjärjestelmää. Joissakin käytetään erikoisvalmisteisia pieniä ja yksinkertaisia käyttöjärjestelmiä, jotka käynnistyvät hyvin nopeasti, ja toisissa ei tarvita käyttöjärjestelmää lainkaan. Sulautettuja järjestelmiä ei mukauteta yhtä helposti, mutta ne on rakennettu suorittamaan tehtävänsä paljon luotettavammin. Koska laitteisto on yksinkertaisempi, se on usein myös halvempi rakentaa ja toimii nopeammin.

Sen sijaan yleiskäyttöisen tietokoneen on oltava valmis uusiin laiteajureihin ja ohjelmistoihin, jotta se voi käyttää laitteistoja, joista se ei vielä tiedä, kuten uusia tulostimia tai kiintolevyjä. Sen on ajettava erilaisia sovellusohjelmia.

Kun sulautetut järjestelmät kasvavat, sulautetuissa järjestelmissä yleistyvät asiat, joita aiemmin oli vain yleiskäyttöisissä tietokoneissa tai jopa suurkoneissa. Tällaisia ovat esimerkiksi suojattu muistitila ja avoin ohjelmointiympäristö, kuten Linux, NetBSD jne.

Esimerkkejä käyttöjärjestelmistä, yksinkertaisista monimutkaisiin:

  • Yksinkertainen ohjaussilmukka - Ajastinta ja silmukkaa käytetään eri aliohjelmien toistuvaan kutsumiseen. Tämän tekee usein yksi henkilö pienempiä järjestelmiä varten.
  • keskeytysohjattu - Tehtävät käynnistetään erilaisilla tapahtumilla. Tapahtuma voi olla jokin ajastettu (esimerkiksi kymmenen sekunnin välein) tai painikkeen painallus tai vastaanotettu tieto.
  • nonpreemptive multitasking - Jokainen tehtävä saa vuoronsa suorittaa, ja kun se on valmis, se kutsuu käyttöjärjestelmän ajastinta suorittamaan seuraavan tehtävän.
  • preemptive multitasking tai monisäikeistäminen - Tehtävä voidaan pysäyttää tietyn ajan kuluttua, jotta toinen tehtävä voi suorittaa jonkin aikaa. Mikään tehtävä ei voi käyttää järjestelmää. Tällä tasolla järjestelmällä katsotaan olevan "käyttöjärjestelmän" ydin ja se voi suorittaa tehtäviä rinnakkain. Tämäntyyppinen käyttöjärjestelmä ostetaan yleensä yritykseltä, joka työskentelee vain sulautettujen käyttöjärjestelmien parissa.

Reaaliaikaisia käyttöjärjestelmiä ovat esimerkiksi MicroC/OS-II, Green Hills INTEGRITY, QNX tai VxWorks. Toisin kuin MacOS tai Windows 7, näitä käyttöjärjestelmiä ei tunneta kovin hyvin. Niitä käytetään kuitenkin monissa paikoissa, joissa aika ja turvallisuus ovat erittäin tärkeitä. Ihmiset käyttävät niitä päivittäin eivätkä tajua sitä.

Yleisiä esimerkkejä suuremmista ytimistä ovat sulautettu Linux ja Windows CE. Vaikka näissä ei ole tiukkoja aikarajoja, joita tarvitaan tiukassa reaaliaikajärjestelmässä, ne ovat yleistymässä erityisesti tehokkaammissa laitteissa, kuten langattomissa reitittimissä ja GPS-laitteissa. Ne mahdollistavat julkisesti saatavilla olevan koodin uudelleenkäytön laiteajureita, verkkopalvelimia, palomuureja ja muuta koodia varten. Ohjelmistokehittäjät, jotka ovat tottuneet kirjoittamaan sovelluksia PC:lle, kokevat tämän myös tutummaksi. Tarvittaessa FPGA:ta tai muuta erikoislaitteistoa voidaan käyttää asioihin, joissa tarvitaan tiukkoja aikarajoja.

Työkalut

Muiden ohjelmistojen tavoin sulautettujen järjestelmien suunnittelijat käyttävät kääntäjiä, assemblereita ja debuggereita sulautettujen järjestelmien ohjelmistojen kehittämiseen. He voivat kuitenkin käyttää myös joitakin erityisempiä työkaluja:

  • Digitaalista signaalinkäsittelyä käyttävissä järjestelmissä kehittäjät voivat käyttää matemaattisia työkaluja, kuten MATLABia, MathCadia tai Mathematicaa.
  • Mukautettuja kääntäjiä ja linkittäjiä voidaan käyttää optimoinnin parantamiseksi kyseistä laitteistoa varten.
  • Sulautetussa järjestelmässä voi olla oma erityinen kieli tai suunnittelutyökalu, tai se voi lisätä parannuksia olemassa olevaan kieleen, kuten Basic Stampin käyttämään kieleen.

Vianmääritystyökalut:

  • Piirin sisäinen virheenkorjauslaite (ICD), laitteistolaite, joka liitetään mikroprosessoriin JTAG-liitännän kautta. Se käynnistää ja pysäyttää mikroprosessorin ulkopuolelta, kun se suorittaa ohjelmistoa. Sen avulla voidaan myös lukea muistia ja rekistereitä sekä tallentaa ohjelmisto-ohjelma muistiin.
  • Ulkoinen virheenkorjaus käyttämällä kirjausta tai sarjaportin ulostuloa toiminnan jäljittämiseksi joko vilkkuvan monitorin (printfs) avulla.
  • Vuorovaikutteinen asukasvirheenkorjaus - jos käyttöjärjestelmä tukee sitä, sulautetussa prosessorissa on komentotulkki, joka suorittaa kehittäjän kirjoittamia komentoja (esimerkiksi Linux).
  • Piirin sisäinen emulaattori korvaa piirilevyn mikroprosessorin, ja se tarjoaa täyden hallinnan kaikesta, mitä mikroprosessori voisi tehdä.
  • Täydellinen emulaattori simuloi kaikki laitteiston ominaisuudet, jolloin sitä voidaan hallita ja muokata. Laitteistoa ei ole oikeasti olemassa, mutta sen teeskennelty versio (virtuaalikone) on tavallisessa tietokoneessa.
  • Ulkoisten linjojen tarkistaminen logiikka-analysaattorilla tai yleismittarilla.

Ohjelmoija voi tavallisesti ladata ja ajaa ohjelmistoja työkalujen avulla, tarkastella prosessorissa suoritettavaa koodia ja käynnistää tai pysäyttää sen toiminnan, ellei sitä ole rajoitettu ulkoiseen virheenkorjaukseen. Koodin näkymä voi olla assembly-koodi tai lähdekoodi. Joissakin integroiduissa järjestelmissä (kuten VxWorks tai Green Hills) on erityisominaisuuksia, kuten se, että ne seuraavat, kuinka paljon tilaa ohjelmisto vie suorituksen aikana, mitä tehtäviä suoritetaan ja milloin asioita tapahtuu.

Riippuen siitä, millainen sulautettu järjestelmä on kyseessä, se vaikuttaa siihen, miten sitä voidaan vianmäärityksessä käyttää. Esimerkiksi yhden mikroprosessorin järjestelmän virheenkorjaus eroaa sellaisen järjestelmän virheenkorjauksesta, jossa käsittely tapahtuu myös oheislaitteissa (DSP, FPGA, rinnakkaisprosessori).

Turvallisuus ja luotettavuus

Sulautetut järjestelmät ovat usein koneissa, joiden odotetaan toimivan vuosia ilman virheitä ja joissain tapauksissa toipuvan itsestään, jos virhe ilmenee. Tämä tarkoittaa, että ohjelmistot kehitetään ja testataan yleensä huolellisemmin kuin henkilökohtaisten tietokoneiden ohjelmistot, ja epäluotettavia mekaanisia liikkuvia osia, kuten levyasemia ja tuulettimia, vältetään.

Paikat, joissa turvallisuus ja luotettavuus ovat tärkeitä:

  • Joitakin järjestelmiä ei voida turvallisesti sammuttaa korjausta varten tai korjaaminen on liian vaikeaa. Esimerkkeinä voidaan mainita avaruusjärjestelmät (satelliitit, mönkijät), merenalaiset kaapelit ja ydinvoimaloiden ohjausjärjestelmät.
  • Järjestelmä voi tappaa ihmisiä, jos se pettää, kuten lentokoneiden ohjaimet, kemiantehtaiden ohjaimet, junan signaalit ja sydämen defibrillaattorit.
  • Järjestelmä menettää suuria summia rahaa, jos se suljetaan tai jos tehdään virhe: Puhelinkytkimet, tehtaan ohjauslaitteet, kassakoneet, pankkiautomaatit.

Tapoja toipua virheistä - sekä ohjelmistovirheistä, kuten muistivuodoista, että laitteiston pehmeistä virheistä:

  • Watchdog-ajastin, joka käynnistää sulautetun järjestelmän uudelleen, jos jokin lakkaa toimimasta.
  • Kaksinkertaiset osat, joissa yksi järjestelmä voi ottaa ohjat käsiinsä, jos toinen lakkaa toimimasta.
  • Ohjelmiston "hitaat tilat", jotka mahdollistavat osittaisen toiminnan.
  • Ohjelmointi, jossa otetaan huomioon häiriönsietokyky

Aiheeseen liittyvät sivut

Kysymyksiä ja vastauksia

K: Mikä on sulautettu järjestelmä?


V: Sulautettu järjestelmä on tietokone, joka on rakennettu ratkaisemaan tiettyjä ongelmia, eikä sitä ole helppo muuttaa.

K: Miten sulautettu järjestelmä eroaa yleiskäyttöisestä tietokoneesta?


V: Sulautetussa järjestelmässä ei yleensä ole näppäimistöä, näyttöä tai hiirtä, ja siinä on erikoistoimintoja. Yleiskäyttöinen tietokone voi suorittaa monenlaisia tehtäviä.

K: Mitkä ovat esimerkkejä sulautetuista järjestelmistä?


V: Esimerkkejä sulautetuista järjestelmistä ovat hissinohjaimet, digisovittimet, hotellien ovilukkojen kortinlukijat, liikennevalojärjestelmät, lentokoneet ja tehtaiden kokoonpanolinjat.

K: Mitä on reaaliaikainen tietojenkäsittely?


V: Reaaliaikaisesta tietojenkäsittelystä on kyse silloin, kun sulautetun järjestelmän on saatava työnsä valmiiksi tietyssä ajassa. Jos se keskeytyy, se voi aiheuttaa ongelmia, kuten huonon kuvanlaadun televisiossa.

K: Mitkä ovat sulautetun järjestelmän komponentit?


V: Kuten missä tahansa tietokoneessa, sulautetussa järjestelmässä on prosessori, ohjelmisto, tulo ja lähtö.

K: Mitä tehtäviä sulautettu järjestelmä voi hallita?


V: Sulautettu järjestelmä voi ohjata pieniä laitteita, kuten MP3-soittimia tai digitaalikameroita, tai suurempia järjestelmiä, kuten liikennevaloja tai lentokoneita.

K: Mitä termi "sulautettu" tarkoittaa sulautettujen järjestelmien yhteydessä?


V: Termi "sulautettu" tarkoittaa, että tietokone on rakennettu osaksi suurempaa järjestelmää eikä sitä ole helppo muuttaa.

AlegsaOnline.com - 2020 / 2023 - License CC3