21
Capitolul 15 Sisteme încorporate Dup ˘ a epoca calculatoarelor mainframe, urmat ˘ a de o perioad˘ a în care computerele personale au condus lumea tehnologiei, ne îndrept ˘ am spre perioada calculatoarelor omniprezente (termenul a fost introdus pentru prima oar ˘ a în 1988 de Mark D. Weiser, cercet ˘ ator la Xerox PARC), când suntem înconjurat , i de calculatoare de dimensiuni tot mai mici, comparabile chiar cu dimensiunile unei monede. Aceast ˘ a evolut , ie se reflect ˘ a în popularitatea pe care a câs , tigat-o domeniul Internet of Things (IoT) s , i evolut , ia dispozitivelor inteligente. În prezent, dezvolt˘ arile tehnologie se concentreaz ˘ a pe dezvoltarea unor dispozitive care s˘ a se adapteze cât mai mult necesit ˘ at , ilor noastre s , i care s˘ a act , ioneze autonom, preluând cât mai multe din sarcinile noastre. Suntem înconjurat , i de reclame la aspiratoare inteligente, îs , i care construiesc singure o hart˘ a a casei, parcurg întreaga suprafat , ˘ as , i se conecteaz ˘ a singure la înc ˘ arc ˘ ator. Purt˘ am pe încheietura mâinii ceasuri s , i br˘ at , ˘ ari care ne monitorizeaz ˘ a activitatea zilnic ˘ as , i ne avertizeaz˘ a când nu am f˘ acut destul ˘ a mis , care sau st˘ am pe scaun de prea mult timp. Ca s˘ a ne facem o idee mai clar˘ a asupra popularit ˘ at , ii acestor dispozitive, un studiu publicat în 2018 de World Economic Forum ment , ioneaz ˘ ac˘ a în anul 2017 la nivel global s-au utilizat aproximativ 8.4 miliarde de sisteme IoT, în timp ce în anul 2020 se preconizeaz ˘ a un num ˘ ar de 20,4 miliarde de astfel de sisteme. În acest context, e us , or de observat o nevoie accelerat˘ a de a folosi sisteme de calcul tot mai mici. Cum toate aceste sisteme inteligente pe care le integr ˘ am în traiul zilnic nu sunt nimic mai mult decât nis , te robot , i sau nis , te calculatoare de dimensiuni reduse, fiecare astfel de dispozitiv cont , ine o unitate de procesare s , i o memorie intern˘ a, mai specific, în component , a dispozitivelor inteligente intr ˘ a sistemele încorporate. Un sistem încorporat este un sistem de calcul care controleaz ˘ a un proces. Spre deosebire de calculatoarele clasice, aceste sisteme nu sunt dezvoltate pentru a fi conectate la un monitor s , i o tastatur ˘ as , i controlate pentru operat , ii diverse. Sistemele încorporate, sunt create cu un anumit scop bine definit s , i sunt adaptate pentru a deservi cât mai eficient acelui scop, fie c ˘ a sunt folosite pentru a controla o band˘ a de asamblare sau o br˘ at , ar˘ a care m ˘ asoar ˘ a activitatea fizic ˘ a a unei persoane. Sistemele încorporate stau la baza dispozitivelor inteligente s , i a platformelor IoT, ele având dimensiuni, memorie, capacitate de procesare s , i conectivitate adaptate sistemelor în component , ac˘ arora intr ˘ a. 274

Capitolul 15 Sisteme încorporate - elf.cs.pub.roelf.cs.pub.ro/uso/res/carte/uso_cap-15-embed.pdf · se datoreaza faptului c˘ a microcontrolerele sunt concepute special pentru a

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Capitolul 15

Sisteme încorporate

Dupa epoca calculatoarelor mainframe, urmata de o perioada în care computerelepersonale au condus lumea tehnologiei, ne îndreptam spre perioada calculatoareloromniprezente (termenul a fost introdus pentru prima oara în 1988 de Mark D. Weiser,cercetator la Xerox PARC), când suntem înconjurat, i de calculatoare de dimensiuni totmai mici, comparabile chiar cu dimensiunile unei monede.

Aceasta evolut, ie se reflecta în popularitatea pe care a câs, tigat-o domeniul Internet ofThings (IoT) s, i evolut, ia dispozitivelor inteligente. În prezent, dezvoltarile tehnologie seconcentreaza pe dezvoltarea unor dispozitive care sa se adapteze cât mai multnecesitat, ilor noastre s, i care sa act, ioneze autonom, preluând cât mai multe din sarcinilenoastre. Suntem înconjurat, i de reclame la aspiratoare inteligente, îs, i care construiescsingure o harta a casei, parcurg întreaga suprafat,a s, i se conecteaza singure laîncarcator. Purtam pe încheietura mâinii ceasuri s, i brat,ari care ne monitorizeazaactivitatea zilnica s, i ne avertizeaza când nu am facut destula mis, care sau stam pescaun de prea mult timp.

Ca sa ne facem o idee mai clara asupra popularitat, ii acestor dispozitive, un studiupublicat în 2018 de World Economic Forum ment, ioneaza ca în anul 2017 la nivel globals-au utilizat aproximativ 8.4 miliarde de sisteme IoT, în timp ce în anul 2020 sepreconizeaza un numar de 20,4 miliarde de astfel de sisteme.

În acest context, e us, or de observat o nevoie accelerata de a folosi sisteme de calcul totmai mici. Cum toate aceste sisteme inteligente pe care le integram în traiul zilnic nu suntnimic mai mult decât nis, te robot, i sau nis, te calculatoare de dimensiuni reduse, fiecareastfel de dispozitiv cont, ine o unitate de procesare s, i o memorie interna, mai specific, încomponent,a dispozitivelor inteligente intra sistemele încorporate.

Un sistem încorporat este un sistem de calcul care controleaza un proces. Spredeosebire de calculatoarele clasice, aceste sisteme nu sunt dezvoltate pentru a ficonectate la un monitor s, i o tastatura s, i controlate pentru operat, ii diverse. Sistemeleîncorporate, sunt create cu un anumit scop bine definit s, i sunt adaptate pentru adeservi cât mai eficient acelui scop, fie ca sunt folosite pentru a controla o banda deasamblare sau o brat,ara care masoara activitatea fizica a unei persoane.

Sistemele încorporate stau la baza dispozitivelor inteligente s, i a platformelor IoT, eleavând dimensiuni, memorie, capacitate de procesare s, i conectivitate adaptatesistemelor în component,a carora intra.

274

CAPITOLUL 15. SISTEME ÎNCORPORATE 275

Un sistem IoT este, un sistem de obiecte, dispozitive sau mas, ini interconectate careeste conectat s, i la Internet. Ret,eaua permite acestor "lucruri" sa comunice între ele s, isa furnizeze informat, ii valoroase despre mediul înconjurator în care sunt plasate.

15.1 Microcontrolere s, i calculatoare

As, a cum am ment, ionat anterior, dispozitivele integrate care controleaza sistemeinteligente sau anumite operat, ii specializate sunt numite dispozitive încorporate.Acestea sunt în principal unitat, i de calcul având în general caracteristici reduse, maiput, ina putere de procesare s, i mai put, ina memorie fat,a de calculatoarele cu care suntemobis, nuit, i. Multe dintre aceste sisteme sunt similare cu calculatoarele pe care foloseamcu 15 sau 20 de ani în urma, dar care sunt proiectate sa funct, ioneze în condit, ii speciale.Aceste dispozitive integrate trebuie sa funct, ioneze continuu timp de luni sau chiar ani,deoarece ele sunt încorporate într-un sistem autonom. În plus, multe dispozitive trebuiesa reziste cu condit, ii dure de funct, ionare, cum ar fi temperaturi extreme, umiditate sauchiar ploaie. Cu dispozitivele încorporate sunt mai robuste, cu atât sunt s, i maicostisitoare. Pe de alta parte, exista o mult, ime de dispozitive încorporate având un pret,de aproximativ 15-20 dolari. De cele mai multe ori acestea sunt folosite pentruprototipare s, i în educat, ie. Pe de alta parte, sisteme cu capacitat, i similare dar adaptateunor condit, ii dificile pot atinge pret,uri de 100 sau chiar s, i de 1000 de ori mai mari.

