Įterptinės sistemos
Įterptinė sistema - tai kompiuteris, sukurtas tik kelioms labai konkrečioms problemoms spręsti ir nesunkiai keičiamas. Žodis "įterptinis" reiškia, kad jis įmontuotas į sistemą. Tai nuolatinė didesnės sistemos dalis. Paprastai ji neatrodo kaip kompiuteris, dažnai neturi klaviatūros, monitoriaus ar pelės. Tačiau, kaip ir bet kuris kompiuteris, jis turi procesorių ir programinę įrangą, įvestį ir išvestį.
Pavyzdžiui, lifte įmontuotas valdiklis nurodo varikliui perkelti liftą į skirtingus aukštus pagal nuspaustus mygtukus. Palydovinės televizijos priedėlyje (vadinamame STB) įmontuotas dekoderis, kuris nuskaito signalą iš antenos ir siunčia tai, ką supranta televizorius. Dažnai tokio tipo sistema turi atlikti savo darbą per tam tikrą laiką. Tai vadinama realaus laiko skaičiavimu. Pavyzdžiui, jei televizoriaus priedėlis būtų pertrauktas atlikti kitą užduotį, televizoriuje būtų rodomas blogas vaizdas. Bendrosios paskirties kompiuteryje dažnai būna trumpos pauzės, kol jis atlieka kitą veiksmą, tai nėra realaus laiko kompiuteris.
Įterptinės sistemos valdo daugelį šiandien naudojamų įprastų prietaisų, pavyzdžiui, kortelių skaitytuvus viešbučio durų spynose arba keletą automobilyje esančių prietaisų. Jos gali valdyti mažus dalykus, pavyzdžiui, MP3 grotuvą ar skaitmeninį fotoaparatą, ir didelius dalykus, pavyzdžiui, šviesoforų sistemas, lėktuvus ar surinkimo linijas gamykloje.
ADSL modemo ir maršrutizatoriaus vidinių dalių nuotrauka. Šiuolaikinis įterptosios sistemos pavyzdys. Paženklintos dalys: mikroprocesorius (4), operatyvioji atmintis (6) ir "flash" atmintis (7).
Įterptinių sistemų pavyzdžiai
Įterptinės sistemos naudojamos įvairiuose elektros prietaisuose, įskaitant:
- Telekomunikacijų sistemose jie naudojami telefonams, mobiliųjų telefonų tinklui ir "Wi-Fi" maršrutizatoriams.
- Vartojimo elektronika - tai transliavimo imtuvai, MP3 grotuvai, mobilieji telefonai, vaizdo žaidimų konsolės, skaitmeniniai fotoaparatai, DVD grotuvai, GPS imtuvai, namų apsaugos sistemos ir spausdintuvai.
- Buitiniuose prietaisuose, pavyzdžiui, mikrobangų krosnelėse, skalbyklėse, įsilaužimo signalizacijos sistemose ir indaplovėse, yra įmontuotos sistemos.
- Transporto sektoriuje įterptosios sistemos naudojamos visur - lokomotyvuose, traukiniuose, lėktuvuose ir automobiliuose.
- Pramonėje naudojami elektros varikliai su elektroniniais valdikliais, kortelių skaitytuvais ir CNC staklėmis, kurios automatiškai gamina metalines detales.
- Medicinos prietaisai, pavyzdžiui, defibriliatoriai, automatiniai kraujospūdžio matuokliai ir automatinės insulino pompos.
- Kariniai prietaisai, pavyzdžiui, radijo imtuvai, palydovai ir raketų valdymo sistemos.
Bendrosios savybės
- Skirtingai nei bendrosios paskirties kompiuteriai, įterptinės sistemos skirtos konkrečiai užduočiai atlikti.
- Jis neatrodo kaip kompiuteris - gali nebūti viso monitoriaus ar klaviatūros.
- Daugelis įterptųjų sistemų turi gebėti atlikti veiksmus realiuoju laiku, t. y. per trumpą laiką (žmogaus akimis žiūrint, beveik akimirksniu).
- Daugelis įterptųjų sistemų turi būti labai saugios ir patikimos, ypač medicinos prietaisai arba lėktuvus valdanti avionika.
- Įsijungia labai greitai. Žmonės nenori laukti minutę ar dvi, kol įsijungs jų automobilis ar avarinė įranga.
- Jame gali būti naudojama speciali operacinė sistema (arba kartais labai nedidelė savos gamybos operacinė sistema), padedanti atitikti šiuos reikalavimus, vadinama realaus laiko operacine sistema (RTOS).
- Įterptinėms sistemoms parašytos programos instrukcijos vadinamos programine įranga ir saugomos tik skaitymo atmintyje arba "flash" atminties mikroschemose. Jos veikia su ribotais kompiuterio techninės įrangos ištekliais: mažai atminties, maža klaviatūra ir (arba) ekranu arba jų visai nėra.
Įterptinės sistemos ne visada yra atskiri įrenginiai. Kartais jos būna sukurtos kaip rinkinys, pavyzdžiui, įvairios automobilio dalys - radijas, droselinės sklendės valdymas, taršos kontrolė ir t. t. Kartais jos gali palaikyti ryšį su internetu arba mobiliojo telefono tinklu, gali turėti USB skaitytuvą ar kitas jungtis.
Vartotojo sąsajos
Įterptinės sistemos gali būti be jokios vartotojo sąsajos - tik siunčiančios ir priimančios elektrinius signalus - ir su grafine vartotojo sąsaja, kaip šiuolaikiniame kompiuteryje. Dažnai jos turi kelis mygtukus, nedidelį ekraną ir keletą šviesos diodų. Sudėtingesnėse sistemose gali būti jutiklinis ekranas, kuriame mygtukų reikšmė gali keistis su kiekvienu ekranu, kaip išmaniuosiuose telefonuose.
Vartotojo sąsajos su mygtukais ir paprastu LCD ekranu pavyzdys.
Techninė įranga
Į aparatinę įrangą įeina mikroschemos, laidai, spausdintinės plokštės, mygtukai ir ekranai.
Procesoriai
Svarbiausias lustas yra centrinis procesorius arba CPU. Jame vykdomos programinės įrangos instrukcijos. Tai gali būti standartinis mikroprocesorius arba mikrovaldiklis. Į mikrovaldiklius įeina mikroprocesorius ir paprasta periferinė įranga, todėl sistema gali būti mažesnė ir pigesnė. Jie mažiau lankstūs, nes šių dalių negalima keisti. Paprastai šioms dalims priskiriama "Flash" atmintis ir nuosekliųjų prievadų, USB ir kt. palaikymas.
Skirtingai nei bendrosios paskirties kompiuterio mikroprocesoriaus atveju, didesnis ir greitesnis ne visada yra geresnis. Daugelis įterptinių procesorių yra labai maži. Kartais dėl to, kad užima mažiau vietos arba naudoja mažiau energijos, kartais - kad būtų pigesni. Bendrosios paskirties kompiuteriuose naudojami mikroprocesoriai, kurie skaito 32 arba 64 bitų žodžius ir veikia GHz greičiu, tačiau įterptieji procesoriai paprastai yra 4-32 bitų ir veikia dešimtimis MHz (šimtą kartų lėčiau). (Tačiau programos taip pat yra mažesnės ir netikrina nenaudojamų dalykų).
Paruoštos kompiuterių plokštės
Yra "paruoštų" kompiuterių plokščių, kurias galima naudoti kai kuriose įterptinėse sistemose. Jose dažnai naudojama "Windows CE", "Linux", "NetBSD" arba įterptinė realaus laiko operacinė sistema.
Kartais gali būti paprasčiau naudoti jau pagamintą spausdintinę plokštę. Jos paprastai turi daug bendrų komponentų su bendrosios paskirties kompiuteriais, tačiau yra mažesnės nei bendrosios paskirties kompiuterio plokštės. Tokiose plokštėse, pavyzdžiui, VIA EPIA, galima paleisti "Microsoft Windows". Privalumas tas, kad sutaupoma šiek tiek elektrotechnikos inžinerijos laiko ir galima naudoti tas pačias programinės įrangos kūrimo priemones, kurios naudojamos kompiuterio tipo programinei įrangai kurti. Tokių įterptųjų įtaisų pavyzdžiai - bankomatai arba ekranai kazino. Tai gerai veikia, jei realiojo laiko reikalavimai nėra labai griežti (pavyzdžiui, nelabai svarbu, ar darbas trunka aštuonias sekundes, o ne penkias).
ASIC ir FPGA sprendimai
Jei prietaisas turi būti labai mažas arba bus parduodamas labai dideliais kiekiais ("didelės apimties"), tikslinga gaminti nestandartinę arba specializuotą mikroschemą, kuri atliktų būtent tai, ko reikia. Tai sistema luste (SoC), kurioje vienoje integrinėje schemoje yra visa sistema - procesorius, slankiojo kablelio blokas, spartinančioji atmintis ir sąsajos. SoC gali būti gaminami kaip specialaus užsakymo taikomosios paskirties integrinis grandynas (ASIC) arba naudojant programuojamąjį vartų masyvą (FPGA), kurį programuoja įterptinę sistemą kuriantys žmonės.
Periferiniai įrenginiai
Įterptinės sistemos bendrauja su išoriniu pasauliu arba kitais komponentais naudodamos periferinius įrenginius, pvz:
- Serijiniai prievadai: RS-232, RS-422, RS-485. Anksčiau buvo gana paplitusios 9 kontaktų (arba didesnės) jungtys.
- Sinchroninė nuosekliojo ryšio sąsaja: I²C integruota grandinė, I²S integruotas garsas, SPI, MIcrowire, ...
- Universalioji nuoseklioji magistralė (USB).
- Tinklai: Ethernet, valdiklių tinklas, LonWorks, ...
- Diskretieji įėjimai ir išėjimai: Bendrosios paskirties įvestis/išvestis (GPIO). Tai gali būti vienas laidas su įjungimo/išjungimo signalu. Jį galima naudoti nedidelei klaviatūrai arba šviesos diodui įjungti.
- Analoginiai skaitmeniniai / skaitmeniniai analoginiai keitikliai (ADC/DAC). Tai matuoja kažką, kas keičia stiprumą, pavyzdžiui, šviesos jutiklį arba variklio valdymą.
- Derinimas: JTAG, ICSP prievadas, skirtas programinės įrangos inžinieriams.
"Soekris net4801" - įterptinė sistema, skirta tinklo programoms.
Programinė įranga
Operacinės sistemos
Įterptinėms sistemoms dažnai nereikia visos operacinės sistemos. Kai kuriose naudojamos specialiai sukurtos mažos ir paprastos operacinės sistemos, kurios paleidžiamos labai greitai, o kitoms jos visai nereikalingos. Įterptinės sistemos nėra taip lengvai pritaikomos, tačiau jos sukurtos taip, kad daug patikimiau atliktų savo užduotis. Kadangi aparatinė įranga paprastesnė, ją taip pat dažnai būna pigiau sukurti ir ji veikia greičiau.
Tuo tarpu bendrosios paskirties kompiuteris turi būti pasirengęs naudoti naujas įrenginių tvarkykles ir programinę įrangą, skirtą dar nežinomai aparatinei įrangai, pavyzdžiui, naujiems spausdintuvams ar kietiesiems diskams, paleisti. Jame reikia paleisti įvairias taikomąsias programas.
Didėjant įterptinių sistemų apimtims, dalykai, kurie anksčiau buvo naudojami tik bendrosios paskirties kompiuteriuose ar net pagrindiniuose kompiuteriuose, dabar tampa įprasti įterptinėse sistemose. Tai ir apsaugota atminties erdvė, ir atviros programavimo aplinkos, įskaitant Linux, NetBSD ir kt.
Keletas operacinių sistemų pavyzdžių - nuo paprastų iki sudėtingų:
- Paprastas valdymo ciklas - laikmatis ir ciklas naudojami skirtingoms paprogramėms pakartotinai iškviesti. Dažnai tai daro vienas žmogus, kai tai skirta mažesnėms sistemoms.
- valdomi pertraukimais - užduotys paleidžiamos nuo įvairių įvykių. Įvykis gali būti kažkoks laiko nustatymas (pavyzdžiui, kas dešimt sekundžių) arba mygtuko paspaudimas ar gauti duomenys.
- Nepreempcinė daugiaužduotis - kiekviena užduotis gauna savo eilę, o kai ji baigiama, iškviečiamas operacinės sistemos planuoklis, kad būtų paleista kita užduotis.
- preemptyvioji daugiaužduotis arba daugiasluoksniškumas - užduotį galima sustabdyti po tam tikro laiko ir leisti kitai užduočiai kurį laiką veikti. Nė viena užduotis negali užgrobti sistemos. Šiuo lygmeniu sistema laikoma turinčia "operacinės sistemos" branduolį ir gali lygiagrečiai vykdyti užduotis. Tokio tipo OS paprastai perkama iš įmonės, kuri dirba tik su įterptinėmis operacinėmis sistemomis.
Realaus laiko operacinės sistemos apima tokius produktus kaip "MicroC/OS-II", "Green Hills INTEGRITY", QNX arba "VxWorks". Priešingai nei "MacOS" ar "Windows 7", šios operacinės sistemos daugumai žmonių nėra gerai žinomos. Tačiau jos naudojamos daugelyje vietų, kur laikas ir saugumas yra labai svarbūs. Žmonės jomis naudojasi kasdien ir to nesuvokia.
Dažniausi didesnių branduolių pavyzdžiai yra "Embedded Linux" ir "Windows CE". Nors jie neturi griežtų laiko ribų, reikalingų griežtai realaus laiko sistemai, jie vis dažniau naudojami, ypač galingesniuose įrenginiuose, pavyzdžiui, belaidžiuose maršrutizatoriuose ir GPS. Juose galima pakartotinai naudoti viešai prieinamą kodą įrenginių tvarkyklėms, žiniatinklio serveriams, ugniasienėms ir kitam kodui. Programinės įrangos kūrėjams, kuriems patogiau rašyti asmeniniams kompiuteriams skirtas programas, tai taip pat bus labiau pažįstama. Jei reikia, FPGA ar kitą specialią aparatinę įrangą galima naudoti dalykams, kuriems reikia griežtų laiko apribojimų.
Įrankiai
Kaip ir kitos programinės įrangos kūrėjai, įterptųjų sistemų projektuotojai įterptųjų sistemų programinei įrangai kurti naudoja kompiliatorius, asemblerius ir derintuvus. Tačiau jie taip pat gali naudoti kai kurias specifines priemones:
- Sistemoms, kuriose naudojamas skaitmeninis signalų apdorojimas, kūrėjai gali naudoti matematines priemones, pavyzdžiui, MATLAB, MathCad arba Mathematica.
- Siekiant pagerinti optimizavimą konkrečiai aparatinei įrangai, gali būti naudojami pasirinktiniai kompiliatoriai ir susiejimo programos.
- Įterptinė sistema gali turėti savo specialią kalbą ar projektavimo įrankį arba gali būti patobulinta esama kalba, pvz., "Basic Stamp" naudojama kalba.
Derinimo įrankiai:
- Grandinėje esantis derintuvas (ICD) - aparatūros įrenginys, kuris prie mikroprocesoriaus jungiamas per JTAG sąsają. Jis paleidžia ir sustabdo mikroprocesorių iš išorės, kai jame veikia programinė įranga. Jis taip pat leidžia nuskaityti atmintį ir registrus bei išsaugoti programinę įrangą atmintyje.
- Išorinis derinimas naudojant registravimą arba nuosekliojo prievado išvestį, kad būtų galima atsekti veikimą naudojant mirksintį monitorių (printfs).
- Interaktyvusis rezidentinis derinimas - jei operacinė sistema jį palaiko, tai yra įterptinio procesoriaus apvalkalas, kuriame vykdomos kūrėjo įvestos komandos (pvz., "Linux").
- Mikroprocesorių plokštėje pakeičia grandinėje esantis emuliatorius, kuriuo galima visiškai valdyti viską, ką galėjo daryti mikroprocesorius.
- Visiškas emuliatorius imituoja visas aparatinės įrangos funkcijas ir leidžia ją visą valdyti ir keisti. Techninė įranga iš tikrųjų neegzistuoja, tačiau jos apsimestinė versija ("virtuali" mašina) yra įprastame kompiuteryje.
- Išorinių linijų tikrinimas loginiu analizatoriumi arba multimetru.
Jei nėra apribotas išorinis derinimas, programuotojas paprastai gali įkelti ir paleisti programinę įrangą naudodamasis priemonėmis, peržiūrėti procesoriuje veikiantį kodą, paleisti arba sustabdyti jo veikimą. Kodas gali būti matomas kaip asemblerio kodas arba išeities kodas. Kai kurios integruotos sistemos (pavyzdžiui, "VxWorks" arba "Green Hills") turi specialių funkcijų, pavyzdžiui, stebi, kiek vietos programinė įranga užima veikdama, kokios užduotys vykdomos ir kada kas vyksta.
Priklausomai nuo to, kokia įterptinė sistema kuriama, priklauso, kaip ją galima derinti. Pavyzdžiui, vieno mikroprocesoriaus sistemos derinimas skiriasi nuo sistemos, kurioje apdorojimą atlieka ir periferinis įrenginys (DSP, FPGA, koprocesorius), derinimo.
Sauga ir patikimumas
Įterptinės sistemos dažnai naudojamos mašinose, kurios, kaip tikimasi, be klaidų veiks daugelį metų, o kai kuriais atvejais įvykus klaidai pačios atsistato. Tai reiškia, kad programinė įranga paprastai kuriama ir testuojama kruopščiau nei asmeninių kompiuterių programinė įranga, be to, vengiama nepatikimų mechaninių judančių dalių, pavyzdžiui, diskinių kaupiklių ir ventiliatorių.
Vietos, kuriose svarbus saugumas ir patikimumas:
- Kai kurių sistemų negalima saugiai išjungti remontui arba jas suremontuoti yra per sunku. Pavyzdžiai - kosminės sistemos (palydovai, roveriai), povandeniniai kabeliai ir atominių elektrinių valdymo įtaisai.
- Sugedus sistemai, pavyzdžiui, lėktuvų valdymo įtaisams, chemijos gamyklų valdymo įtaisams, traukinių signalams ir širdies defibriliatoriams, gali žūti žmonės.
- Sistema praras dideles pinigų sumas, jei bus išjungta arba jei bus padaryta klaida: Telefono jungikliai, gamyklų valdymo įrenginiai, kasos aparatai, bankomatai.
Būdai, kaip ištaisyti klaidas - tiek programinės įrangos klaidas, pvz., atminties nutekėjimą, tiek minkštas aparatinės įrangos klaidas:
- Stebėjimo laikmatis, kuris iš naujo paleidžia įterptinę sistemą, jei kas nors nustoja veikti.
- Dubliuojančios dalys, kai viena sistema gali būti perimta, jei kita nustoja veikti.
- Programinės įrangos "ramybės režimai", kurie užtikrina dalinį veikimą.
- Programavimas atsižvelgiant į imunitetą
Susiję puslapiai
- Mikroprocesorius
- Programavimo kalbos
- Programinė įranga
- Realaus laiko operacinė sistema
Klausimai ir atsakymai
K: Kas yra įterptinė sistema?
A: Įterptinė sistema - tai kompiuteris, sukurtas konkrečioms problemoms spręsti, kurį nelengva pakeisti.
K: Kuo įterptinė sistema skiriasi nuo bendrosios paskirties kompiuterio?
A: Įterptinė sistema paprastai neturi klaviatūros, monitoriaus ar pelės ir atlieka specializuotas funkcijas. Bendrosios paskirties kompiuteris gali atlikti įvairias užduotis.
K: Kokie yra keletas įterptųjų sistemų pavyzdžių?
A.: Įterptinių sistemų pavyzdžiai - liftų valdikliai, televizorių priedėliai, kortelių skaitytuvai viešbučių durų spynose, šviesoforų sistemos, lėktuvai ir surinkimo linijos gamyklose.
K: Kas yra realaus laiko kompiuterija?
A: Realaus laiko skaičiavimai - tai kai įterptinė sistema turi atlikti savo darbą per tam tikrą laiką. Jei ji nutrūksta, gali kilti problemų, pavyzdžiui, prasta televizoriaus vaizdo kokybė.
K: Kokios yra įterptosios sistemos sudedamosios dalys?
A.: Kaip ir bet kuris kompiuteris, įterptinė sistema turi procesorių, programinę įrangą, įvestį ir išvestį.
K: Kokias užduotis gali valdyti įterptinė sistema?
A: Įterptinė sistema gali valdyti mažus įrenginius, tokius kaip MP3 grotuvai ar skaitmeniniai fotoaparatai, arba didesnes sistemas, tokias kaip šviesoforai ar lėktuvai.
K: Ką reiškia terminas "įterptinis", kalbant apie įterptines sistemas?
A: Terminas "įterptinis" reiškia, kad kompiuteris yra įmontuotas į didesnę sistemą ir nėra lengvai keičiamas.