verticale

Uno studio sul consumo energetico nelle batterie per sensori wireless

Studio del consumo energetico di un
sensore di rete wireless, alimentato a
batterie, per mezzo di simulazioni numeriche.
Progettazione di un modello di simulazione
probabilistico basato su una semplice macchina
a due stati, poi implementato tramite un
programma scritto in Java.

Scarica il PDF Scarica il PDF
Aggiungi ai preferiti Aggiungi ai preferiti


Articoli tecnico scientifici o articoli contenenti case history
Tesi di Laurea, Università di Padova, Anno Accademico 2011-2012

Pubblicato
da Alessia De Giosa
VerticaleSegui aziendaSegui




Settori: 

Parole chiave: 


Estratto del testo
Universit` a degli Studi di Padova Dipartimento di Ingegneria dell''Informazione Corso di Laurea in Ingegneria dell''Informazione Tesi di laurea triennale Uno studio sul consumo energetico nelle
batterie per sensori wireless A study on energy consumption in wireless sensor node batteries Candidato:
Stefano Pretto
Matricola 609696 Relatore:
Prof. Leonardo Badia Correlatore:
Dott. Riccardo Manfrin Anno Accademico 2011''2012 Stefano Pretto: Uno studio sul consumo energetico nelle batterie per sensori wire- less, Tesi di laurea triennale, c 24 luglio 2012. a mio padre, che mi ha indicato la strada, e a mio nonno: possiate essere orgogliosi di me Indice 1 Introduzione 1 2 Lavori correlati e presentazione dell''X-MAC 3 3 La simulazione 7 3.1 L''idea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Il sensore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.3 Le batterie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 I consumi energetici . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.5 Modellizzazione degli stati . . . . . . . . . . . . . . . . . . . . . . . 10 3.5.1 Stato Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.5.2 Stato T X . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4 Risultati 15 4.1 Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5 Conclusioni 19 A Codice sorgente 21 Bibliografia 23 iii Elenco delle figure 1.1 Semplice schema dell''architettura di una WSN . . . . . . . . . . . . 2 3.1 Scarica delle batterie . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 Visualizzazione grafica protocollo X-MAC . . . . . . . . . . . . . . 11 3.3 IEEE 802.15.4 Frame Format - PHY-Layer Frame Structure (PPDU) 11 3.4 IEEE 802.15.4 Frame Format - MAC-Layer Frame Structure (MPDU) 12 4.1 Andamento della vita del sensore per p tra 0% e 100% . . . . . . . 17 4.2 Andamento della vita del sensore per p tra 1% e 10% . . . . . . . . 17 4.3 Andamento della vita del sensore in funzione di q . . . . . . . . . . 18 Elenco delle tabelle 3.1 Consumi del microcontrollore . . . . . . . . . . . . . . . . . . . . . 9 3.2 Consumi del modulo radio . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Consumi nelle transizioni . . . . . . . . . . . . . . . . . . . . . . . . 10 iv Sommario Lo scopo di questo lavoro `e eseguire uno studio del consumo energetico di un sensore di rete wireless, alimentato a batterie, per mezzo di simulazioni numeriche. Per fare questo verr`a presentato ed analizzato il protocollo MAC utilizzato dal sensore (X-MAC), il sensore stesso, e le batterie. Quindi verr`a progettato un modello di simulazione probabilistico basato su una semplice macchina a due stati, poi implementato tramite un programma scritto in Java. Infine verranno esposti e commentati i risultati ottenuti. Abstract This thesis is a study of energetic consumption for a wireless sensor network, supported by numerical simulation. The MAC protocol of the sensor (X-MAC), its battery characterization, and the sensor itself are introduced. A probabilistic sim- ulation model is investigated, based on a two-state machine, and it is implemented in a software written in Java. In the end, the obtained results are presented and discussed. v Capitolo 1 Introduzione L''efficienza energetica `e uno dei temi pi` u importanti in tutti i campi dell''in- gegneria e, soprattutto ai giorni nostri, uno dei pi` u studiati e dibattuti [4]. Nel mondo dell''elettronica e delle telecomunicazioni questo `e particolarmente vero, in quanto si ha spesso a che fare con dispositivi alimentati da batterie, che per defi- nizione hanno una carica di energia limitata, il cui uso efficiente `e cruciale per un ottimo funzionamento. Questo obbiettivo pu`o essere perseguito lavorando sul lato fisico del dispositivo, cercando quindi tecniche e tecnologie che permettano minori consumi a parit`a di lavoro svolto, oppure sul lato software, studiando programmi che comportino meno operazioni da fare, o che limitino quelle pi` u dispendiose in termini di energia. Le reti di sensori wireless (wireless sensor networks - WSN) sono un argomento di discussione e studio che negli ultimi anni `e diventato sempre pi` u presente (basti guardare all''interno della stessa Universit`a di Padova, ad esempio [6]), e nel quale vi `e una parte preponderante di ricerca riguardante i consumi enrgetici. Sono reti composte da sensori autonomi (chiamati nodi), distribuiti su un''area con lo scopo di raccogliere dati e monitorare determinate condizioni ambientali (ad esempio la temperatura, l''umidit`a e la pressione, ma anche il livello di inquina- mento atmosferico o altri parametri complessi [9]). I dati raccolti vengono passati da un nodo all''altro con un sistema a salti tra nodi adiacenti (multi-hop), fino a raggiungere il nodo di raccolta (sink node), che li trasferisce all''utente tramite internet. Il fatto che i nodi siano wireless e autonomi porta a molti vantaggi [9], 1 CAPITOLO 1. INTRODUZIONE 2 Figura 1.1: Semplice schema dell''architettura di una WSN come ad esempio la facilit`a di installazione della rete, che non necessita cablaggi e quindi lavori onerosi, ma anche ad un evidente problema: i sensori devono essere alimentati da batterie, e quindi hanno un periodo di funzionamento limitato. Il problema dei consumi energetici diventa allora di fondamentale importanza, e con esso lo studio di metodi per limitarlo il pi` u possibile. Uno degli approcci pi` u seguiti `e lo studio di protocolli di accesso al mezzo (Medium Access Control (MAC) protocols) ottimizzati [8, 17], tra i quali trovia- mo il protocollo X-MAC [5], usato dal sensore di cui tratteremo in questa tesi. Una delle sue caratteristiche pi` u importanti `e proprio quella di consentire un otti- mo risparmio sui consumi energetici dei sensori, come testimoniato dall''articolo di Suarez[21], cosa che lo rende un candidato ideale per uno studio in questo senso. Il resto di questa tesi `e organizzato come segue. Nel secondo capitolo viene presentato lo stato dell''arte per quanto riguarda la ricerca e l''analisi sui consumi energetici nelle WSN. Nel terzo capitolo vengono presentate e modellizzate le caratteristiche di un nodo reale e delle sue batterie, e progettata una simulazione numerica per la valutazione dei consumi dovuti a trasmissioni basate su protocollo X-MAC [5]. Nel quarto capitolo vengono presentati e commentati i risultati ottenuti. L''appendice A riporta il codice sorgente Java scritto per la simulazione. Capitolo 2 Lavori correlati e presentazione
dell''X-MAC Il problema del consumo energetico nelle WSN `e uno dei punti chiave per l''ef- fettivo successo di questa tecnologia, e sar`a determinante per decretare se queste reti avranno un''applicazione sempre maggiore nel prossimo futuro. Gli studi in questo senso si sono sviluppati seguendo approcci variegati: ad esmepio, Schurgers e Srivastava [18] si sono concentrati sullo studio del metodo di aggregazione dei dati e sullo sviluppo di differenti tecniche di instradamento dei da- ti nei nodi (routing), ottenendo risparmi fino al 90% rispetto alla situazione iniziale. Tuttavia, l''approccio pi` u seguito `e lo studio di protocolli di accesso al mezzo (MAC protocols), in particolare quelli adottanti una routine di passaggio periodico del sensore da una fase di sleep ad una di attivit`a e viceversa, chiamato duty cy- cling . In questo modo, il consumo totale `e dato dalla somma del consumo durante il periodo di sleep e da quello durante il periodo di attivit`a: come `e facile notare, variando le lunghezze dei periodi `e possibile far consumare pi` u o meno energia per ogni ciclo, e quindi diminuire o estendere la durata della batteria utilizzata per alimentare un sensore con questo protocollo. Di conseguenza, la priorit`a diventa quella di ridurre il pi` u possibile il tempo di attivit`a, composto tra le altre parti da un periodo di ascolto del canale in assenza di trasmissioni (chiamato idle liste- ning ): questo ultimo `e stato scoperto essere uno dei maggior fattori di consumo energetico [13, 19], che porta ad avere come obbiettivo l''evitare la sua comparsa. 3 CAPITOLO 2. LAVORI CORRELATI E PRESENTAZIONE DELL''X-MAC 4 Possiamo allora distinguere i protocolli MAC per reti di sensori wireless in due categorie: sincroni e asincroni [5]. I primi evitano completamente il fenomeno di idle listening , in quanto la fase di attivit`a `e simultanea per tutti i sensori, impe- dendo che uno di essi si attivi mentre tutti gli altri sono in sleep e quindi non possa trasmettere, n`e ricevere nulla. Tuttavia, questo metodo comporta evidentemente che tutti i sensori della rete siano sincronizzati ad una stessa schedule. Viceversa, i protocolli asincroni non hanno questa limitazione, ma rischiano di portare alcuni sensori a periodi di idle listening molto lunghi in rapporto al loro duty cycle, e devono essere quindi progettati opportunamente. Per quanto riguarda il primo caso possiamo citare il lavoro di Wu [22], in cui viene sviluppata una schedule per la raccolta dei dati che porta ad avere consumi per reti omogenee al massimo doppi rispetto all''ottimo, e nel quale vengono fatte diverse simulazioni numeriche per la valutazione dell''algoritmo. Ma data la sua maggiore appetibilit`a applicativa, `e il secondo caso ad offrire una maggiore variet`a di studi. I protocolli MAC asincroni sono tanto pi` u energeticamente efficienti, quanto pi` u riescono a mantenere un basso periodo di idle listening. Miller [16] propone un''architettura del sensore a doppia radio, in cui viene utilizzato un segnale per svegliare i nodi adiacenti (busy tone) e permettere l''immediata sincronizzazione tra mittente e destinatario; questa soluzione tuttavia fa s`ı che vengano attivati anche sensori non implicati nella trasmissione, con i consumi che ne conseguono. S-MAC [23] `e uno dei primi protocolli basati su duty cycle ad essere stati sviluppati per le reti di sensori wireless, ed `e costituito da un periodo fissato di attivit`a e uno variabile di sleep. All''inizio di quello di attivit`a, i nodi devono scambiarsi informa- zioni per la sincronizzazione, e successivamente possono essere trasmessi i dati, nel rimanente tempo disponibile. S-MAC pu`o raggiungere bassi livelli di assorbimento energetico, ma tuttavia deve mantenere una schedule dei nodi vicini, caratteristica che diventa di rilievo quando la rete aumenta di dimensioni e che, tra l''altro, mo- stra come S-MAC non sia un protocollo propriamente asincrono. Successivamente viene sviluppato T-MAC [8], con l''obbiettivo di migliorare S-MAC nell''ambito del CAPITOLO 2. LAVORI CORRELATI E PRESENTAZIONE DELL''X-MAC 5 consumo energetico, ma eredita dal predecessore la maggior parte dei problemi che lo affliggevano. B-MAC [17], sviluppato all''Universit`a della California a Barkeley, `e contraddi- stinto dal low power listening (LPL), chiamato anche preamble sampling, ossia il metodo usato per collegare tra loro un sensore che ha dati da mandare (sender ) con il rispettivo sensore destinatario (receiver ): questo avviene tramite l''invio da parte del sender di un preambolo atto a far sapere agli altri sensori di aver qualcosa da trasmettere, in modo che quando il receiver esce dalla fase di sleep riconosca di dover rimanere in ascolto del canale fino alla ricezione dei dati. Ovviamente, per avere la sicurezza di una trasmissione effettiva, l''invio del preambolo deve du- rare almeno per l''intero periodo di sleep del sensore destinatario, anche se c''`e la possibilt`a che questo si svegli, e quindi sia pronto a ricevere, gi`a all''inizio della trasmissione, con conseguente consumo inutile da entrambe le parti (per l''invio continuo di preambolo inutile e per l''ascolto continuo del preambolo). Inoltre, si ha possibile consumo anche da parte di altri sensori della rete non implicati nello scambio, in quanto, nel caso si sveglino durante la fase di collegamento, ricono- sciuta la presenza del preambolo devono rimanere in ascolto fino all''inizio della trasmissione dei dati, prima di scoprire di non essere loro gli effettivi destinatari. Questo problema `e chiamato overhearing. WiseMAC [12], basato su Aloha, usa tecniche simili a B-MAC, ma con la differenza che in questo caso il sender impara le routine degli altri nodi e imposta le successive comunicazioni di conseguenza. Tuttavia, non permette la presenza di un meccanismo per adattare i nodi a cam- biamenti nel traffico dei dati. Con l''obbiettivo di correggere questi difetti, viene quindi sviluppato il proto- collo X-MAC [5], che utilizza un preambolo pi` u corto e pacchettizzato (strobed preamble ), contenente inoltre l''indirizzo del destinatario. Il sensore manda quindi pacchetti minimi di preambolo, e dopo ogni pacchetto si mette in ascolto del canale per ricevere una eventuale segnalazione di ricezione da parte del receiver (pacchet- to di acknowledgment, o ACK), che quindi afferma di essere pronto a ricevere i dati. Inoltre si evita l''overhearing, visto che gli altri sensori, leggendo l''indirizzo CAPITOLO 2. LAVORI CORRELATI E PRESENTAZIONE DELL''X-MAC 6 nel preambolo, hanno la sicurezza di poter tornare in sleep senza il rischio di per- dere dati a loro destinati. Questo metodo permette ai due sensori di trasmettere i dati non appena il ricevitore si `e svegliato, ha ricevuto un pacchetto di preambolo completo e ha mandato il suo ACK. Inoltre, nel peggiore dei casi, il consumo da parte del sender sar`a equivalente a quello dovuto al preambolo lungo del B-MAC, in quanto al massimo trasmetter`a pacchetti di preambolo per tutta la durata dello sleep del destinatario. Infine, migliora WiseMAC implementando meccanismi di adattamento al traffico, che per`o non analizzeremo in questo lavoro. A latere a questi studi, si pone per`o anche il problema della valutazione del consumo energetico. A questo scopo, Shnayder [20] ha messo a punto un simula- tore per analizzare i consumi di applicazioni sviluppate per WSN, con l''obbiettivo di fornire un ulteriore strumento ai progettisti. In alternativa, Dunkels [11] ha stu- diato un software che permette la valutazione online del consumo istantaneo dei sensori di una rete, permettendo valutazioni empiriche che in precedenza necessi- tavano di componenti aggiuntivi da installare al sensore. AEON [15] `e un altro tool per sviluppatori, che simula i consumi di una rete basandosi sulle correnti assorbite dai sensori durante l''esecuzione dei programmi da valutare. Studi predittivi sui consumi sono invece quelli fatti da Coleri [7], che mostra co- me modellizzare TinyOS (sistema operativo appositamente progettato per i sensori) come un automa ibrido, e usare questo modello per calcolare i consumi previsti: un modello paragonabile all''automa verr`a usato in questo lavoro, per simulare il comportamento di una generica applicazione del sensore. Duarte-Melo [10] invece analizza le performance e i consumi in una WSN al variare della sua topologia, della potenza e del numero dei sensori. Capitolo 3 La simulazione 3.1 L''idea L''idea di fondo di questo studio `e quella di analizzare tramite simulazioni la durata delle batterie al variare di differenti carichi di lavoro del sensore trasmit- tente, con l''utilizzo del protocollo X-MAC. Per fare questo, ipotizziamo che il nostro sender trasmetta e basta, senza mai dover ricevere nulla, e che quindi non abbia una routine di ascolto del canale per la ricerca di trasmissioni entranti; possiamo allora pensare che il programma fat- to girare sul sensore lo possa portare in soli due differenti stati: sleep e trasmissione. Il suo funzionamento pu`o quindi essere sintetizzato da una macchina a stati [14], in questo modo: Sleep T X 1 '' p p 1 '' q q La nostra simulazione consister`a allora nel generare dei pattern di funzionamen- to basati sulle probabilit`a p e q e, conoscendo il consumo energetico del sensore per i due stati, calcolare la durata di vita della batteria a seguito dell''esecuzione dei pattern creati. 7 CAPITOLO 3. LA SIMULAZIONE 8 3.2 Il sensore Il sensore considerato `e un progetto in via di sviluppo, le cui componenti prin- cipali (nonch`e quelle pi` u rilevanti ai fini della simulazione) sono il microcontrol- lore LPC1768, prodotto da NXP Semiconductors e basato su architettura ARM Cortex-M3, e il modulo di trasmissione radio AT86RF231, prodotto da ATMEL. Da specifiche, questi elementi necessitano di un''alimentazione di 3.0 V, con una soglia limite di funzionamento fissata a 2.8 V, e il modulo radio trasmette ad una velocit`a di 250 kbps. Le trasmissioni seguono lo standard IEEE 802.15.4 [2]. 3.3 Le batterie Nonostante lo scopo finale sia quello di condurre una simulazione numerica, prendiamo in esame batterie reali, ovvero una coppia di pile stilo ricaricabili Be- ghelli Carica 500 , di tipo AA, a tecnologia NiMh (Nickel Metal Hydride), i cui dati nominali dichiarati sono un voltaggio pari a 1.2 V, una capacit`a di 1200 mAh ciascuna [1]. Per verificare la loro effettiva capacit`a totale (per alimentare il sensore servir`a un voltaggio di circa 3 V, per cui le due pile saranno messe in serie), carichiamo completamente le batterie, e le facciamo scaricare cortocircuitandole ad un carico puramente resistivo del valore di 155 '. Per effettuare le misurazioni, utilizziamo il convertitore AD del sensore stesso, opportunamente collegato alle batterie e oppor- tunamente programmando il microcontrollore, in modo che faccia una misurazione del voltaggio ogni minuto. I dati raccolti sono quindi stati elaborati tramite il software MATLAB (release 2011) [3], ottenendo il grafico in figura 3.1. Innanzitutto si pu`o notare come il valore effettivo di tensione a batterie cariche (che si aggira attorno ai 3.25 V) sia molto pi` u elevato di quello dichiarato dalla casa produttrice (1.2 V · 2 = 2.4 V ), cosa che ci consente di utilizzarle per alimentare il sensore. Inoltre, la doppia curva indica che una delle due pile ha esaurito la sua carica prima dell''altra (a circa 72 h), portando la linea del grafico ad abbassarsi a CAPITOLO 3. LA SIMULAZIONE 9 Figura 3.1: Andamento della differenza di potenziale ai capi della serie delle due
batterie, scaricate su una resistenza da 155 '. circa met`a della tensione a regime di piena carica. Per calcolare la carica utile effettiva allora, integriamo il grafico fino al punto in cui il voltaggio scende sotto la soglia dei 2.8 V (momento in cui il sensore smetterebbe di funzionare) e dividiamo il risultato per la resistenza moltiplicata per 60, in modo da ottenere un valore in mAh. Facendo questi calcoli tramite MATLAB, si giunge al risultato di 1418 mAh, valore pi` u alto di quello dichiarato (1200 mAh) come era lecito attendersi dopo le considerazioni precedenti. 3.4 I consumi energetici Per il calcolo dei consumi energetici, faremo riferimento a quelli riportati dai datasheet del microntrollore e del modulo radio, ovvero quelli riportati nelle tabel- le 3.1, 3.2 e 3.3. Tabella 3.1: Consumi del microcontrollore LPC1768 power modes I [mA] V [V] P [mW] I @3.0 V [mA] Active 42 3.3 138.6 46.2 Power-down 0.031 3.3 0.1023 0.0341 CAPITOLO 3. LA SIMULAZIONE 10 Tabella 3.2: Consumi del modulo radio AT86RF231 activity I [mA] V [V] P [mW] I @3.0 V [mA] TX 14 3.0 42 14 RX 12.3 3.0 36.9 12.3 Sensing 12.3 3.0 36.9 12.3 Sleep 0.000002 3.0 0.000006 0.000002 Tabella 3.3: Consumi nelle transizioni LPL State transitions timings [mAh/transition] @3.0 V [µs/transition] Active to Sleep 4.41562500138889 · 10''7 52,25 Sleep to Active 7.59736116666667 · 10''6 1005 3.5 Modellizzazione degli stati Per poter utilizzare la macchina a stati nella simulazione, dobbiamo quindi modellizzare questi ultimi in modo da poter determinare esattamente il consumo di tempo ed energia per ognuno di essi. 3.5.1 Stato Sleep Per quanto riguarda il tempo che il sensore passer`a nello stato, in questo caso `e del tutto arbitrario, e per la nostra simulazione sceglieremo un valore di 1 secondo. tSleep = 1 s In questo stato, sappiamo che il microprocessore `e in Power-down, mentre la radio si trova in Sleep, per cui il consumo energetico `e pari a ConsumoSleep = (P ower '' down + Sleep) mA · tSleep = 0.034102 mA · 1 3600 h = = 9.473 nAh Siccome questo stato `e anche sicuramente quello di partenza, non dobbiamo ag- giungere consumi per transizioni acceso/spento o viceversa, che invece conteremo per lo stato TX. 3.5.2 Stato T X Per questo stato, i calcoli da fare sono pi` u complessi. CAPITOLO 3. LA SIMULAZIONE 11 Per prima cosa, dobbiamo capire le azioni che vengono compiute, dovute al protocollo X-MAC. Figura 3.2: Visualizzazione grafica del protocollo X-MAC con short and strobed
preamble , tratta da [5] Notiamo dalla figura 3.2 che il sender, per la prima parte, passa continuamente da un periodo di trasmissione ad uno di ascolto del canale, fino alla ricezione del pacchetto ACK. Da quel momento, trasmette i suoi dati, e una volta conlusa la trasmissione torna in sleep. Andiamo allora a capire come sono costruiti il preambolo, il pacchetto ACK, e quelli contenenti i dati, secondo lo standard IEEE 802.15.4 seguito dal sensore, in modo da poter calcolare i tempi necessari alla radio per la trasmissione di ciascuno, e quindi calcolare i consumi. Figura 3.3: IEEE 802.15.4 Frame Format - PHY-Layer Frame Structure (PPDU) Le immagini 3.3 e 3.4 (tratte dal datasheet del modulo radio) ci permettono di ricostruire i pacchetti citati in precedenza, e quindi calcolare la loro lunghezza in Byte . Ai fini del nostro lavoro, ci mettiamo nelle ipotesi che per il campo Addressing siano sufficienti 4 B, non ci sia Auxiliary Security Header, e un gruppo di dati utili CAPITOLO 3. LA SIMULAZIONE 12 Figura 3.4: IEEE 802.15.4 Frame Format - MAC-Layer Frame Structure (MPDU) da trasmettere sia lungo 116 B (ovvero 29 simboli, il numero massimo di simboli allegabili ad un solo PPDU). Lpreambolo = SHR + P HR + F CF + SequenceN umber + Addressing + F CS = = (5 + 1 + 2 + 1 + 4 + 2) B = 15 B Ldati = SHR+P HR+F CF +SequenceN umber+Addressing+P ayload+F CS = = (5 + 1 + 2 + 1 + 4 + 116 + 2) B = 131 B LACK = SHR + P HR + F CF + SequenceN umber + F CS = = (5 + 1 + 2 + 1 + 2) B = 11 B Dalle lunghezze, sapendo la velocit`a di trasmissione della radio (R = 250 kbps), possiamo calcolare il tempo effettivo impiegato per ciascuno: tpreambolo = L R = 15 · 8 b 250 kbps = 480 µs tdati = L R = 131 · 8 b 250 kbps = 4192 µs tACK = L R = 11 · 8 b 250 kbps = 352 µs Il preambolo viene mandato fino alla ricezione dell''ACK: ipotizzando un pe- riodo di sensing del ricevitore di 400 ms, `e lecito affermare che in media l''ACK verr`a mandato esattamente a met`a di questo periodo, in quanto non vi `e alcuna correlazione tra i due sensori. Sapendo che, secondo le specifiche del modulo radio, CAPITOLO 3. LA SIMULAZIONE 13 il tempo di attesa per il ricevimento dell''ACK da parte del sender `e di 32 µs, pos- siamo calcolare quanti cicli preambolo/ascolto debbano essere compiuti in media, ovvero tciclo = tpreambolo + 32 µs = 512 µs Cicli = attesa media tciclo = 200 ms (0.480 + 0.032) ms = 390.625 ' 390 Verranno quindi compiuti 390 cicli di preambolo e ascolto a vuoto, e un ciclo di preambolo e ricevimento dell''ACK. Ora possiamo calcolare il tempo medio passato nello stato T X per ogni tran- sizione, ricordandoci di sommare anche i contributi dovuti alle transizioni di stato (sleepToActive e activeToSleep). ' tT X = 390 · tciclo + (tciclo + tACK) + tdati + ttransizioni = = 390 · (480 + 32) µs + (480 + 32 + 352) µs + 4192 µs + 1005 µs + 52.25 µs = = 205.79325 ms Per ricavare i consumi infine, dobbiamo moltiplicare il consumo in mA di ogni sottostato (trasmissione per il preambolo e dati, ascolto per le pause e l''ACK) per il tempo passato in esso. Abbiamo quindi Cons.preambolo = (Active + T X) mA · tpreambolo = = (46.2 + 14) mA · 480 · 10''6 s 3600 = 8.027 nAh Cons.dati = (Active + T X) mA · tdati = = (46.2 + 14) mA · 4192 · 10''6 s 3600 = 70.1 nAh Cons.ascolto = (Active + sensing) mA · 32 µs = = (46.2 + 12.3) mA · 32 · 10''6 s 3600 = 0.52 nAh Cons.ACK = (Active + RX) mA · tACK = = (46.2 + 12.3) mA · 352 · 10''6 s 3600 = 5.72 nAh CAPITOLO 3. LA SIMULAZIONE 14 da cui, sommando opportunamente, otteniamo il consumo medio nello stato T X per transizione: Cons.T X = 390 · Conspreambolo+ascolto + Conspreambolo+ascolto+ACK + Consdati = = 3.417697 µAh In realt`a andrebbero sommati anche i consumi dovuti alle transizioni, ma per semplicit`a e chiarezza di calcolo (dato che i relativi valori sono molto minori di tutti gli altri consumi) non li riportiamo qua. Tuttavia ne teniamo ben presente nel codice sorgente per le simulazioni. Capitolo 4 Risultati 4.1 Scenario Ora abbiamo tutti i dati necessari per progettare ed eseguire la simulazione. Data la necessit`a di generare delle transizioni probabilistiche, ho deciso di scrivere un breve programma in Java, il cui codice sorgente si pu`o trovare nell''appendice A, in cui sfruttare la funzione di generazione pseudocasuale dei numeri. Il nostro obbiettivo `e quello di analizzare la durata delle batterie di un senso- re (che supponiamo debba trasmettere solamente) all''interno di una rete, con il modello di macchina a stati basato sui consumi del sensore reale e del protocollo X-MAC descritto precendentemente (e quindi al variare delle probabilit`a di passare a trasmettere, e di trasmettere pi` u pacchetti). Esaminando il codice, si pu`o vedere come la simulazione crei un pattern di tran- sizioni casuale, basato sulle probabilit`a p (passaggio da sleep a TX ) e q (probabilit`a di rimanere in TX ), e in base a questo consumi la batteria (settata secondo il va- lore misurato e calcolato precedentemente, 1418 mAh) di un sensore immaginario, al tempo stesso incrementandone il contatore del tempo di vita (lifetime). Questo procedimento viene fatto dieci volte per ogni combinazione delle due probabilit`a, e il dato riportato `e poi la media aritmetica di queste. Nel metodo principale del codice, due cicli for reiterano questo pattern per tutte le probailit`a p da 0 a 1 (con passi di 0.01) mentre, per chiarezza del grafico finale, la q viene fatta variare a passi di 0.25. Infine, viene generato un file di testo con tutti i risultati, perfettamente formattato per poter essere immediatamente graficato tramite MATLAB. 15 CAPITOLO 4. RISULTATI 16 Da notare, nella classe che genera il sensore fittizio, come solo nel metodo chia- mato per il passaggio da sleep a TX siano presenti le variazioni dovute alle transi- zioni sleepToActive e activeToSleep: questo `e valido in quanto se pensiamo a cosa succede quando il sensore rimane a trasmettere, `e logico aspettarsi che non si sia spento dalla trasmissione precedente e non debba accendersi per quella successiva, mentre invece si spegner`a all''ultima di una serie consecutiva. Allora, contandole solo nel metodo citato sopra, e non contandole mai nel metodo chiamato nella si- tuazione di trasmissione continua, commettiamo un errore praticamente nullo (la sola eccezione `e dovuta al fatto che le batterie si scarichino nello stato TX, nel qual caso il valore della vita totale potrebbe essere pi` u alto del dovuto, ma di un valore infinitesimale sul totale). Quello descritto `e il comportamento del programma di simulazione come ripor- tato in appendice: tuttavia, `e facile variare le condizioni della simulazione a se- conda delle necessit`a, modificando opportunamente i valori all''interno del sorgente. 4.2 Risultati Graficando i dati ottenuti dalle simulazioni, si ottengono le figure seguenti La figura 4.1 ci d`a una visione d''insieme dell''andamento della vita delle batterie al variare della probabilit`a di passare a trasmettere da una situazione di sleep: pos- siamo subito notare come l''andamento sia esponenziale decrescente all''aumentare di p, come `e lecito attendersi. Infatti con p = 1 si trasmette una volta ogni 100 secondi, con p = 2 una ogni 50, con p = 3 una ogni 33, ecc. e i consumi aumentano di conseguenza, dato che `e lo stato di trasmissione ad essere determinante in questo senso (avendo un consumo pi` u alto di tre ordini di grandezza). Inoltre, osserviamo come la vita delle batterie, in condizioni di attivit`a abba- stanza basse (con probabilit`a di transizione sleep/TX minore del 2%, ovvero circa una trasmissione ogni 50s), sia nell''ordine degli anni: considerando anche che l''at- CAPITOLO 4. RISULTATI 17 Figura 4.1: Andamento della vita del sensore al variare della probabilit` a p di passare da Sleep a TX, per differenti probabilit` a q di rimanere in TX tivit`a di questo sensore all''interno di una rete reale `e stimata essere pi` u bassa di tale valore, questo risultato `e una conferma di come il protocollo X-MAC sia otti- mizzato in termini dei consumi. Figura 4.2: Andamento della vita del sensore al variare della probabilit` a p tra 1% e 10%, per differenti probabilit` a q di rimanere in TX La figura 4.2 mostra pi` u nel dettaglio la parte di grafico con p compresa tra lo 1% e il 10%: questo permette di osservare come i consumi siano quasi invarianti rispetto alla probabilit`a di rimanere in trasmissione, eccezion fatta naturalmente CAPITOLO 4. RISULTATI 18 per il caso limite di q pari a 1, dove il sensore (non uscendo mai dallo stato TX una voltra entratovi) esaurisce subito le batterie. Per verificare questa osservazio- ne, facciamo una simulazione in cui, fissata la probabilit`a di passare da sleep a TX, variamo solamente la probabilit`a q. Figura 4.3: Andamento della vita del sensore in funzione della probabilit` a q di rimanere in TX, per una p fissata La curva della figura 4.3 conferma la nostra osservazione, mostrando come la vita della batteria sia praticamente costante per valori di q minori del 90%, soglia oltre cui decade con pendenza sempre maggiore. Questo conferma il fatto che il punto dolente relativamente ai consumi `e la fase di collegamento tra due sensori: infatti, l''andamento in figura si spiega considerando che solo la transizione da Sleep a TX comporta l''invio dello strobed preamble, mentre il rimanere in trasmissione no, con gli evidenti consumi minori che il secondo comporta. Questa `e quindi un''ulteriore giustificazione al fatto che gli sforzi nello studio di nuovi protocolli si siano concentrati, e si concentrino, sull''ottimizzazione della fase di collegamento tra sender e receiver. Capitolo 5 Conclusioni In questo lavoro abbiamo presentato uno studio riguardante i consumi energetici per sensori di reti wireless. ` E stato descritto il protocollo X-MAC e il suo funzio- namento basilare, e un sensore prototipo reale su cui verr`a implementato. ` E stata calcolata la carica precisa di una coppia di batterie stilo ricaricabili, utilizzabili sul sensore. Si `e quindi ipotizzato un modello a macchina a stati del funzionamento del sensore impostato solo come sender, e se ne sono calcolati i consumi di ogni stato partendo dai datasheet dei componenti del sensore, e dal funzionamento del pro- tocollo MAC. Infine `e stato scritto un semplice programma in Java per procedere con delle simulazioni basate su pattern di funzionamento casuali, per analizzare la durata delle batterie rispetto a differenti combinazioni di probabilit`a di transizione della macchina. I risultati ottenuti portano un ulteriore conferma al fatto che il protocollo X- MAC sia energeticamente efficiente, e mostrano come all''aumentare della probabi- lit`a di passare da sleep a trasmissione, la durata della batteria cali con un anda- mento esponenziale. Inoltre, le simulazioni hanno evidenziato come la probabilit`a di rimanere in trasmissione sia praticamente ininfluente alla durata delle batterie, almeno fino a probabilit`a del 90%: questo porta ad osservare (e confermare) che la fase critica per lo scambio di dati tra due sensori implementanti un protocollo asincrono, sia quella atta a collegare il sender con il rispettivo receiver. Infine, questo studio pu`o essere ulteriormente sviluppato considerando un mo- dello in cui il sensore in esame abbia anche una routine per l''ascolto e la ricezione 19 CAPITOLO 5. CONCLUSIONI 20 di dati da altri nodi, avvicinanando ancora di pi` u la simulazione ad un caso reale, oppure pu`o essere completato studiando il nodo duale, ossia quello ricevente. Appendice A Codice sorgente Di seguito viene riportato il codice sorgente in Java usato per l''elaborazione delle simulazioni. 1 i m p o r t j a v a . u t i l .*;
i m p o r t j a v a . io .*;
i m p o r t j a v a . m a t h .*; p u b l i c c l a s s P a t t e r n G e n e r a t o r 6 { p u b l i c s t a t i c v o i d m a i n ( S t r i n g [] a r g s ) t h r o w s E x c e p t i o n { C o n s u m p t i o n [] s e n s o r = new C o n s u m p t i o n [ 1 0 ] ;
d o u b l e [] b a t t e r y = new d o u b l e [ 1 0 ] ;
d o u b l e [] l i f e t i m e = new d o u b l e [ 1 0 ] ;
P r i n t W r i t e r w r i t e r = new P r i n t W r i t e r ( ' D a t i S i m u l a z i o n e . t x t ' ) ; 11 int a l e a =0;
int s t a t e =0; // 0= sleep , 1= TX for ( int p = 0; p < = 1 0 0 ; p ++)
{ for ( int q = 0; q < = 1 0 0 ; q + = 2 5 )
{ for ( int i = 0; i < 1 0 ; i ++) 16 { s t a t e =0;
s e n s o r [ i ]= new C o n s u m p t i o n () ;
b a t t e r y [ i ]= s e n s o r [ i ]. g e t B a t t e r y () ;
l i f e t i m e [ i ]= s e n s o r [ i ]. g e t L i f e t i m e () ;
w h i l e ( b a t t e r y [ i ] >0) 21 { a l e a = ( int ) M a t h . r o u n d ( M a t h . r a n d o m () * 1 0 0 ) ;
if ( s t a t e = = 0 )
{ if ( alea <= p ) // sleep - - > tx { s t a t e =1;
s e n s o r [ i ]. tx () ; 26 }
e l s e // sleep - - > s l e e p s e n s o r [ i ]. i d l e () ; }
e l s e 31 { if ( alea <= q ) // tx - - > tx s e n s o r [ i ]. s t i l l T x () ; e l s e // tx - - > s l e e p { s t a t e =0;
s e n s o r [ i ]. i d l e () ; 36 } } b a t t e r y [ i ] = s e n s o r [ i ]. g e t B a t t e r y () ; } l i f e t i m e [ i ]= s e n s o r [ i ]. g e t L i f e t i m e () ; 41 } d o u b l e m e a n L i f e t i m e = 0;
d o u b l e m e a n B a t t e r y = 0;
for ( int l = 0; l < 1 0 ; l ++) { m e a n L i f e t i m e += l i f e t i m e [ l ]; 46 m e a n B a t t e r y += b a t t e r y [ l ]; } 21 APPENDICE A. CODICE SORGENTE 22 m e a n L i f e t i m e = m e a n L i f e t i m e / 10;
m e a n B a t t e r y = m e a n B a t t e r y / 10;
w r i t e r . p r i n t ( m e a n L i f e t i m e / ( 1 4 4 0 * 6 0 ) + ' ' ) ; 51 } w r i t e r . p r i n t l n () ; } w r i t e r . c l o s e () ; } 56 } c l a s s C o n s u m p t i o n { p u b l i c v o i d i d l e () // i d l e di un s e c o n d o { b a t t e r y = battery - ( 0 . 0 3 4 1 0 2 * ( 1 / 3 6 0 0 ) ) ; 61 l i f e t i m e = l i f e t i m e + 1; } p u b l i c v o i d tx () // a c t i v e T o S l e e p + s l e e p T o A c t i v e + i n v i o p a c c h e t t o + r i c e z i o n e ACK + i n v i o p r e a m b o l o + s e n s i n g a v u o t o per l '' ACK { b a t t e r y = battery - ( 4 . 4 1 5 6 2 5 0 0 1 3 8 8 8 9 E - 7 + 7 . 5 9 7 3 6 1 1 6 6 6 6 6 6 7 E - 6 + ( ( 1 4 + 4 6 . 2 ) * ( 4 . 1 9 2 e - 3 / 3 6 0 0 ) ) + ( 1 2 . 3 + 4 6 . 2 ) * ( 0 . 3 5 2 e - 3 / 3 6 0 0 ) + ( 3 9 1 * ( ( ( 1 4 + 4 6 . 2 ) * ( 0 . 4 8 0 e
- 3 / 3 6 0 0 ) ) + ( ( 1 2 . 3 + 4 6 . 2 ) * ( 0 . 0 3 2 e - 3 / 3 6 0 0 ) ) ) ) ) ; 66 // 116 B y t e di p a c c h e t t o , 32 us di w a i t per l '' ACK
l i f e t i m e = l i f e t i m e + ( 5 2 . 2 5 E -6 + 1 0 0 5 E -6 + 4 1 9 2 E -6 + 352 E -6 + 3 9 1 * ( 4 8 0 E -6 + 32 E -6) ) ; } p u b l i c v o i d s t i l l T x () 71 { b a t t e r y = b a t t e r y - ( ( 1 4 + 4 6 . 2 ) * ( 4 . 1 9 2 e - 3 / 3 6 0 0 ) ) ; // s o l o tx del p a c c h e t t o l i f e t i m e = l i f e t i m e + 4 1 9 2 E -6; } p u b l i c d o u b l e g e t B a t t e r y () 76 { r e t u r n b a t t e r y ; } p u b l i c d o u b l e g e t L i f e t i m e () { r e t u r n l i f e t i m e ; 81 } p r o t e c t e d d o u b l e b a t t e r y = 1 4 1 8 ; // mAh p r o t e c t e d d o u b l e l i f e t i m e =0; // s e c o n d i }  Bibliografia [1] Catalogo pile Beghelli. 2012. url: http://www.beghelli.it/_documenti/ pubblico/prodotti/Pile.pdf . [2] IEEE 802.15.4 Standard. 2012. url: http://www.ieee802.org/15/pub/ TG4.html . [3] Sito web di Mathworks, software house produttrice di MATLAB. 2012. url: www.mathworks.org . [4] B. Bougard et al. ''Energy efficiency of the IEEE 802.15.4 standard in dense wireless microsensor networks: modeling and improvement perspectives'. In:
Design, Automation and Test in Europe, 2005. Proceedings (2005), pp. 196'' 201. [5] Michael Buettner et al. ''X-MAC: a short preamble MAC protocol for duty- cycled wireless sensor networks'. In: 4th ACM Conference on Embedded
Networked Sensor Systems (SenSys ''06) (2006), pp. 307''320. [6] P. Casari et al. ''The Wireless Sensor Networks for City-Wide Ambient Intelligence (WISE-WAI) Project'. In: Sensors 9 (6 2009). [7] Sinem Coleri, Mustafa Ergen e T. John Koo. ''Lifetime analysis of a sensor network with hybrid automata modelling'. In: Proceedings of the 1st ACM
international workshop on Wireless sensor networks and applications (WSNA
''02) (2002), pp. 98''104. [8] Tijs van Dam e Koen Langendoen. ''An adaptive energy-efficient MAC pro- tocol for wireless sensor networks'. In: 1st ACM Conference on Embedded
Networked Sensor Systems (SenSys ''03) (2003), pp. 171''180. [9] Waltenegus Dargie e Christian Poellabauer. Fundamentals of Wireless Sensor Networks: Theory and Practice . John Wiley & Sons, 2010. [10] E.J. Duarte-Melo e Liu Mingyan. ''Analysis of energy consumption and life- time of heterogeneous wireless sensor networks'. In: Global Telecommunica-
tions Conference, 2002 (GLOBECOM ''02) (2002), pp. 21''25. [11] Adam Dunkels et al. ''Software-based On-line Energy Estimation for Sen- sor Nodes'. In: 4th workshop on Embedded networked sensors (EmNets ''07)
(2007), pp. 28''32. [12] A. El-Hoiydi e J. Decotignie. ''Low power downlink mac protocols for infra- structure wireless sensor networks'. In: ACM Mobile Networks and Applica-
tions 10 (5 2005), pp. 675''690. 23 Bibliografia 24 [13] L. Feeney e M. Nilsson. ''Investigating the energy consumption of a wi- reless network interface in an ad hoc networking environment'. In: IEEE
INFOCOM 3 (2001), pp. 1548''1557. [14] J. E. Hopcroft, R. Motwani e J. D. Ullman. Introduction to Automata Theory, Languages, and Computation (3rd Edition) . Addison Wesley, 2006. [15] O. Landsiedel, K. Wehrle e S. Gotz. ''Accurate prediction of power con- sumption in sensor networks'. In: Proceedings of the 2nd IEEE workshop on
Embedded Networked Sensors (EmNets ''05) (2005), pp. 37''44. [16] M.J. Miller e N. H. Vaidya. ''A MAC protocol to reduce sensor network energy consumption using a wakeup radio'. In: Mobile Computing, IEEE
Transactions on 4 (2005), pp. 228''242. [17] Joseph Polastre, Jason Hill e David Cueller. ''Versatile low power media access for wireless sensor networks'. In: 2nd ACM Conference on Embedded
Networked Sensor Systems (SenSys ''04) (2004), pp. 95''107. [18] C. Schurgers e M.B. Srivastava. ''Energy efficient routing in wireless sensor networks'. In: Military Communications Conference, 2001. MILCOM 2001.
Communications for Network-Centric Operations: Creating the Information
Force. IEEE (2001), pp. 357''361. [19] E. Shih, P. Bahl e M. Sinclair. ''Wake on wireless: An event driven energy saving strategy for battery operated devices'. In: MobiCom (2002), pp. 35''
64. [20] Victor Shnayder et al. ''Simulating the power consumption of large-scale sen- sor network applications'. In: 2nd ACM Conference on Embedded Networked
Sensor Systems (SenSys ''04) (2004), pp. 188''200. [21] Pablo Suarez et al. ''Increasing ZigBee network lifetime with X-MAC'. In: Proceedings of the workshop on Real-world wireless sensor networks (REAL-
WSN ''08) (2008), pp. 26''30. [22] Wu Yanwei et al. ''Energy-Efficient Wake-Up Scheduling for Data Collection and Aggregation'. In: Parallel and Distributed Systems, IEEE Transactions
on (2010), pp. 275''287. [23] W. Ye, J. Heidemann e D. Estrin. ''An energy efficient MAC protocol for wireless sensor networks'. In: Proceedings of the 21st International Annual
Joint Conference of the IEEE Computer and Communications Societies (IN-
FOCOM 2002) (2002), pp. 1567''1576. Ringraziamenti Desidero innanzitutto ringraziare il prof. Leonardo Badia e il dott. Riccardo Manfrin per la pazienza, il tempo e le risorse dedicate alla mia tesi. Voglio poi ringraziare di cuore la mia mamma, mia sorella e tutta la mia famiglia, per non avermi mai fatto mancare nulla e avermi dato tutto il supporto possibile per il raggiungimento dei miei obiettivi. Ringrazio Samanta per avermi accompagnato e sopportato fino ad ora. Ringrazio tutti i miei amici per avermi fatto crescere come persona, nonostante non sia stato un lavoro facile. Infine voglio ringraziare Francesco, per avermi insegnato cosa significhi inseguire un sogno. Padova, 24 luglio 2012 Stefano Pretto

Document Outline

Dedica Indice Elenco delle figure Elenco delle tabelle Sommario Abstract 1 Introduzione 2 Lavori correlati e presentazione dell'X-MAC 3 La simulazione 3.1 L'idea 3.2 Il sensore 3.3 Le batterie 3.4 I consumi energetici 3.5 Modellizzazione degli stati 3.5.1 Stato Sleep 3.5.2 Stato TX 4 Risultati 4.1 Scenario 4.2 Risultati 5 Conclusioni A Codice sorgente Bibliografia Ringraziamenti


© Eiom - All rights Reserved     P.IVA 00850640186