Unele dintre cele mai comune dispozitive integrate, folosite în special în educat, ie, suntRaspberry Pi sau Arduino. Aceste doua placi sunt populare datorita pret,ului sau scazuts, i a rezistent,ei la scurtcircuite.

Un aspect important de ment, ionat în ceea ce prives, te dispozitivele încorporate esteca aceste sisteme, des, i aparent asemanatoare cu calculatoarele personale, folosescarhitecturi diferite. În timp ce calculatoarele personale se bazeaza pe procesoare Intel(x86, x64), aceste dispozitive încorporeaza diverse procesoare cum ar fi Intel, ARM sauMIPS. Astfel, aplicat, iile pentru dispozitivele integrate sunt uneori mai greu de portat.

15.1.1 Microcontrolere

Cele mai simple sisteme încorporate sunt microcontrolerele.

Dupa cum sugereaza s, i numele, un microcontroler este un sistem de control de micidimensiuni, folosit într-un numar mare de obiecte sau aparate. Dintr-o perspectiva deansamblu, un microcontroler seamana cu un mic computer care vine cu periferice,memorie proprie s, i cel put, in un procesor (CPU - Unitatea centrala de procesare)capabila sa execute un programe (numite firmware). De obicei, în cadrul unui sistem decontrol, senzorii s, i servomotoarele sunt conectate direct la microcontroler. Acest lucruse datoreaza faptului ca microcontrolerele sunt concepute special pentru a suportaconexiuni diferite la dispozitivele periferice variate. În acelas, i timp, aceste placut,e suntcapabile sa comunice cu un dispozitiv mai complex, cum ar fi un computer. În plus,microcontrolerele sunt optimizate s, i din alte puncte de vedere: dimensiune, consumulde energie, costuri etc. În principiu, ele sunt simple, accesibile s, i utilizate cu un scopclar definit.

276 INTRODUCERE ÎN SISTEME DE OPERARE

Deoarece microcontrolerele sunt dispozitive simple, concepute pentru un scop anume,acestea ruleaza doar o singura aplicat, ie. Software-ul rulat de microcontrolere senumes, te firmware; îl putem defini ca "software creat special pentru hardware".Firmware-ul este stocat, de regula, în memoria flash (ROM), care este non-volatila(adica pastreaza datele chiar daca dispozitivul este oprit s, i repornit) s, i cont, ine informat, iirelevante despre modul în care ar trebui sa funct, ioneze sistemul. Putem deci sadeducem ca odata programat, un microcontroler poate fi integrat într-un sistem s, i el varula acel firmware chiar daca sistemul este rebootat.

Datorita faptului ca aceste dispozitive sunt capabile sa ruleze doar o singura bucata desoftware (firmware-ul) putem realiza aplicat, ii în timp real (aplicat, ii care necesita unraspuns instant la un declans, ator extern). Practic, aceste dispozitive nu au un sistemde operare, deci orice întreruperi provenite de la un periferic sunt declans, ate s, iprocesate într-un timp exact stabilit. Aceasta înseamna ca procesorul nu mai executasarcinile curente s, i începe executarea rutinelor legate de întrerupere. Daca nu suntet, ifamiliarizat cu conceptul de întreruperi, va putet, i gândi la ele ca la semnalele provenitede la dispozitivele periferice. Astfel, odata ce un periferic trimite un semnal, acesta estetratat instantaneu. În plus, un alt avantaj de a avea doar o singura bucata de softwarecare ruleaza pe dispozitiv este faptul ca putem prezice când se executa o anumitainstruct, iune.

15.1.1.1 Conectori

Principalul scop al microcontrolerelor este de a le conecta la senzori s, i actuatori. Acestlucru se face de obicei prin intermediul unor conectori speciali; în cazul dispozitiveloreducat, ionale, conectori sunt nis, te pini. Din firmware, programatorii pot citi sau controlastarea acestor pini. Un avantaj al microcontrolerelor este faptul ca ele expun pini foartespecializat, i. În general, un microcontroler are în primul rând un set de pini menit, i saîndeplineasca sarcini de baza: ei permit conexiuni la periferice simple s, i în fondalimenteaza cu energie perifericele . Chiar daca acest "pachet" de pini de baza estegasit pe aproape fiecare microcontroler, numarul s, i amplasarea lor difera de ladispozitiv la dispozitiv. Un singur pin este capabil sa efectueze mai multe funct, ii înacelas, i timp (acest fenomen este numit "multiplexare").

Cei mai simpli pini pe care îi putem gasi pe dispozitivele încorporate sunt:

• Vcc - Aces, ti pini sunt practic o sursa de tensiune cu o valoare fixa. Ne putem gândila ei ca la polul pozitiv al unei baterii. Nu pot fi controlat, i din firmware.

• GND - Aces, ti pini sunt cei opus, i celor Vcc. Ei sunt masa dispozitivului, de aceease numesc pini ground; ei sunt referint,a fat,a de care se calculeaza orice caderede tensiune. Nu pot fi controlat, i din firmware

• GPIO (General Purpose Input Output) - Sunt pini simpli care pot fi controlat, i dinfirmware. În funct, ie de starea lor, ei pot sa funct, ioneze fie ca pini Vcc sau GNDsau ca un voltmetru, citind date de la senzori.

• ADC (Analog to Digital Converter) - Sunt pini care preiau date de la senzori s, i letransforma în valori digitale. Valorile pot fi citite din firmware.

• DAC (Digital to Analog Converter) - Sunt pini asemanatori cu cei de Vcc, dar carepot fi controlat, i din firmware sa expuna un voltaj între 0 s, i Vcc; sunt folosit, i pentru

CAPITOLUL 15. SISTEME ÎNCORPORATE 277

a controla periferice, cum ar fi motoare.

• PWM (Pulse Width Modulation) - Sunt pini care simuleaza comportamentul pinilorDAC, fiind mai ieftini. Ei oscileaza între GND s, i Vcc simulând o tensiune variabila.

Pe de alta parte, exista pini care controleaza periferice mai complexe, ce transmit s, iprimesc date folosind diverse protocoale:

• SDA+SCL - câte doi pini pentru fiecare canal de comunicat, ie I2C suportat;

• SCK + MOSI + MISO - câte trei pini pentru fiecare canal de comunicat, ie SPIsuportat;

• TX + RX - câte doi pini pentru fiecare canal serial suportat.

15.1.1.2 Exemple de microcontrolere

Cum am ment, ionat deja, exista o varietate foarte mare de microcontrolere pe piat,a de lacele dezvoltate pentru a fi integrate în sisteme industriale, la placut,e simple care se sefolosesc pentru prototipare sau în educat, ie:

• Arduino - Este o placa cu un microcontroler ATMega produs de o companieItaliana. Este cel mai popular sistem de microcontroler utilizat pentru prototipuri s, iîn scopuri educat, ionale. De fapt, Arduino consta atât în placut,a efectiva, cât s, i înmediul integrat de dezvoltare (IDE), care us, ureaza procesul de programare aldispozitivului. Arduino s, i-a câs, tigat popularitatea chiar datorita IDE-ul foarte us, orde folosit, nu neaparat datorita produsului hardware.

• Seeeduino - Este un dispozitiv similar cu Arduino, produs de Seeed Studio.Dispozitivul poate fi programat prin intermediul IDE-ului Arduino.

• MSP430 LaunchPad - Este o placa cu un microcontroler MSP430 dezvoltat deTexas Instruments. Dispozitivul se caracterizeaza prin consumul mic de energie.

• Netduino - Este o placa cu un microcontroler ce poate fi programat în .NET.

• Particle - Este o placa cu un microcontroler ce poate fi programat prin Wi-Fi.

