Iegultā sistēma
Iegultā sistēma ir dators, kas ir konstruēts tikai dažu ļoti specifisku problēmu risināšanai un nav viegli maināms. Vārds "iegultais" nozīmē, ka tas ir iebūvēts sistēmā. Tā ir pastāvīga lielākas sistēmas daļa. Tā parasti neizskatās pēc datora, bieži vien tai nav tastatūras, monitora vai peles. Bet, tāpat kā jebkuram datoram, tam ir procesors un programmatūra, ievade un izvade.
Piemēram, liftā iebūvētais kontrolieris, pamatojoties uz nospiestajām pogām, liek motoram pārvietot liftu uz dažādiem stāviem. Satelīttelevīzijas dekodētājs ir iebūvēts satelīttelevīzijas televizora pierīcē (saukta par STB), lai nolasītu signālu no šķīvja un nosūtītu kaut ko tādu, ko saprot televizors. Bieži vien šāda veida sistēmai darbs jāveic noteiktā laikā. To sauc par reāllaika skaitļošanu. Ja televizora pierīces darbība tiktu pārtraukta, lai veiktu citu uzdevumu, televizorā būtu redzams, piemēram, slikts attēls. Vispārējas nozīmes datoram bieži būs īsas pauzes, kamēr tas darīs kaut ko citu, tas nav reālais laiks.
Iegultās sistēmas kontrolē daudzas mūsdienās plaši izmantotās ierīces, piemēram, karšu lasītājus viesnīcu durvju slēdzenēs vai vairākas automašīnas ierīces. Tās var kontrolēt gan mazas lietas, piemēram, MP3 atskaņotāju vai digitālo kameru, gan lielas lietas, piemēram, luksoforu sistēmas, lidmašīnas vai montāžas līnijas rūpnīcā.
ADSL modema/maršrutētāja iekšējās daļas attēls. Mūsdienīgs iegultās sistēmas piemērs. Ar marķējumu apzīmētās detaļas ietver mikroprocesoru (4), operatīvo atmiņu (6) un zibatmiņu (7).
Iegulto sistēmu piemēri
Iegultās sistēmas tiek izmantotas dažāda veida elektriskajās ierīcēs, tostarp:
- Telekomunikāciju sistēmās tos izmanto telefoniem, mobilo telefonu tīklam un wi-fi maršrutētājiem.
- Patēriņa elektronika ietver apraides uztvērējus, MP3 atskaņotājus, mobilos tālruņus, videospēļu konsoles, digitālās kameras, DVD atskaņotājus, GPS uztvērējus, mājas drošības sistēmas un printerus.
- Mājsaimniecības ierīcēs, piemēram, mikroviļņu krāsnīs, veļas mazgājamās mašīnās, signalizācijas sistēmās un trauku mazgājamajās mašīnās, ir iebūvētas sistēmas.
- Transporta nozarē iegultās sistēmas tiek izmantotas visur, sākot no lokomotīvēm vilcienos līdz lidmašīnām un automobiļiem.
- Rūpniecībā tiek izmantoti elektromotori ar elektroniskiem kontrolieriem, karšu lasītāji un CNC mašīnas, kas automātiski izgatavo metāla detaļas.
- Medicīniskās ierīces, piemēram, defibrilatori, automātiskie asinsspiediena mērītāji un automātiskie insulīna sūkņi.
- Militārās ierīces, piemēram, raķetes, satelīti un raķešu vadības sistēmas.
Kopīgās iezīmes
- Atšķirībā no vispārējas nozīmes datoriem iegultās sistēmas ir paredzētas konkrētu uzdevumu veikšanai.
- Tas neizskatās pēc datora - tam var nebūt pilna monitora vai tastatūras.
- Daudzām iegultajām sistēmām ir jāspēj veikt darbības reāllaikā - īsā laikā (no cilvēka viedokļa gandrīz nekavējoties).
- Daudzām iegultajām sistēmām ir jābūt ļoti drošām un uzticamām, jo īpaši medicīnas ierīcēs vai lidmašīnu vadības avionikā.
- Sākas ļoti ātri. Cilvēki nevēlas gaidīt minūti vai divas, lai iedarbinātos automašīna vai avārijas aprīkojums.
- Tajā var izmantot īpašu operētājsistēmu (vai dažkārt ļoti mazu, pašu radītu operētājsistēmu), kas palīdz izpildīt šīs prasības un ko sauc par reālā laika operētājsistēmu jeb RTOS.
- Iegultajām sistēmām rakstītās programmas instrukcijas tiek sauktas par programmaparatūru, un tās tiek saglabātas tikai lasāmajā atmiņā vai zibatmiņas atmiņas mikroshēmās. Tās darbojas ar ierobežotiem datora aparatūras resursiem: maz atmiņas, maza vai neesoša tastatūra un/vai ekrāns.
Iegultās sistēmas ne vienmēr ir autonomas ierīces. Dažreiz tās ir veidotas kā komplekts, piemēram, dažādas automašīnas daļas - radio, droseles regulators, piesārņojuma kontrole utt. Dažkārt tās var sazināties ar internetu vai mobilo tālruņu tīklu, un tām var būt USB lasītājs vai citi savienojumi.
Lietotāja saskarnes
Iebūvētās sistēmas var būt gan bez lietotāja saskarnes - tikai elektrisko signālu nosūtīšana un saņemšana -, gan ar pilnu grafisko lietotāja saskarni, kāda ir modernā datorā. Bieži vien tām ir dažas pogas, neliels displejs un dažas gaismas diodes. Sarežģītākām sistēmām var būt skārienjūtīgs ekrāns, kas ļauj mainīt pogu nozīmi katrā ekrānā, kā tas ir viedtālruņos.
Lietotāja saskarnes piemērs ar pogām un vienkāršu LCD displeju.
Aparatūra
Aparatūra ietver mikroshēmas, vadus, shēmas plates, pogas un displejus.
Procesori
Svarīgākā mikroshēma ir centrālais procesors jeb CPU. Tas izpilda programmatūras instrukcijas. Tas var būt standarta mikroprocesors vai mikrokontrolieris. Mikroprocesoros ietilpst mikroprocesors, kā arī vienkāršas perifērijas iekārtas, tāpēc sistēma var būt mazāka un lētāka. Tiem ir mazāka elastība, jo šīs daļas nevar mainīt. Parasti šajās daļās ietilpst Flash atmiņa un atbalsts sērijas pieslēgvietām, USB u. c.
Atšķirībā no vispārējas nozīmes datora mikroprocesora lielāks un ātrāks ne vienmēr ir labāks. Daudzi iegultie procesori ir ļoti mazi. Dažkārt tas ir tāpēc, lai izmantotu mazāk vietas vai mazāk enerģijas, dažkārt - lai būtu lētāki. Vispārējas nozīmes datoros tiek izmantoti mikroprocesori, kas nolasa 32 vai 64 bitu vārdus un darbojas ar ātrumu, ko mēra GHz, bet iegultie procesori parasti ir 4 līdz 32 bitu un darbojas ar ātrumu, ko parasti mēra desmitos MHz (simtiem reižu lēnāk). (Taču programmas ir arī mazākas un nepārbauda lietas, kas netiek izmantotas).
Gatavas datoru plates
Ir "gatavas" datoru plates, ko var izmantot dažās iegultajās sistēmās. Tajās bieži vien izmanto Windows CE, Linux, NetBSD vai iegulto reāllaika operētājsistēmu.
Dažreiz var būt vieglāk izmantot jau izgatavotu shēmu. Tām parasti ir daudz kopīgu komponentu ar vispārējas nozīmes datoriem, bet tās ir mazākas nekā vispārējas nozīmes datorā. Uz tādām platēm kā VIA EPIA var darbināt Microsoft Windows. Priekšrocība ir tā, ka tā ietaupa daļu elektrotehnikas inženiera laika un var izmantot tos pašus programmatūras izstrādes rīkus, ko izmanto PC tipa programmatūras izstrādē. Šādu iegulto ierīču piemēri ir bankomāti vai displeji kazino. Tas darbojas labi, ja reālā laika prasības nav ļoti stingras (nav lielas nozīmes, piemēram, ja darbs aizņem astoņas sekundes, nevis piecas).
ASIC un FPGA risinājumi
Ja ierīcei jābūt ļoti mazai vai tā tiks pārdota ļoti lielā skaitā ("lielā apjomā"), ir lietderīgi izgatavot pielāgotu vai specializētu mikroshēmu, kas veic tieši to, kas nepieciešams. Tā ir sistēma mikroshēmā (SoC), kas ietver pilnu sistēmu - procesoru, peldošā komata vienību, kešatmiņu un saskarnes vienā integrālā shēmā. SoC var izgatavot kā speciālu lietojumprogrammējamu integrālo shēmu (ASIC) vai izmantojot programmējamu integrālo shēmu (FPGA), ko programmē cilvēki, kuri veido iegulto sistēmu.
Perifērijas ierīces
Iegultās sistēmas sazinās ar ārpasauli vai citiem komponentiem, izmantojot perifērijas ierīces, piemēram:
- Sērijas porti: RS-232, RS-422, RS-485. Kādreiz tas bija diezgan izplatīts, izmantojot 9-pin (vai lielākus) savienotājus.
- Sinhronā sērijveida sakaru saskarne: I²C integrētā shēma, I²S integrētā skaņa, SPI, MIcrowire, ...
- Universal Serial Bus (USB).
- Tīkli: Ethernet, kontrolieru tīkls, LonWorks, ...
- Diskrētā ievade/izvade: Vispārējas nozīmes ievadi/izvadi (GPIO). Tas var būt viens vads ar ieslēgšanas/izslēgšanas signālu. To var izmantot nelielai tastatūrai vai gaismas diodes iedegšanai.
- Analogo ciparu/ ciparu analogo pārveidotāji (ADC/DAC). Tas mēra kaut ko, kas maina spēku, piemēram, gaismas sensoru vai motora vadības ierīci.
- Dzesēšanas novēršana: JTAG, ICSP ports, programmatūras inženieriem.
Soekris net4801 - iegultā sistēma, kas paredzēta tīkla lietojumiem.
Programmatūra
Operētājsistēmas
Iegultajām sistēmām bieži vien nav nepieciešama pilnīga operētājsistēma. Dažās tiek izmantotas īpaši izveidotas nelielas un vienkāršas operētājsistēmas, kas startē ļoti ātri, bet citām operētājsistēmas vispār nav nepieciešamas. Iegultās sistēmas nav tik viegli pielāgojamas, taču tās ir veidotas tā, lai savus uzdevumus veiktu daudz uzticamāk. Tā kā aparatūra ir vienkāršāka, to bieži vien ir arī lētāk uzbūvēt un tā darbojas ātrāk.
Turpretī vispārējas nozīmes datoram ir jābūt gatavam jauniem ierīču draiveriem un programmatūrai, lai darbinātu aparatūru, par kuru tas vēl nezina, piemēram, jaunus printerus vai cietos diskus. Tam ir nepieciešams palaist dažādas lietojumprogrammas.
Tā kā iegultās sistēmas kļūst arvien lielākas, lietas, kas agrāk bija pieejamas tikai vispārējas nozīmes datoros vai pat mainstreimos, tagad kļūst ierastas iegultajās sistēmās. Tas ietver aizsargātu atmiņas vietu un atvērtu programmēšanas vidi, tostarp Linux, NetBSD utt.
Daži operētājsistēmu piemēri - no vienkāršas līdz sarežģītai:
- Vienkārša vadības cilpa - Lai atkārtoti izsauktu dažādas apakšprogrammas, tiek izmantots taimeris un cilpa. Mazākām sistēmām to bieži vien veido viens cilvēks.
- pārtraucami - uzdevumi tiek palaisti ar dažādu veidu notikumiem. Notikums var būt kaut kas laika ziņā noteikts (piemēram, ik pēc desmit sekundēm) vai pēc pogas nospiešanas, vai saņemti dati.
- Nepreemptive multitasking - katrs uzdevums saņem savu kārtu, un, kad tas beidzas, tiek izsaukts OS plānotājs, lai palaistu nākamo uzdevumu.
- preemptive multitasking vai multi-threading - uzdevumu var apturēt pēc noteikta laika, lai kādu laiku varētu palaist citu uzdevumu. Neviens uzdevums nevar aizņemt sistēmu. Šajā līmenī sistēma tiek uzskatīta par "operētājsistēmas" kodolu, un uzdevumus var veikt paralēli. Šāda tipa operētājsistēmu parasti iegādājas no uzņēmuma, kas strādā tikai ar iegulto operētājsistēmu izstrādi.
Reālā laika operētājsistēmas ietver tādus produktus kā MicroC/OS-II, Green Hills INTEGRITY, QNX vai VxWorks. Atšķirībā no MacOS vai Windows 7 šīs operētājsistēmas lielākajai daļai cilvēku nav labi zināmas. Taču tās tiek izmantotas daudzviet, kur laiks un drošība ir ļoti svarīgi. Cilvēki tās izmanto katru dienu un to pat neapzinās.
Biežāk sastopamie lielāku kodolu piemēri ir iegultā Linux un Windows CE. Lai gan tiem nav stingri laika ierobežojumi, kas nepieciešami stingrai reāllaika sistēmai, tie kļūst arvien izplatītāki, jo īpaši jaudīgākām ierīcēm, piemēram, bezvadu maršrutētājiem un GPS. Tie ļauj atkārtoti izmantot publiskajā domēnā esošo kodu ierīču draiveriem, tīmekļa serveriem, ugunsmūriem un citiem kodiem. Programmatūras izstrādātājiem, kuriem ir ērtāk rakstīt lietojumprogrammas personālajiem datoriem, tas arī būs pazīstamāks. Vajadzības gadījumā var izmantot FPGA vai citu speciālu aparatūru lietām, kurām nepieciešami stingri laika ierobežojumi.
Instrumenti
Tāpat kā citu programmatūru, iegulto sistēmu projektētāji iegulto sistēmu programmatūras izstrādē izmanto kompilatorus, asemblerus un atkļūdošanas programmas. Tomēr viņi var izmantot arī dažus specifiskākus rīkus:
- Sistēmām, kurās izmanto digitālo signālu apstrādi, izstrādātāji var izmantot tādus matemātikas rīkus kā MATLAB, MathCad vai Mathematica.
- Lai uzlabotu optimizāciju konkrētajai aparatūrai, var izmantot pielāgotus kompilatorus un linkerus.
- Iebūvētajai sistēmai var būt sava īpaša valoda vai projektēšanas rīks, vai arī tā var pievienot uzlabojumus esošai valodai, piemēram, Basic Stamp izmantotajai valodai.
atkļūdošanas rīki:
- Shēmas atkļūdošanas programma (ICD) - aparatūras ierīce, kas savienojas ar mikroprocesoru, izmantojot JTAG saskarni. Tā iedarbina un aptur mikroprocesoru no ārpuses, kad tas darbina programmatūru. Tas arī ļauj nolasīt atmiņu un reģistrus, kā arī saglabāt programmatūru atmiņā.
- Ārējā atkļūdošana, izmantojot mežizstrādi vai sērijas ostas izvadi, lai izsekotu darbību, izmantojot mirgojošu monitoru (printfs).
- Interaktīva rezidentu atkļūdošana - ja operētājsistēma to atbalsta, tas ir iegultā procesora apvalks, kas izpilda izstrādātāja ievadītās komandas (piemēram, Linux).
- Mikroprocesora vietā uz plates ir iebūvēts shēmas emulators, kas nodrošina pilnīgu kontroli pār visu, ko mikroprocesors varētu darīt.
- Pilnīgs emulators simulē visas aparatūras funkcijas, ļaujot to visu kontrolēt un modificēt. Patiesībā aparatūra neeksistē, bet parastā datorā ir tās šķietama versija ("virtuālā" mašīna).
- Ārējo līniju pārbaude ar loģisko analizatoru vai multimetru.
Ja vien programmētājs nav ierobežots ar ārējo atkļūdošanu, viņš parasti var ielādēt un palaist programmatūru, izmantojot rīkus, apskatīt procesorā darbojošos kodu, kā arī sākt vai apturēt tā darbību. Kods var tikt attēlots kā asemblera kods vai pirmkods. Dažām integrētajām sistēmām (piemēram, VxWorks vai Green Hills) ir īpašas funkcijas, piemēram, tiek sekots līdzi tam, cik daudz vietas programmatūra aizņem tās darbības laikā, kādi uzdevumi tiek veikti un kad kas notiek.
Atkarībā no tā, kāda veida iegultā sistēma tiek veidota, būs atkarīgs, kā to var atkļūdot. Piemēram, viena mikroprocesora sistēmas atkļūdošana atšķiras no tādas sistēmas atkļūdošanas, kurā apstrādi veic arī perifērija (DSP, FPGA, līdzprocesors).
Drošība un uzticamība
Iebūvētās sistēmas bieži vien ir iebūvētas iekārtās, kas bez kļūdām darbosies gadiem ilgi un dažos gadījumos atveseļosies pašas, ja radīsies kļūda. Tas nozīmē, ka programmatūra parasti tiek izstrādāta un testēta rūpīgāk nekā personālajiem datoriem, un tiek novērstas neuzticamas mehāniskas kustīgas daļas, piemēram, diskdziņi un ventilatori.
Vietas, kur ir svarīga drošība un uzticamība:
- Dažas sistēmas nevar droši izslēgt remontam vai arī to remonts ir pārāk sarežģīts. Piemēram, kosmosa sistēmas (satelīti, roveri), zemūdens kabeļi un kodolspēkstaciju vadības ierīces.
- Sistēma var nogalināt cilvēkus, ja tā nedarbojas, piemēram, gaisa kuģu vadības ierīces, ķīmisko rūpnīcu vadības ierīces, vilcienu signāli un sirds defibrilatori.
- Sistēma zaudēs lielas naudas summas, ja tā tiks slēgta vai ja tiks pieļauta kļūda: Tālruņu slēdži, rūpnīcas vadības ierīces, kases aparāti, kases automāti.
Kļūdu - gan programmatūras kļūdu, piemēram, atmiņas noplūdes, gan arī aparatūras mīksto kļūdu - novēršanas veidi:
- Sardzes taimeris, kas restartē iegulto sistēmu, ja kaut kas pārtrauc darboties.
- dublējošās daļas, kur viena sistēma var pārņemt citu, ja cita pārstāj darboties.
- Programmatūras "apstāšanās režīmi", kas nodrošina daļēju darbību.
- Programmēšana, ņemot vērā imunitāti
Saistītās lapas
- Mikroprocesors
- Programmēšanas valodas
- Firmware
- Reālā laika operētājsistēma
Jautājumi un atbildes
J: Kas ir iegultā sistēma?
A: Iegultā sistēma ir dators, kas ir konstruēts konkrētu problēmu risināšanai un nav viegli maināms.
J: Ar ko iegultā sistēma atšķiras no vispārējas nozīmes datora?
A: Iebūvētajai sistēmai parasti nav tastatūras, monitora vai peles, un tai ir specializētas funkcijas. Vispārējas nozīmes dators var veikt dažādus uzdevumus.
J: Kādi ir daži iegulto sistēmu piemēri?
A: Iegulto sistēmu piemēri ir liftu kontrolieri, televizoru pultis, karšu lasītāji viesnīcu durvju slēdzenēs, luksoforu sistēmas, lidmašīnas un montāžas līnijas rūpnīcās.
J: Kas ir reāllaika skaitļošana?
A: Reāllaika skaitļošana ir tad, ja iegultajai sistēmai darbs jāpabeidz noteiktā laikā. Ja tā tiek pārtraukta, var rasties tādas problēmas kā slikta attēla kvalitāte televizorā.
J: Kādi ir iegultās sistēmas komponenti?
A: Tāpat kā jebkuram datoram, arī iegultajai sistēmai ir procesors, programmatūra, ievade un izvade.
J: Kādus uzdevumus var kontrolēt iegultā sistēma?
A: Iegultā sistēma var kontrolēt mazas ierīces, piemēram, MP3 atskaņotājus vai digitālās kameras, vai lielākas sistēmas, piemēram, luksoforus vai lidmašīnas.
J: Ko nozīmē termins "iegultās" saistībā ar iegultajām sistēmām?
A: Termins "iegultās" nozīmē, ka dators ir iebūvēts lielākā sistēmā un to nav viegli mainīt.