Sistem înglobat
Un sistem încorporat este un computer care a fost construit pentru a rezolva doar câteva probleme foarte specifice și care nu este ușor de modificat. Cuvântul embedded înseamnă că este încorporat în sistem. Este o parte permanentă a unui sistem mai mare. De obicei, nu arată ca un computer, adesea nu are tastatură, monitor sau mouse. Dar, ca orice calculator, are un procesor și un software, intrări și ieșiri.
De exemplu, controlerul încorporat într-un lift îi spune motorului să mute liftul la diferite etaje, pe baza butoanelor care sunt apăsate. Un decodor este încorporat într-un decodor de televiziune prin satelit (numit STB) pentru a citi un semnal de la antena și a trimite ceva pe care un televizor îl înțelege. Adesea, acest tip de sistem trebuie să își facă treaba într-un anumit interval de timp. Aceasta se numește calcul în timp real. Dacă un set-top box ar fi întrerupt pentru a efectua o altă sarcină, ați vedea o imagine proastă pe televizor, de exemplu. Un computer de uz general va avea adesea pauze scurte în timp ce face altceva, nu este în timp real.
Sistemele încorporate controlează multe dintre dispozitivele obișnuite utilizate în prezent, cum ar fi cititoarele de carduri din încuietorile ușilor de hotel sau mai multe elemente dintr-o mașină. Ele pot controla atât lucruri mici, cum ar fi un MP3 player sau o cameră digitală, cât și lucruri mari, cum ar fi sistemele de semaforizare, avioanele sau liniile de asamblare dintr-o fabrică.
Imagine a componentelor interne ale unui modem/router ADSL. Un exemplu modern de sistem încorporat. Părțile etichetate includ un microprocesor (4), memoria RAM (6) și memoria flash (7).
Exemple de sisteme încorporate
Sistemele încorporate sunt utilizate în multe tipuri de dispozitive electrice, inclusiv:
- Sistemele de telecomunicații le utilizează pentru telefoane, rețele de telefonie mobilă și routere wi-fi.
- Electronicele de consum includ receptoare de radiodifuziune, playere MP3, telefoane mobile, console de jocuri video, camere digitale, DVD playere, receptoare GPS, sisteme de securitate pentru locuințe și imprimante.
- Aparatele electrocasnice, cum ar fi cuptoarele cu microunde, mașinile de spălat rufe, sistemele de alarmă antiefracție și mașinile de spălat vase au sisteme încorporate.
- În domeniul transporturilor se folosesc sisteme încorporate pentru orice, de la locomotive pentru trenuri, avioane și automobile.
- Industria utilizează motoare electrice cu controlere electronice, cititoare de carduri și mașini CNC care produc automat piese metalice.
- Dispozitive medicale, cum ar fi defibrilatoarele, cititoarele automate de tensiune arterială și pompele automate de insulină.
- Dispozitive militare, cum ar fi walkie-talkie, sateliți și sisteme de ghidare pentru rachete.
Caracteristici comune
- Sistemele încorporate sunt concepute pentru a îndeplini o sarcină specifică, spre deosebire de computerele de uz general.
- Nu arată ca un computer - este posibil să nu existe un monitor complet sau o tastatură.
- Multe sisteme încorporate trebuie să fie capabile să facă lucruri în timp real - într-un timp scurt (aproape instantaneu din punctul de vedere al omului).
- Multe sisteme integrate trebuie să fie foarte sigure și fiabile, în special în cazul dispozitivelor medicale sau al sistemelor de control al avioanelor.
- Pornește foarte repede. Oamenii nu vor să aștepte un minut sau două pentru ca mașina lor să pornească sau pentru ca echipamentul de urgență să pornească.
- Acesta poate utiliza un sistem de operare special (sau, uneori, un sistem de operare foarte mic, făcut acasă) care ajută la îndeplinirea acestor cerințe, numit sistem de operare în timp real sau RTOS.
- Instrucțiunile de program scrise pentru sistemele încorporate sunt denumite firmware și sunt stocate în memorie numai pentru citire sau în cipuri de memorie flash. Acestea funcționează cu resurse hardware limitate: memorie mică, tastatură și/sau ecran mici sau inexistente.
Sistemele încorporate nu sunt întotdeauna dispozitive autonome. Uneori, ele sunt construite ca un set, cum ar fi diferitele părți ale unei mașini - radioul, controlul accelerației, controlul poluării etc. Uneori pot comunica cu internetul sau cu o rețea de telefonie mobilă și pot avea un cititor USB sau alte conexiuni.
Interfețe utilizator
Sistemele încorporate variază de la nicio interfață cu utilizatorul - doar trimiterea și primirea de semnale electrice - până la o interfață grafică completă cu utilizatorul, ca pe un computer modern. Destul de des, acestea vor avea câteva butoane, un mic afișaj și câteva LED-uri. Un sistem mai complex poate avea un ecran tactil, permițând schimbarea semnificației butoanelor în funcție de fiecare ecran, ca în cazul telefoanelor inteligente.
Un exemplu de interfață utilizator cu butoane și un afișaj LCD simplu.
Hardware
Hardware-ul include cipurile, firele, plăcile de circuite, butoanele și afișajele.
Procesoare
Cel mai important cip este unitatea centrală de procesare sau CPU. Aceasta execută instrucțiunile software. Acesta poate fi un microprocesor standard sau un microcontroler. Microcontrolerele includ microprocesorul, precum și echipamente periferice simple, astfel încât sistemul poate fi mai mic și mai ieftin. Ele au mai puțină flexibilitate, deoarece aceste părți nu pot fi schimbate. De obicei, aceste părți includ memoria Flash și suport pentru porturi seriale, USB etc.
Spre deosebire de un microprocesor pentru un calculator de uz general, nu întotdeauna mai mare și mai rapid este mai bine. Multe procesoare încorporate sunt foarte mici. Uneori, acest lucru se întâmplă pentru a utiliza mai puțin spațiu sau mai puțină energie, alteori pentru a fi mai ieftin. Calculatoarele de uz general vor folosi microprocesoare care citesc cuvinte pe 32 sau 64 de biți și care funcționează la viteze măsurate în GHz, dar procesoarele încorporate au de obicei între 4 și 32 de biți și funcționează la viteze măsurate de obicei în zeci de MHz (de o sută de ori mai lent). (Dar programele sunt, de asemenea, mai mici și nu verifică lucrurile care nu sunt utilizate).
Plăci de calculator gata făcute
Există plăci de calculator "gata făcute" care pot fi utilizate în unele sisteme integrate. Acestea utilizează adesea Windows CE, Linux, NetBSD sau un sistem de operare în timp real încorporat.
Uneori poate fi mai ușor să folosiți o placă de circuite care este deja fabricată. De obicei, acestea au multe componente în comun cu calculatoarele de uz general, dar sunt mai mici decât cele ale unui calculator de uz general. Plăcile precum VIA EPIA pot rula Microsoft Windows. Avantajul este că se economisește o parte din timpul de inginerie electrică și se pot folosi aceleași instrumente de dezvoltare software utilizate pentru dezvoltarea de software de tip PC. Exemple de astfel de dispozitive încorporate sunt bancomatele sau afișajele din cazinouri. Acest lucru funcționează bine dacă cerințele de timp real nu sunt foarte stricte (nu contează prea mult dacă o sarcină durează opt secunde în loc de cinci, de exemplu).
Soluții ASIC și FPGA
În cazul în care dispozitivul trebuie să fie foarte mic sau va fi vândut în număr foarte mare ("volum mare"), este logic să se realizeze un cip personalizat sau specializat care să facă exact ceea ce este necesar. Acesta este un sistem pe un cip (SoC) care deține un sistem complet - procesor, unitate de virgulă mobilă, memorie cache și interfețe pe un singur circuit integrat. SoC-urile pot fi realizate sub formă de circuite integrate pentru aplicații specifice (ASIC) sau prin utilizarea unei rețele de porți programabile pe teren (FPGA) care este programată de către cei care construiesc sistemul încorporat.
Periferice
Sistemele încorporate comunică cu lumea exterioară sau cu alte componente folosind periferice precum:
- Porturi seriale: RS-232, RS-422, RS-485. Acest lucru era destul de comun, cu conectori cu 9 pini (sau mai mari).
- Interfață de comunicare serială sincronă: I²C Inter-Integrated Circuit, I²S Inter-Integrated Sound, SPI, MIcrowire, ...
- Universal Serial Bus (USB).
- Rețele: Ethernet, Controller Area Network, LonWorks, ...
- Intrare/ieșire discretă: Intrare/ieșire cu scop general (GPIO). Acesta poate fi un singur fir cu un semnal pornit/oprit. Poate fi utilizată pentru o tastatură mică sau pentru a aprinde un LED.
- Convertoare analog/digitale/analogice (ADC/DAC). Acesta măsoară ceva care își schimbă intensitatea, cum ar fi un senzor de lumină sau un control al motorului.
- Depanare: JTAG, port ICSP, pentru inginerii de software.
Soekris net4801, un sistem încorporat destinat aplicațiilor de rețea.
Software
Sisteme de operare
Deseori, sistemele încorporate nu au nevoie de un sistem de operare complet. Unele folosesc sisteme de operare mici și simple, special construite, care pornesc foarte repede, altele nu au nevoie deloc de unul. Sistemele încorporate nu se adaptează la fel de ușor, dar sunt construite pentru a-și îndeplini sarcinile mult mai fiabil. Deoarece hardware-ul este mai simplu, este, de asemenea, adesea mai ieftin de construit și funcționează mai rapid.
Spre deosebire de acesta, un computer de uz general trebuie să fie pregătit să primească noi drivere de dispozitiv și software pentru a rula hardware pe care nu îl cunoaște încă, cum ar fi imprimante sau hard disk-uri noi. Acesta trebuie să ruleze diferite programe de aplicații.
Pe măsură ce sistemele încorporate devin mai mari, lucruri care înainte erau doar pe computerele de uz general sau chiar pe mainframe-uri devin acum comune pe sistemele încorporate. Printre acestea se numără spațiul de memorie protejat și mediul de programare deschis, inclusiv Linux, NetBSD etc.
Câteva exemple de sisteme de operare, de la simplu la complex:
- Bucla de control simplă - Un temporizator și o buclă sunt utilizate pentru a apela diferite subrutine în mod repetat. Aceasta este adesea realizată de o singură persoană pentru sisteme mai mici.
- controlat prin întreruperi - Sarcinile sunt lansate de diferite tipuri de evenimente. Evenimentul poate fi ceva cronometrat (la fiecare zece secunde, de exemplu) sau prin apăsarea unui buton sau prin datele primite.
- multitasking nepreemptiv - Fiecare sarcină își primește rândul să ruleze, iar atunci când se termină apelează la un programator din sistemul de operare pentru a rula următoarea sarcină.
- multitasking preemptiv sau multithreading - O sarcină poate fi oprită după un anumit interval de timp pentru a permite unei alte sarcini să ruleze pentru o perioadă de timp. Niciun task nu poate acapara sistemul. La acest nivel, se consideră că sistemul are un nucleu de "sistem de operare" și poate rula sarcini în paralel. Acest tip de sistem de operare este de obicei cumpărat de la o companie care lucrează numai cu sisteme de operare integrate.
Sistemele de operare în timp real includ produse precum MicroC/OS-II, Green Hills INTEGRITY, QNX sau VxWorks. Spre deosebire de MacOS sau Windows 7, aceste sisteme de operare nu sunt cunoscute foarte bine de majoritatea oamenilor. Dar ele sunt folosite în multe locuri unde timpul și siguranța sunt foarte importante. Oamenii le folosesc în fiecare zi și nu-și dau seama de acest lucru.
Exemple comune de nuclee mai mari sunt Embedded Linux și Windows CE. Deși acestea nu au limitele de timp stricte necesare pentru un sistem strict în timp real, ele devin din ce în ce mai frecvente, în special pentru dispozitive mai puternice, cum ar fi routerele wireless și GPS-urile. Acestea permit reutilizarea codului din domeniul public pentru drivere de dispozitive, servere web, firewall-uri și alte coduri. Dezvoltatorii de software care se simt mai confortabil să scrie aplicații pentru PC-uri vor găsi și ei acest lucru mai familiar. Dacă este necesar, se poate utiliza un FPGA sau alt hardware special pentru lucrurile care necesită limite de timp stricte.
Unelte
Ca și în cazul altor software, proiectanții de sisteme integrate utilizează compilatoare, asamblatoare și depanatoare pentru a dezvolta software pentru sisteme integrate. Cu toate acestea, ei pot utiliza și unele instrumente mai specifice:
- Pentru sistemele care utilizează procesarea digitală a semnalelor, dezvoltatorii pot utiliza instrumente matematice precum MATLAB, MathCad sau Mathematica.
- Compilatoare și linkeri personalizați pot fi utilizați pentru a îmbunătăți optimizarea pentru un anumit hardware.
- Un sistem încorporat poate avea propriul său limbaj special sau instrument de proiectare sau poate adăuga îmbunătățiri la un limbaj existent, cum ar fi cel utilizat de Basic Stamp.
Instrumente de depanare:
- Un depanator în circuit (ICD), un dispozitiv hardware care se conectează la microprocesor prin intermediul unei interfețe JTAG. Acesta pornește și oprește microprocesorul din exterior în timp ce rulează software-ul. De asemenea, permite citirea memoriei și a registrelor și stocarea programului software în memorie.
- Depanare externă prin logare sau prin ieșirea pe portul serial pentru a urmări funcționarea folosind fie un monitor intermitent (printfs).
- Depanarea interactivă rezidentă - dacă sistemul de operare o acceptă, acesta este un shell pe procesorul încorporat care execută comenzi scrise de dezvoltator (Linux, de exemplu).
- Un emulator în circuit înlocuiește microprocesorul de pe placă, asigurând un control total asupra a tot ceea ce ar putea face microprocesorul.
- Un emulator complet simulează toate caracteristicile hardware-ului, permițând controlul și modificarea acestuia. Hardware-ul nu există cu adevărat, dar o versiune falsă a acestuia (o mașină "virtuală") se află pe un PC normal.
- Verificarea liniilor externe cu un analizor logic sau un multimetru.
Cu excepția cazului în care nu se limitează la depanarea externă, programatorul poate, de obicei, să încarce și să ruleze software-ul prin intermediul instrumentelor, să vizualizeze codul care rulează în procesor și să pornească sau să oprească funcționarea acestuia. Codul poate fi vizualizat sub formă de cod de asamblare sau de cod sursă. Unele sisteme integrate (cum ar fi VxWorks sau Green Hills) au caracteristici speciale, cum ar fi urmărirea spațiului ocupat de software în timp ce rulează, a sarcinilor care rulează și a momentului în care se întâmplă anumite lucruri.
În funcție de tipul de sistem încorporat care este realizat va afecta modul în care acesta poate fi depanat. De exemplu, depanarea unui sistem cu un singur microprocesor este diferită de depanarea unui sistem în care procesarea se face și pe un periferic (DSP, FPGA, coprocesor).
Siguranță și fiabilitate
Sistemele încorporate se află adesea în mașini care trebuie să funcționeze ani de zile fără erori și, în unele cazuri, să se refacă singure dacă apare o eroare. Acest lucru înseamnă că software-ul este de obicei dezvoltat și testat cu mai multă atenție decât cel pentru computerele personale și că sunt evitate piesele mecanice mobile nesigure, cum ar fi unitățile de disc și ventilatoarele.
Locuri în care siguranța și fiabilitatea sunt importante:
- Unele sisteme nu pot fi oprite în condiții de siguranță pentru a fi reparate sau este prea dificil de reparat. Printre exemple se numără sistemele spațiale (sateliți, rovere), cablurile subacvatice și comenzile centralelor nucleare.
- Sistemul ar putea ucide oameni dacă nu funcționează, cum ar fi comenzile aeronavelor, comenzile fabricilor de produse chimice, semnalele de tren și defibrilatoarele cardiace.
- Sistemul va pierde sume mari de bani dacă este oprit sau dacă se face o greșeală: Comutatoare telefonice, comenzi de fabrică, case de marcat, bancomate automate.
Modalități de recuperare a erorilor - atât erori de software, cum ar fi pierderile de memorie, cât și erori de soft hardware:
- Cronometru Watchdog care repornește sistemul încorporat în cazul în care ceva nu mai funcționează.
- părți duplicate, în care un sistem poate prelua controlul dacă altul nu mai funcționează.
- "Moduri de funcționare" software care asigură o funcționare parțială.
- Programarea care ține cont de imunitate
Pagini conexe
- Microprocesor
- Limbaje de programare
- Firmware
- Sistem de operare în timp real
Întrebări și răspunsuri
Î: Ce este un sistem încorporat?
R: Un sistem încorporat este un computer construit pentru a rezolva probleme specifice și nu este ușor de modificat.
Î: Prin ce se deosebește un sistem încorporat de un calculator de uz general?
R: De obicei, un sistem încorporat nu are tastatură, monitor sau mouse și are funcții specializate. Un computer de uz general poate îndeplini o gamă largă de sarcini.
Î: Care sunt câteva exemple de sisteme încorporate?
R: Printre exemplele de sisteme încorporate se numără controllerele de lift, decodoarele, cititoarele de carduri din încuietorile ușilor de hotel, sistemele de semaforizare, avioanele și liniile de asamblare din fabrici.
Î: Ce este informatica în timp real?
R: Calculul în timp real este atunci când un sistem încorporat trebuie să își finalizeze activitatea într-un anumit interval de timp. Dacă este întrerupt, poate cauza probleme precum calitatea slabă a imaginii la un televizor.
Î: Care sunt componentele unui sistem încorporat?
R: La fel ca orice calculator, un sistem încorporat are un procesor, un software, o intrare și o ieșire.
Î: Care sunt unele sarcini pe care le poate controla un sistem încorporat?
R: Un sistem încorporat poate controla dispozitive mici, cum ar fi playerele MP3 sau camerele digitale, sau sisteme mai mari, cum ar fi semafoarele sau avioanele.
Î: Ce înseamnă termenul "încorporat" în legătură cu sistemele încorporate?
R: Termenul "încorporat" înseamnă că computerul este încorporat într-un sistem mai mare și nu este ușor de modificat.