15.1.2 Calculatoare integrate

Am descris deja microcontrolerele ca fiind dispozitive simple utilizate cu un scop clardefinit. Tocmai datorita capabilitat, ilor reduse ale microcontrolere, nu au de obicei accesla ret,ea. În plus, chiar daca am avea acces la un microcontroler care suporta oconexiune la ret,ea, integrarea acestuia într-un sistem IoT ar reprezenta un risc imensde securitate. Datorita memoriei reduse, microcontrolerele nu sunt capabile saimplementeze protocoale securizate sau alte mecanisme de securitate. Prin urmare,folosind un microcontroler am obt, ine un sistem care transfera date nesecurizate.T, inând cont de acest lucru, este clar ca nu putem proiecta o solut, ie IoT bazata exclusivpe microcontrolere.

Un calculator încorporat reprezinta un sistem de calcul de dimensiuni mici, de obiceifoarte personalizat pentru a deservi unor scopuri specifice. Acest tip de dispozitive esteutilizat în mod obis, nuit ca parte a unui alt sistem (cum ar fi un ceas inteligent, un

278 INTRODUCERE ÎN SISTEME DE OPERARE

bancomat sau chiar un autoturism) care îndeplines, te sarcini complexe. Des, i, acestedispozitive sunt de fapt calculatoare, în majoritatea cazurilor, acestea nu suporta ointerfat,a de utilizator, consuma cantitat, i mici de energie s, i dispun de resurse limitate decalcul.

Fiind calculatoare, spre deosebire de microcontrolere, dispozitivele ruleaza un sistem deoperare care gestioneaza resursele.

Unul din scopurile principale ale calculatoarelor integrate este de a trimite sau de aprelua date din ret,eaua locala sau chiar de pe Internet. De aceea aceste dispozitiveau, în general, integrata o placa de ret,ea. Datorita memoriei s, i puterii de procesarecrescute fat,a de un microcontroler, calculatoarele integrate suporta implementarea unormecanisme de securitate pentru transferul de date s, i pentru aplicat, iile rulate. Acest lucrupermite dispozitivelor sa devina "inteligente" s, i sa comunice între ele.

În plus, calculatoarele încorporate sunt capabile sa execute aplicat, ii în paralel. Pe dealta parte, datorita sistemului de operare care care gestioneaza resursele hardware s, isoftware, aceste dispozitive încorporate nu pot rula aplicat, ii în timp real. Acesta este undezavantaj fat,a de microcontrolere.

Pentru anumite proiecte simple, putem folosi calculatoare integrate în loculmicrocontrolerelor. Acest lucru se datoreaza faptului ca s, i aceste dispozitive expunanumit, i pini. Scopul pinilor este de a controla câteva periferice simple, pentruinteract, iunea cu utilizatorul (de exemplu, unele LED-uri care semnalizeaza stareasistemului). De obicei, numarul de pini expus, i de calculatoarele integrate este limitat,majoritatea fiind pini GPIO. Aceste dispozitive nu expun mult, i pini divers, i pentru cascopul lor principal nu este acela de a interact, iona cu mediul, ci de a aduna, procesa s, itransporta date. Adaugarea unor module de conectare, cum ar fi ADC sau DAC, cres, tepret,ul dispozitivului fara a-i cres, te în mod semnificativ valoarea. Pe de alta parte,aproape toate sistemele de calcul încorporate suporta conexiuni avansate cum ar fiSPI, I2C, USB, UART sau chiar HDMI. Pentru a fi us, or de controlat, unele calculatoareintegrate pot fi conectate la un monitor, o tastatura s, i un mouse, similar unui calculatorobis, nuit.

15.1.2.1 Exemple de calculatoare integrate

Avem o diversitate mare de calculatoare integrate pe care le putem folosi în cadrulsistemelor inteligente:

• Raspberry Pi - Des, i nu a fost primul calculator integrat, Raspberry Pi este celmai cunoscut s, i a fost dispozitivul care a revolut, ionat domeniul IoT. Este primulcalculator integrat dedicat publicului larg, având un pret, scazut, ceea ce a dus lao scadere generala a pret,urilor la alte dispozitive similare s, i a facut domeniul IoTaccesibil pasionat, ilor de tehnologie s, i în educat, ie. Dispozitivul costa aproximativ35 de dolari.

• BeagleBone Black - BeagleBone Black este un dispozitiv cu capabilitat, i deprocesare mai scazute în comparat, ie cu Raspberry Pi. Cu toate acestea,dispozitivul expune un numar mai mare s, i mai variat de pini. BeagleBone Blackpoate fi folosit cu us, urint,a pentru prototipuri, dar poate fi integrat s, i în aparate

CAPITOLUL 15. SISTEME ÎNCORPORATE 279

inteligente, cum ar fi cabine foto sau frigidere inteligente. Dispozitivul costa în jurde 45 de dolari.

• Raspberry Pi Compute Module - Este un Raspberry Pi pentru uz industrial.

• Dragon Board 410c - Este o placa de prototipare dezvoltata de Qualcomm.Dispozitivul are acelas, i procesor s, i aceleas, i caracteristici pe care le are unsmartphone.

• Geniatech Board - Este un alt dispozitiv dezvoltat de Qualcomm, dar spredeosebire de Dragon Board, acesta este conceput pentru uz industrial.

15.1.2.2 Sisteme de operare pentru calculatoarele integrate

Dupa cum am precizat anterior, calculatoarele integrate sunt mai mici s, i mai ieftine, darcu o putere de calcul s, i o memorie mai mica comparativ cu un calculator de dimensiunimari. Raspberry Pi, de exemplu, are 1GB de memorie RAM în timp ce BeagleBoneBlack are 512 MB. Microprocesoarele acestor dispozitive au frecvent,e la o treime dinfrecvent,a unui calculator personal. Acest lucru le permite sa utilizeze o cantitate micade energie s, i sa fie accesibile ca pret,. Pe de alta parte, acest aspect duce la nevoia dea avea sisteme de operare specializate, care sa gestioneze cât mai eficient resurseledisponibile. Aceste dispozitive au nevoie de un sistem de operare foarte eficient în ceeace prives, te consumul de energie, deoarece acestea funct, ioneaza de obicei pe baterie s, itrebuie sa fie autonome pentru perioade lungi de timp.

Linux

S, tim deja ca Linux e o platforma foarte utilizata s, i pentru calculatoarele personale. Întretimp, odata cu evolut, ia IoT, s-au dezvoltat foarte multe distribut, ii Linux pentrucalculatoare integrate:

• Raspbian - Este un sistemul de operare recomandat pentru Raspberry Pi. A fostdezvoltat de Fundat, ia Raspberry Pi. Ca orice alt sistem de operare, Raspbiansuporta controlul dispozitivului prin Shell, folosind comenzile standard Linux.Raspbian vine în doua versiuni: Stretch s, i Stretch Lite.

• Stretch este bazat pe Debian Linux s, i este optimizat pentru Raspberry Pi.Distribut, ia ofera inclusiv o interfat,a grafica de utilizator (GUI) s, i câteva aplicat, ii,cum ar fi Chromium, LibreOffice s, i Claws Mail.

• Stretch Lite este versiunea Stretch fara GUI, având dimensiuni reduse.Interact, iunea cu sistemul se realizeaza doar prin linie de comanda.

• Pidora - Este un sistem de operare bazat pe Fedora. Spre deosebire de Raspbian,Pidora are mai multe aplicat, ii, cum ar fi editoare de text s, i suporta o un numar maimare de limbaje de programare fara a necesita instalarea pachetelor.

• Android Things - Este un sistem dezvoltat de Google, bazat pe sistemul de operareAndroid. Acesta include servicii Google Cloud, cum ar fi Firebase.

• Yocto - Yocto este un set de instrumente open-source pentru crearea de imaginide sisteme de operare bazate pe Linux pentru dispozitivele încorporate. Sistemulinclude medii de emulare s, i depanatoare. Yocto a devenit popular pe piat,a

