Strategii DE Economisire A Energiei In Retele DE Senzori Wireless
CUPRINS
1. Introducere … … 5
1.1 Motivație și obiective … .. 5
1.2 Prezentarea secțiunilor următoare … . 6
2. Fundamentare teoretică: rețele de senzori wireless … . 8
2.1 Aspecte generale ale rețelelor de senzori wireless … … 8
2.2 Aspecte de comunicație în rețele de senzori wireless … .. 13
2.2.1 Standardul Zig-Bee Alliance … …1 3
2.2.2 Clasificare a protocoalelor de rutare … … 17
2.2.3 Protocoalele TEEN și APTEEN … … 20
2.3 Platformă hardware … …2 1
2.3.1 Modulul IRIS … .. 22
2.3.2 Placa de senzori MTS420/400 … … 22
2.3.3 Placa de interfațare și programare MIB520 … . 23
2.4 Platformă software … .2 4
2.4.1 TinyOS … … 24
2.4.2 nesC… .. 25
2.4.3 XMesh … . 27
2.4.5 Utilitare Crossbow … …2 9
3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectura adaptată și metode de
agregare și fuziune … . 31
3.1 Arhitectura aplicației … . 31
3.2 Strategii de economisire a energiei … … 35
3.2.1 Interfețe utilizate … …3 5
3.2.2 Nucleul logic decizional: Automat cu stări finite … . 37
3.2.3 Logica de comunicație. Terminologie folosită … .. 39
3.2.4 Agregare și fuziune de date … ..4 3
3.2.5 Discutarea problemei vechimii și sincronizării măsurărilor … … 44
3.2.6 Discutarea problemei schimbării părintelui unui nod … .4 7
3
3.2.7 Dimensionarea într-un posibil proiect comercial sau didactic … … 49
3.3 Implementare și testarea aplicației … . 50
3.3.1 Măsurarea temperaturii. Compresie de date … … 51
3.3.2 Mesaje de tip senzor și de comandă … . 53
3.3.3 Mesaje de tip comanda 2 și diagnoză … . 56
3.3.4 OTAP (Over-The-Air-Programming) … .5 9
4. Studiu de caz … .. 61
4.1. Definirea indicatorilor de performanță și a condițiilor de studiu … ..6 1
4.2. Rezultate și concluzii pentru studiul de caz … .6 3
5. Concluzii. Direcții de dezvoltare … … 70
5.1 Concluzii … . 70
5.2 Direcții de dezvoltare … … 71
6. Bibliografie… .. 73
ANEXA … .. 74
=== 2 ===
CUPRINS
1. Introducere … … 5
1.1 Motivație și obiective … .. 5
1.2 Prezentarea secțiunilor următoare … . 6
2. Fundamentare teoretică: rețele de senzori wireless … . 8
2.1 Aspecte generale ale rețelelor de senzori wireless … … 8
2.2 Aspecte de comunicație în rețele de senzori wireless … .. 13
2.2.1 Standardul Zig-Bee Alliance … …1 3
2.2.2 Clasificare a protocoalelor de rutare … … 17
2.2.3 Protocoalele TEEN și APTEEN … … 20
2.3 Platformă hardware … …2 1
2.3.1 Modulul IRIS … .. 22
2.3.2 Placa de senzori MTS420/400 … … 22
2.3.3 Placa de interfațare și programare MIB520 … . 23
2.4 Platformă software … .2 4
2.4.1 TinyOS … … 24
2.4.2 nesC… .. 25
2.4.3 XMesh … . 27
2.4.5 Utilitare Crossbow … …2 9
3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectura adaptată și metode de
agregare și fuziune … . 31
3.1 Arhitectura aplicației … . 31
3.2 Strategii de economisire a energiei … … 35
3.2.1 Interfețe utilizate … …3 5
3.2.2 Nucleul logic decizional: Automat cu stări finite … . 37
3.2.3 Logica de comunicație. Terminologie folosită … .. 39
3.2.4 Agregare și fuziune de date … ..4 3
3.2.5 Discutarea problemei vechimii și sincronizării măsurărilor … … 44
3.2.6 Discutarea problemei schimbării părintelui unui nod … .4 7
3
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
3.2.7 Dimensionarea într-un posibil proiect comercial sau didactic … … 49
3.3 Implementare și testarea aplicației … . 50
3.3.1 Măsurarea temperaturii. Compresie de date … … 51
3.3.2 Mesaje de tip senzor și de comandă … . 53
3.3.3 Mesaje de tip comanda 2 și diagnoză … . 56
3.3.4 OTAP (Over-The-Air-Programming) … .5 9
4. Studiu de caz … .. 61
4.1. Definirea indicatorilor de performanță și a condițiilor de studiu … ..6 1
4.2. Rezultate și concluzii pentru studiul de caz … .6 3
5. Concluzii. Direcții de dezvoltare … … 70
5.1 Concluzii … . 70
5.2 Direcții de dezvoltare … … 71
6. Bibliografie… .. 73
ANEXA … .. 74
4
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
1. INTRODUCERE
1.1 Motivație și obiective
Tehnologia rețelelor de senzori wireless a fost considerată de către cercetători încă de la începutul anilor 80 drept un domeniu cu un potențial uriaș. Acest potențial provine chiar din structura și funcționarea lor – un număr mare de noduri (senzori) de putere scăzută, procesoare și memorii slabe legate între ele prin intermediul unei rețele fără fir, dar care formează un instrument foarte puternic pentru măsurarea și monitorizarea mediului. Nodurile cu senzori folosite au o multitudine de funcții și capabilități. Diferența între o astfel de rețea de senzori și o colecție de senzori este dată de însăși prezența rețelei. Ea permite coordonarea și colaborarea între senzorii componenți.
Finanțată inițial cu scopul aplicațiilor militare, dezvoltarea acestui domeniu a luat
amploare în prezent și în arii ale industriei civile. Stimulii sunt atât progresul tehnologiei din zilele noastre, cât și de apariția tot mai multor aplicații ce se pot rezolva mai eficient folosind
rețelele de senzori wireless. Exemple de aplicații importante sunt: rețelele radar pentru
controlul traficului aerian, rețele pentru controlul traficului rutier, rețelele electrice naționale
și regionale, rețeaua națională meteorologică, aplicații din domeniul sănătății, monitorizarea
mediului, predicția dezastrelor naturale, monitorizarea stării bolnavilor, procesele de
fabricație, transporturile și nu în ultimul rând asigurarea confortului în locuințe. Aceste
aplicații foloseau în trecut calculatoare specializate și protocoale de comunicație foarte
scumpe sau nestandardizate.
Foarte importantă este deschiderea pe care această tehnologie o prezintă pentru soluționarea problemelor din viața de zi cu zi a oamenilor. Se așteaptă ca în următorii ani rețelele de senzori wireless să permită realizarea: controlului de la distanță a încălzirii și al iluminatului, monitorizării medicale de la distanță, monitorizării medicale proprii, supravegherii copiilor etc.
Rețele de senzori wireless prezintă o bună absorbție a celor mai actuale avansări tehnologice de fabricație, de exemplu tehnologii nano-metrice. Reducerea mărimii senzorilor deschide ușa unor noi și variate aplicații, dar în același timp și cercetării altor metode de gestionare cât mai bună a resurselor rețelei.
Există o serie de provocări pentru cercetătorii din domeniu, ele sunt legate de costuri,
dimensiuni, topologie dar poate cel mai important , provocări legate de eficientizarea
5
Universitatea „Politehnica” Timișoara
1. Introducere
consumului de energie în rețea – senzorii ce formează rețeaua sunt alimentați cu ajutorul bateriilor, deci o sursă limitată de energie, astfel că optimizarea rețelei și a consumului de energie este foarte importantă pentru viitor.
Lucrarea de față își propune ca obiectiv principal economisirea energiei dintr-o rețea de senzori wireless formată pe baza protocolului XMesh. Există o multitudine de aplicații cu senzori wireless care pot beneficia de progresele obținute în această direcție de cercetare. Soluția propusă va fi din punct de vedere arhitectural la un nivel mai ridicat decât XMesh, folosind facilitățile puse la dispoziție de acest protocol..
Din punct de vedere al transmisiei de date, dintre metodele cunoscută de reducere a consumului de energie se evidențiază agregarea și fuziunea de date. Astfel, lucrarea isi propune dezvoltarea și testarea unor metode diferite de agregare și fuziune.
Metodele de agregare nu sunt suficiente pentru îndeplinirea primului obiectiv într-o
aplicație practică. După cum am menționat în partea de motivație, o aplicație de succes ia în
considerare scopul ei, dar și condițiile de mediu. Proiectul reper al lucrării de față este
„monitorizarea temperaturii într-o zonă forestieră”. Ținând cont de aceste aspecte, lucrarea va
cerceta alte strategii de economisire a energiei, adaptate la contextul proiectului reper.
Alte obiective propuse în lucrare sunt: realizarea unui studiu comparativ între soluția
propusă și soluția actual implementată de XMesh, interpretarea rezultatelor obținute
prezentând avantaje și dezavantaje, și – ca o premisă necesară acestor două obiecte –
definirea unor indicatori de calitate in vederea validării soluției propuse.
De asemenea tehnologia senzorilor wireless prezintă alte obiective secundare: învățarea unei paradigme noi de programare și îmbogățirea cunoștințelor hardware din domeniul – mai larg – embedded.
1.2 Prezentarea secțiunilor următoare
În capitolul următor se vor prezenta aspecte teoretice ale rețelelor de senzori wireless
cu accent asupra acelor aspecte mai relevante în îndeplinirea obiectivelor: secțiunea 2.1 va
introduce noțiuni, caracteristici și constrângeri generale ale rețelelor de senzori wireless;
secțiunea 2.2 va trata comunicarea în rețelele de senzori wireless la straturile superiore –
prezentarea detailata a standardului ZigBee Alliance, clasificări de protocoale de rutare și
descrierea a 2 din aceste protocoale, care au inspirat dezvoltarea strategiilor de economisire a
6
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
energiei propuse la partea aplicativă -; secțiunea 2.3 și 2.4 vor prezinta platforma hardware și respectiv software la dispoziția candidatului.
Capitolul 3 conține în secțiunea 3.1 o descriere a proiectului reper pentru aplicația
lucrării, urmată de descrierea arhitecturii aplicației. Secțiunea 3.2 prezintă conceptele
dezvoltate și strategiile propuse spre realizarea obiectivelor: se vor detalia resursele software necesare, urmate de strategiile propuse, problemele întâmpinate și tratarea lor, și în final se va studia transpunerea conceptelor elaborate în proiectul reper. În secțiunea 3.3 se vor descrie aspecte de implementarea, utilizarea și testarea aplicației.
În capitolul 4 se va efectua un studiu comparativ între performantele aplicației
dezvoltate și o aplicați cu toate funcționalitățile XMesh disponibile: întâi se vor defini metricile de performanță si condițiile de studiu și ulterior se vor prezenta rezultatele și concluziile studiului.
Concluziile bazate pe partea teoretică și aplicativă a lucrării se vor regăsi în capitolul 5, urmate de posibile direcții de dezvoltare.
7
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
2. FUNDAMENTARE TEORETICĂ: REȚELE DE SENZORI
WIRELESS
2.1 Aspecte generale ale rețelelor de senzori wireless
O rețea de senzori se poate defini ca un sistem compus din 3 categorii funcționale: dispozitive care efectuează măsurări, dispozitive de procesare a informației și respectiv dispozitive de comunicare, astfel încât un operator uman să poată administra, observa și reacționa la evenimente și fenomene din mediul măsurat. Mediul măsurat poate fi lumea reală, un sistem biologic, sau un mediu informatic.
Într-o rețea de senzori sunt patru componente de bază : – un ansamblu distribuit și localizat de senzori;
– o rețea interconectată (de obicei wireless)
– un nod central unde se adună informația (bază, în engleza „base station”)
– o serie de resurse computaționale localizate într-un punct comun cu scopul de
agregare a informației, tratare a evenimentelor și „data mining”1.
În context rețelelor de senzori wireless, nodurile computaționale și cele de măsurare (senzorii) sunt considerate a face parte din rețea. Termenul wireless desemnează tipul comunicării în rețea: conexiunile din rețea sunt realizate din punct de vedere fizic fără fire (comunicație prin unde, radio sau alte tipuri).
Senzorul este un dispozitiv ce măsoară o cantitate fizică și o convertește într-un semnal ce poate fi observat de un alt instrument (de exemplu, un termometru pe bază de mercur convertește temperatura măsurată în extinderea sau contracția unui lichid ce poate fi apoi măsurată folosind un tub de sticlă gradat). Senzorii sunt folosiți în viața de zi cu zi. Există nenumărate aplicații ce folosesc senzorii, majoritatea oamenilor neavând idee de existența lor, aplicații ce includ industria constructoare de mașini, industria aerospațială, medicină, și robotică.
O rețea de senzori wireless reprezintă o rețea wireless compusă din dispozitive
autonome și distribuite spațial, care folosesc senzori pentru a monitoriza într-un mod
organizat condițiile de mediu (exemple: temperatura, sunetul, vibrațiile, presiunea). Fiecare
1 Proces de sortare a unor cantități mari de date pentru identificarea unor informații relevante.
8
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
nod din rețea are în componența sa pe lângă un număr de senzori și un transmițător radio (sau alt dispozitiv ce permite comunicarea wireless), un procesor și o sursă de energie, de obicei o baterie. Foarte importantă este capabilitatea de auto-organizare a nodurilor – sunt în măsură să creeze spontan rețeaua, iau cunoștință despre ceilalți senzori din rețea, se adaptează la schimbările din topologia rețelei.
În figura de mai jos se prezintă o topologie de rețea de senzori wireless:
Figura 2.1 Exemplu de topologia pentru o rețea de senzori wireless
Constrângerile de mărime și cost ale nodurilor sunt în strânsă legătură cu resurse precum energia, memoria, viteză de calcul sau lățimea de bandă. Mărimea unui nod poate să varieze de la zeci de centimetri până la cea de câțiva milimetri. În mod asemănător variază și costul unui nod de la câțiva cenți până la sute și chiar mii de dolari și depinde în mare măsură de dimensiunea nodului și de complexitatea lui.
Caracteristici ale unei rețele de senzori:
– putere joasă și surse de energie limitate;
– procesoare simple (viteză și memorie limitată); – viteza mică în rețea, rată de transmisie scăzută; – răspândire pe o suprafața vastă;
– înlocuire dinamică a nodurilor degradate fizic; – fără o infrastructura fizică;
9
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
– prezintă capabilități de auto-organizare.
Un senzor wireless conține în general următoarele [Figura 2.2]: – modul de detecție și control al detecției;
– unitate de procesare (calcul);
– modul de comunicare;
– sursa de energie;
– alte module în funcție de aplicație.
și prezintă caracteristicile:
– funcționare intrinsecă;
– procesarea semnalului;
– compresia, criptarea datelor și corecția erorilor; – control;
– clustering (grupare) și procesare „în-rețea” 2; – auto-asamblare și auto-organizare ;
Figura 2.2 Structura generală a unui senzor wireless
De câte ori un nod sursă nu reușește să trimită pachetele direct către un nod destinație
și trebuie să se bazeze pe asistența unor noduri intermediare pentru a trimite pachetele în
2 Conceptul procesării în-rețea presupune procesarea și agregarea datelor, interpretarea de interogări externe și accesul la o bază de date externe, toate acestea în timpul transmisiei de date.
10
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
locul lui rezultă o comunicare de tip multi-hop3. Fiecare nod din rețea trebuie să decidă la care din nodurile vecine trebuie trimis pachetul primit astfel încât să ajungă la destinație. Acest proces de decizie poartă numele de rutarea datelor.
Față de rețelele tradiționale alimentate la o sursă stabilă de energie, rețelele de senzori wireless trebuie să folosească algoritmi de rutare care să nu consume multă energie pentru a nu scurta durata de funcționare a rețelei.
Rețelele de senzori wireless se pot clasifica în rețele de :
– categoria 1 („Mesh Networks”): rețele de tip plasă, conectivitate radio de tip multi-
hop, număr mare de noduri , utilizează rutare dinamică. Aceste rețele suportă un
număr foarte mare de noduri distribuite pe suprafețe mari. Exemple: monitorizarea
mediului, sisteme responsabile cu securitatea națională.
– categoria 2: rețele de tip punctual, conectivitate radio single-hop, număr mic de
noduri, utilizează rutare de tip statică. Aceste rețele se regăsesc mai des în aplicațiile
civile și sunt perfecte pentru spații restrânse. Exemple: monitorizarea stării
pacientului, sisteme de control pentru locuințe.
Proiectarea unei rețele de senzori wireless presupune însușirea unui număr foarte mare de cunoștințe din diverse domenii convergente. De modul în care se face proiectarea depinde apoi succesul rețelei (atingerea scopurilor propuse). În general există o serie de criterii ce trebuie îndeplinite de orice astfel de rețea. Numărul criteriilor poate crește de la o aplicație la altă, de aici și provocarea.
Din punct de vedere al nodurilor avem constrângerile și provocările:
– cerințe de ordin computațional ale aplicației (RAM, ROM, și viteză procesorului): Unele
aplicații pot avea nevoie de a atinge performanțe ridicate în ceea ce privește procesarea
în-rețea a datelor-și evident că au nevoie de memorie și viteză de calcul, altele au nevoie
ca datele măsurate de senzor doar să treacă prin nod pentru a fi apoi trimise mai departe
la cluster. Cerințele pentru memorie și viteză de calcul implică în mod iminent și
creșterea costurilor de fabricație și de multe ori și creșterea dimensiunilor nodurilor.
– capacitatea nodurilor de a folosi resurse externe: de multe ori într-o aplicație nodurile pot
fi integrate în alte dispozitive cum ar fi de exemplu un PDA4. În aceste cazuri resursele
3 Multi-hop desemnează comunicarea cu salt-multiplu. Aceste rețele folosesc rutare dinamică.
11
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
computaționale pot fi disponibile extern; acest fapt poate să constituie un avantaj pentru nodurile rețelei (nu se modifică costul).
– dimensiunea fizică a nodurilor, bateriilor și antenelor: nu toate aplicațiile cer că aceste
componente să aibă o dimensiune minimă din simplul motiv că în cele mai multe cazuri
o integrare minimală a nodurilor ar fi mult mai mică decât componenta de interfață cu
utilizatorul și pe deasupra odată cu scăderea dimensiunii fizice, costurile circuitelor
cresc.
– posibilitatea ca rețeaua să intre pe piață rapid: în acest sens se preferă ca de multe ori să
se folosească tehnologie deja dezvoltată cu un grad de complexitate mediu pentru că
raportul între cost și profit să nu fie extrem de mare.
– eterogenitatea rețelei : cum unele rețele de senzori wireless suportă mai multe tipuri de
noduri trebuie luat în considerare costul de producție pentru două sau mai multe plăci
distincte. O soluție în acest sens este folosirea unei singure plăci cu aceleași
funcționalități și a unui microcontroler care să realizeze toate funcțiile de procesare doar
pentru un tip de nod.
– nevoia de tensiune de valoare ridicată pentru diverse operațiuni;
– nevoia de curent de valoare ridicată pentru diverse operațiuni;
De aici rezultă și următoarele limitări în utilizarea rețelei :
– vulnerabilitatea nodurilor: datorită faptului că nodurile sunt plasate în spațiu deschis,
există probabilitatea ca acestea să sufere degradări fizice.
– memorie limitată: nodurile au dimensiuni reduse și sunt alimentate cu baterii ce
furnizează o cantitate limitată de energie.
– lungime de bandă și putere limitată: limitarea e cauzată de aceleași motive ce determină
și limitarea memoriei.
– consum de energie limitat la procesarea computațională în noduri.
– consum de energie limitat în cadrul procesului de rutare.
Pentru conservarea consumului de energie in rețea se folosesc tehnici precum
operațiuni de scurta durată, procesarea locală a informațiilor pentru a reduce volumul de date
– procesare „în-rețea” și utilizarea conectivității multi-hop, care reduce cantitatea de energie
consumată pentru transmisii pe rază lungă ; fiecare nod din rețea se comportă ca un repetor.
4 PDA – “Personal digital assistant”
12
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
2.2 Aspecte de comunicație în rețele de senzori wireless
Deoarece scopul lucrării nu solicită un studiu asupra straturilor OSI inferiore, standardul IEEE 802.15.4 nu va fi prezentat. La stratul de comunicație însă, topologia și protocolul de rutare ales funcție de necesitățile aplicației proiectate, va avea un impact esențial asupra consumului de energie și este necesară acumulării unui bagaj de cunoștințe în această privință.
Figura 2.3 Structura protocoalelor într-o rețea de senzori wireless
2.2.1 Standardul Zig-Bee Alliance
Standardul ZigBee a luat naștere ca o necesitate, extinzând protocolul IEEE 802.15.4
pentru rețele LR-WPAN5. Deoarece comitetul IEEE nu a mai definit standarde pentru
straturile OSI de peste legătură-de-date, s-a format un consorțiu alcătuit din mai multe
companii din domeniul rețelelor wireless și echipamentelor radio – denumit ZigBee Alliance
– care a dezvoltat un set de protocoale pentru straturile superioare ale rețelei. Relația dintre
IEEE 802.15.4 și ZigBee este aceeași cu cea dintre IEEE 802.11 și WiFi Alliance.
Conceptul a apărut în 1998 când mulți producători și utilizatori de rețele LR-WPAN
au realizat că atât WiFi cât și Bluetooth nu pot suporta noile tipuri de aplicații apărute, din
considerente de flexibilitate și cost. De asemenea un promotor al dezvoltării ZigBee a fost și
nevoia tot mai mare de rețele wireless cu capabilități de auto-organizare. În decembrie 2005
5 LR-PAN – Low-Rate wireless Personal Area Network.
13
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
ZigBee Alliance a ajuns să includă peste 200 de companii din 22 de țări. Din punct de vedere al mecanismului de rutare a datelor standardul mai este cunoscut și sub numele de „mesh networking”.
Specificațiile standardului sunt disponibile publicului larg pentru uz necomercial. Există variante profesionale ale standardului care includ algoritmi de rutare multiplă și mecanisme de securitate avansate ca SKKE („Symmetric-Key Key Exchange”).
Există o multitudine de aplicații ce folosesc tehnologia ZigBee :
– sisteme inteligente pentru asigurarea confortului propriu (iluminat inteligent, sisteme
inteligente de reglare a temperaturii, etc);
– aplicații în telecomunicații;
– aplicații din domeniul medical;
Principalele caracteristici ale standardului sunt flexibilitatea, protocoalele de rutare
avansate ce permit auto-organizare și comunicare mesh în rețea, și foarte important – costul
redus; de exemplu un dispozitiv radio compatibil cu ZigBee are un cost de producție de 1 $ ,
pe când un dispozitiv radio compatibil cu Bluetooth are un cost de producție de 3 $.
Structura standardului
Standardul include patru componente: stratul rețea, stratul aplicație, dispozitivele ZigBee și obiecte dedicate pentru diverse aplicații ce oferă o integrare totală.[Figura 2.4]
Figura 2.4 Structura standardului ZigBee
Pe langă cele două straturi adăugate la PHY6 și MAC7 ale protocolului, ZigBee aduce un avantaj prin introducerea unor dispozitive numite ZDO. Aceste dispozitive se clasifică în felul următor:
6 PHY(Physical) – Stratul OSI al legăturii fizice.
7 MAC(Medium Access Control) – partea inferioară a stratului OSI legătură de date (data-link).
14
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
– coordonator ZigBee (ZC) – este dispozitiv cu drepturi depline în rețea, de obicei este
baza rețelei și poate fi folosit în conectarea cu alte rețele. În fiecare rețea există doar un
singur coordonator ZigBee. Este capabil să rețină informații despre rețea și să acționeze
ca un centru de încredere pentru cheile de securitate.
– ruter ZigBee (ZR) – poate funcționa ca ruter intermediar, transmițând data de la un
dispozitiv la altul;
– dispozitiv final ZigBee (ZED) – are funcționalitate să comunice cu nodul părinte (fie un
ZD sau un ZR); nu poate retransmite datele către alte dispozitive. Nodul poate să intre în
stare de adormire pentru a-și conserva energia. Acest tip de dispozitiv are nevoie de
puțină memorie în comparație cu ZC și ZR – deci costul său de producție este mai mic.
Stratul rețea
Scopul acestui strat este de a folosi în mod corect informațiile ce revin de la stratul
MAC și de a implementa o interfață pentru stratul imediat superior – stratul aplicație.
Capabilitățile și structura sa sunt tipice stratului rețea din modelul OSI, incluzând și
capabilitățile de rutare. Acest strat conține un sistem de control ce gestionează configurația
noilor dispozitive din rețea și stabilește noi rețele; poate determina dacă un dispozitiv vecin
aparține rețelei și poate descoperi alți noi vecini. Sistemul poate de asemenea să detecteze
dispozitive receptoare, lucru care permite comunicarea directă și sincronizare MAC.
Mecanismul de rutare folosit este de tipul AODV 8 (bazat pe vectorul distanță). Pentru a găsi o cale spre dispozitivul destinație, transmite o cerere la toți vecinii săi. Vecinii trimit la rândul lor cererea la toți vecinii lor și așa mai departe, până când se ajunge la destinație. Când s-a ajuns la destinație, se trimite în mod unicast confirmarea folosind calea cu costul cel mai scăzut. Când sursa primește confirmarea, ea salvează în tabela de routare adresa nodului destinație, numărul de salturi și costul căii.
Stratul aplicație
Acest strat este aflat la limita superioară a entităților definite de standardul ZigBee. El
cuprinde o interfață de comunicare cu sistemul ZigBee și cu utilizatorii aplicației.
Include: componentele ZDO, proceduri de management pentru ZDO și obiecte specifice
aplicației. Componentele ZDO sunt responsabile pentru definirea rolului unui dispozitiv, dar
și pentru descoperirea a noi dispozitive în rețea și identificarea serviciilor oferite de către
acestea. Cea de-a doua componentă a stratului aplicație este substratul pentru suportul
8
“Ad hoc On-Demand Distance Vector Routing” – protocol de rutare folosit in retelele wireless ad-hoc.
15
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
aplicației (APS) și oferă o interfața bine-definită și servicii de control. Stratul funcționează ca un liant între stratul rețea și alte componente ale aplicației.
Există două servicii disponibile pentru obiectele specifice aplicației (în ZigBee 1.0) : – serviciul KPV ("key-value-pair") e folosit la configurarea acestor obiecte. Activează
funcții de cerere, modificare a atributelor obiectelor prin intermediul unei interfețe
bazate pe comenzi simple de „get/set”. Procesul de configurare folosește XML pentru
adaptabilitatea și eleganța soluțiilor.
– serviciul mesaj are ca scop implementarea unor mecanisme de tratament al
informației; se poate evita astfel implementarea de noi protocoale.
Topologii utilizate
În esență ZigBee folosește o arhitectură de tip mesh (rețea – plasă). Din punct de vedere al topologiei, standardul poate fi folosit la rețele cu topologie stea, cluster-tree și mesh. [Figura 2.5]
Figura 2.5 Topologii suportate de standardul ZigBee
Fiecare rețea trebuie să aibă un dispozitiv coordonator responsabil de creația, controlul și întreținerea rețelei.
La rețelele cu topologie stea, coordonatorul trebuie să fie nodul central. La rețelele cu topologie cluster-tree sau mesh se pot folosi rutere (ZR) pentru a extinde comunicarea la nivelul rețea. Comunicarea la cluster-tree este ierarhizată și opțional, utilizează semnale beacon9, pe când la topologiile mesh comunicarea se folosesc structuri generice și nu rutare pe bază de beacon-uri.
9 Un semnal gid, folosit la sincronizare.
16
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
2.2.2 Clasificare a protocoalelor de rutare
Într-o rețea în care exist noduri care nu pot comunica direct între ele sau dacă este mai
eficient să se folosească un intermediar se pune problema rutării. Procesul de rutare
presupune în esență găsirea unei căi între transmițător și receptor pentru comunicarea datelor.
În spatele procesului de rutare stă conceptul de cost asociat fiecărei cai posibilă între transmițător și receptor. Pentru cost se poate folosi, de exemplu, puterea consumată sau numărul de salturi. Scopul algoritmului de rutare este acela de a popula pentru fiecare nod un tabel de rutare în care să fie trecuți toți vecinii cu care nodul poate comunică și costurile aferente. La rețelele cablate acest lucru se făcea folosind diverși algoritmi de distanță (Dijkstra sau Bellmana Ford).
La rețelele de senzori wireless abordarea rutării pe baza adresei (ca în rețeaua globală
internet) nu mai oferă performanțele cerute de constrângerile rețelelor de senzori wireless – în
special de consumul de energie. Pe de altă parte protocoalele de rutare trebuie să fie
distribuite, auto-configurabile, să fie capabile să se adapteze la posibilele schimbări de
topologie.
Pentru reducerea consumului, în rețelele de senzori wireless multi-hop toate nodurile participă la transmiterea informației între un anumit nod sursă și un anumit nod destinație. Cantitatea de energie consumată este redusă semnificativ astfel: motivația teoretică și practică este că mai multe transmisii scurte și de putere radio scăzută necesită mai puțină energie decât una la distanță mare și de putere ridicată. În acest context este foarte important și conceptul de agregare a datelor. El presupune combinarea datelor ajunse la un nod de la alte noduri vecine. Procedeul conduce la eliminarea redundanței, scăderea numărului de transmisii a informației și la o economisire a energiei consumate.
Prin urmare, găsirea unui protocol ideal pentru o rețea de senzori wireless constituie o provocare.
Protocoalele de rutare pot fi clasificate în două moduri: după modul de diseminare a datelor si după modul de rutare. După modul de diseminare a datelor protocoalele sunt :
– proactive: Se bazează pe diseminarea periodică a informaților de rutare pentru păstrarea
unor tabele de rutare corecte în toată rețeaua.
– reactive: Stabiliesc la cerere căi spre un număr limitat de noduri. De obicei aceste strategii
nu mențin informații globale în toate nodurile rețelei. Ele se bazează astfel pe căutarea
dinamică a unei căi.
17
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
– hibride: Se bazează pe existența unei structuri a rețelei pentru a asigura stabilitate și
scalabilitate în rețelele mari. Aici rețeaua este organizată în cluster-e adiacente. Metoda se
numește hibridă deoarece într-un cluster se poate folosi o strategie de rutare proactivă și în
alt cluster se poate folosi o strategie de rutare reactiva.
Prezentăm în continuare mai detaliat clasificarea protocoalelor de rutare după modul de rutare. Sunt de 4 feluri:
Protocoale concentrate pe date
Baza trimite cereri către anumite regiuni din rețea și așteaptă date de la nodurile existente în acele regiuni. Cum datele sunt cerute sub formă de interogări („queries”) fiecare dată are asociate atribute cu informații despre proprietățile ei. Datorită numărului mare de noduri dintr-o rețea de senzori wireless, nu este posibilă alocarea de identificatori globali pentru fiecare nod din rețea. Acest fapt împreună și cu o distribuire aleatorie a nodurilor face din selectarea unui nod specific o adevărat provocare.
În mod obișnuit datele sunt transmise de la fiecare nod al rețelei, această caracteristică conduce către o ineficiență în ceea ce privește consumul de energie. Prin urmare, este de dorit să existe protocoale de rutare care să selecteze un set de noduri și să utilizeze tehnici de agregare în timpul transmiterii datelor. Tot acest raționament a condus la dezvoltarea protocolului de rutare bazată pe date (în mod tradițional rutare bazată pe adresecăile sunt create între noduri adresabile la nivelul rețea).
Pentru a putea implementa rutarea bazată pe date, e nevoie de cunoașterea unor atribute relative la data transmisă: tipul de dată, timpul transmisiei și locația. Modulul de comunicare trebuie să trimită în rețea cereri și să primească răspunsuri, iar nodurile trebuie să suporte procesare și agregare „în-rețea”. Din aceste considerente unii văd rețelele de senzori că fiind „peer-to-peer” la un nivel logic, deși din punct de vedere fizic topologia rețelei este ierarhizată; primul peer este sursa care trimite datele (nod normal sau nod de agregare) și celălalt peer este clientul care se abonează la date.
Exemple:
– SPIN (Sensor protocols for information via negotiation), – difuzie directă;
– rutare bazată pe zvon;
– GBR (rutare bazată pe gradient);
– COUGAR; ACQUIRE.
18
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Protocoale ierarhice
Folosirea unei rețele cu un singur nod bază („gateway”) poate duce la supraîncărcarea rețelei mai ales dacă densitatea nodurilor este ridicată. Din acest motiv se pot înregistra întârzieri în transferul de date. Rutarea ierarhică permite folosirea mai multor noduri-baze (ierarhii). În acest fel se reduce cantitatea de energie consumată și mai important se realizează comunicarea multi-hop.
Exemple:
– LEACH (Energy-Adaptive Clustering Hierarchy);
– PEGASIS (Power-Efficient GAthering in Sensor Information System”); – TEEN și APTEEN.
Protocoale bazate pe locație
Informațiile despre locația nodurilor pot fi utilizate la rutarea datelor într-o manieră eficientă din punct de vedere al energiei. Cu aceste informații se calculează distanța între două noduri, astfel încât consumul de energie să fie cunoscut sau cel puțin estimat.De exemplu dacă regiunea ce urmează a fi detectată este cunoscută, interogările pot fi trimise doar în aceea regiune limitând astfel numărul de transmisii în rețea deci economisind energia consumată. Acest tip de rutare a datelor este ideal pentru rețelele mobile ad-hoc dar poate fi folosit cu succes și la rețelele cu senzori wireless.
Exemple:
– MECN (Minimum Energy Communication Network); – GAF (Geographic adaptive Fidelity);
– GEAR (Geographic and Energy Aware Routing);. Protocoale orientate pe calitatea serviciilor
Iau în considere cerințele de latență capăt-la-capăt10 pentru setarea căilor rețelei de senzori wireless.
Exemple:
– SAR (Sequential Assignment Routing);
– SPEED (Stateless Protocol for End-to-End Delay).
10 End-to-end.
19
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
2.2.3 Protocoalele TEEN și APTEEN
Threshold sensitive Energy Efficient sensor Network11 (TEEN) este un protocol de tip ierarhic proiectat să răspundă la schimbări bruște ale mărimilor măsurate, cum este temperatura. Viteza de răspuns este importantă pentru aplicații critice din punct de vedere al timpului, în care rețeaua operează în mod reactiv. TEEN urmărește o abordare ierarhică cu folosirea unui mecanism concentrat pe date. [Akk03]
Arhitectura rețelei de senzori este bazată pe o grupare ierarhică unde nodurile apropiate formează cluster-e și acest proces continuă pe un nivel secundar până când nodul de bază12 este atins. Procedeul este ilustrat în Figura 2.6.
Figura 2.6 Grupare ierarhică în protocoalele TEEN și APTENN
După ce s-au format cluster-ele, capul de cluster trimite broadcast13 2 praguri către
noduri. Acestea se denumesc prag „moale” și „dur”. Pragul dur este valoarea minim posibilă
a unei măsurări care declanșează activarea transmițătorului de către nod și transmiterea de
date către capul de cluster. Astfel, pragul dur dă voie nodurilor să transmită doar când
valorile măsurate sunt într-un interval de interes, în consecință reducând numărul de
transmisii semnificativ. Odată ce un nod a măsurat o valoare egală sau mai mare cu pragul
dur, el va transmite la nodul cap de cluster doar când următoarea valoare măsurată se
11 Protocol pentru rețea de senzori sensibil la prag și eficient energetic.
12 Denumit și sink în literatură.
13Transmisie de la un nod la toate nodurile; aici se referă la toate nodurile din cluster.
20
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
modifică cu o cantitate egală sau mai mare decât pragul moale. Ca o consecință, pragul moale va reduce și mai mult numărul de transmisii de pachete.
Pragul dur și moale poate fi ajustat încât să se controleze numărul de pachete transmise. Însă protocolul TEEN nu este bun pentru aplicații unde se necesită rapoarte periodice, deoarece este posibil ca utilizatorul să nu primească nici un pachet dacă pragurile nu sunt îndeplinite.[Man01]
Protocolul Adaptive Threshold sensitive Energy Efficient sensor Network (APTEEN)
este o extensie la TEEN și țintește către ambele obiective: de a colecta periodic date de
senzor și de a reacționa la evenimente critice în raport cu timpul. Arhitectura este
asemănătoare cu TEEN. Când nodul de bază formează cluster-ele, nodurile cap de cluster
transmit broadcast atribute, valorile de prag și un orar de transmisie (a măsurărilor) către
toate nodurile. De asemenea, nodurile cap de cluster folosesc agregare pentru a reduce
consumul de energie. APTEEN suportă 3 tipuri de interogări („queries”) – atribute:
– istorice, pentru analiza valorilor măsurate în trecut;
– singulare, pentru a obține o imagine de ansamblu asupra rețelei;
– persistente, în scopul monitorizării unui eveniment pentru o perioadă de timp.
Teste cu aceste două protocoale au arătat performanțe mai bune decât la protocolul LEACH. Performanțele protocolului APTEEN se situează între LEACH și TEEN din punct de vedere al energiei consumate și al duratei de viață a rețelei. Dezavantajele acestor 2 abordări sunt procesarea suplimentară și complexitatea formării cluster-elor pe mai multe nivele, implementarea mecanismului bazat pe praguri și logica de tratare a interogărilor bazate pe atribute. [Man02]
2.3 Platformă hardware
În vederea realizării parții aplicative a lucrării s-au necesitat:
– 4 module de tip IRIS, având rolul de noduri ale rețelei
– 2 plăci de senzori MTS420/400
– 1 placa de interfațare de tip MIB520
– 1 computer cu performanțe medii în momentul de față
Vom prezenta în continuare pe scurt caracteristicile de interes ale modulului, plăcii de senzori și plăcii de interfațare.
21
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
2.3.1 Modulul IRIS
Modulul IRIS este produs de firma Crossbow. Modulele IRIS se caracterizează prin posibilitatea unei comunicații la distanțe mai mari, prin antena RF230, față de alte game disponibile. Aceasta operează în standardul IEEE 802.15.4 pe lungimea de bandă 2.4 GHz, la o rată de transfer maximă de 250Kbps. [Figura 2.7]
Figura 2.7 Modulul IRIS
Din punct de vedere al consumului de energie, interes deosebit prezintă microprocesorul ATmega1821L incorporat pe modul, prin cele 6 moduri de salvare a energiei pe care le pune la dispoziție:
– idle (pasiv)
– ADC noise reduction mode (mod de reducere a zgomotului spre convertoarele anolog-
digitale)
– power-down mode (liniile perifericelor sunt puse în impedanță înaltă) – power-save mode (mod de salvare a energiei)
– standby mode (mod de așteptare)
– extended standby mode (mod de așteptare, timp extins).
Modulului i se pot atașa plăci de senzor diferite prin intermediul unui conector de 51 de pini. Acesta este folosit și la programare modulului de către placa de interfațare MIB520. Detalii suplimentare se găsesc în Anexa 1.
2.3.2 Placa de senzori MTS420/400
MTS420/400 a fost dezvoltată în colaborare cu UC Berkeley și Intel Research Labs
oferind cinci senzori de bază în măsurarea condițiilor de mediu. Aceste plăcuțe de senzori
22
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
utilizează cea mai nouă tehnologie de montare pe suprafețe. Dispozitivele digitale MTS400 sunt foarte eficiente din punct de vedere al consumului de energie, prelungesc durata de viață a bateriilor, susținând performanța senzorilor chiar și în cazul în care acestora nu li se poate asigura mentenanță decât cu frecvență rară. Acești senzori multifuncționali sunt destinați unei o game variate de aplicații. [Figura 2.8]
Figura 2.8 Placă de senzori MTS420CC (cu modul GPS) Un dispozitiv MTS420/400 oferă:
– Compatibilitate cu nodurile de tip MICAz și MICA2 (automat și IRIS); – Placă de procesor / radio;
– Senzor integrat de temperatură și umiditate; – Senzor de presiune barometrică;
– Senzor de lumină;
– Accelerometru pe două axe.
– Memorie EEPROM de 64KB pentru datele de configurare de la utilizator. – Modul GPS disponibil doar pe plăcuța MTS420CC.
Detalii despre senzorul folosit în partea practică se găsesc în Capitolul 3.3.1.
2.3.3 Placa de interfațare și programare MIB520
Placa de interfațare MIB520 oferă conectivitate la familiile de noduri IRIS și MICA
atât pentru comunicarea cu senzorii cât și pentru programarea acestora [Figura 2.9].
Alimentarea cu putere se face prin conexiunea USB. MIB 520 are încorporat un procesor de sistem (ISP) de tipul Atmega16L. Codul este descărcat pe ISP în primă fază, urmând ca apoi ISP să încarce codul pe nod.
23
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
Figura 2.9 Placa de interfațare și programare MIB530
Pe partea de PC, este nevoie de un port fizic USB, un driver de tip Serial-over-USB14 pe sistemul de operare și de aplicația MoteConfig; mai există posibilitatea programării prin linia de comandă Cygwin.
Programarea se poate face si prin aer, folosindu-se opțiunea OTAP, prezentată în Capitolul 3.3.4.
Placa de interfațare oferă și facilitatea de transmisie a pachetelor dinspre rețeaua de senzori wireless spre PC, dacă este conectat nodul de bază și se rulează software-ul XServe oferit în pachetul de dezvoltare XMesh (și va folosi o bază de date PostGreSQL pentru stocarea pachetelor).
2.4 Platformă software
Pe lângă software-ul prezentat în capitolele următoare, am mai folosit Microsoft .NET
2.0 Framework împreună cu mediul vizual de programare Microsoft Studio spre a realiza programe utilitar necesare testării aplicației practice.
2.4.1 TinyOS
TinyOS este un sistem de operare pentru rețelele de senzori wireless cu o utilizare în creștere. Modul în care este proiectat TinyOS permite nivelului de aplicație al rețelei să acceseze direct componentele hardware. TinyOS garantează fluxuri de date concurente către dispozitivele rețelei, asigură modularizarea componentelor hardware.
Prin comparație cu un sistem de operare tradițional TinyOS este mai rapid.
El folosește un model de execuție bazat pe evenimente și o arhitectură bazată pe componente
care permite o dezvoltare și implementare rapidă a programelor respectând constrângerile
14 Standard de comunicație serială implementat peste un canal fizic USB.
24
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
legate de memoria nodurilor. Componentele pot fi comenzi, evenimente sau sarcini. Fiecare
componentă este alcătuită din rutina de tratare a comenzii, rutina de tratare a evenimentului, o
secvență încapsulat de dimensiune fixă și un grup de sarcini. Comenzile și sarcinile sunt
executate cu ajutorul secvenței. Fiecare componentă își face publice comenzile și
evenimentele pentru a asigura modularitatea și interacțiunea între componente. Planificarea
sarcinii curente este realizată în TinyOS printr-un mecanism FIFO; procesorul poate să intre
în starea de adormire când lista de sarcini este goala. Comenzile sunt cereri către
componentele hardware low-level. În urma trimiterii unei comenzi se întoarce înapoi un
răspuns care indică dacă comanda s-a efectuat cu succes sau nu. De obicei comenzile își țin
parametrii în structura secvenței și în mod opțional pot propune sarcini pentru a fi mai apoi
realizate.
Apariția unui eveniment implică apelarea unei rutine de tratare a evenimentului („handler”). O astfel de rutină poate reține informație în structura frame-ului, să propună sarcini sau să ruleze comenzi. Asemenea evenimentelor, sarcinile pot rula comenzi și propune alte sarcini. Prin intermediul unui grup de sarcini, TinyOS poate să realizeze diverși algoritmi de calcul într-un model de execuție bazat pe evenimente.
Câteva avantaje :
– folosește număr redus de linii de cod, lucrează cu cantități mici de date;
– evenimentele se propagă rapid, astfel că intervalul de timp în care sistemul propune o
sarcină și o și execută este foarte mic;
– asigură modularitatea componentelor hardware ale rețelei.
Librăria sistemului TinyOS include: protocoale de rețea, servicii distribuite, drivere pentru senzori, și mecanisme pentru achiziția datelor – toate acestea pot fi folosite individual sau combinat pentru realizarea unor aplicații specifice.
Putem spune că TinyOS nu este un sistem de operare obișnuit, ci un framework ce permite programarea rețelelor de senzori wireless prin folosirea resurselor sale. După cum am precizat și mai sus, lucrul pe componente asigură o folosire cât mai redusă a memoriei. Astfel, TinyOS nu are fișiere de sistem, permite doar alocarea memoriei statice, și folosește abstractizări minime pentru hardware și pentru rețea.
2.4.2 nesC
Limbajul nesC încapsulează într-un limbaj de programare conceptele și modelul de
execuție al sistemului de operare TinyOS. Sintaxa nesC este o supra-definire a sintaxei
25
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
limbajului C, pentru o adoptare rapidă. Cuvinte cheie noi adăugate servesc implementării paradigmei de programare structurată a aplicațiilor pe bază de componente.
Principalele concepte ale limbajului nesC sunt:
– programele sunt construite din componente, ce sunt apoi asamblate pentru a forma un
program. Componentele sunt definite din două perspective: una a specificării – conține
numele interfețelor folosite și una a implementării.
– programele implementează modelul de concurență al TinyOS prin folosirea sarcinilor
și a dispecerului de evenimente hardware.
– interfețele pot fi folosite de către componente. Interfețele oferite (și nefolosite) definesc
funcționalitatea asigurată de către componenta utilizatorului, pe când interfețele
folosite reprezintă funcționalitatea de care componentă are nevoie pentru a-și îndeplini
sarcina. O componentă furnizează și utilizează interfețe. Interfețele sunt bidirecționale –
o interfață declară un set de funcții, numite comenzi, pe care furnizorul de interfață
trebuie să le implementeze, de asemenea se declară un alt set de funcții numite
evenimente, pe care utilizatorul interfeței trebuie să le implementeze. Pentru ca o
componentă să apeleze comenzi într-o interfață, trebuie să implementeze evenimentele
acelei interfețe. O singură componentă poate utiliza sau furniza mai multe interfețe și
mai multe instanțe ale aceleiași interfețe.
– Compilarea globală și statică a aplicației. Considerându-se resursele limitate ale
senzorilor wireless și stabilindu-se premisa că o singură aplicație este încărcată și rulată
(caz frecvent în mediile embedded), compilatorul poate să ia avantaj de aceasta și va
putea optimiza apeluri de comenzi sau evenimente („inlining”) unde este posibil, va
lega static restul de apelurile și va oferi mesaje extinse de eroare și de avertizare despre
program.
Există două tipuri de componente în NesC: module și configurații. Modulele conțin
codul aplicației, implementând una sau mai multe interfețe. Configurațiile sunt folosite pentru
a asambla alte componente, conectând interfețele utilizate de componente cu interfețe
furnizate de alte componente. Acest proces este numit cablare. Orice aplicație NesC este
descrisă de o configurație de nivel superior care cablează împreună componentele, intern.
26
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
2.4.3 XMesh
XMesh este un protocol de rețea multi-hop (cu toate funcționalitățile), ad-hoc și mesh dezvoltat pentru rețele de senzori wireless. Un „peisaj” de rețea XMesh este compus din 3 nivele software [Figura 2.10]:
– Nivelul nodurilor, unde XMesh este rezident, este software-ul care rulează pe nodurile
ce formează o rețea de senzori wireless. Software-ul XMesh furnizează algoritmii de
rețea necesari pentru a forma schelet de comunicație conectând toți senzorii din cadrul
rețelei de tip mesh la server.
– Nivelul server-ului oferă facilitatea întotdeauna activată de traducere și acumulare a
datelor ce sosesc de la rețeaua wireless, și pune la dispoziție o conexiune între nodurile
wireless și clienții conectați la internet. XServe și XOtap sunt aplicații la nivel de
server care pot rula pe un PC.
– Nivelul client pune la dispoziția clientului software-ul de vizualizare și interfața grafică
pentru managementul rețelei. Crossbow furnizează software gratuit pentru client numit
MoteView, dar Xmesh poate fi interfațat la softuri client specifice.
Figura 2.10 Framework de sotware XMesh pentru rețele de senzori wireless XMesh prezintă următoarele facilități și beneficii:
– TrueMesh (mesh adevărat): se referă la abilitatea nodurilor de a căuta dinamic noi rute
pentru a transmite pachete când părți ale rețelei devin inoperabile datorită interferențelor
sau a golirii sursei de energie. O rețea se poate forma și ad-hoc prin simpla poziționare
aleatoare a nodurilor într-o vecinătate. Nodurile se vor descoperi reciproc și vor forma un
27
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
arbore de rutare bazat pe estimările de calitate a legăturii radio din mediul particular. Din
acest motiv, rețelele XMesh dovedesc proprietățile de auto-organizare și auto-vindecare.
-Multiple servicii de transport: Serviciile sunt următoarele:
• Upstream (în sus): transmite pachete de la un nod spre nodul bază.
• Downstream (în jos): transmite pachete de la nodul bază spre un nod(uri).
• Single-hop (salt-singular): Trimite pachete doar la nodurile vecine. -Multiple moduri de calitate-a-serviciului15:
• Cel mai bun efort: confirmare la nivelul legăturii-de-date, iar nodurile vor încerca
să trimită de mai multe ori la vecinul apropiat.
• Livrare garantată: asigură o confirmare capăt-la-capăt, unde un mesaj este prin
rețeaua mesh către nodul bază (sau invers, în jos) si un mesaj de confirmare este
trimis inapoi la emițător.
– Multiple moduri de putere (a funcționării): Nodurile pot fi configurate să ruleze în unul
din modurile de putere următoare:
• Putere mare (HP16) – acest mod oferă:
Facilitate TrueMesh
Toate nodurile din rețea pot ruta date
Rată mare de transfer, latență mică
Radioul este tot timpul alimentat
• Putere mare (LP17) – modul oferă:
Facilitate TrueMesh
Toate nodurile din rețea pot ruta date
Rată mică de transfer, latență mare (ideal pentru aplicații cu rata mică de
date)
Radioul este majoritatea timpului în mod pasiv („doarme”), urmând a fi
activat periodic pentru a verifica traficul radio („este trezit”).
• Putere mare (ELP18) – modul oferă:
Folosit doar pentru nodurile de la capătul rețelei
15 OoS (Quality of Service).
16 High power.
17 Low power.
18 Extended low power.
28
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Nodurile nu pot ruta date
Utilizează o topologie hibridă stea-mesh.
– Diagnostic de „sănătate”: este prezentat in Capitolul 3.3.3.
– Sincronizarea timpului: XMesh-LP suportă o sincronizare globală a timpului din rețea la
±1݉ݏ݁ܿ. Facilitatea se folosește în sincronizare mesajelor radio, dar este disponibilă și
utilizatorilor pentru sincronizarea măsurărilor.
– OTAP: este prezentat in Capitolul 3.3.4.
2.4.5 Utilitare Crossbow
Programmer’s Notepad 2
MoteWorks include o versiune a programului Programmer’s Notepad, acesta fiind un mediu de programare vizuală pentru NesC, cu uneltele de generare a fișierelor de configurare a nodurilor și de compilare a programelor pentru diferite tipuri de noduri, cum ar fi MicaZ, Mica2, Mica2dot și Iris.
Cygwin
Cygwin include toate capabilitățile programelor MoteConfig și Programmer’s Notepad 2, cu diferența că toate comenzile se scriu în linia de comandă.
Cygwin este un mediu de emulare Unix/Linux pentru sistemele Microsoft Windows și
este formată din două părți:
– un fișier dll (cygwin1.dll) care joacă rolul unui nivel de emulație API Linux,
furnizând funcționalitate substanțială de Linux API.
– o colecție de unelte care oferă impresia și aspectul mediului Linux.
Uneltele Cygwin sunt portări pentru Microsoft Windows ale popularelor unelte de dezvoltare GNU. Cygwin este o interfață utilizator opțională pentru compilarea și încărcarea aplicațiilor specifice nodurilor, din cadrul MoteWorks.
MoteConfig
Reprezintă un utilitar folosită la programarea nodurilor rețelei prin intermediul plăcii MIB520. Acest program oferă o interfață grafică prin care operatorul uman (programatorul) selectează programul dorit a fi instalat pe un anumit nod. [Figura 2.11]
29
Universitatea „Politehnica” Timișoara
2. Fundamentare teoretică: Rețele de senzori wireless
Figura 2.11 Interfața utilitarului MoteConfig
XSniffer
Programul necesită ca un nod programat cu o aplicație specială să fie conectat la placa de interfață MIB520. Software interceptează și stochează orice pachet care poate fi receptat prin antena nodului, după care interpretează pachetul și afisează diverse informații despre acel pachet și rețea. Programul este destinat în primul rând monitorizării unei rețele XMesh, pentru care are mai multe opțiuni. [Figura 2.12]
Figura 2.12 Interfața utilitarului XSniffer
30
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
3. DEZVOLTARE APLICATIVĂ: ECONOMISIREA
ENERGIEI ÎN REȚELE DE SENZORI WIRELESS
UTILIZÂND O ARHITECTURA ADAPTATĂ ȘI METODE DE AGREGARE ȘI FUZIUNE
3.1 Arhitectura aplicației
Partea aplicativă a lucrării are ca reper proiectul prezentat în Figura 3.1, deși
arhitectura propusă și metodele folosite pot fi aplicate cu succes în alte proiecte, cu ajustările corespunzătoare. Acest fapt se datorează separării logice (în afara celei fizice) a nivelului rețelei de senzori wireless de nivelele superioare ale proiectului. De asemenea, dacă se dorește dezvoltarea unei proiect folosind senzori wireless cu un management al energiei centrat pe date și/sau ierarhic, va trebui ca de la începutul proiectării să se ia în considerare o arhitectură care sa îngăduie realizarea acestui obiectiv la fiecare strat al nivelului rețelei de senzori wireless, de la stratul inferior (ca exemplu, la controlul modurilor de funcționare a componentelor hardware) până la stratul superior (de topologie).
Proiectul „Monitorizarea temperaturii dintr-o zonă forestieră cu rețele de senzori
wireless” conține următoarele nivele și componente:
– nivelul inferior al rețelei de senzori wireless: va fi detaliat în continuare;
– nivelul mediu al comunicației între server si rețeaua de senzori wireless: se realizează
prin modem-urile GPRS19, o conexiune de la un operator de telefonie mobila (din
perspectivă hardware) și software specializat pe modem-uri și la interfața cu server-ul;
– nivelul superior de sistem al server-ului: hardware, este necesar un computer cu o
conexiune de internet; software, avem o aplicație tip desktop care rulează pe server, o
bază de date, un web server și o aplicație PHP;
– nivelul de interfață cu utilizatorul final al aplicației: utilizatorul poate interacționa cu
aplicația utilizând un navigator20 de internet, cu un acces securizat, și va putea să
monitorizeze evoluția actuală și în timp a condițiilor de mediu măsurate, să trimită
19 GPRS (General packet radio service) – un serviciu al comunicaților mobile orientat pe transmisia de pachete de date unor utilizatori cu capabilitatea GSM 2G sau 3G.
20 Browser de internet; exemple Internet Explorer, Mozilla Firefox, Opera.
31
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
comenzi spre rețeaua de senzori, să fie alertat in caz de nevoie prin e-mail, mesaj telefonic sau alte mijloace etc.
Figura 3.1 Proiectul „Monitorizarea temperaturii dintr-o zonă forestieră cu rețele de senzori
wireless”
Din motivul prezentat mai sus, al prezenței obiectivului de reducere a consumului energetic la fiecare strat al aplicației, s-au proiectat în arhitectură și tratarea altor obiective: cerințe de interogare a rețelei de senzori wireless, de modificare a parametrilor interni lor și de diagnoză.
32
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Figura 3.2 Arhitectura aplicației cu rețele de senzori wireless
33
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
Arhitectura prezentată în Figura 3.2 este o descompunere pe configurații și module, și conținând componentele și interfețele lor:
– Configurația de nivel superior (exterior), cea a aplicației, este ForSurvPowSavA21:
• Principalele componente legate la acest nivel spre nivelul inferior sunt cele de
comunicație, folosindu-se facilitățile oferite de XMesh, prezentate în Capitolul
2.4.1, și anume componenta de rutare MULTIHOPROUTER, componenta cu facilități generale de comunicație GenericComPromiscous și componenta ce oferă facilități de sincronizare în rețea TimeSyncServ.
• Componenta TinyOS Main utilizează interfața StdControl, care este legată la
interfața corespunzătoare oferită de fiecare componentă de la acest nivel,
realizând inițializarea, pornirea și oprirea software-ului încărcat pe noduri,
indiferent de situație; fiindcă aceasta se realizează printr-un program boot-
loader22 salvat în EEPROM, care este la nivelul cel mai scăzut software.
Logica de legare este inversă pentru această interfață, componentele
implementează fiecare comandă a interfeței, iar odată legate componenta Main
va știi să apeleze la momentul potrivit implementarea specifică fiecărei
componente din aplicație; ordinea apelării nu este cunoscută, dar
implementările ar trebuie să fie independente de aceasta.
• Spre interfața Leds a ForSurvPowSavC se poate lega o componentă Leds, dacă
se dorește controlarea celor 3 led-uri disponibile pe nod pentru testare și
depanare, sau NoLeds, în versiunea finală a aplicației, nefiind nevoie de
înlăturarea porțiunilor de cod ce folosesc led-urile sau de o compilare
condițională, mecanismul fiind mult mai elegant.
– Configurația de nivel mediu (intermediar), și anume ForSurvPowSavC, este cea a
componentei dezvoltate în scopul cercetării pe tema lucrării de față. S-a introdus acest
strat arhitectural intermediar în aplicație cu scopul de obține o componentă parțial
separabilă, spre folosirea ei de către alte posibile componente cu nivel mai ridicat în
21 ForSurvPowSavA (Forrest Surveillance Power Saving) – abreviere pentru „monitorizare în zonă forestieră cu salvare de energie”. Abrevierile „A”, „C” și „P” sunt specifice TinyOS 2.x și semnifică aplicație, componentă și respectiv (modul) privat.
22 Încărcător de software din resursele hardware nevolatile în resursele de procesare la pornirea fizică (electrică) a hardware-ului.
34
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
alte aplicații, ca de exemplu de o componentă de securitate. Componentele utilizate la acest nivel sunt:
• Componenta de temporizare (timer) TimerC. Aproape în orice aplicație
embedded este nevoie de capabilități de temporizare sau de numărare, adică de întreruperi la intervale de timp prestabilite sau respectiv, când o anumită contorizare atinge o valoare dorită.
• Modulul de management al puterii consumate HPLPowerManagementM.
Acesta oferă prin interfețele sale posibilitatea controlului puterii de consum
fără a cunoaște detalii de la nivelul hardware, asigurând totodată o folosire
corectă a acestei facilități hardware.
• Componenta de măsurare SensirionHumidity corespunde senzorului de
umiditate și temperatura produs de firma Sensirion de pe placa de achiziție
MTS420/400 [Capitolul 2.3.2], [Capitolul 3.3.1].
– La nivelul inferior (interior) se află modul care implementează întreaga arhitectură.
Modulul se va folosi în acest scop de comenzile și evenimentele interfețelor obținute
prin configurația de nivel imediat superior, și va implementa comenzile și
evenimentele explicitate în interfețele oferite spre configurația respectivă. Singura
interfață oferită este StdControl, descrisă mai sus: modulul implementează propria
inițializare, pornire și oprire, și le apelează intern pe cele ale tuturor interfețelor
utilizate de tip StdControl și SplitControl. Din punct de vedere conceptual, putem
distinge în implementare următoarele logici:
• Logica de comunicație și procesare a mesajelor.
• Nucleul logic decizional și de agregare.
• Logica de măsurare și de compresie.
3.2 Strategii de economisire a energiei
3.2.1 Interfețe utilizate
Pentru a dezvolta strategii și concepte cu scopul economisirii de energie, este necesar a cunoaște la nivel de interfețe facilitățile oferite de sistemul de operare TinyOS și de protocolul XMesh, la componentele folosite.
Descriem în continuare interfețele componentei de rutare MULTIHOPROUTER:
35
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
– Este necesar a lega interfața ReceiveMsg la interfața identică a componentei
GenericComPromiscous. De asemenea, ca implementare aceasta interfață este
parametrizată prin câmpul „socket” din structura header-ului unui mesaj XMesh și este
obligatoriu să fie identic cu celelalte interfețe de comunicare parametrizate (prin același
câmp) oferite de MULTIHOPROUTER. [Capitolul 2.4.3]
– Interfața parametrizată MHopSend se folosește pentru transmiterea mesajelor, de și la
anunțarea rezultatului operației.
– Interfața parametrizată Intercept se folosește pentru interceptarea și recepția mesajelor
care sunt rutate prin nodul curent la alte noduri și respectiv transmise la nodul curent.
– Interfața RouteControl este esențială în arhitectura de comunicație. Acesta pune la
dispoziție informații despre adâncimea și identificatorul părintelui (multi-hop) nodului curent în rețeaua XMesh creată, despre expeditorul unui mesaj, despre calitate unei conexiuni wireless etc. [Capitolul 3.3.3]
– Comanda health_packet este prezentată în Capitolul 3.3.3.
– Interfața OtapLoader este prezentată în Capitolul 3.3.4.
Interfața Timer a componentei de temporizare oferă posibilitatea setării unei întreruperi unice declanșată peste o perioada determinată de timp sau declanșarea unor întreruperi repetate la un interval de timp constant. Întreruperea este anunțată printr-un eveniment asincron.
Modulul de management al consumului energetic HPLPowerManagementM conține interfețele:
– Comanda Enable, care odată apelată induce microprocesorul în modul de funcționare
cu cel mai scăzut consum posibil, și de asemenea setează în modul pasiv (idle) antena
când nu transmite, recepționează sau ascultă. Închide de asemenea și ceasurile
(înafara celui primar – 0), convertoarele analogice și magistralele microprocesorului
nefolosite. Modulul realizează acestea în momentul când în coada sistemului de
operare TinyOS nu mai sunt sarcini de executat. [Capitolul 2.3.1],[Xbow]
– Comanda Disable oprește modulul.
– Interfața PowerManagement prezintă o comandă de ajustare explicită a consumului
(independent de coada TinyOS), pentru a fi folosită cu alte periferice hardware, care
nu sunt gestionate automat, ca de exemplu placa de senzori MTS420/400.
Componenta de măsurare a temperaturii SensirionHumidity conține interfețele:
36
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
– Interfața SplitControl este folosită pentru a porni și opri senzorul. Spre deosebire de o
interfață StdControl aceste operații nu sunt imediate (comenzile sunt split-phased,
având evenimente corelate), ci se necesită un interval de timp pentru a inițializa
senzorul.
– Interfața Temperature pune la dispoziție comenzi de eșantionare a temperaturii și de
anunțare într-un eveniment a rezultatului obținut. Eșantionarea nu este imediată din
motive fizice externe (de acaparare a mai multor valori și creare a unei valori medii
statistice) și interne (de stabilizare a circuisticii) pentru a reduce eroarea.
– Interfața Humidity. Deși suntem obligați să legăm interfața de umiditate la modulul
dezvoltat, aceasta nu va fi folosit și implementarea evenimentelor obligatorii este
banală.
Detalii suplimentare despre măsurarea temperaturii și managementul consumului pentru senzor sunt descrise în Capitolul 3.3.1.
3.2.2 Nucleul logic decizional: Automat cu stări finite
Primul și cel mai semnificativ aspect al dezvoltării unei aplicații care este „sensibilă” la consumul de energie și folosește facilitățile XMesh este modul ei de funcționare: HP, LP sau ELP [Capitolul 2.4.3]. În proiectul reper, de monitorizare a temperaturii într-o zonă forestieră, nodurile terminale ale rețelei pot să devină în timp părinți, iar modul de operare HP este exclus în îndeplinirea obiectivului propus. Rămâne modul de funcționare LP, cu observația ca nu se poate utiliza în orice aplicație și în orice condiții, ci trebuie studiate particularitățile mediului.
Următorul pas de reducere a consumului a constat în definirea și implementarea automatului cu stări finite din Figura 3.3. Ideea de la care s-a pornit a fost: un nod care nu trimite mesaje noduri consumă mai puțin, iar o rețea în care nu se transmit și implicit nu se recepționează mesaje consumă foarte puțin. Desigur aceasta trebuie să reacționeze la anumiți stimuli externi, în speță la apariția unei temperaturi suficient de mari pentru a justifica comunicația și ca pas final o alertare operatorului uman.
Funcție de starea în care ne aflăm, o definim printr-o constantă de timp Tstare care indică intervalul la care se fac măsurări. Valorile acestora trebuie să îndeplinească condiția unui grad potrivit de reacției al sistemului cu semnificația stării nodului. Valorile acestor perioade de măsurare, cât si alte valori necesare, sunt calculate în Capitolul 3.2.7, unde putem vom ține cont și de considerentele de comunicație.
37
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
Se poate decide ca o stare identică să se aplice pe rețeaua întreagă, pe o parte din rețea
sau fiecare nod individual. Cu o strategie la nivel de nod nu avem posibilitatea de a măsura
sincronizat și uniform o arie conținând mai mulți senzori, astfel încât să putem face de
exemplu verificări și eliminări de zgomot. Dacă vom avea aceeași stare în rețea, este mai ușor
a sincroniza măsurările, însă s-ar pierde semnificativ energie dacă se intră din cauza unui
singur nod într-o stare cu o comunicație intensă și măsurări dese. Consider că varianta optimă
este de a separa rețeaua în grupuri și de a impune și menține o aceeași stare pentru acel grup.
Figura 3.3 Automatul cu stări finite (a) și tranzițiile între stări (b)
Automatul finit conține următoare stări:
– în așteptare, notată cu I (Idle): în această stare nu vom avea comunicație, doar
măsurări periodice pentru a se detecta dacă este necesar a se trece în alte stări. Desigur
că nivelele inferioare de comunicație, XMesh în particular, vor trimite și recepționa
mesaje destinate mentenanței rețelei logice și fizice create.
– avertizare, notată cu W (Warning): această stare oferă o flexibilitate mai mare a
automatului și are scopul unei comunicații reduse împreună cu menținerea
consumului la minim posibile; strategiile de comunicație trebuie să folosească
avantajul conferit de această stare în îndeplinirea obiectivului, fiindcă arhitectura se
complică și la nivel de nod necesită procesări suplimentare. Fiindcă consumatorul
principal pe un nod este antena și circuistica sa aferent, cu o programare inteligentă se
economisește energie.
38
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
– alertă, notată cu A (Alert): odată ce grupul de noduri a ajuns în această stare,
consumul de energie devine mai puțin prioritar față de necesitatea unei comunicări
rapide și eficiente.
Între stări poate apărea orice combinație de tranziție, mai puțin tranziția A->I fiindcă dorim să rămânem în avertizare, pentru o reacție mai rapidă în cazul în care starea de alerta revine. Condițiile suplimentare față de implementarea unui regulator bipozițional cu histerezis sunt descrise în capitolul următor.
Este necesar a menționa că din motive ale paradigmei de programare nesC acest nucleu logic decizional nu poate fi complet separat de logica de comunicație folosită, ci există o interacțiune strânsă între acestea.
3.2.3 Logica de comunicație. Terminologie folosită
XMesh implementează o topologie de tipul mesh (plasă), din punct de vedere logic. Din punct de vedere funcțional, la momentul unei transmisii, un nod și-a ales un singur părinte și transmite prin acesta, până când apar condițiile necesare schimbării sale. Din acest motiv la nivel arhitectural mai ridicat putem vedea rețeaua ca una de tip cluster-tree, cu condiția ca schimbările de părinți să fie rare comparativ cu constantele de timp ale sistemului. Având în vedere că rețeaua este programată în LP și nodurile sunt static poziționate, aceasta condiție este îndeplinită. [Capitolul 2.4.3],[Xbow]
În dezvoltarea logicii de comunicație și a nucleului logic decizional am luat în considerare protocoale de rutare ierarhică și în mai mică măsura protocoalele de rutare centrate pe date. Dintre primele, protocoalele de rutare TEEN și APTEEN au prezentat interes deosebit. [Capitolul 2.2.3]
Astfel am considerat ca se pot defini pe structura topologică de cluster-tree arbori, toate nodurile care au ca nod părinte sau străbunic un nod de adâncimea 1. Nodul de adâncime 1 face parte din arbore, pe când nodul baza (cu adâncimea 0) nu face parte din nici un arbore, el neavând atribuțiuni de măsurare și procesare, ci doar ca un intermediar între porțiunea de server și porțiunea rețelei de senzori wireless. Nodul de adâncime 1 îl adresez ca rădăcină de arbore.
Conceptul de cluster este prezent în topologie cu diferite definiții. În lucrare de față
voi utiliza denumirea de cluster de adâncime D23, sau simplu cluster, unde D este o constantă
23 De la eng. „depth”.
39
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
prestabilită în funcție de cerințe și obiective, și denotă grupul de noduri care au ca părinte sau
străbunic un nod cu proprietatea că adâncimea sa în rețea este multiplu de D plus 1 și toate
nodurile copii si strănepoți din cluster nu prezintă această proprietate. Nodul care satisface
proprietatea anterioară ăl denumesc în continuare rădăcină de cluster. Astfel se creează
grupuri cu maxim D nivele de adâncime de la nodul rădăcină de cluster la cel mai îndepărtat
strănepot al său. Valoare D va fi specificată prin formularea „cluster(e) de adâncime D”.
Conceptele enunțate se pot vizualiza în Figura 3.4.
Figura 3.4 Exemplu de rețea cu senzori wireless formată din 2 arbori conținând cluster-e de
adâncime 2
În capitolul anterior am utilizat noțiunea de stare. Aceasta se poate extinde și la mesaje, în sensul că fiecare tip de mesaj va conține informații încât se poate determina univoc stare nodului emițător.
Noțiunea de tip de mesaj are 2 aspecte:
– Se referă la socket24-ul folosit de mesaj; folosirea termenului cu acest sens implică
întotdeauna însoțirea sa de una din următoarele 4 categorii:
• senzor: reprezintă mesaje care conțin date de măsurare exclusiv, indiferent de
structura mesajului.
24 Canal
40
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
• comandă: mesaje trimise doar în cadrul rețelei între nodurile ei, pentru a
impune o tranziție de stare.
• comandă2: sunt mesaje care impun o reacție a întregii rețele și provin din
exterior (de la un server conectat la nodul Gateway), iar răspunsurile se duc
dinspre rețea spre exterior.
• diagnoză: sunt asemănătoare cu mesajele tip comandă2, dar sunt direcționate
către noduri specifice, cu scopul identificării de probleme și informării asupra
nodurilor.
– La nivelul fiecărei categorii stabilite mai sus, primul câmp al zonei utile aplicației
(eliminând header-ele și footer-ele de la protocoalele de nivel inferior) va stabili
subcategoria mesajului; este singurul mod de a putea determina care este structura
specifică a unui mesaj general, cu o structură variabilă. Acestea vor fi descrise în
subcapitolele Capitolul 3.3.
Ca să se mențină o stare identică la nivel de grup, fie acesta arbore sau cluster, este nevoie ca tranzițiile între stări să fie coordonate de un nod ales în cazul unei tranziții „descrescătoare”: W->I și A->W. Nodul ales este evident rădăcina de arbore sau cluster. Tranziția descrescătoare din starea de alertă (A->W) este indicat a fi gestionată de rădăcina arborelui, fiindcă această stare implică o receptivitate și sensibilitate sporită pentru întreg arborele, și este posibil ca arbori alăturați să fie în alertă, din cauza situației de urgență. Tranziția descrescătoare din starea de avertizare (W->I) se poate implementa în ambele variante; am ales varianta gestionării de către rădăcina de cluster; astfel cluster-e nu depind între ele pentru a intra în așteptare, reducându-se consumul.
Gestionarea de către rădăcină a stării tuturor nodurilor din arbore sau cluster implică o condiție suplimentară față de cea din Figura 3.3 (b), și anume: nodul rădăcină trebuie să monitorizeze toate temperaturile din mesajele tip senzor primite, menținând un fanion dacă în actualul ciclul de măsurare a găsit o temperatură care justifică rămânerea în starea curentă. Dacă nu a găsit nici un astfel de mesaj, comparând și propria măsurare, ulterior propriei măsurări va incrementa un contor. În momentul când contorul atinge o valoare prestabilită, fie aceasta N, decide schimbarea stării și aplică algoritmul de tranziție descrescătoare. Recomand ca: ܰ ≥ ܦ, unde ܰ = ܦ sau ܰ = ܦ + 1 sunt valori bune.
În cazul unei tranziții „crescătoare” se aplică algoritmul de tranziție crescătoare,
ilustrat în Figura 3.5: I->W, I->A si W->A. Se observă că în acest caz orice nod al arborelui
41
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
poate declanșa acest tip de tranziție, dorindu-se în acest sens o reacție rapidă a aplicației. De asemenea, este suficientă doar îndeplinirea condiției de tranziție la un singur nod, ca tot arborele să fie afectat în consecință.
Figura 3.5 Traseul mesajelor de comandă la tranziția „crescătoare” a stării Algoritmii de tranziție sunt:
– crescătoare: Nodul în care temperatura a atins o valoarea suficient de mare pentru a
schimba starea într-una de nivel mai ridicat, se trimite un mesaj tip senzor simplu
specific noii stări spre baza (downstream), care nu va fi agregat. Astfel toate nodurile
sale, părinte și străbunici, vor sesiza noua stare și la rândul lor vor trimite mesaje tip
comandă spre copiii lor de a intra în noua stare. Copiii trimit același tip de mesaj
comandă spre copii lor, mesajul propagându-se în tot arborele. Un copil care va primi
o comandă de a intra într-o stare în care se află deja îl va ignora și nu-l va retransmite.
– descrescătoare: În cazul nodului rădăcină de arbore (a intrării în stare A) se va
transmite mesajul tip comanda potrivit spre copiii săi și va urma același proces de
propagare ca la algoritmul anterior. În cazul nodului rădăcină de cluster (a intrării în
stare W) se procedează la fel, însă mesajul nu mai este rutat de nodurile care au copii
42
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
alte rădăcini de cluster (adică de nodurile cu cea mai mare adâncime posibilă din actualul cluster).
3.2.4 Agregare și fuziune de date
În ambele stări de avertizare și alertă avem tipuri de mesaje neagregate, referite ca „simple”, și agregate. Metodele de fuziune implică în aplicația noastră statistici simple ca medierea, reținerea maximului și eventual a minimului. Acestea, împreună cu structura efectivă a mesajelor sunt descrise în Capitolul 3.3.2 de implementare.
Problemele esențiale la agregare sunt stabilirea nodului la care se face agregarea și numărul țintit de mesaj simple care vor fi agregate. Nodurile dintr-un cluster au aceeași perioadă de măsurare și astfel, aceeași frecvență de transmisie a mesajelor. Rezultă deci că dacă punem ca nod de agregare rădăcina de cluster prima problemă s-a rezolvat, iar a doua se reduce la un număr mediu de noduri stabilit statistic pentru cluster-e de o anumită adâncime. Se va stabili o valoare a adâncimii încât sa nu apară probleme la comunicație.
Avem 2 posibilități de agregare:
– Agregare pe adâncime: presupune o agregare a mesajelor la fiecare nivel al cluster-
ului. Un nod va transmite un mesaj simplu dacă nu a primit anterior un mesaj de la alt
nod, fie agregat sau simplu, și va transmite la nodul său părinte un mesaj agregat în
caz contrar. [Figura 3.6]
– Agregare în rădăcină: toate nodurile copii și strănepoți din cluster trimit mesaje
simple către rădăcina de cluster unde este agregat și trimis până la nodul bază.
43
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
Figura 3.6 Agregare pe adâncime a mesajelor într-un cluster de adâncime 4
Prima metodă de agregare implică o reducere de consum de energie prin faptul că se transmit mesaje mai puține, dar apare fenomenul de învechire a datelor măsurate descris în capitolul următor. Am ales această metodă pentru cluster-e în starea W. La cluster-ele în starea A se va folosi a doua metodă de agregare pentru o reacție mai rapidă.
3.2.5 Discutarea problemei vechimii și sincronizării măsurărilor
Din cauza agregării pe adâncime folosite în starea de avertizare a fiecărui nod dintr-un cluster, se pune problema actualității datelor primite de nodul rădăcină de cluster, care va îndeplini agregarea finală de date și va trimite mesajul către bază. Implicit la nivelul bazei se vor primi date care nu mai sunt actuale.
Vechimea datelor măsurate și latența provocată implicit este un parametru de proiectare care trebuie luat în considerare. Importanța acestuia este dată de valoare sa raportată la constantele sistemului.
44
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Figura 3.7 Vechimea efectivă a datelor colectate într-un cluster de adâncime 4:
(a) – rețeaua de senzori wireless, numărul din interiorul nodului reprezintă identificatorul, iar „d” adâncimea în rețea; (b) – exemplu; (c), (d) – declanșarea măsurării la nodurile copii
anterior, respectiv ulterior părinților.
După cum se observă în Figura 3.7(b), din cauza declanșării măsurării la nodurile copii ulterior nodurilor părinți, în cel mai defavorabil caz datele colectate vor avea vechimea dată de fomula:
ܶ௩ = (݀ − 1) ∙ ܶௐ
unde Tv reprezintă vechimea ca o constantă de timp funcție de adâncimea d a cluster-elor și constanta de timp la care se face măsurarea în starea de avertizare TW.
Se mai poate conclude că fenomenul nu apare în Figura 3.7(c), însă în acest caz ar
surveni o alta problemă, mai importantă, și anume congestionarea nodurilor părinți, la care se
trimit cvasi-simultan mesaje cu date de senzor de la copii. În Figura 3.7(d), dacă adâncimea
totală a arborelui permite declanșări de măsurări succesive fără a se depăși perioada TW, se
45
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
evită congestionarea nodurilor care retransmit mesaje agregate, dar datorită unor evenimente ca de exemplu schimbarea părintelui unui nod, sincronizarea fină necesară se pierde, si problema vechimii datelor reapare. În această situație toate nodurile nesincronizate trebuie sincronizate, părintele fiind nevoit să trimită la noul nod copil un mesaj de sincronizare, iar copilul mai jos la copii săi.
Dezvoltând ideea din Figura 3.7(d), se poate defini un algoritm de sincronizare a măsurărilor într-un arbore al rețelei simplu și eficient. Acesta are scopul de a produce rezultatele din Figura 3.8 și conține pașii:
1)
2)
3)
4)
Definim tsync ca timpul sincronizat în întreaga rețea de componenta TimeSyncServ, d ca
adâncime (depth) a unui nod și D ca mărimea unui cluster (sau cluster de adâncime D), Tstare drept constanta de timp specifică stării (interesează avertizare sau alertă). Definim un număr maxim al adâncimii în arbore, care nu trebuie depășit pentru a nu se obține o vechime a măsurărilor mai mare de un ciclu Dmax.
Definim și calculăm un timp de multiplu de Tstare, care va fi sincronizat în rețea:
ݐ௨ = ݐ௦௬ + ܶ௦௧ − (ݐ௦௬ %ܶ௦௧ )
unde tmul va fi identic pentru toate nodurile din arbore, sau eventual cu 1 ciclu întârziat –
după cum este explicat mai jos.
Definim și calculăm timpul de întârziere al cluster-ului actual față de cluster-ul conținând rădăcina de arbore (luând în considerare rădăcinile de cluster), și respectiv timpul de întârziere al nodului în cadrul cluster-ului:
ݐ = [(݀ − 1)⁄ ܦ + 1] ∙ ܦ௦௧ = [(݀ − 1)⁄ ܦ + 1] ∙ ܶ௦௧
௫ ܦ௫
ݐ = ൫(݀ − 1)%ܦ൯ ∙ ܦ௦௧
௫
unde drc este adâncimea nodului rădăcină de cluster corespunzător nodului curent de adâncime d.
5) Rezultatul final este timpul de defazaj până la prima măsurare în noua stare, și se
calculează cu formula următoare pe baza formulelor anterioare:
ܶ௦௧
ݐௗ௭௧ = ݐ௨ + ݐ −ݐ + ݐௗ , ݐௗ ≤
ܦ௫
unde trandom este un timp aleatoriu generat pentru a se evita mesaje simultane de la noduri
de același nivel (în cadrul cluster-elor și mesajele agregate trimise către nodul bază).
46
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Figura 3.8 Sincronizarea optimă a măsurărilor într-un arbore al rețelei
Funcționarea corectă a algoritmului necesită ca fiecare nod al arborelui să aibă aceeași stare, deci ca tranziția W -> I să se efectueze de către nodul rădăcină de arbore. Sincronizarea se poate face cel mai simplu printr-un mesaj al nodului rădăcină de arbore sau la nivel de nod când apare schimbarea stării. Dacă arborele are o adâncime totală apropiată de Dmax, în primul caz se pierde un ciclu de măsurare, iar în alt doilea caz este posibil ca ramurile care nu conțin nodul declanșator al tranziției sa piardă un ciclu de măsurare, după cum se observă prin calculul tmul. Numărul de recepții apropiate în timp ale unui nod este limitat la numărul de cluster copii ai acelui nod (nu și strănepoți).
3.2.6 Discutarea problemei schimbării părintelui unui nod
Când un nod își schimbă părintele poate apărea situația în care starea sa e diferită de cea a noului său părinte. Această situație este o problemă, deoarece ar încălca premiza menținerii unei stării identice în cluster sau arbore, care s-a utilizat în elaborarea strategiile de reducere a consumului energetic, și în consecință trebuie tratată corespunzător.
Fiindcă la interfața RouteControl oferită prin XMesh nu dispunem de o facilitate (eveniment) de anunțare a acestei schimbări a părintelui avem 2 posibilități:
47
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
– Sa reținem intern aplicației părintele curent și să verificăm periodic schimbarea sa,
urmându-se un proces de negociere între noul părinte și nod spre schimbarea stării
unuia și altuia (și a nodurilor care depind de aceștia).
– Sa tratăm problema implicit prin logica de recepție/intercepție a mesajelor tip senzor,
considerându-se că ân mod normal un mesaj primit de la un copil trebuie să fie
specific stării părintelui, în caz contrar semnifică că avem un nod copil nou.
S-a ales varianta 2 din motive de procesare mai rapidă și de simplitate de integrare în
logica deja existentă. Vom prezenta logica dezvoltată în tabelul de mai jos, cu mențiunea că nu există mesaje care indică starea de așteptare, deci în această situație se așteaptă primirea unui mesaj de la noul copil (considerându-se că nu există motiv pentru a schimba starea noul nod și a nodurile copii și strănepoți ai acestuia – starea este I și se va schimba oricum când apare condiția de tranziție în unul din aceste noduri).
Starea
Starea indicată prin
părintelui mesaj a
noului copil
W
I
A
W
W
A
W
A
A
Operații de executat
Vom schimba starea părintelui la W, dacă noul nod face parte
din cluster-ul actual. Atunci vom transmite upstream și
downstream un mesaj comandă, ca întreg arborele să intre în
starea W.
Vom schimba starea părintelui la A. Vom transmite upstream și downstream un mesaj comandă, ca întreg arborele să intre în
starea W.
Nu este necesară o schimbare de stare în nici unul din noduri. Se execută agregarea corespunzătoare, dacă e nevoie.
Analog cu cazul I-A.
Se trimite un mesaj comandă doar la noul nod pentru a-si schimba starea în A. Noul nod este obligat să retransmită mesajul de comandă downstream spre copii și strănepoții săi. Nu este necesară o schimbare de stare în nici unul din noduri. Se execută agregarea corespunzătoare, dacă e nevoie.
48
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
3.2.7 Dimensionarea într-un posibil proiect comercial sau didactic
Aplicația de fața a fost proiectată pentru a deservi rețele de senzori wireless având arbori de adâncime maximă 20. Rezultă că am putea obține o rețea circulară cu mai puțin de 20 de inele concentrice formate din nodurile rețelei, fiindcă se pot crea conexiuni părintecopil și pe același inel.
Fiindcă aplicația are ca reper monitorizarea temperaturii dintr-o zonă forestieră,
suprafețele supravegheate sunt delimitate pătratic. O abordare mai bună este dispunerea
nodurilor în forma de matrice Manhattan, cu excepția rădăcinilor de arbori, ca în Figura 3.9.
Figura 3.9 Distribuirea nodului în pădure
Ca să avem o marja de siguranță, sugerez ca latura pătratului să fi compusă din 20 de noduri. Rezulta ca vom avea o rețea de 20 ∙ 20 = 400 de noduri. Adâncimea medie a unui arbore va fi de 10.
Având în vedere distanța de transmisie în spații deschise a senzorilor IRIS de 300m
alegem o distanțiere între noduri de 50݉ => 50√2 ≈ 71݉ pe diagonală între 2 noduri.
49
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
Suprafața acoperită de o astfel de rețea ar fi:
(20 ∙ 50݉)ଶ = 1 ݇݉ଶ = 100 ℎ݁ܿݐܽݎ݁.
Ținând cont de aspectele prezentate în Capitolul 3.2 recomand următoarele valori pentru constantele aplicație:
ܶூ = 2݉݅݊ = 120ݏ݁ܿ, ܶௐ = 40ݏ݁ܿ, ܶ = 20 ݏ݁ܿ
ܦ = 3 (se poate alege si 4),
în implementare și la studiul de caz am ales ܦ = 2 din motivul numărului de senzori necesitați contrar.
3.3 Implementare și testarea aplicației
După cum s-a menționat la începutul Capitolului 3.1, această aplicație se dorește a fi
un program pentru monitorizarea temperaturii într-o zonă forestieră cu ajutorul unei rețele de
senzori wireless. Rețeaua a fost formată din trei noduri: 2 noduri legate multi-hop (nodul 2
având părinte pe nodul 1) și un nod bază, iar la nevoie – pentru testarea cazului unui părinte
nou – s-a utilizat un nod suplimentar [Figura 3.10]. Prin intermediul unui computer legat
serial la placa de programare și achiziție MIB520, având nodul bază conectat sau un alt nod
cu programul XSniffer instalat, s-a putut monitoriza comportamentul rețelei.
Figura 3.10 Statistice despre rutele (conexiunile) din rețea (XSniffer)
Aplicația, fiind un posibil nivel final al unui proiect comercial sau didactic mai mare,
nu are interfața grafică, nefiind scopul ei. Însă, pe lângă realizarea acestei aplicații software
în limbajul nesC, am mai realizat și o serie de programe scrise în limbajul de programare C#
tocmai pentru a putea avea un minim de interacțiune cu aplicația, cu scopul testării ei.
Singura alternativă pentru depanarea programului la monitorizarea evoluției rețelei au fost led-urile, care au permis identificarea rapidă a funcționării corecte unor bucăți mici de funcționalitate.
În Capitolele 3.3.2 și 3.3.3 se prezintă lista tuturor mesajelor implementate de
aplicație, împreună cu explicațiile necesare și structura lor. Pe lângă aceste mesaje generate
50
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
explicit de și pentru aplicație, în Figura 3.15 (1) și (2) se observă mesaje produse de straturile inferioare de comunicație, prin componentele XMesh, și anume: mesaj pentru actualizarea tabelei de rutare25 și respectiv mesaj de sincronizare a ceasurilor fiecărui nod din rețea –
informații suplimentare se pot vedea în Figura 3.11 de mai jos.
Figura 3.11 Sincronizare a ceasurilor (XSniffer)
3.3.1 Măsurarea temperaturii. Compresie de date
La măsurarea oricărei mărimi fizice disponibile cu ajutorul senzorilor, trebuie luat în considerare managementul consumului de energie, care nu este gestionat direct prin componenta TinyOS HPLPowerManagement [Capitolul 3.2.1]. Astfel, pentru un consum eficient, senzorul este pornit doar la nevoie, finalizarea startării sale fiind anunțată printr-un eveniment. În acest eveniment vom trimite o comanda de declanșare a măsurării, fiind din nou anunțați printr-un eveniment asincron la terminarea eșantionării și convertirea semnalului analog în digital. Tot acest proces implică o întârziere mai mare față de momentul de măsurare dorit, însă aceasta este nesemnificativă (de ordinul a zeci de msec) în raport cu constantele sistemului; întârzierea apare la fiecare nod pentru fiecare măsurare, deci intervalele de timp rămân constante în stările respective.
Senzorul de temperatura ales este SHT11 produs de firma Sensirion [Capitolul 3.2.1]. Se poate vizualiza în Figura 3.12.
25 RTE (Routing Table Entry)
51
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
Figura 3.12 Senzorul Sensirion SHT11 pentru măsurarea temperaturii și umidității
Funcția de transformare neliniară din valoarea semnalului digital în valoarea reală a temperaturii (în ˚C) și caracteristica erorii de măsurare sunt prezentate mai jos:
ߠ = ݀ଵ + ݀ଶ ∙ ܵܦ + ݀ଷ ∙ (ܵܦ − ݃)ଶ
unde d1 = -39.3 (la 3V tensiune de alimentare), d2 = 0.01, d3 = -3.6e-8 și g = 7000 sunt constante pentru ˚C și semnalul digital SD pe 14 biți. [Sens]
Figura 3.13 Caracteristica de eroare a senzorilor Sensirion SHTx
În aplicația C# afișată în Figura 3.14 s-a folosit ecuația de mai sus, iar pentru
conversia inversă din temperatură în ˚C spre semnal digital s-a ales soluția pozitivă a inversei funcției (o ecuație de gradul 2). Inversa este necesară pentru testare și, de asemenea, ca un utilizator să poate introduce temperaturile de prag dorite într-o formă umană inteligibilă. [Capitolul 3.3.3]
52
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Figura 3.14 Interfața aplicației C# pentru conversia temperaturii între semnal digital și ˚C
Compresia de date este o operație mai importantă și des întâlnită în aplicații folosind
de exemplu camere video wireless, care transmit un semnal video low-bitrate26 și de rezoluție mică. Însă și în aplicația de față se poate observa ca în stările de avertizare și alertă nu este nevoie o rezoluție foarte bună a temperaturii, care este oricum afectată de zgomot la temperaturi mari. Astfel putem reduce dimensiunea temperaturii de la 2 octeți la 1 singur printr-o normalizare, făcând următoarele:
– Se convertește valoarea în ˚C
– Se reduce intervalul de temperaturi convertite la -20˚C – 107˚C – Se deplasează valoarea cu 20˚C spre dreapta (se adună)
– Se dublează valoarea și se ia partea întreagă
Astfel se obține o rezoluție de 0.5˚C și o reducere de consum energetic prin transmisia unor
mesaje tip senzor mai mici. Ca observație, trebuie menționat că procesorul AVR
ATmega1281 nu dispune de instrucțiuni în virgulă flotantă, nici de împărțire, iar compilatorul
le emulează; aceste operații au fost inteligent implementate doar prin înmulțiri, deplasări și
condiții, altfel întârzierile și consumul datorat procesării nu ar justifica folosirea compresiei.
[Atmel]
3.3.2 Mesaje de tip senzor și de comandă
Fiecare subtip de mesaj conține ca prim câmp în zona de mesaj utilă aplicației tocmai un identificator al acestui subtip. Acest câmp ocupă 1 octet și deoarece avem puține tipuri în fiecare categorie, biții săi mai semnificativi pot fi folosiți în alte scopuri. Se poate observa în Figura 3.15 drept valoarea din coloana „1”. [Capitolul 3.2.3]
26 codat la o rata digitală mică
53
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
Categoria din care face parte mesajul, adică mesaj de timp senzor, comandă, comandă2 sau diagnoza, este gestionată la un nivel arhitectural inferior, prin câmpul „socket” al XMesh. Este necesar ca la nivelul configurației în care se folosesc componentele MULTIHOPROUTER și GenericComPromiscous să aibă interfețele ReceiveMsg, MHopSend și Intercept legate cu aceeași valoare de socket pentru fiecare tip de mesaj; vom obține deci 4 seturi diferite de astfel de interfețe, și putem trimite, recepționa și intercepta mesaje de o anumită categorie separat, și astfel le putem procesa în mod diferit. Socket-ul se poate observa în Figura 3.15 drept valoare de pe coloana „AppId”.
Figura 3.15 Diferite tipuri de mesaje din aplicație (XSniffer) Din categoria mesajelor tip senzor fac parte:
– Mesaj simplu specific stării W:
• Conține suplimentar: temperatura (comprimată).
• Este asemănător cu mesajul (4) din Figura 3.15, doar câmpul de subtip are altă
valoare
– Mesaj agregat specific stării W:
• Conține suplimentar, în ordine: număr noduri agregate, suma temperaturilor
(comprimate) din toate mesajele agregate, adresa nodului cu temperatura
minimă și respectiv 4 adrese (dacă este cazul) ale nodurilor cu cele mai mari
54
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
temperaturi, temperatura (comprimată) minimă și cele mai mari 4 temperaturi (dacă nu este cazul va fi 0) din toate mesajele agregate.
• Se poate vizualiza ca mesajul (3) din Figura 3.15. – Mesaj simplu specific stării A:
• Conține suplimentar: temperatura comprimată.
• Vizibil în Figura 3.15 ca mesaj (4). – Mesaj agregat specific stării A:
• Conține suplimentar, în ordine: număr noduri agregate, suma temperaturilor
(comprimate) din toate mesajele agregate, adresa nodului cu temperatura
maximă, temperatura (comprimată) maximă din toate mesajele agregate.
• Se poate vizualiza ca mesajul (5) din Figura 3.15.
Trebuie menționat că la mesaje de tip senzor, bitul cel mai semnificativ al subtipului
indică dacă există cel puțin o temperatura necesară păstrării stării actuale. Motivul folosirii
fanionului este dat de faptul că temperaturile sunt comprimate, iar valorile de prag sunt sub
formă de semnal digital, pentru a nu înrăutăți eroarea de măsurare. Procesul de decompresie
ar necesita o procesare mare și nedorită și alte comparări care reintroduc tocmai eroarea care
s-a dorit a fi evitată. De asemenea, s-a folosit un câmp de sumă a temperaturilor în loc de
media aritmetică, din cauza observației din capitolul anterior; deși astfel se pierde mai multă
energie, nu se introduc erori suplimentare prin calcularea mediei aritmetice o singura dată,
direct pe server.
Din categoria mesajelor tip comandă fac parte: – Intră în starea I
– Intră în starea W
– Intră în starea A
Este evidentă semnificația lor: nodului destinatar i se cere să își schimbe starea.
Procedăm în continuare cu un scurt studiu comparativ al numărului de octeți27
transmiși între agregarea pe adâncime(a) și agregarea în rădăcină (b), luând cazul stării de
alertă, pentru care s-a ales agregarea (b) – mai rapidă. Cunoaștem că protocoalele de nivel
inferior ocupă 14B (5 octeți header28 TinyOS + 7 octeți header XMesh + 2 octeți footer29
27Prescurtăm B, de la eng. byte.
28 Antet al unui pachet de date.
55
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
TinyOS), și că dimensiunea structurilor simple (W și A) folosite în rețea este de 2B, iar a celei agregate W de 19B. Obținem:
– Cluster de adâncimea 3 [Figura 3.16 (1)]:
• Cazul (a): 3 ∙ 16ܤ + 2 ∙ 33ܤ = 48ܤ + 66ܤ = 114ܤ
• Cazul (b): 3 ∙ 2 ∙ 16ܤ + 2 ∙ 16ܤ = 8 ∙ 16ܤ = 128ܤ – Cluster de adâncimea 4 [Figura 3.16 (2)]:
• Cazul (a): 4 ∙ 16ܤ + 3 ∙ 33ܤ + 2 ∙ 33ܤ = 64ܤ + 165ܤ = 229ܤ
• Cazul (b): 4 ∙ 3 ∙ 16ܤ + 3 ∙ 2 ∙ 16ܤ + 2 ∙ 16ܤ = 20 ∙ 16ܤ = 320ܤ
Figura 3.16 Exemplele de cluster-e alese pentru studiul comparativ al agregării
Se poate observa că la cluster-ul de adâncime 4 că diferența devine semnificativă, și implicit
consumul crește. La valori de adâncime mai mari raportul dintre cele 2 valori va crește.
Deoarece mesajul agregat A este lung, la cluster-ul de adâncime 3 diferența este încă mică.
3.3.3 Mesaje de tip comanda 2 și diagnoză
Aceste mesaje se transmit de la server prin intermediul unei legături, fie wireless fie prin cablu, la nodul de bază, care le va ruta la destinația lor [Capitolul 3.2.3]. Fiindcă scopul lucrării este strict legat de rețele de senzori wireless, am fost nevoit să dezvolt o aplicație C# care să poată trimite mesaje către nodul de bază, prezentată în Figura 3.17. Comunicarea se realizează serial printr-o librărie C#, de la computer spre placa de programare MIB520, pe care este conectat nodul de bază. Pachetele de date trebuie construite conform specificațiilor XMesh pentru comunicare downstream. [Xbow]
29 Subsol al unui pachet de date.
56
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Figura 3.17 Interfața aplicației C# de transmitere mesaje spre nodul de bază Din categoria mesajelor tip senzor fac parte:
– Mesaj interogare temperatura:
• suplimentar: temperatura (comprimată).
• Aplicația nu va transmite nici o informație spre server dacă nu se intră în
starea W sau A. Din acest motiv serverul trebuie să trimită mesaje de
interogare (query) pentru a le solicita informații explicit. Intervalul de
interogare trebuie să fie mare, pentru a avea un impact mic asupra consumului;
o valoare potrivită este de 3 ore.
• Suplimentar am implementat un mecanism simplu de sincronizare a
măsurărilor în rețea. Fiindcă în acest caz se dorește ca datele să fie returnate
începând de la nodurile de adâncime mică și sfârșind cu nodurile de adâncime
mare, declanșarea măsurării dintr-un nod este programată cu o întârziere egală
cu o constantă de timp multiplicată cu adâncimea nodului. La întârziere se
adaugă un număr aleatoriu generat mai mic decât jumătate din constantă,
pentru a se evita mesaje cvasi-simultane de la noduri cu aceeași adâncime.
57
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
– Mesaj răspuns la interogare temperatura:
• Conține suplimentar: temperatura (necomprimată).
• Se poate observa ca exemplu în figura de mai jos (fiind transmis upstream este
receptat de nodul de bază, iar prin utilitarul XServe adăugat în baza de date
PostGreSQL).
• Serverul colectează aceste date cu scopul întocmirii unor statistici și de
asemenea ca operatorul uman să poată monitoriza buna funcționare a rețelei.
– Mesaj de modificare a pragurilor W și respectiv A: sunt folosite dacă se dorește
calibrarea automatului cu stări finite; un posibil motiv ar fi schimbarea condițiilor
atmosferice datorită anotimpurilor.
Figura 3.18 Exemplu de mesaj tip comandă răspuns la interogare (XServe) Din categoria mesajelor tip senzor fac parte:
– Mesaj setare a unei temperaturii de diagnoză:
• suplimentar: temperatura (necomprimată).
• Nu se mai declanșează o măsurare efectivă, valoare temperaturii fiind
înlocuită cu aceasta. Este folosit pentru testarea automatului cu stări finite și în
depanarea aplicației, în general.
– Mesaj de setare a „pachetelor de sănătate”:
58
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
• Se folosește comanda health_packet, pusă la dispoziție de XMesh prin
componenta de rutare. Activarea facilității presupune trimiterea la un interval
de 10 min a 2 tipuri de pachete alternativ, de la nod: primul tip conține
statistici despre toate pachetele de date care au trecut prin nodul curent și
despre consumul instantaneu, iar al doilea tip informații despre vecinătatea
nodului si calitatea legăturilor radio.
– Mesaj de resetare a temperaturii de diagnoză și respectiv a pachetelor de sănătate:
sunt dezactivate opțiunile prezentate anterior.
Mesaj de modificare a pragurilor W și respectiv A sunt folosite dacă se dorește
calibrarea automatului cu stări finite; un posibil motiv ar fi schimbarea condițiilor atmosferice
datorită anotimpurilor. Mesajele de tip comandă 2 downstream sunt trimise la toate nodurile
arborelui, iar cele de tip diagnoză la un nod specific, așa cum se poate observa în Figura 3.17
(absența sau prezenta căsuței de intrare „ID nod”). Ca observație adaug că toate mesajele în
care nu se menționează explicit, nu conțin câmpuri suplimentare celui de subtip.
3.3.4 OTAP (Over-The-Air-Programming)30
Facilitatea este oferită de XMesh și presupune programarea wireless a nodurilor,
necesitând o placa de programare (fie MIB520) conectat la nodul de bază, iar pe noduri să fie
deja instalat un program special image-loader31 într-o zonă EEPROM rezervată (zona 0).
Pașii care trebuie urmați sunt:
– Opțional se interoghează nodurile pentru a afla ce imagini conțin și pentru a observa
dacă sunt „văzute” de nodul bază; dacă nodul de bază nu poate comunica cu un
anumit nod semnifică că nodul nu face parte din rețeaua XMesh actual sau este în LP
programat.
– Se încarcă noua imagine de program (executabilul este deja generat) pe nod(uri).
[Figura 3.19]
– Se așteaptă finalizarea încărcării noii imagini
anterior s-a procedat astfel). [Figura 3.20]
– Se reboot32-ează întreaga rețeaua. [Figura 3.21-a]
30 Programare prin aer.
31 Încărcător de imagine (program).
(pentru fiecare nod dacă la pasul
32 Repornire fizică a hardware-ului; sistemului de operare TinyOS va încărca toate nivele superioare de aplicații.
59
Universitatea „Politehnica” Timișoara 3. Dezvoltare aplicativă: Economisirea energiei în rețele de
senzori wireless utilizând o arhitectură adaptată și metode de agregare și fuziune
– Operația opțională de interogare se poate efectua și acum. [Figura 3.21-b]
Figura 3.19 Exemplu pornire operație de încărcare a unei noi imagini pe nod prin OTAP
Figura 3.20 Exemplu finalizare operație de încărcare a unei noi imagini pe nod prin OTAP
Figura 3.21 Exemplu de operația de reboot-are și respectiv de interogare a unui singur nod
prin OTAP
În exemplele de mai sus am folosit linia de comandă Cygwin, însă Crossbow pune la dispoziție o interfață grafică prin aplicația MoteConfig (tab-ul „Remote Program”).
De menționat că programarea OTAP funcționează doar dacă nodurile sunt setate în
HP. Am folosit acest mod de programare doar în stadiile incipiente ale aplicației.
60
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
4. STUDIU DE CAZ
Studiul de caz constă în compararea unor indicatori de performanță a funcționarii
rețelei de senzori wireless dezvoltate, în fiecare stare, cu o rețea de senzori wireless referință.
4.1. Definirea indicatorilor de performanță și a condițiilor de studiu
Ca prim pas al studiului de caz, trebuie să definim o serie de indicatori de performanță semnificativi pentru aplicația dezvoltată. Aceștia sunt:
– Energie consumată: o definim drept consumul de curent pe un interval de timp.
Fiindcă singura sursă de energie din aplicație sunt bateriile, unitatea de măsura
relevantă este µA/sec sau mA/h. Fiindcă bateriile oferă o tensiune continuă în
domeniul de funcțiune normal al nodului (2.7V – 3.3 V), independent de curentul
necesitat; din acest motiv; datorită acestei modificări lente în timp, energia este
exprimată doar în funcție de curent și timp. Când tensiunea scade sub pragul de 2.7 V,
nodurile intră într-un regim de funcționare redus (de exemplu viteza
microprocesorului scade), și vor funcționa corect până la tensiunea de 2.4V.
– Durata de viață: este invers proporțională cu consumul. Scopul calcului energie
consumate este determinarea duratei de viață a nodurilor, factor esențial în succesul
sau eșecul aplicațiilor cu rețele de senzori wireless. Vom calcula durata de viață în
luni și ani.
– Lățimea efectivă de bandă: o definim ca numărul de pachete utile transmise în
intervalul de 1 oră. Prin pachete utile înțelegem mesajele primite la nivel de server de
la nivelul aplicației conținând date de senzor (prelucrate în rețea sau neprelucrate).
-Latența: reprezintă durata de timp necesară sistemului ca să reacționeze la stimuli
externi semnificativi. Stimuli semnificativi se consideră temperaturile care cauzează
trecerea în starea de avertizare sau alertă, în nodurile aplicației dezvoltate. Unitatea de
măsură este secunda.
Indicatorii de performanță sunt metricile care permit efectuarea unui studiu comparativ relevant între aplicația lucrării și o aplicație referință.
Al doilea pas al studiului de caz implică stabilirea condițiilor de studiu. Acestea le prezentăm în continuare.
61
Universitatea „Politehnica” Timișoara
4. Studiu de caz
Pentru rețeaua de senzori wireless s-au utilizat un nod de bază și 2 noduri formând o legătură multi-hop (cu nodul 2 având nodul 1 ca părinte). Topologic, avem o rețea formată dintr-un singur cluster de adâncimea 2 (implicit și arbore).
Toate constantele sistemului (ce dezvoltat și cel de referință) au fost micșorate cu un
factor, și anume: în aplicația dezvoltată pentru starea I cu un factorul 8, iar în restul cazurilor
cu factorul 6. Motivația acestei operații a fost micșorarea intervalelor de timp necesare în
determinarea unui comportament repetitiv de consum energetic – tiparul astfel dedus, dacă s-
au efectuat suficient de multe eșantionări, poate fi extrapolat la intervale de timp mult mai
mari.
Figura 4.1 Interfața aplicației software Fluke
Pentru măsurarea curentului, s-a folosit un multimetru performant și o aplicație profesională utilizată pentru acaparare și stocarea într-o bază de date a eșantioanelor. Multimetrul nu a introdus curenți semnificativi în măsurare, iar eșantionările s-au efectuat la ordin de zecimi de secundă, cu detecția fronturilor. Aplicația software este denumită Fluke; interfața ei se poate vizualiza în Figura 4.1.
62
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Pe lângă calculul indicatorilor pentru fiecare stare a aplicației lucrării, este nevoie de o modalitate de a caracteriza aplicația global, integrând toate stările. Consider că metoda cea mai relevantă este atribuirea unor ponderi diferite fiecărei stări pe baza unei estimări mediii a funcționării rețelei în respectiva stare de-a lungul unui an: pentru W 7 zile pe an, pentru A 2 zile pe an, iar în stare I restul de zile. Rezultă ponderile din tabelul următor:
stare
I W A
pondere
p 0.975 0.0192 0.00547
p [%] 97.5 1.92 0.547
Aplicația de referință conține toate facilitățile XMesh (rutare multi-hop, sincronizarea
nodurilor) și declanșează o măsurare la un interval de 1 min (60 sec). Temperatura este
transmisă imediat, necomprimat, iar pe traseu nu se aplică metode de agregare sau fuziune.
4.2. Rezultate și concluzii pentru studiul de caz
În primul rând am verificat dacă tensiunea de la baterii a fost în domeniul de
funcționare normal al nodurilor: s-a măsurat 2.9 V, deci nodurile au funcționat în regimul
normal.
Consumul de energie
Figura 4.2 Tipar consum curent pentru aplicația referință
63
Universitatea „Politehnica” Timișoara
4. Studiu de caz
Figura 4.3 Tipar consum curent pentru aplicația dezvoltată în starea I
Figura 4.4 Tipar consum curent pentru aplicația dezvoltată în starea W
64
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
Figura 4.5 Tipar consum curent pentru aplicația dezvoltată în starea A
Prin măsurare s-au obținut diferite tipare de consum, prezentat în Figura 4.2 pentru aplicația referință și respectiv pentru aplicația dezvoltată: starea I (în așteptare) în Figura 4.3, starea W (avertizare) în Figura 4.4 și starea A (alertă) în Figura 4.5.
Rezultatele pentru consumul de curent, deduse din baza de date a eșantionărilor, sunt prezentate în tabelul de mai jos. Consumul global de curent al aplicației dezvoltate este calculat la secțiunea duratei de viață. Menționez ca observație că la valoarea medie a consumului (cea mai semnificativă) trebuie să se folosească formula mediei ponderate (nu aritmetice), unde ponderea este timpul de eșantionare (diferit la fiecare eșantion), iar suma ponderilor va da perioada totală de studiu.
Curent maxim Curent minim Curent mediu Factor Curent mediu
[mA] [µA] [µA] timp real [µA]
Referință 19.82 44 1096.7 6 182.7
I 18.93 45 385.5 8 48.19
W 20.12 48 1034.2 6 172.3
A 19.84 43 1770.8 6 295.1
Din cauza domeniul larg de măsurare (de la zeci de µA la zeci de mA) multimetrul nu
poate oferi o valoare exactă a minimului și maximului. Se observă însă că acestea sunt foarte
apropiate în toate cazurile, din ceea ce putem deduce că este vorba de un consum de curent
maxim posibil când antena transmite/recepționează, procesorul este încărcat cu instrucțiuni
65
Universitatea „Politehnica” Timișoara
4. Studiu de caz
de executat și senzorul măsoară, respectiv antena și procesorul sunt în modul pasiv, iar senzorul este dezactivat.
În cazul stării I rezultatele sunt predictibil cele mai bune, fiindcă nu se transmite nimic
(mai puțin mesaje XMesh). Comparând rezultate de la starea W cu referința, având consumul
apropiat, tragem concluzia că agregarea care se realizează în nodul 1 (părinte) este suficientă
pentru a compensa perioade de timp de 40 sec în W, cu 50% mai rapidă decât la referință.
Pentru starea A, datorită perioadei duble de măsurare consumul crește (consider că raportul
consumului stării A față de stare W ar fi mai mare într-un cluster de adâncime mai mare).
Odată ce mărim rețeaua, consumul ar crește, fiindcă nodurile ar trebuie să
recepționeze mai multe mesaje si să le interpreteze și să le retransmită. De asemenea, se va
mări diferența între consumul aplicației de referință și aplicația dezvoltată în stare W (și A),
în defavoarea aplicației referință, care nu aplică tehnici de agregare, fuziune sau compresie.
Durata de viață
O baterie AA tipică oferă 2000mA- h ⇔ 2000mA ∙ 3600h . Consumul de energie se obține împărțind această valoare la consumul fiecărei aplicații definit în mA/h și la constante necesare pentru perioadele de timp. Rezultatele sunt prezentate în tabelul de mai jos:
aplicație aplicație raport aplicație raport [%]
referință dezvoltată referință/dezvoltată
consum [µA/sec] 182.8 51.9 3.52 352.0
consum [mA/h] 658.0 186.9 3.52 352.0
viață [luni] 14.99 55.80 0.268 26.8
viață [ani] 1.25 4.65 0.268 26.8
Putem trage concluzia, fără riscul de a exagera, că aplicați dezvoltată în lucrarea de față este clar superioară din punct de vedere al consumului și al duratei de viață comparativ cu aplicația referință.
Din tabelul de mai sus și considerând ponderile fiecărei stări în ecuația globală a
aplicației dezvoltate putem concluziona că aportul semnificativ la acest rezultat este dat de
menținerea rețelei în starea de așteptare (în care consumul este foarte scăzut). Dacă ponderea
stării de alertă s-a estimat mai mică decât în realitate, implicațiile practice conduc la faptul că
rețeaua a detectat un incendiu real (nu o alarmă falsă), și astfel obiectivul și costurile aferente
rețelei s-au justificat; în această situație apare cu o probabilitate mare necesitatea schimbării
66
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
unei părți din noduri (care sunt arse). Dacă ponderea stării de avertizare este depășită, sunt de părere că este necesară o recalibrare a valorii de prag pentru avertizare.
Pe lângă aportul principal adus de arhitectura centrată pe automatul cu stări finite,
tehnicile de agregare și fuziune de date, și în mai mică măsură de compresie – în condițiile aplicației propuse – aduc o economisire de energie cu un raport crescător odată cu creșterea rețelei. Extrapolând rezultatele la dimensiunile propuse pentru rețeaua de senzori wireless din Capitolul 3.2.7 se vor transmite mai multe date utile la o frecvență mai mare și cu un consum mai mic decât în cazul adoptării soluției de referință.
Valorile obținute în toate cazurile sunt însă foarte optimiste, din cauza rețelei de studiu cu puține noduri. Trebuie să luăm în considerare aspecte suplimentare:
– Un număr de mesajele rutate semnificativ mai mare într-o rețea de 400 de noduri: la 8
noduri rădăcini de arbore rezultă arbori de 50 de noduri, formați din 8 cluster-e de
adâncime 3 (de câte 6 noduri) sau 5 cluster-e de adâncime 4 (de câte 10/11 noduri) –
valorile sunt considerate ca medii.
– Puterea de transmisie a fost mai mică din motive de distanțe la care nodurile trebuiau
poziționate încât să se formeze o topologie multi-hop (în interior nodurile IRIS pot
comunica la distanțe mai mari de 50m). Este necesară o reducere cu 15% a
consumului total de comunicație.
– Pentru aplicația dezvoltată nu s-au putut lua în considerare mesajele tip comandă prin
metodologia folosită.
Luând în considerare acești factori estimez o durată de viață a aplicației dezvoltate de 2 ani datorită stării de așteptare.
Un calcul scurt al costului rețelei din punct de vedere strict energetic conduce la
următoarele: momentan o baterie AA are prețul de 1 €, la 400 noduri cu o viață de 2 ani,
rezulta un cost anual de 200 € pentru acoperirea a 100 hectare de zonă forestieră.
Lățimea efectivă de bandă și Latența
Calculele pentru lățimea efectivă de bandă și pentru latență sunt teoretice. La o funcționare corectă valorile practice sunt foarte apropiate. Problemele care pot afecta practic valorile obținute teoretic sunt:
– Pierderea de pachete: XMesh garantează o rată de ajungere la destinație a pachetelor
trimise fără confirmare de peste 90%. Deoarece valorile din mediu sunt într-o
67
Universitatea „Politehnica” Timișoara
4. Studiu de caz
permanentă schimbare, varianta trimiterii unui pachet cu date noi fără confirmare este preferabilă confirmării unor pachete vechi și retransmisiei lor.
– Întârziere de transmisie a pachetelor din cauze diverse: nodul este ocupat cu alte
operații când primește un pachet care trebuie rutat, procesarea pachetelor la primire
înainte de rutare, pachetele trimise la un interval apropiat de timp necesitând o
retransmisie din cauza coruperii, sincronizarea nodurilor etc. Trebuie menționat că
unele din aceste cauze produc întârzieri de durate nesemnificativi raportate la
constantele sistemului.
Calculele pentru lățimea efectivă de bandă sunt prezentate în următorul tabel:
Calcul [pachete
utile/oră]
Aplicație 2 ∙ 1h/1 min =
referință = 2 ∙ 60 = 120
I (în
așteptare)
2 ∙ 1h/3h = 0.66
W
(avertizare)
1 ∙ 1h/40sec = 90
A (alertă)
1 ∙ 1h/20sec = 180
Aplicație
3.356
dezvoltată
Observații
În general vom avea: ݊ ∙ 60
unde n este numărul de noduri din rețea. Prin interogarea temperaturii la 3 ore avem și în această stare pachete utile.
Obținem în general: ݊ ∙ 1/3.
În general vom avea: ݊ ∙ 90
unde nr este numărul de noduri rădăcină de cluster din rețea.
Un pachet conține suplimentar și date din care se deduce media aritmetică a temperaturilor pentru nodurile din cluster.
În general vom avea: ݊ ∙ 180.
Un pachet conține 5 măsurări și date din care se deduce media aritmetică a temperaturilor pentru nodurile din cluster.
În general vom avea:
ூ ∙ ݊ ∙ 1/3 + ௐ ∙ ݊ ∙ 90 + ∙ ݊ ∙ 180.
Câștigurile obținute la indicatorul de consum și viață au ca preț o lățime efectivă de
bandă mult redusă: obiectivul de reducere a consumului a condus imediat la reducerea
numărului de mesaje, astfel încât nu putem să obținem ambele avantaje. Calitativ, indicatorii
68
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
lățime de bandă și durată de viață sunt invers proporționali. Dacă se ia în considerare faptul că în starea A un mesaj conține 5 temperaturi, la rezultatul și formula respectivă poate fi adăugat un factor de 5 și obținem valori îmbunătățite.
Discuția la toți indicatorii trebuie purtată în raport cu obiectivele: nu necesităm informații de la toate nodurile atunci când apare o situație de urgență fizică; este important să știm temperatura maximă și locația acelui nod și o caracterizare a regiunii din jurul său –
realizată prin media aritmetică. Astfel acest indicator are o importanță redusă în domeniul de aplicabilitate a soluției propuse în lucrare.
În cazul latenței, prin definiția dată, studiul trebuie efectuat din prisma tranzițiilor între stări pentru aplicația propusă. Dintre acestea, interesează doar tranzițiile „crescătoare”. De asemenea acest indicator nu îl putem calcula global pentru aplicația propusă, depinzând de contextul ei.
Calculele sunt prezentate în tabelul de mai jos:
Latență [sec]
Aplicație referință 1 ݉݅݊ = 60 ݏ݁ܿ
I->W ܶூ = 2݉݅݊ = 120ݏ݁ܿ
I->A ܶூ = 2݉݅݊ = 120ݏ݁ܿ
W->A ܶௐ = 40 ݏ݁ܿ
Se observă în tabel că aplicația referința reacționează mai rapid decât automatul
propus în aplicația lucrării. Totuși dacă în prealabil arborele rețelei de senzori wireless avea
stare de avertizare, automatul va percepe mai rapid urgența și își va schimba starea în alertă.
Se poate deduce că aplicația referință are un avantaj statistic, însă practic schimbări
bruște de temperatură sunt rare, automatul având timp să se adapteze; deci de obicei vom
avea ܫ → ܹ → ܣ. Din faza de proiectare scopul principal al introducerii stării intermediare de
avertizare (W) a fost îmbunătățirea reacției sistemului, făcându-se un compromis în raport cu
consumul de energie introdus suplimentar și complicarea logicii funcționale și de
implementare.
69
Universitatea „Politehnica” Timișoara
5. Concluzii
5. CONCLUZII. DIRECȚII DE DEZVOLTARE
5.1 Concluzii
În aspirația omului de a controla mediul înconjurător cu un grad din ce în ce mai ridicat și la o precizie sporită, rețele de senzori wireless înglobează necesitatea observării cu acuratețe a mediului, analiza imediată a datelor acaparate și obiectivul controlării dorite a parametrilor mediului într-o unitate fizic și funcțional compactă, flexibilă și dinamică. Aceasta este o motivație suficientă pentru numărul crescând de aplicații ce folosesc tehnologia rețelelor de senzori wireless.
În viitor, această tehnologie va ajuta la salvarea a mii de vieți prin prevenirea de dezastre naturale (în mine, tuneluri, clădiri) sau prin dezvoltarea aplicațiilor de monitorizare a sănătății pacienților și nu numai.
Aria de aplicabilitate a rețelelor de senzori wireless este extinsă și prin cercetarea continuă în creștere. Putem declara – din motivul anterior și din expunerea întregii lucrări –
că tehnologia rețelelor de senzori wireless are un viitor asigurat.
Pentru realizarea lucrării au fost studiate diverse publicații apărute în ultimii ani. A fost necesară o sinteză ce atinge diferite domenii tehnice. Din punct de vedere teoretic am asimilat cunoștințe despre arhitectura, proiectarea și utilizarea rețelelor de senzori wireless. Am studiat în detaliu modul în care este realizată comunicarea în rețelele de senzori wireless la nivelele superioare (algoritmi de rutare, topologii).
În ceea ce privește dimensiunea hardware a aplicației practice, am luat contact cu
elementele hardware necesare la construirea unei rețele simple de senzori wireless:
echipamentele achiziționate de facultate – noduri wireless (IRIS), plăci cu senzori
(MTS420/400), elemente de interfațare cu un calculator (MIB520). De asemenea, am învățat despre modul în care se utilizează aceste resurse hardware. Am învățat să folosesc resursele hardware ale nodurilor pentru a realiza diverse programe de un nivel de complexitate mediu spre ridicat (timer-e, led-uri, convertoare, senzori).
Din punct de vedere al programelor software de suport a rețelei, am luat contact cu
mediul de monitorizare și configurare TinyOS, Programmers Notepad, programul de
încărcare MoteConfig XSniffer, MoteView și utilitarul linie de comandă Cygwin. Am învățat
o nouă paradigmă de programare, pe componente, implementată prin nesC. De asemenea mi-
am folosit și îmbunătățit cunoștințele proprii de dezvoltare de aplicații în mediul Microsoft
70
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
.NET (interfațarea cu, și utilizarea perifericului serial). Menționez că software-ul firmei Crossbow nu a funcționat întotdeauna după specificații, și am fost nevoit să accesez si să modific componente de ordin arhitectural inferior aplicației, însă astfel am deprins o înțelegere mai bună a facilităților oferite de TinyOS și nesC.
Cel mai mare câștig îl consider a fi strategiile și conceptele dezvoltate, foarte multe dintre ele fără o inspirație directă. Acestea au fost modelate de probleme hardware și software întâmpinate pe parcurs, împingându-mă spre obținerea unor soluții mai bune. Sunt de părere că obiectivele propuse au fost îndeplinite.
Trebuie să menționez că, deși conceptele folosite în proiectarea, implementarea și
utilizarea acestor rețele s-au dovedit performante, ele nu au ajuns la un stadiu de saturare,
rămânând multe aspecte de îmbunătățit. Un exemplu important este sincronizarea nodurilor –
din perspectiva măsurărilor s-a propus o soluție teoretică, pe care o consider practic viabilă.
5.2 Direcții de dezvoltare
Domeniul rețelelor de senzori wireless este în plină expansiune. Inițial domeniul s-a
dezvoltat împins fiind de aplicațiile militare la care se preta (actualmente acestea
concentrându-se în special pe direcția securității naționale și internaționale). Dar ca multe alte tehnologii sponsorizate militar, când au ajuns la un anumit punct în cercetarea și dezvoltarea lor, au trecut în domeniul industrial și civil și poate fi implementată cu succes în aspecte ale vieții de zi cu zi a oamenilor (ca exemplu, asigurarea confortului).
Provocările și obstacolele rețelelor de senzori wireless sunt multiple și diverse. La
nivel de constrânge hardware, se încearcă miniaturizarea unui senzor complet echipat la
dimensiuni de 1×1×1mm; se cercetează deja cu senzori specializați de dimensiuni
microscopice, iar viitorul este rezervat dezvoltării de senzori nanoscopici. Din perspectiva
canalelor de comunicație se dorește ca senzorii să poată fi interfațați cu alte tipuri de
echipamente, folosind astfel benzi de comunicație consacrate sau populare. Momentan
senzorii operează în gama radio, infraroșu și optică. În direcția topologiei și a conectivității se
cercetează protocoale eficiente pentru a asigura o densitate mare de noduri cu tratarea
situațiilor de zgomot puternic, de dispunere a nodurilor (care poate fi aleatoare), de acces la
noduri sau regiuni de noduri, de reîncărcare și de schimbare a nodurilor stricate. O altă
direcție de cercetare este obținerea de senzori capabili să funcționeze în cele mai dinamice și
71
Universitatea „Politehnica” Timișoara
5. Concluzii
ostile medii. De asemenea în viitorul apropriat se așteaptă o reducere a costului senzorilor, care va determina explozia tehnologiei. [Soh07]
În ceea ce privește tema lucrării, în contextul rețelelor de senzori wireless
economisirea energie este una din cele mai dificile și importante provocări, depunându-se
eforturi considerabile. În cele mai multe cazuri puterea disponibilă unui senzor wireless este
dată de bateria folosită, însă se cercetează surse alternative de alimentare, precum cea solara
sau biochimice – depinde de mediul aplicației. Consumul de putere depinde de 3 domenii
funcționale: de senzorii de măsurare, de procesare și în mod deosebit de comunicație. La
senzorii de măsurare și la unitățile de procesare apar permanent îmbunătățiri ale
caracteristicilor; din punct de vedere energetic acestea sunt contracarate de dorința lărgirii
domeniul de măsurare și respectiv mărirea vitezei de procesare. Avansările în comunicație au
în vedere consumul de energie, însă după cum s-a putut observa și în lucrarea de față,
comunicația trebuie adaptată la domeniul aplicației și să fie prioritară pentru îmbunătățiri
suplimentare și semnificative.
72
Universitatea „Politehnica” Timișoara
6. Bibliografie
6. BIBLIOGRAFIE
[Soh07] Sohraby, K., Minoli, D., Znati, T., Wireless sensor networks: technology,
protocols, and applications, 2007
[Akk03] Akkaya, K., Younis, M., A Survey on Routing Protocols for Wireless Sensor
Networks, 2003
[Li08] Li, Y., Thai, M.T., Wu, W., Wireless Sensor Networks and Applications – Signals
and Communication Technology, 2008
[Swa07] Swami, A., Zhao, Q., Hong, L.-W., Tong, L., Wireless Sensor Networks Signal
Processing and Communications Perspectives, 2007,
[Erg04] Ergen, S.C., ZigBee/IEEE 802.15.4 Summary, 2004,
http://pages.cs.wisc.edu/~suman/courses/838/papers/zigbee.pdf
[Xbow] Crossbow Documentation, http://www.xbow.com/Support/wUserManuals.aspx
[TOS] TinyOS Documentation,
http://www.tinyos.net/tinyos-2.x/doc/html/overview.html
[Wel] Welsh, M., Wireless Communications and Sensor Networks,
http://www.eecs.harvard.edu/~mdw/course/cs263/;
[Atmel] Atmel AVR ATmega1821 Documentation,
http://www.atmel.com/dyn/products/Product_card.asp?part_id=3630;
[Sens] Sensirion Documentation,
http://www.sensirion.ch/en/01_humidity_sensors/00_humidity_sensors.htm;
[Man01] Manjeshwar, A., TEEN: a protocol for enhanced efficiency in wireless sensor
networks din Proceedings of the First International Workshop on Parallel and
Distributed Computing Issues in Wireless Networks and Mobile Computing, San
Francisco CA, 2001;
[Man02] Manjeshwar, A., APTEEN: a hybrid protocol for efficient routing and
comprehensive information retrieval in wireless sensor networks din Proceedings
of the Second International Workshop on Parallel and Distributed Computing
Issues in Wireless Networks and Mobile Computing, Ft. Lauderdale, FL, 2002
[Wiki] Wireless Sensor Network,
http://en.wikipedia.org/wiki/Sensor_networks
73
Universitatea „Politehnica” Timișoara
Strategii de economisire a energiei în rețele de senzori wireless
ANEXE
Anexa – Specificațiile modului IRIS
CARACTERISTICI VALORI OBSERVAȚII
Performanțele procesorului (AVR ATmega 1821)
Memorie FLASH progam 128 KB
Memorie FLASH măsurare 512 KB >100000 măsurări
RAM 8 KB
EEPROM 4 KB
Comunicație serială UART nivele de transmisie 0-3V
Convertoare anolog-digitale ADC pe 10 biți 8 canale, intrare 0-3V
Alte interfețe I/O Digital, I2C, SPI
Curenți folosiți 8 mA mod activ (solicitate completă)
8 µA mod pasiv (idle, total)
Transceiver radio (RF230)
benzi ISM, programabile în pași de 5
Benzi de frecvențe 2405 MHz – 2480 MHz
MHz
Rata de transfer 250 Kbps
Putere RF 3 dBm (tipic)
Sensibilitate de recepție -101 dBm (tipic)
Rejecție canal adiacent 36 dB / 34 dB spațiere canal de + 5 MHz / – 5 MHz
Raza de transmisie pentru exterior > 300 m
Raza de transmisie pentru interior > 50 m
16 mA mod de recepție
10 mA TX, -17dBm
13 mA TX, -3dBm
Curenți folosiți
17 mA TX, 3dBm
20 µA mod pasiv (idle), voltaj pornit
1 µA mod pasiv (idle), voltaj oprit
Electromecanice
Baterie 2 baterii AA modul atașat
Putere externă 2.7V – 3.3 V conector extern
Interfața utilizator 3 LED-uri roșu, verde și galben
Dimensiuni 58 x 22 x 7 fără modulul bateriilor
Greutate 18g fără baterii
Conector de extensie 51 pini toate semnalele I/O majore
74
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Strategii DE Economisire A Energiei In Retele DE Senzori Wireless (ID: 148763)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
