Manussüsteem

Manussüsteem ehk sardsüsteem (ka liitsüsteem) on juhtfunktsioonidega arvuti suurema süsteemi osana. Manussüsteemidel on tihti reaalajalised nõuded. Manussüsteemid erinevad üldkasutuses olevatest arvutitest, näiteks personaalarvutist selle poolest, et on ette nähtud täitma ühte kindlat eesmärki, mitte paljusid kasutaja nõudmisi. Manussüsteeme kasutatakse paljudes tänapäevastes seadmetes, näiteks auto elektrisüsteemis, fotoaparaatides ja robotites.
Manussüsteemid sisaldavad arvutustuumasid; nendeks võivad olla mikrokontrollerid, signaaliprotsessorid või väravamassiivid. Paljudes manussüsteemides kasutatakse ka reaalaja operatsioonisüsteeme.
Manussüsteemi peamine eripära on keskendumine kindlale ülesandele, mistõttu saavad insenerid seda optimeerida. Võimalik on saavutada väiksemat suurust ja hinda ning parandada töökindlust ja jõudlust. Mõned manussüsteemid on masstootmises, lõigates kasu mastaabisäästust.
Füüsiliselt ulatuvad manussüsteemid kaasaskantavatest seadmetest nagu käekellad ja MP3-mängijad kuni hiiglaslike statsionaarsete seadmeteni, näiteks foorid ja tööstuskontrollerid. Keerukus varieerub madalast ühe mikrokontrolleriga disainist kuni ülikeerukate, võrgu kaudu suhtlevate struktuurideni.
Ajalugu.
Üks esimesi äratuntavalt kaasaegseid manussüsteeme oli Apollo navigatsiooniarvuti. Projekti alguses peeti Apollo juhtimise arvutit kõige riskantsemaks elemendiks Apollo projekti, sest see kasutas tollal äsja väljatöötatud monoliitseid integraallülitusi, et vähendada suurust ja kaalu. Varajase masstoodanguna manussüsteemi oli Autonetics D-17 juhiarvuti Minuteman raketi jaoks, mis ilmus 1961. aastal. Kui Minuteman II hakati tootma 1966. aastal, siis D-17 asendati uue arvutiga, mis oli esimene suuremahuline integreerituid skeemide kasutus.
Alates nendest varajastest rakendustest 1960. aastatel, on manussüsteemide hinnad langenud ning järsult suurenenud töötlemise võimsus ja funktsionaalsus. Varajane mikroprotsessor, näiteks Intel 4004, oli mõeldud kalkulaatorite ja muude väikeste süsteemide jaoks, kuid vajas siiski välist mälu ja toetavaid kiipe. National Engineering Manufacturers Association avaldas aastal 1978 standardi programmeeritavate mikrokontrollerite jaoks, sealhulgas peaaegu iga arvutipõhise kontrolleri, nagu numbrilised ja sündmuse baasil töötavad kontrollerid.
Mikroprotsessorite ja mikrokontrollerite hinna langemise tõttu muutus võimalikuks asendada kallid nuppudel põhinevad analoogkomponendid nagu potentsiomeetrid ja muutkondensaatorid üles/alla lülititega ja nuppudega, mida loeb mikroprotsessor isegi tarbekaupades. 1980. aastate algul olid mälu, sisend- ja väljundsüsteemi komponendid integreeritud protsessoriga samasse kiipi, moodustades mikrokontrolleri. Mikrokontrollerid leiavad rakendust kohtades, kus üldotstarbeline arvuti oleks liiga kulukas või liiga suur.
Suhteliselt madalahinnalise mikrokontrolleri võib programmeerida sama ülesannet täitma nagu suur hulk eraldi komponente. Kuigi selles kontekstis manussüsteem on tavaliselt keerulisem kui tavapärane lahendus, enamik keerukust sisaldub mikrokontrolleris endas. Väga väheseid lisakomponente võib vaja minna ja enamik disaini raskusest peitub tarkvaras. Tarkvara prototüüpimine ja testimine võib osutuda kiiremaks võrreldes uue skeemi projekteerimise ja ehitamisega, mis ei kasuta sees olevat protsessorit.
Mitmekesisus.
Manussüsteeme kasutatakse näiteks kodu- ja köögitehnikas, autotööstuses, tarbeelektroonikas, tööstuslikes ja meditsiinilistes seadmetes, ärimajanduslikes ja sõjaväelistes lahenduses.
Telekommunikatsioonisüsteemides kasutatakse rohkesti manussüsteeme, alates telefonikeskustest ja lõpetades mobiiltelefonidega. Arvutite sidesüsteemides on kasutusel alalised ruuterid ja võrgusillad.
Tarbeelektroonikast kuuluvad siia näiteks pihuarvutid, MP3-mängijad, mobiiltelefonid, videomängukonsoolid, digitaalsed kaamerad ja fotoaparaadid, DVD-mängijad, GPS-vastuvõtjad ja printerid. Ka kodutehnika, näiteks pesumasinad, mikrolaineahjud ja nõudepesumasinad kasutavad manussüsteeme, selleks, et suurendada süsteemide paindlikkust ja efektiivsust ning selleks, et anda seadmetele lisafunktsioone. Keerulisemad kliimaseadmed kasutavad võrgupõhiseid termostaate selleks, et tagada pidevalt muutuvates temperatuuri ja niiskuse oludes parim võimalik efektiivsus ja täpsus. Koduautomaatikasüsteemidest võime leida juhtmega ja juhtmevabu sidesüsteeme tulede lülituseks, audiovisuaal-, kliima-, turva- ja seireseadmetes. Nende seadmete töös tagavad manussüsteemid sensorliku ja seadmete kontrollitavuse funktsionaalsuse.
Autotööstus ja lennundus kasutavad manussüsteeme järjest enam. Uutes lennukites kasutatakse keerulisi avioonikasüsteeme, näiteks inertsnavigatsioonisüsteemid ja GPS-vastuvõtjad. Kõrgete ohutusnõuete tõttu on need süsteemid lennukites eriti keerukad ja alasektsioonidena eraldatud. Erinevates alalisvoolu-elektrimootorites kasutatakse elektriajameid. Nii autodes, elektri- kui ka hübriidsõidukites kasutatakse manussüsteeme järjest enam, tagades maksimaalse efektiivsuse ja vähendades keskkonna saastamist. Teised autodes leiduvad manussüsteeme kasutavad seadmed on näiteks ABS-pidurisüsteemid, elektrooniline stabiilsuskontroll, veojõukontroll ja automaatne nelikveosüsteem.
Meditsiinilistes seadmetes kasutatakse manussüsteeme eluliste näitajate jälgimiseks, heli võimenduseks elektroonilistes stetoskoopides ja mitteinvasiivsetes piltdiagnostikaseadmetes, sealhulgas kompuutertomotograafis ja magnetresonantstomograafis.
Manussüsteeme kasutatakse tihti transpordis, tuleohutuses, ohutusseadmetes ja turvaseadmetes. Tuleohutuses aitab see tagada parema temperatuuritaluvuse, turvaseadmetes aga seadme iseseisva töötamise ja töö jätkumise läbilõigatud elektri- ja sidejuhtmete korral.
Kasutusel on ka uus klass traadita seadmeid, mida nimetatakse sensorisõlmedeks. Need on piiratud andmekogumise ja analüüsi võimekusega juhtmevabalt võrku koondatud väikesed seadmed, mis suhtlevad omavahel kauge vahemaa tagant ja kasutavad võimalikult vähe energiat. Läbi keerulise integraalskeemi disaini luuakse nõnda väga võimekad sensorid, millega saab mõõta väga erinevaid suuremastaabilisi ümbritseva maailma nähtusi. Sensorisõlmed ei vaja toimimiseks lisasüsteeme ning võivad ühe laadimisega kesta aastaid, enne kui on vaja toiteallikas välja vahetada või laadida. 
Sisemisi WiFi-seadmeid kasutatakse infosillana jadaporti kasutavates seadmetes.
Tunnused.
Manussüsteemid on kavandatud mingi konkreetse ülesande tegemiseks, pigem kui üldotstarbeline arvuti mitmesuguste ülesannete jaoks. Osadel on ka reaalaja toimimise piirangud, mis peavad olema täidetud, põhjustel, nagu näiteks ohutus ja kasutatavus; teistel võivad olla madalad tehnilised nõuded või isegi täiesti puududa. See võimaldab süsteemi riistvara lihtsustamist, et vähendada kulusid.
Manussüsteemid ei ole alati iseseisvad seadmed. Paljud manussüsteemid koosnevad väikestest osadest, mis on osa suuremast seadmest, mis teenib üldisemat eesmärki. Näiteks manussüsteem autos annab konkreetse funktsiooni, olles ise auto alamsüsteem.
Programmi juhiseid kirjutatud manussüsteemide jaoks nimetatakse püsivaraks ja salvestatakse püsimälu või välkmälu. Nad töötavad piiratud arvuti riistvara ressurssidega: vähe mälu, väike või olematu klaviatuur või ekraan.
Kasutajaliides.
Manussüsteemide kasutajaliidesed ulatuvad alates selle puudumisest, süsteemid pühendatud ainult ühele ülesandele, kuni keerulise graafilise kasutajaliidesteni, mis meenutavad kaasaegse arvuti operatsioonisüsteemi töölauda. Lihtsad manussüsteemid kasutavad nuppe, LED-e või graafilist LCD-d.
Vahendid (tööriistad).
Nagu ka teiste tarkvaradega, kasutavad manussüsteemide disainerid kompilaatoreid, assemblereid ja silureid (inglise keeles "debuggers"), et välja töötada manussüsteemide tarkvara. Siiski võivad nad kasutada ka mõningaid konkreetsemaid vahendeid:
Tarkvaravahendid võivad pärineda mitmesugustest allikatest:
Nagu manussüsteemide keerukus kasvab, siirdub kõrgema taseme vahendeid ja operatsioonisüsteeme masinatesse, kus see on mõistlik. Näiteks telefonid, personaalsed digitaalsed assistendid ja muud olmearvutid vajavad tihti märkimisväärset tarkvara, mis on ostetud ja varustatud kolmanda isiku poolt, kes ei ole selle elektroonikaseadme valmistaja.
Silumine.
Manusüsteemi silumist (inglise keeles "debugging") võib teostada eri tasemetel, sõltuvalt saadaolevatest töövahenditest. Alates lihtsaimast kuni kõige keerukamani võib neid laias laastus jagada järgmistesse valdkondadesse:
Tavaliselt saab programmeerija laadida ja käivitada tarkvara läbi nende vahendite, vaadata koodi, mis töötab protsessoris ning alustada või peatada selle operatsiooni, kui seda ei ole piiratud välise silumisega. Koodi vaade võib olla kas HLL-i lähtekood, "assembly" kood või mõlema segu.
Kuna manussüsteem koosneb tihtipeale paljudest elementidest, siis võib silumise strateegia erineda. Näiteks tarkvara- (ja mikroprotsessori-) keskse manussüsteemi silumine erineb manussüsteemi silumisest, kus enamik töötlusest tehakse väliste lisaseadmetega (DSP, FPGA, kaasprotsessor). Üha suurem arv manussüsteeme kasutab tänapäeval rohkem kui ühte protsessori tuuma. Tavaline probleem mitmetuumalise arendamise juures on tarkvara teostuse õige sünkroonimine. Sel juhul võib manussüsteemi disain tahta kontrollida andmeedastust protsessori tuumade vahelistel siinidel, mis nõuab näiteks väga madalatasemelist silumist, signaal/siini tasemel, koos loogikaanalüsaatoriga
Logimine.
Reaalajas töötavad operatsioonisüsteemid (inglise keeles "real-time operating systems", RTOS) võimaldavad sageli süsteemisündmusi logida (inglise keeles "tracing"). Logitud sündmusi saab kuvada graafiliselt peaarvutis. Logid annavad hea ülevaate süsteemi kõrgematasemeslikust käitumisest ning lubavad arendajatel paremini mõista ajastust ja jõudlust puudutavaid probleeme. Kommertsiaalselt on kättesaadavad programmid RTXC Quadros ja IAR Systems.
Töökindlus.
Manussüsteeme kasutatakse rohkelt sellistes seadmetes, mis peavad ilma vigadeta järjest töötama aastaid. Seetõttu testitakse nendes seadmetes kasutatavat tarkvara tavaliselt põhjalikumalt kui personaalarvutite korral. Ühtlasi hoidutakse kõikvõimalikest mittetöökindlatest mehaanilistest lahendustest nagu kõvakettad, kohtvõrgu kommutaatorid (inglise keeles "network switch") ja nupud.
Töökindlust võivad pärssida järgmised probleemid: 
Vigadest taastumiseks on loodud süsteeme, mis tarkavaraliste ja kergemate riistvaraliste vigade korral võimaldavad süsteemi normaalse töö operatiivselt taastada:
Andmemaht.
Suureandmemahulistes seadmetes, nagu MP3-mängijad ja mobiiltelefonid, põhineb disain tavaliselt seadme tootmiskulude minimeerimisel. Insenerid valivad tavaliselt täpselt nii hea seadme, kui hädapärast tarvis läheb.
Väiksema andmemahuga seadmetes ja prototüüp-manusseadmetes, kus programmide piiramise võimekus ja süsteemi töökindlus on olulisem või taskukohasem, eelistatakse sageli kasutada universaalset arvutit, mis on eesmärgi jaoks kohandatud, ning operatsioonisüsteem asendada reaalajas toimiva operatsioonisüsteemiga.