280 INTRODUCERE ÎN SISTEME DE OPERARE

hobbys, tilor, când Intel a lansat dispozitivele Edison s, i Galileo, ambele având odistribut, ie Yocto. Este un sistem compatibil cu Raspberry Pi.

Windows

Odata cu lansarea Windows 10, Microsoft a lansat o versiune a sistemului de operarepentru sisteme încorporate. Nu este prima astfel de versiune, deoarece compania alansat o edit, ie încorporata împreuna cu versiunea standard a unui sistem de operarede multa vreme. Spre deosebire de distribut, iile Linux, sistemele de operare pentru IoToferite de Microsoft sunt programe profesionale, proiectate pentru uz industrial. Prinurmare, acestea nu sunt gratis, iar Microsoft ofera suport pentru software-ul pe care îlfurnizeaza.

Când vine vorba de Windows 10, Microsoft s, i-a schimbat put, in abordarea s, i au lansatun set de trei edit, ii diferite, fiecare cu anumit obiectiv:

• Windows 10 IoT Enterprise - Se bazeaza pe versiunile anterioare ale sistemuluide operare Windows Embedded. Este în principiu o versiune a Windows 10 carepoate rula pe perioade lungi de timp, pe dispozitive de genul celor folosite îninteriorul chios, curilor de informat, ii. Acest sistem de operare este compatibil cuversiunile mai vechi ale familiei Windows Embedded. Sistemul de operare a fostdezvoltat pentru a fi utilizat în sisteme profesionale, având o securitate superioaras, i permit,ând un control bun al dispozitivelor industriale.

• Windows 10 IoT Mobile Enterprise - Se bazeaza pe sistemul de operare Windows10 Mobile s, i pe sistemele de operare anterioare pe care Microsoft le-a dezvoltatpentru a rula pe dispozitivele mobile. Fiind succesorul Embedded Handheld,acesta este optimizat pentru a fi utilizat în dispozitive portabile, cum ar fiscanerele de coduri de bare. Aceasta versiune nu suporta aplicat, ii desktop, des, iofera o interfat,a grafica.

• Windows 10 IoT Core - Este singurul sistem de operare gratuit. Acest sistem deoperare este compatibil cu dispozitive ARM, cum ar fi Raspberry Pi sauDragonBoard 410c. În plus, poate rula s, i pe procesoarele Intel. Este gânditpentru a fi folosit pentru prototipuri, dupa care sa se faca trecerea la una din celedoua distribut, ii anterioare.

Sisteme de operare în timp real (Real-time Operating Systems - RTOS)

Aceasta categorie consta în sisteme de operare construite de la zero, special pentrudispozitive încorporate. Dupa cum sugereaza s, i numele acestora, aceste sisteme deoperare vizeaza sust, inerea aplicat, iilor în timp real. Ele implementeaza algoritmi deprogramare speciali care se asigura ca orice eveniment extern este tratat imediat.Sisteme de operare în timp real existente nu au nimic în comun, cu except, ia faptului catoate sunt proiectate în acelas, i scop. În contrast cu cele doua categorii anterioare,exemplele pe care le vom ment, iona nu împartas, esc acelas, i nucleu:

• RIOT este un open-source. Arhitectura acestuia îl face us, or de adaptat lasistemele cu memorie redusa. RIOT este compatibil cu Raspberry Pi, BeagleBoard, unele tipuri de Arduino (modele mai avansate care sunt mai mult decât unmicrocontroler s, i au o putere de calcul mai mare).

• Contiki - Contiki este un sistem de operare open source dezvoltat special pentrusisteme IoT de Texas Instruments. Principalul sau avantaj fat,a de alte sisteme de

CAPITOLUL 15. SISTEME ÎNCORPORATE 281

operare similare este consumul redus de energie s, i de memorie.

15.1.3 Elemente specifice sistemelor integrate

15.2 Sisteme simple de intrare ies, ire

Având în vedere faptul ca sistemele inteligente au drept scop extragerea de informat, iidespre mediul înconjurator s, i interact, iunea cu acesta, este necesara integrareasenzorilor s, i a actuatorilor în aceste sisteme.

Un senzor este o componenta electronica sau un modul destinat sa urmareascaevenimente sau modificari din mediu s, i sa transmita datele colectate unui alt dispozitiv.Exemple sunt senzori de temperatura, de umiditate, butoane, senzori de lumina etc.

Un actuator este un element de act, ionare care aduce modificari asupra mediului. Unexemplu foarte bun este un LED.

Aceste sisteme de intrare/ies, ire sunt perifericele specifice dispozitivelor încorporate,deci una din caracteristicile principale ale unui dispozitiv încorporat este capacitatea desuporta conexiuni la aceste periferice.

În dezvoltarea sistemelor inteligente putem alege între mai multe tipuri de periferice înfunct, ie de modul în care acestea se conecteaza s, i schimba date cu dispozitivulîncorporat. Exista periferice simple care comunica direct cu dispozitivul la care suntconectate sau exista unele mai complexe care au o unitate de procesare integrata (unmicrocontroler), permit,ând un schimb mai complex de mesaje.

Din punct de vedere al datelor furnizate dispozitivului la care sunt conectate, perifericelepot sa fie digitale sau analogice (se trimit semnale digitale sau analogice).

Semnalele care sunt continue în timp sunt considerate semnale analogice, în timp cesemnalele care iau valori discrete sunt considerate semnale digitale. Consideram ca unsemnal este continuu daca acesta poate sa ia orice valoare într-un anumit interval.

Daca, de exemplu, semnalul nostru poate lua orice valoare în intervalul [2; 5] (2; 2.1;2.11; 2.11111; 3.(4); s, i as, a mai departe) este un semnal analogic. Daca avem un semnaldiscret, el poate lua doar anumite valori. De exemplu, daca semnalul nostru poate luadoar valorile 1; 0 (pornit / oprit) sau poate lua doar valorile 2; 3; 4; 5; 100, el este digital.

Cum am precizat mai sus, dispozitivele încorporate, cum ar fi Raspberry Pi sau Arduino,expun pini la care aceste sisteme de intrare/ies, ire se pot conecta. În funct, ie de semnalulpe care perifericul în transmite, el trebuie conectat la anumit, i pini (nu putem conecta unsenzor care transmite un semnal analogic la un pin care suporta doar semnale digitale).

Cei mai simpli pini sunt cei care suporta semnale digitale. Ei se numesc pini GPIO(General Purpuse Input/Output) s, i pot sa funct, ioneze în doua moduri, ca intrare sau caies, ire.

În cazul în care un pin GPIO funct, ioneaza ca o ies, ire digitala el poate fi conectat la unsistem de act, ionare pe care îl controlam prin intermediul pinului. În acest caz, pinulfunct, ioneaza ca o baterie s, i poate sa înlocuiasca fie borna pozitiva, fie borna negativaa bateriei. În general vom seta pinul în starea HIGH (1), în care va funct, iona ca o

282 INTRODUCERE ÎN SISTEME DE OPERARE

Figura 15.1: Semnal analogic vs. semnal digital

borna pozitiva, sau LOW (0), în care va funct, iona ca o borna negativa (sau ca un pin deground).

Cel mai simplu exemplu de folosire pentru aces, ti pini este controlul unui LED. Un LEDeste o componenta electronica (o dioda) care genereaza lumina când este strabatuta decurent. Deci, pentru a face un LED sa lumineze, e suficient sa îl conectam la o baterie.

CAPITOLUL 15. SISTEME ÎNCORPORATE 283

În Figura 15.2 avem un LED conectat la pinii unui Raspberry Pi. Unul din pini esteconectat la ground (borna negativa a bateriei) iar celalalt este conectat la un pin GPIO.Daca scriem valoarea 1 pe pin, acesta va genera un voltaj s, i LED-ul va începe salumineze. Daca scriem valoarea 0 pe pin, acesta va fi practic conectat la doua bornenegative, deci nu va lumina. Jonglând cu aceste doua stari putem face diverse jocuri delumini.

