fonti inesauribili di ispirazione,
esempi di vita perenni.
Ai mie nonni
Indice
1 Introduzione 14
1.1 Le reti di sensori . . . 14
1.2 Protocolli per il controllo dell’accesso al mezzo trasmissivo . . . . 16
1.2.1 Protocollo S-MAC . . . 19
1.2.2 Protocollo T-MAC . . . 20
1.2.3 Protocollo B-MAC . . . 21
1.2.4 Protocollo Wise-MAC . . . 24
2 B-MAC vs B-MAC+ 27 2.1 B-MAC . . . 27
2.2 Una evoluzione del B-MAC: il protocollo B-MAC+ . . . 31
3 Analisi energetica e adattività 35 3.1 Equazione energetica . . . 35
3.2 Analisi dell’equazione energetica . . . 37
3.3 Aspettativa di vita di un nodo sensore . . . 40
3.4 Adattività per il risparmio energetico . . . 47
2
INDICE 3
4 Adaptive B-MAC+: implementazione 55
4.1 L’hardware: Tmote Sky . . . 55
4.1.1 Il microprocessore: TI MSP430 . . . 59
4.1.2 La radio: Chipcon CC2420 . . . 62
4.2 Il sistema operativo: TinyOS . . . 72
4.2.1 Il linguaggio di programmazione: NesC . . . 76
4.2.2 Scambio dati e comunicazione in TinyOS . . . 78
4.3 Adaptive B-MAC+ . . . 83
4.3.1 Idea . . . 85
4.3.2 Concetti . . . 91
4.3.3 Considerazioni implementative . . . 94
4.3.3.1 Strutture Dati . . . 96
4.3.3.2 Trasmissione del pacchetto dati . . . 98
4.3.3.3 Realizzazione del Duty Cycle . . . 103
4.3.3.4 Aggiornamento delle informazioni di stato . . . 110
5 Valutazioni sperimentali 113 5.1 Valutazione del Round Trip Time . . . 114
5.2 Valutazione del tempo di trasmissione dei pacchetti e del valore del check interval . . . 120
Elenco delle figure
1.1 Architettura di una rete di sensori . . . 15
1.2 Moduli di un nodo sensore . . . 17
1.3 Duty cycle implementato dal protocollo S-MAC . . . 20
1.4 Duty cycle implementato dal protocollo T-MAC . . . 21
1.5 Clear Channel Assessment - B-MAC . . . 22
1.6 Schema Trasmissione/Ricezione dei dati - protocollo B-MAC . . . 23
1.7 Schema Trasmissione/Ricezione dei dati - protocollo WiseMac . . 25
1.8 Ripetizione del pacchetto dati - WiseMAC . . . 26
2.1 Interfacce TinyOS per il controllo del B-MAC . . . 28
2.2 Limiti del protocollo B-MAC . . . 30
2.3 Schema Trasmissione/Ricezione dei dati - B-MAC+ . . . 32
2.4 B-MAC vs B-MAC+ tempo medio in ricezione . . . 33
2.5 B-MAC vs B-MAC+ energia risparmiata . . . 34
3.1 B-MAC vs B-MAC+: stima del tempo di vita al variare del check interval . . . 42
3.2 Aspettativa di vita di un nodo sensore al variare del periodo di trasmissione dei pacchetti dato . . . 44
3.3 Valori ottimi del check interval al variare del rate trasmissivo . . . 46
4
ELENCO DELLE FIGURE 5
3.4 Stima del tempo di vita di un nodo sensore al variare del periodo
di invio dei pacchetti dato . . . 48
3.5 Guadagno dell’aspettativa di vita di un nodo sensore, in termini assoluti, per i diversi modi di invio ipotizzati . . . 50
3.6 Guadagno dell’aspettativa di vita di un nodo sensore, in percen- tuale, per i diversi modi di invio ipotizzati . . . 51
3.7 Guadagno dell’aspettativa di vita di un nodo sensore in una appli- cazione con una distribuzione dei modi di generazione del traffico temporalmente uniforme . . . 52
3.8 Guadagno dell’aspettativa di vita di un nodo sensore in una appli- cazione con generazione del traffico variabile . . . 54
4.1 Il nodo sensore Tmote Sky . . . 56
4.2 Diagramma a blocchi del nodo Tmote Sky . . . 59
4.3 Diagramma a blocchi del microcontrollore MSP430 ed intercon- nessioni con le periferiche . . . 60
4.4 Interfaccia SPI - MSP430 . . . 62
4.5 Chipcon CC2420 - i pin . . . 64
4.6 Interfaccia Microcontrollore - CC2420 . . . 65
4.7 Attività dei pin del CC2420 durante una ricezione . . . 66
4.8 Attività dei pin del CC2420 durante una trasmissione . . . 67
4.9 Attività dei pin del CC2420 durante una comunicazione con il processore . . . 68
4.10 Schema del Frame conforme allo standard 802.15.4 . . . 69
4.11 Formato del campo Frame Control Field (FCF) . . . 69
4.12 Macchina a stati del modulo radio CC2420 . . . 71
ELENCO DELLE FIGURE 6
4.15 Schema split-phase operation . . . 75
4.16 Linguaggio di programmazione NesC - commands & events . . . 77
4.17 Archittettura di una applicazione scritta in NesC . . . 77
4.18 Schema compilazione di una applicazione NesC . . . 78
4.19 Componenti coinvolte per la comunicazione in TinyOS . . . 79
4.20 Definizione della struttura TOS_Msg . . . 81
4.21 Struttura di un messaggio TinyOS . . . 82
4.22 Stack Radio per l’invio e la ricezione dei messaggi in TinyOS . . . 82
4.23 Inizialmente i nodi della rete non hanno alcuna informazione sul listening mode dei nodi vicini. Il transmitting mode, quindi, deve essere uno di default uguale per tutti e garante di affidabilità. . . . 88
4.24 Il nodo 1 comunica con il nodo 5 seguendo un percorso nodo 1 !nodo 3 ! nodo 5 . Il primo pacchetto della comunicazione sarà inviato con un preambolo di wakeup lungo. . . 89
4.25 Il nodo 1 invia il secondo pacchetto della comunicazione con pre- ambolo di wakeup minore del precedente. . . 90
4.26 Struttura del blocco di countdown - chunk . . . 91
4.27 Connessioni componenti - Adaptive B-MAC+ . . . 95
4.28 Definizione della struttura Preamble_Msg . . . 97
4.29 Definizione della struttura Neighbours_Info e della tabella dei vicini 97 4.30 Definizione dell’array lpl_mode e mode_time . . . 98
4.31 Diagramma a stati per la trasmissione di un messaggio (progetta- zione e implementazione del protocollo Adaptive B-MAC+) . . . . 99
4.32 Intertempo tra la trasmissione di due chunks . . . 100
4.33 Temporizzazione per la neutralizzazione del ritardo di buffering (progettazione e implementazione del protocollo Adaptive B-MAC+)101 4.34 Intertempo tra due chunks consecutivi nel protocollo Adaptive B- MAC+ . . . 102
ELENCO DELLE FIGURE 7
4.35 Funzione fill_preamble_chunk del componente MacM (progetta- zione e implementazione del protocollo Adaptive B-MAC+) . . . . 104 4.36 Diagramma a stati per la realizzazione del Duty Cycle (progetta-
zione e implementazione del protocollo Adaptive B-MAC+). . . . 105 4.37 Procedure di comunicazione processore-radio per la gestione del-
la ricezione dei pacchetti, implementate dal componente CC2420RxM107 4.38 Implementazione dell’evento ricezione del chunk (progettazione
e implementazione del protocollo Adaptive B-MAC+). . . 108 4.39 Implementazione del task che gestisce la ricezione e la segnala-
zione del pacchetto dato . . . 109 4.40 Tasks per la gestione e la memorizzazione delle informazioni di
stato ricevute . . . 111
5.1 Schema della disposizione dei nodi e del calcolatore durante i test per la valutazione del Round Trip Time (due nodi) . . . 114 5.2 Andamento del Round Trip Time valutato utilizzando i parametri
della tabella 5.1 e lo scenario di fig 5.1 . . . 115 5.3 Andamento del Round Trip Time valutato utilizzando i parametri
della tabella 5.1 e lo scenario di figura 5.1, avente due distinti intervalli di invio dei pacchetti (3 sec & 60 sec) . . . 116 5.4 Schema della disposizione dei nodi e del calcolatore durante i test
per la valutazione del Round Trip Time (tre nodi) . . . 117 5.5 Andamento del Round Trip Time valutato utilizzando i parametri
della tabella 5.1 e lo scenario di figura 5.4, avente due distinti intervalli d’invio dei pacchetti (3 sec & 30 sec) . . . 118 5.6 Andamento del Round Trip Time valutato utilizzando i parametri
della tabella 5.2 e lo scenario di figura 5.4, avente due distinti
ELENCO DELLE FIGURE 8
5.8 Schema della disposizione dei nodi, del TOSbase e del calcolatore durante i test per la valutazione del tempo di trasmissione e del valore del check interval . . . 121 5.9 Andamento del Tempo di trasmissione e del Check Interval con
tasso di invio pari a un pacchetto ogni tre secondi. Parametri rias- sunti dalla tabella 5.3 e configurazione dei nodi schematizzati in figura 5.8 . . . 122 5.10 Andamento del Tempo di tresmissione e del Check Interval con
tasso di invio pari a un pacchetto ogni trenta secondi.Parametri riassunti dalla tabella 5.3 e configurazione dei nodi schematizzati in figura 5.8 . . . 123
Elenco delle tabelle
3.1 Valori delle potenze assorbite nei vari stati di consumo . . . 37
3.2 Parametri per l’analisi numerica del consumo energetico . . . 40
3.3 Valore dei parametri fissati per il calcolo della stima del tempo di vita . . . 43
3.4 Corrispondenza periodo di invio dei pacchetti dato e valore del check interval ottimo . . . 47
3.5 Guadagno dell’aspettativa di vita di un nodo sensore, in percen- tuale e in termini assoluti, adattando il check interval ai modi di invio ipotizzati . . . 49
4.1 Condizioni tipiche di funzionamento per il Tmote Sky . . . 58
4.2 Valori dei parametri tipici di funzionamento - CC2420 . . . 63
4.3 Valori del campo Frame Type . . . 70
4.4 Valori possibili dei campi della struttura TOS_Msg . . . 80
4.5 Definizione dei listening mode, transmitting mode e tempo di va- lidità . . . 87
4.6 Corrispondenze tra listening mode, check interval e active time . . 94
4.7 Campi che formamo il frame del chunk . . . 102
5.1 Parametri impostati per la valutazione del Round Trip Time riferiti
ELENCO DELLE TABELLE 10
5.2 Parametri impostati per la valutazione del Round Trip Time riferiti alla figura 5.6 . . . 119 5.3 Parametri impostati per la valutazione dei tempi di trasmissione
dei pacchetti e del check interval dei nodi . . . 122