Pe de alta parte, putem folosi un pin digital ca intrare. În acest caz el se comporta ca unvoltmetru, care masoara diferent,a de potent, ial relativ la ground-ul placii, adica tensiuneala nivelul pinului. Daca tensiunea este mai mica decât jumatate din valoarea maximasuportata de placa (Vcc/2), pinul va raporta valoarea 0. În caz contrar, se va raportavaloarea 1.

Putem, de exemplu sa conectam un buton la un astfel de pin s, i sa citim starea butonului.În general, daca butonul va fi apasat vom citi o tensiune apropiata de tensiunea maximaa placii, iar daca butonul nu este apasat, tensiunea va fi aproape 0.

Pinii GPIO sunt utili în interact, iunea cu periferice simple cum ar fi LED-uri sau butoane,dar majoritatea senzorilor s, i a elementelor de act, ionare nu funct, ioneaza atât de us, or.Pentru perifericele mai complexe avem la dispozit, ie pini analogici s, i PWM.

În general, senzorii sunt rezistent,e variabile care îs, i modifica valoarea în funct, ie defactorii de mediu. Astfel, caderea de tensiune de pe senzor se schimba.

Pinii analogici funct, ioneaza ca un voltmetru care masoara caderea de tensiune de pesenzor s, i o transforma într-o valoare finita. Dispozitivul care face conversia din voltaj într-o valoare întreaga, transmisa placii, se numes, te convertor analog-digital (ADC). Valorileîntregi returnate depind de numarul de bit, i integrat, i în ADC. Daca consideram n numarulde bit, i al ADC-ului, valorile sunt în intervalul 0-2n−1. De exemplu, convertorul analog-digital integrat în placut,ele Arduino are 10 bit, i, deci valorile citite de pe pinii analogicisunt în intervalul 0-1023.

Putem astfel sa conectam un fotorezistor la un pin analog, iar în funct, ie de luminozitateamediului vom citi valori mai mici sau mai mari. Daca identificam o luminozitate preamica, putem scrie valoarea 1 pe un pin GPIO conectat la un LED s, i sa aprindem LED-ul,obt, inând un prototip al unui sistem de iluminare inteligent.

Am stabilit ca pentru a citi semnale analogice vom folosi pini conectat, i la un ADC, dar cefacem pentru a trimite semnale analogice mediului?

În primul rând exista posibilitatea de a folosi un convertor digital-analogic (DAC). Eltransforma o valoarea digitala într-un semnal analogic. Putem deci sa scriem o valoarepe un astfel de pin pentru a controla tensiunea de ies, ire a pinului. Astfel de pini suntfolosit, i pentru a controla motoare.

Pe de alta parte, convertoarele de la digital la analogic sunt destul de scumpe, de aceeamulte dispozitive încorporate nu expun astfel de pini. În schimb, ele folosesc o metodamai accesibila de simulare a semnalelor analogice, PWM.

Pulse Width Modulation (PWM) este o modalitate de a simula semnale analogice prinmijloace digitale. Putem realiza acest lucru prin alternarea rapida între semnale care potavea doar doua valori (0/1), dar prin modificarea factorului de umplere, adica timpul încare pinul are valoarea 1. De multe ori receptorul semnalului va face o medie a celordoua valori alternative.

284 INTRODUCERE ÎN SISTEME DE OPERARE

De exemplu, daca avem un LED care clipes, te foarte repede, ochiul uman îl va percepeca un LED ce lumineaza la o anumita intensitate. În funct, ie de raportul între perioadaîn care LED-ul este aprins versus perioada de timp în care el este stins, lumina va fiperceputa la o intensitate mai mare sau mai joasa.

Aces, ti pini pot fi folosit, i pentru a controla LED-uri sau chiar motoare.

15.3 Magistrale de comunicare

Pâna acum am enumerat modalitat, ile de conectare a perifericelor simple, folosind pinidigitali sau analogici. Cum am ment, ionat deja, multe din perifericele existente suntsisteme complexe, care au un procesor integrat s, i care trimit date structurate. În plus,exista multe periferice care comunica wireless cu dispozitivele încorporate.

Pentru a interact, iona cu aceste dispozitive de intrare/ies, ire complexe, exista diverseprotocoale prin fir (ex. serial, SPI , I2C, Modbus, CAN ) sau wireless (ex. Bluetooth,Wi-Fi, LoRa, Z-Wave ). Unele din aceste protocoale sunt valabile s, i pentrucalculatoarele clasice. De exemplu, porturile USB implementeaza o conexiune seriala.Pe de alta parte, folosim zilnic mouse-uri wireless, unele folosind Bluetooth pentrucomunicare. În schimb, multe din protocoalele pe care le vom descrie mai departe aufost implementate special pentru comunicarea între dispozitivele încorporate s, iperiferice.

15.3.1 Comunicare prin fir

Unele din primele periferice complexe au fost dezvoltate pentru a fi conectate direct lacalculatoare, transmisia facându-se prin intermediul firelor. Cea mai cunoscuta astfel deconexiune este conexiunea seriala.

În continuare vom descrie câteva din protocoalele pe care mult, i senzori s, i alte perifericele implementeaza.

15.3.1.1 Comunicarea seriala

Comunicarea seriala e una dintre cele mai cunoscute s, i simple protocoale. Protocolulpresupune trimiterea datelor între dispozitive bit cu bit, pe rând. În contrast, exista linii decomunicat, ie paralele, unde datele sunt trimise în paralel. Avantajul comunicarii serialeeste simplitatea.

Pentru a implementa un protocol serial sunt necesare minim doua linii de comunicat, ie,RX s, i TX. Pe fiecare linie se trimit date într-o direct, ie. Fiecare dispozitiv trimite date peTX s, i primes, te date pe linia RX. Astfel, când conectam doua dispozitive, linia RX a unuiase va conecta la linia TX a celuilalt s, i invers.

Pentru a se asigura un transfer corect de date, protocolul serial se bazeaza peurmatoarele elemente:

• Bit, i de date - datele efective transmise între dispozitive;

CAPITOLUL 15. SISTEME ÎNCORPORATE 285

Figura 15.2: PWM

286 INTRODUCERE ÎN SISTEME DE OPERARE

Figura 15.3: Conexiune seriala

• Bit, i de sincronizare - sunt bit, i transmis, i înaintea s, i dupa bit, ii de date, pentru amarca începutul s, i sfârs, itul blocului de date;

• Bit, i de paritate - e o modalitate simpla de a face verificare a datelor transmise (unchecksum foarte simplu); daca trimitem 8 bit, i de date s, i din acei 8 bit, i 5 cont, invaloarea 1, datele trimise cont, in un numar impar de valori de 1, deci bitul deparitate va fi setat la 1, daca numarul de valori de 1 este par, bitul de paritate va fisetat la 0;

• Baud rate - specifica viteza de transmitere a datelor; este foarte important caambele dispozitive conectate sa transmita date la aceeas, i viteza.

Protocolul serial poate fi folosit doar la comunicarea între doua dispozitive. Astaînseamna ca fiecare dispozitiv periferic conectat are nevoie de un port serial separat,facând conectarea multor dispozitive nepractica.

15.3.1.2 SPI

SPI e un protocol mai complicat, care necesita 3 linii pentru comunicare. Datele sunttransmise pe liniile MISO (Master In Slave Out) s, i MOSI (Master Out Slave In). Cea de-atreia linie este folosita pentru sincronizare (SCLK).

SPI vine ca o îmbunatat, ire a conexiunii seriale, încercând sa asigure sincoronizareacelor doua dispozitive care comunica, astfel transmisia de date se face într-un mod maieficient prin reducerea erorilor rezultate de la transmisie. Astfel, SPI se foloses, te de o atreia linie de comunicare dedicata sincronizarii transmisiei de date.

CAPITOLUL 15. SISTEME ÎNCORPORATE 287

Un alt avantaj al SPI e ca suporta mai multe periferice, denumite slave, conectate la undispozitiv principal, numit master. Fiecare dispozitiv este activat sau dezactivat la unmoment dat folosind un pin GPIO oarecare setat la valoare 0 sau 1.

15.3.1.3 I2C

I2C, sau IIC (Inter-Integrated Circuit) e un alt protocol care necesita doua linii pentrutransmiterea de date, SDA s, i SCL. SDA e linia pe care se transmit efectiv datele, în timpce SCL e linia de sincronizare.

Avantajul protocolului I2C este ca putem conecta mai multe dispozitive simultan. Avemdispozitive master s, i slave. În cazul I2C este foarte importanta sincronizarea dintredispozitive. Avem o singura linie pe care se trimit toate datele. De aceea, comunicareaeste mereu init, iata de un master care cere informat, ii de la unul din dispozitivele slaveconectate.

Fiecare dispozitiv are o adresa formata din 7 bit, i, adresa înregistrata în periferic.Sistemul master interogheaza pe rând fiecare adresa, putând astfel sa descopereadresele tuturor dispozitivelor legate la sistem.

15.3.1.4 Alte protocoale folosite industrial

Modbus

Un protocol folosit destul de mult in industrie este ModBus. Spre deosebire de celeenumerate anterior, acesta este un protocol, software. El defineste cum arata dateletransmise intre dispoizitive, insa fara a defini o infrastructura de comunicatie. Existadiferite variante, in functie de cel mijloc de transport de date se foloseste. Exemplesunt o legatura seriala sau Ethernet (retea). Similar cu I2C, fiecare periferic conectat lamodbus are o adresa unica.

CAN

Un protocol folosit în industria Auto este CAN. Acesta lega sistemele de control dinautoturisme de periferice. Aproape toate sistemele electronice din autoturisme suntlegate la magistrala care foloseste protocolul CAN. Fiecare dispozitiv conectat lamagistrala se numeste nod. Fiecare nod are un ID (adresa) unic. Protocolul are ovarianta de viteza redusa dar care este toleranta la erori. Protocolul a fost gandit pentrutransmise in timp real.

15.3.2 Comunicarea wireless

Pe masura ce platformele IoT au evoluat, ele au fost incluse în multe sisteme întinse pearii largi, cum ar fi sisteme agricole. Pentru astfel de cazuri, conectarea fizica asenzorilor la sistemele de procesare este costisitoare s, i consuma mult timp. Drepturmare, au fost implementate o mult, ime de microcontrolere s, i calculatoare integratecare suporta conexiuni Wi-fi. Cu toate acestea, deoarece multe dintre dispozitiveleutilizate în sistemele inteligente funct, ioneaza pe baterie, a existat necesitatea unui

288 INTRODUCERE ÎN SISTEME DE OPERARE

protocol care sa implice consum redus de energie. Astfel, au aparut mai multeprotocoale wireless, special concepute pentru IoT.

15.3.2.1 Bluetooth

Acesta a fost unul dintre primele protocoale implementate în sistemele IoT. Pe masurace domeniul s-a dezvoltat s, i Bluetooth a ramas principalul protocol de comunicare întredispozitive, acesta a fost extins, implementându-se Bluetooth 4.0, sau Bluetooth LowEnergy (BLE) . Acesta este special conceput pentru a consuma put, ina energie înprocesul de transfer al datelor.

15.3.2.2 Z-wave

Este un protocol proiectat de o companie daneza s, i este utilizat în principal pentrusistemele de automatizare a caselor (întrerupatoare, termostate, încuietori inteligente).Comunicat, ia între dispozitive se face prin unde radio, iar dispozitivele trebuie sa fieamplasate la o distant,a de maxim 100 m.

15.3.2.3 Sigfox

Este un protocol dezvoltat de o companie franceza. Protocolul este conceput pentrutransmiterea de date între dispozitive situate la distant,e considerabile unul de celalalt.Principalul avantaj al Sigfox este ca poate fi utilizat în agricultura sau în alte domeniiîn care dispozitivele trebuie sa transmita date pe distant,e mari. Folosind Sigfox, putemtransmite date pe distant,e de pâna la 50 km în câmp deschis.

15.3.2.4 LoRa

Numele protocolului provine de la sintagma Long Range, raza lunga, s, i este dezvoltatde firma Semtech, o companie din California, SUA. Este similar cu Sigfox, suportândschimbul de pachete pe distant,e lungi, pâna la 50 km în câmp deschis, folosind foarteput, ina energie pentru transmiterea de date.

15.3.3 Sisteme Gateway

Pentru a permite acestor periferice sa trimita s, i sa primeasca date de la dispozitiveleintegrate, cele doua part, i trebuie sa implementeze acelas, i protocol. Prin urmare,construirea unei solut, ii IoT care este, de exemplu, compatibila atât cu periferice LoRacât s, i Sigfox, necesita implementarea celor doua protocoale în logica aplicat, iei, iarintroducerea unui al treilea protocol necesita alte ore de munca. De aceea, pentrucomunicarea cu astfel de periferice, în general se folosesc gateway-uri. În general,gateway-urile sunt dispozitivele care implementeaza protocolul de comunicat, ie periferic,pe de o parte, s, i un protocol TCP / IP standard, pe de alta parte, pentru a comunica cudispozitivul încorporat. Rezultatul este ca aplicat, ia care ruleaza pe dispozitivul

CAPITOLUL 15. SISTEME ÎNCORPORATE 289

încorporat comunica doar cu gateway-urile, folosind un singur protocol, s, i esteindependenta de senzorii conectat, i la sistem.

15.4 Dezvoltarea programelor pentru sisteme integrate

În procesul de dezvoltare al aplicat, iilor pentru sisteme integrate, trebuie sa t, inem contde faptul ca aplicat, ia dezvoltata va funct, iona pe o perioada îndelungata s, i pe un sistemautonom. Astfel, trebuie sa ne asiguram ca orice posibile erori sunt tratate cu atent, ie,fara a necesita intervent, ie umana.

Putem identifica urmatorii pas, i în dezvoltarea programelor pentru aceste sisteme:

1. Scrierea programului

2. Testarea pe mai multe dispozitive

3. Instalarea aplicat, iei pe toate dispozitivele necesare

4. Aducerea la zi a aplicat, iei

În ceea ce prives, te scrierea programului, procesul nu este diferit de cel pentru aplicat, iileobis, nuite. În schimb procesul de rulare a aplicat, iei pe dispozitiv este diferit. Având învedere ca ne referim la dispozitive care nu au fost concepute pentru interact, iunea directacu utilizatorul, ele nu au în general o interfat,a grafica. Practic noi vom scrie programulfolosind un calculator obis, nuit, dupa care vom urca executabilul pe dispozitivul integrat.

Cel mai important aspect când vine vorba de rularea unei aplicat, ii pe un astfel dedispozitiv este ca de cele mai multe ori arhitectura pe care vom rula nu este aceea pecare compilam aplicat, ia. De exemplu, daca scriem un program pentru un Raspberry Pi,care are un procesor ARM, va trebui sa generam un executabil pentru acest procesor.Având în vedere ca executabilul este generat pe calculatorul personal, procesor x84,avem nevoie de utilitare care permit compilarea programelor pentru alte arhitecturi.

Procesul de compilare a unui program pentru a rula pe o alta arhitectura se numes, tecross-compiling.

Odata generat executabilul, acesta trebuie transferat pe sistemul integrat, sistem la carenu avem o conexiune directa. Astfel ca sunt necesare utilitare precum SCP pentru atransfera fis, ierul executabil pe dispozitive. În plus, avem nevoie de acces la dispozitivpentru a putea rula efectiv executabilul. Cea mai accesibila metoda de a face acestlucru este sa deschidem o conexiune SSH la dispozitiv.

Odata ce avem versiunea finala a executabilului, acesta trebuie transferat pe toatedispozitivele pe care urmeaza sa le dam în product, ie. Acest procedeu este maicomplicat, de aceea exista platforme speciale pentru asa ceva, cum ar fi Resin.io sauAndroid Things. Pentru a le folosi trebuie sa înregistram toate dispozitivele în cadrulplatformei, dupa care se foloses, te un sistem de distribut, ie pentru a instala aplicat, ia pefiecare dispozitiv. În plus, aceste platforme ofera posibilitatea de a aduce îmbunatat, iriaplicat, iei s, i de a aduce la zi toate dispozitivele.

În ceea ce prives, te aducerea la zi, este important sa t, inem cont de faptul ca dispozitivelepe care lucram sunt în product, ie, integrate în diverse obiecte sau sisteme în funct, iune.De aceea este foarte important ca procesul de aducere la zi sa decurga fara întreruperi s, i

290 INTRODUCERE ÎN SISTEME DE OPERARE

sa daca intervine vreo problema, sa ne asiguram ca aceasta nu rezulta în imposibilitateade a mai folosi aparatul în cauza.

15.5 Internet of Things

În prezent, una din cele mai raspândite not, iuni din domeniul IT este cea de InternetulLucrurilor (Internet of Things sau pe scurt IoT). Acest cuvânt cheie se refera la ideea deinteligent,a ambientala, unde suntem înconjurat, i de obiecte s, i aparate inteligente care seadapteaza nevoilor noastre s, i act, ioneaza în consecint,a, cum ar fi lumini inteligente carefunct, ioneaza pe baza luminozitat, ii exterioare, asistent, i controlat, i vocal sau chiar mas, iniautonome. Scopul IoT este sa traim într-un mediu în care aceste dispozitive inteligentesunt integrate în jurul nostru, devenind imperceptibile, dar îmbunatat, indu-ne stilul deviat,a.

Cel mai potrivit termen care sa descrie aceasta situat, ie spre care tinde InternetulLucrurilor este cel de calcul omniprezent (ubiquitous computing). Este conceptul care aprecedat IoT-ul s, i care a fost introdus în jurul anului 1988 de Mark D. Weiser, cercetatorla Xerox PARC. Chiar daca în perioada respectiva existau nis, te limitarile hardwareconsiderabile, Weiser a reus, it sa anticipeze progresul care va veni. De asemenea, el apublicat mai multe lucrari care în care descrie concepte similare cu cele din IoT, precums, i riscurile pe care un asemenea progres le aduce. În cadrul lucrarii intitulataComputerul pentru secolul XXI, Weiser ment, ioneaza ideea ca un computeromniprezent nu se refera la un lucru pe care îl pot, i purta cu us, urint,a, ci mai degraba laun lucru care este o parte a traiului zilnic la un asemenea nivel încât nu îi mai observamprezent,a. Integrarea perfecta a computerelor în activitat, ile noastre zilnice ramâne s, i înprezent o provocare continua la care evolut, ia tehnologica se lupta sa faca fat,a. Uneledin previziunile lui Mark Weiser ment, ioneaza lupta de a obt, ine o tehnologie calma, oproblema cu care ne confruntam acum prin asaltul de informat, ii sau prin încalcareafrecventa a intimitat, ii noastre prin cunoscutele atacuri cibernetice. Des, i suntem departede a atinge calmul tehnologic, evolut, iile tehnologice se zbat sa îndeplineasca aceastanevoie.

Unul dintre primele dispozitive de uz zilnic care a fost conectat la Internet a fostautomatul de Coca-Cola de la Universitatea Carnegie Mellon. Aparatul a fost dezvoltatla începutul anilor 1980 de un grup de student, i. Scopul student, ilor a fost de a dezvoltao modalitate de prin care sa se poata verifica daca automatul este gol fara a necesitadeplasarea inutila. În zilele noastre, acest aparat este considerat unul din primelesisteme inteligente.

TODO - poza cu aparatul

În anul 2000, Kevin Ashton, co-fondator al Centrului Auto-ID din cadrul MassachusettsInstitute of Technology lucra la ceea ce avea sa devina Internetul Lucrurilor (IoT), termenpe care l-a brevetat în anul 2002, împreuna cu David L. Brock. În acea perioada, echipalui Kevin Ashton lucra la o modalitate de standardizare a identificarii prin radiofrecvent,a(RFID) prin conectarea informat, iilor obt, inute la Internet. În prezent exista la nivel globallaboratoare Auto-ID care lucreaza împreuna la dezvoltarea de sisteme RFID s, i IoT.

În trecut, o idee atât de îndrazneat,a precum IoT ducea lipsa unui fundament tehnologicsolid. Pe lânga lipsa tehnologiilor necesare, multe din întrebarile puse la momentul

CAPITOLUL 15. SISTEME ÎNCORPORATE 291

respectiv nu aveau raspuns. Exista într-adevar o modalitate prin care puteminterconecta totul? Va face Internetul as, a cum îl s, tim noi fat,a noilor miliarde dedispozitive care comunica între ele? Daca nu, este posibil sa îmbunatat, im Internetul? Înprezent, astfel de îndoieli nu mai reprezinta un obstacol în dezvoltarea domeniului IoT;tehnologia a progresat rapid în punctul în care poate face fat,a dezvoltarii accelerate aInternetului lucrurilor.

Putem observa cu us, urint,a ca oamenii de s, tiint,a au avut tendint,a de a construi sistemeconectate la Internet cu mult timp în urma. Totus, i, întrebarea care ramâne valabila estede ce s, i-au dorit interconectarea obiectelor s, i de ce a câs, tigat Internetul lucrurilor atâtde multa popularitate?

Un raspuns simplu s, i direct ar fi acela ca oamenii doresc sa automatizeze cât mai multedin sarcinile zilnice. De altfel, raspunsul este potrivit nu doar pentru evolut, ia IoT, cipentru evolut, ia tehnologica în general. De secole am cautat metode de automatizare amuncii noastre prin intermediul mas, inilor, la fel cum în momentul de fat,a ideea de aavea aspiratoare autonome sau frigidere care fac singure cumparaturile on-line esteuna foarte atragatoare. Ca rezultat, companiile IT au investit mult în cercetare s, idezvoltare în acest domeniu ceea ce a dus la scaderea pret,ului senzorilor,microcontrolerelor, gateway-urilor etc., facând solut, iile inteligente accesibile publiculuilarg.

Un aspect important pe care sa îl luam în calcul când discutam despre dispozitiveinteligente este acela ca un obiect inteligent nu e neaparat un sistem IoT. Sa luamexemplul unor becuri inteligente, care lumineaza mai puternic sau mai slab în funct, ie delumina ambientala. Des, i este evident ca avem un dispozitiv inteligent, care îs, iadapteaza comportamentul în funct, ie de ambient s, i de nevoile noastre, sistemul nu esteunul IoT, nu avem conectivitate la Internet s, i nu conectam mai multe sisteme diferite.

Fiind vorba despre dispozitive care comunica, pentru Internet of Things se poate definio stiva pentru a reprezenta traseul pe care datele sunt transmise. Des, i nu este definitaca un standard, se considera, în general, ca majoritatea sistemelor Internet of Things auurmatoarea structura:

• Senzori s, i actuatori

• Procesare s, i stocare locala

• Conexiunea la Internet

• Cloud

TODO - stiva e desenata de mine, personajul este luat de pe Internet de lahttp://www.cchc.cl/informacion-a-la-comunidad/industria-de-la-construccion/personaje/

Acum, ca suntem familiarizat, i cu caracteristicile unui sistem IoT, sa aruncam o privire launele dintre cele mai utilizate dispozitive inteligente din zilele noastre. Este important saobservam modul în care urmaresc stiva IoT s, i care este scopul final al acestora.

292 INTRODUCERE ÎN SISTEME DE OPERARE

15.5.1 Implementari de sisteme IoT

15.5.1.1 Alexa

TODO - poza Alexa

La o prima privire, solut, ia Alexa, dezvoltata de Amazon, nu pare nimic mai mult decâtun difuzor wireless. De fapt, sistemul este capabil sa faca mult mai mult decât redareaunor melodii, fiind un sistem complex de control vocal. Prin intermediul Alex utilizatoriipot seta alarme, sau chiar cauta articole pe Wikipedia, ei pot chiar obt, ine informat, ii întimp real despre condit, iile meteorologice s, i de trafic. În plus, Alexa poate funct, iona s, ica un sistem de control al casei, fiind compatibil cu o gama larga de dispozitive (becuri,televizoare etc.).

Din punct de vedere tehnic, Alexa este un dispozitiv inteligent care utilizeaza unmicrofon pentru a obt, ine informat, ii de la utilizator, trimite datele în cloud, unde acesteasunt procesate. Odata ce sistemul din cloud "înt,elege" comanda, acesta genereazaraspunsul, fie ca este vorba despre anumite informat, ii pe care le primes, te de peInternet, fie despre unele act, iuni pe care dispozitivul trebuie sa le efectueze, s, i trimiteraspunsul înapoi pe dispozitiv.

15.5.1.2 Ceasuri inteligente

Câteva din caracteristicile principale ale ceasurilor inteligente sunt comanda vocala,ghidarea pe harta, redarea muzicii sau afis, area de mesaje text. Aceste dispozitive suntcapabile sa efectueze sarcini complexe, majoritatea fiind dotate cu sisteme de operaremobile precum Android. Dimensiunile reduse s, i utilitatea le transforma în "calculatoareportabile" s, i chiar "telefoane care pot fi purtate", ultimele versiuni fiind capabile saraspunda s, i sa efectueze apeluri vocale s, i video.

În realitate, aceste sisteme sunt în general alcatuite din doua componente: ceasulinteligent s, i telefonul la care acesta se conecteaza. Ceasurile sunt de fapt senzorii s, iecranul care reda imagini, în timp ce telefoanele inteligente sunt adevaratele dispozitivede procesare. Cele doua comunica de obicei prin Bluetooth 4.0. Provocarea principalaîn proiectarea acestui tip de dispozitive este de a asigura consumul de energie cât mairedus posibil.

15.5.1.3 Electrocasnice inteligente

În ultima perioada, electrocasnicele au devenit "inteligente", ceea ce înseamna ca sepot conecta la Internet într-un fel sau altul s, i, bineînt,eles, pot comunica între ele pentrua optimiza cantitatea de energie utilizata. Pornind de la frigidere, mas, ini de spalat vase,aspiratoare sau chiar termostate inteligente, în general funct, ionarea lor poate ficontrolata la distant,a, printr-o aplicat, ie telefonica.

Pentru toate aceste dispozitive inteligente, principiul de funct, ionare este acelas, i: avemsenzori care trimit date catre o unitate centrala. Datele ajung în cloud, astfel încâtutilizatorii sa poata vizualiza datele în orice moment s, i de oriunde. Dupa aceea, orice

CAPITOLUL 15. SISTEME ÎNCORPORATE 293

comanda a utilizatorului este trimisa de catre utilizator în cloud, de unde este transmisacalculatorului integrat, care comanda actuatorii (ex. pornes, te aspiratorul).

Un raport elaborat de Institutul de Cercetare a Puterii Electronice (EPRI) ment, ioneaza cala nivel global, în urmatorii 20 de ani s-ar putea economisi energie electrica în valoarede mai mult de 70 de miliarde de dolari daca aparatele electrocasnice obis, nuite ar fiînlocuite cu unele inteligente.

(sursa:https://www.reuters.com/article/us-utilities-smartgrid-epri/u-s-smart-grid-to-cost-billions-save-trillions-idUSTRE74N7O420110524)

15.5.2 Edge/Fog Computing

La început, majoritatea sistemelor IoT funct, ionau într-un mod foarte simplu. Ele adunaudate din mediul înconjurator, dupa care trimiteau datele în cloud, unde se faceau toateprocesarile s, i se luau toate deciziile. În timp, lumea s, i-a dat seama ca o astfel dearhitectura are un mare dezavantaj: se trimit cantitat, i imense date redundante în cloud.Acesta este motivul pentru care a aparut un concept destul de nou, cel de “FogComputing” (fog = ceat,a) sau “Edge Computing” (edge = margine). “Fog Computing”este un termen introdus de Cisco în noiembrie 2015. El face referire la cuvântul "ceat,a"din prisma faptului ca în acest caz prelucrarea datelor se face part, ial local s, i part, ial încloud (cloud = nor), adica în ceat,a. În acelasi mod, Intel a facut referire la acest conceptfolosind sintagme "Edge computing", deoarece prelucrarea se realizeaza la margineacloud-ului.

Indiferent de sintagma folosita, ceea ce face ca aceasta arhitectura sa iasa în evident,aeste capacitatea ei de a procesa rapid datele pe loc, reducând semnificativ cantitatea dedate transmise în cloud.

Adesea, termenul de "Fog Computing" se înlocuies, te cu "Edge Computing", deoareceambele servesc aceluias, i scop s, i definesc acelas, i lucru: procesarea s, i stocarea localaa datelor. Singura diferent,a dintre cei doi termeni este entitatea care lansat cele douasintagme: "Fog Computing" este un termen popularizat de Cisco, în timp ce "EdgeComputing" a fost introdus de Intel.

Pentru a înt,elege mai bine important,a prelucrarii locale a datelor, vom lua un exemplusimplu, cel al unei stat, ii meteorologice.

Avem o stat, ie meteorologica care monitorizeaza viteza vântului. Sa presupunem ca semasoara viteza vântului o data la 2 minute, ceea ce înseamna 30 de masuratori într-oora sau 720 de masuratori într-o singura zi. Cantitatea de date înregistrate în saptamânisau ani ar fi vasta s, i dificil de procesat sau stocat. Sa ne imaginam acum ca stat, iameteo face masuratori o data la doua minute s, i înregistreaza datele în cloud numai dacaviteza vântului s-a schimbat, deoarece, datorita procesarii locale, are capacitatea de adecide daca noile masuratori sunt egale cu cele anterioare sau nu. Acest lucru înseamnaacelas, i numar de masuratori, însa datele stocate sunt mult mai put, ine.

294 INTRODUCERE ÎN SISTEME DE OPERARE

15.5.3 Securitatea IoT

Una din vulnerabilitat, ile sistemelor IoT provine chiar din caracteristica principala aacestor sisteme, conectivitatea. Avem de-a face cu platforme care partajeaza cantitat, imari de date sensibile, ceea ce le face vulnerabile la atacuri cibernetice. Când negândim la dispozitive IoT e important sa ne amintim ca unele controleaza fabrici întregi,mas, ini autonome sau chiar un sistem de securitate a unei cladiri de birouri. De aceeaeste important sa cons, tientizam important,a securizarii acestor sisteme.

Desigur, o mult, ime de solut, ii menite sa rezolve vulnerabilitat, ile de securitate sunt încurs de dezvoltare s, i implementate în infrastructura dispozitivelor IoT, în timp ce secerceteaza continuu tehnologii noi s, i îmbunatat, ite pentru stocarea s, i securizarea unorcantitat, i mari de date.

15.6 Sumar

În acest capitol au fost prezentate principalele moduri de utilizare ale sistemelor deoperare în calculatoare industriale. Am definit ce înseamna un calculator industrial,care sunt proprietat, ile s, i diferent,ele sale fat,a de un sistem de calcul obis, nuit.

Sistemele integrate sunt folosite pentru un scop bine stabilit, au om interfat,a limitata cuutilizatorul s, i ruleaza sisteme de operare special adaptate pentru sarcinile sale. Sedefinesc doua tipuri de sisteme integrate: microcontrolere s, i calculatoare. Primacategorie este un sistem de procesare limitat, însa care funct, ioneaza în timp real s, ifolosit pentru conectarea hardware-ului. Calculatoarele pe de alta parte ruleaza unsistem de operare, în general nu unul în timp real, pot procesa o cantitate mai mare dedate s, i por fi conectate la ret,ea.