Analisi sperimentale a lungo termine di connettivitá del segnale per reti wireless

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Analisi sperimentale a lungo termine di connettivitá del segnale per reti wireless"

Transcript

1 UNIVERSITÀ DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE CORSO DI LAUREA IN INGEGNERIA DELL AUTOMAZIONE ANNO ACCADEMICO 2007/2008 Analisi sperimentale a lungo termine di connettivitá del segnale per reti wireless Relatore: Ch.mo prof. LUCA SCHENATO Laureando: Lunardi Luciano Padova, 14 Dicembre 2007

2

3 Alla mia famiglia, a Chiara,...e a tutte le persone che, in qualche modo, hanno creduto in me...

4

5 Indice Introduzione 1 1 Reti di sensori wireless Le reti di sensori wireless Considerazioni sulla WSN Applicazioni della WSN Monitoraggio ambientale Altre applicazioni La rete utilizzata Lo standard e Zigbee I mote TinyOs Il funzionamento di TinyOs NesC Descrizione del Progetto Fondamenti dell algoritmo di comunicazione

6 ii INDICE Il pacchetto La configurazione L esecuzione Fondamenti dell algoritmo di compressione Tecniche di compressione Gli algoritmi - RLE Gli algoritmi - LZ Gli algoritmi - LZSS e LZ Gli algoritmi - LZW Gli algoritmi - S-LZW-MC Gli algoritmi - LTC La scelta L implementazione Il programma Analisi dei dati Analisi dei dati alla potenza di trasmissione 0 dbm Analisi del RSSI Analisi dei dati alla potenza di trasmissione minore di 0 dbm Conclusioni e risultati Possibili studi futuri Bibliografia 99

7 Introduzione Fin dai tempi piú remoti, l uomo ha sempre sentito il bisogno di avere il controllo di tutto ció che lo circonda, sia per la sopravvivenza (l uomo antico), sia per la sicurezza di sè e delle sue cose (l uomo moderno). Attualmente, la tecnologia ci fornisce strumentazioni che ci permettono di monitorare praticamente tutto ció che ci circonda, soddisfando così questa necessità innata, e rendendo la vita di tutti i giorni più tranquilla. Una di queste ultime e attuali tecnologie, la WSN (Wireless Sensor Network, ossia rete di sensori wireless) ci permette per ora di monitorare, per un area abbastanza vasta, diversi fenomeni fisici di elevato interesse, tramite la comunicazione che i vari supporti dei sensori operano fra di loro. Si utilizza così una tecnologia che adopera un sistema di trasmissione radio e che utilizza una fonte di energia indipendente, e che quindi è adatta alla maggior parte degli ambienti grazie alla mancanza di cavi che li collegano fra di loro, e alla rete elettrica. Tali sistemi hanno l ulteriore finalità di ridurre l impiego umano direttamente sul campo, dando la possibilità di interagire con la WSN in remoto, con tutti i vantaggi che ne derivano. Tra le varie applicazioni in cui sono utilizzate queste reti, ci sono i già anticipati monitoraggi, (la semplice rilevazione della misura interessata), la localizzazione (la rilevazione della posizione di un sensore particolare), il tracking (la rilevazione del movimento di un sensore), e tante altre..

8 2 INDICE La rete di sensori wireless che viene utilizzata ha come componente base il mote, che altro non è che un apparecchio elettronico di piccole dimensioni che sente la grandezza di interesse e trasmette e riceve informazioni con gli atri mote. La WSN che noi prendiamo in considerazione utilizza dei mote programmabili, tramite il sistema operativo TinyOS, e dotati di memoria per salvare i dati funzionali necessari. L alimentazione viene fornita tramite batterie, facendo nascere così la problematica della poca autonomia. Solitamente la progettazione di una rete WSN ha come fattore principale l ambientazione in cui deve lavorare. Le varie situazioni di impiego possono alterare il segnale di comunicazione dei mote, provocando le conseguenze più disparate.. I parametri principali da considerare sono quindi quelli che permettono di mantenere una comunicazione accettabile, ossia la potenza con cui il segnale di comunicazione viene trasmesso, ed il numero dei nodi presenti nell ambiente (si osservi che più mote ci sono in un ambiente, minore è la distanza che li separa tra di loro). Si considerano inoltre la presenza o meno di ostacoli, o qualsiasi altro generico disturbo elettromagnetico che potrebbe interferire nella comunicazione, diminuendo o aumentando la connettività stessa della rete. La presenza umana fa parte di queste interferenze, anche se il suo contributo nella trasmissione non è ancora chiarito del tutto: la sua partecipazione dovrebbe sia peggiorare il segnale, creando distorsioni, sia migliorarlo, agendo da passabasso e attenuando le alte frequenze del rumore.

9 INDICE 3 Questo progetto mira a verificare le prestazioni di una WSN nell arco di tempi prolungati, nel nostro caso di una settimana. Vengono utilizzati venti mote che comunicano fra di loro con la tecnica del Flooding, e un mote che viene utilizzato come Base Station per coordinare la comunicazione degli stessi. Sulle memorie flash di questi mote vengono memorizzate le informazioni di comunicazione che saranno successivamente analizzate. In questa analisi vengono considerati: la necessitá di comprimere i dati da memorizzare, la verifica della connessione a piú livelli di potenza, i ritardi fra lo svolgersi della comunicazione fra un giorno e l altro, le condizioni ambientali variabili a seconda della giornata, l influenza della scarica della batteria sui mote, la tolleranza della rete ai guasti, il valore di riferimento RSSI, che stima la qualità del segnale ricevuto. In particolar modo saranno sottolineati gli effetti che la durata del test provoca.

10

11 Capitolo 1 Reti di sensori wireless 1.1 Le reti di sensori wireless Le Wireless Sensor Network (WSN) sono semplicemente un insieme di dispositivi indipendenti senza connessioni esterne, disposti (a volte anche casualmente) all interno di un area da controllare. Questi dispositivi vengono chiamati nodi, e permettono di raccogliere dati ed informazioni, e di rispedirli verso una unitá di elaborazione esterna, utilizzando una trasmissione via radio, infrarossi o ottica. La raccolta di queste informazioni viene effettuata tramite dei sensori. Uno dei fattori a cui é dovuto il successo di queste reti, oltre alla mancanza di connessioni volanti, sono le dimensioni ridotte dei nodi: integrati, sensori, radio e quant altro, vengono sempre piú miniaturizzati, portando l ingombro finale del sensore a qualche decina di cm 3. Tale proprietá mi influenza positivamente sia la mobilitá, che il costo e viene favorito l impiego in luoghi con condizioni ambientali difficili tramite una protezione adeguata. Le WSN sono anche molto flessibili: i vari nodi possono essere programmati a

12 6 Cap. 1. Reti di sensori wireless piacere, possono subentrare in altre reti (se configurati per esserlo) e possono mantenere la comunicazione con la rete anche se sono in movimento. Se l area da controllare non supera le decine di metri quadrati, come nel nostro caso, queste reti rientrano nella categoria delle Personal Area Network (PAN). Queste reti hanno peró anche degli svantaggi: utilizzano un mezzo trasmissivo unico per tutti, con le problematiche che ne derivano (occupazione del canale, bassi tassi trasmissivi,...); e hanno una bassa qualitá della trasmissione dovuta al rumore e alle interferenze ambientali. Addirittura alcune comunicazioni possono non andare a buon fine, e ció dev essere considerato in fase di progetto. L incertezza della locazione del nodo crea inoltre, l impossibilitá di un collegamento statico con una fonte di alimentazione, obbligando l utilizzo di fonti alternative, e della loro probabile limitazione nel tempo. La successiva scelta delle caratteristiche hardware e software di una rete dev essere perció adeguata al tipo di utilizzazione che ne conseguirá. 1.2 Considerazioni sulla WSN Esistono diversi criteri con cui una WSN puó funzionare, i principali sono: le WSN di tipo DATA-CENTRIC, che hanno la peculiaritá di considerare importanti i dati raccolti dai singoli mote, dipendono parecchio dall intervento dell operatore; le WSN di tipo AD HOC, che sono caratterizzate dall autoconfigurarsi e dall autoadattarsi a situazioni e topologie nuove, lasciando libero l operatore, e utilizzano le informazioni che circolano allo scopo di tenere aggiornata la rete stessa.

13 1.2 Considerazioni sulla WSN 7 Fra queste reti, noi considereremo solamente quelle di tipo DATA-CENTRIC dato che per l analisi di connettivitá sono necessari i dati raccolti dai singoli nodi relativi alla trasmissione/ricezione. Si possono poi fare ulteriori considerazioni nell applicazione della WSN: l utilizzo di un elevato numero di nodi, programmati esclusivamente per questo tipo di applicazione (e non per un uso generical pourpose), ci permetterà di avere una notevole quantità di dati da esaminare, creando in questo modo una visione d insieme tale da nascondere qualche eventuale perdita di dati dovuta a mote non funzionanti. Ulteriore importanza saranno le limitazioni nella potenza di trasmissione: i nodi possono essere tra loro molto vicini e questo puó portare ad un risparmio in termini energetici. Tuttavia la vicinanza puó anche creare interferenze e quindi bisogna pesare in maniera adeguata la densitá dei componenti della rete. Fra le varie realizzazioni dei nodi della rete, quelli che prendiamo in considerazione, hanno una struttura necessariamente formata da convertitori ADC DAC, per la trattabilità della misura rilevata; da un microprocessore, delle memorie e dei bus, per elaborare la misura, e da un sistema di trasmissione per la comunicazione finale della rilevazione. A queste considerazioni si devono aggiungere delle linee guida che facilitano la scelta fra le diverse tecnologie disponibili per l implementazione della nostra rete: Ambienti operativi: Il luogo fisico in cui il componente della rete deve risiedere potrebbe implicare particolari protezioni per prevenire il danneggiamento dello stesso, quindi dev essere previsto un impiego adatto. Si devono progettare quindi dei dispositivi in grado di sopportare le condizioni di temperatura, pressione, vibrazione,etc. adeguate.

14 8 Cap. 1. Reti di sensori wireless Anche il mezzo trasmissivo dev essere scelto in base a questo criterio,ed il tutto deve essere realizzato pesando gli altri parametri. Fault tolerance: La rottura di un componente della rete deve avere il minimo impatto nei confronti della rilevazione, pertanto si implementeranno dei programmi che, a seconda della densitá dei nodi, stimeranno la rilevazione mancante. Scalabilità: Il numero dei nodi di una rete solitamente non è fissa nell arco del tempo, deve quindi essere supportato l aumento o la diminuzione di essi, oltre a prevederne una diversa applicazione. Costi produttivi: Perché siano contenuti, bisogna che il costo del singolo componente sia ancora piú contenuto, dato che una rete é formata da un numero non piccolo di componenti. Topologia: Esistono diverse tipologie di reti WSN: reti mesh, reti a stella o peer to peer e reti ad albero a seconda che ci siano zero, uno o piú componenti che gestiscano i nodi slave 1. Ogni tipo di rete ha le sue proprietá ed il suo campo di utilizzo: in una topologia di tipo stella, esiste un nodo centrale con funzionalitá di coordinatore, perció la comunicazione tra due nodi generici deve passare per il nodo centrale, in una topologia mesh (p2p) non é piú necessaria la presenza di un nodo coordinatore, in quanto ogni dispositivo è in grado di connettersi con tutti gli altri. 1 I componenti che gestiscono la comunicazione ad un livello gestionale sono considerati master.

15 1.3 Applicazioni della WSN 9 la topologia clustered presenta una struttura ad albero, con grappoli di nodi alle estremitá. Le reti mesh superano i limiti delle reti a stella, realizzando collegamenti ridondanti che da un lato aumentano l affidabilitá, ma dall altro richiedono di algoritmi di gestione più complessi, mentre la topologia clustered a differenza della p2p, riduce le combinazioni di percorsi possibili, e la conseguente difficoltá di gestione. Figura 1.1: Strutture di reti. 1.3 Applicazioni della WSN La possibilitá di poter monitorare a distanza una determinata grandezza trova applicazione in un numero elevato di ambiti, che possono uteriormente aumentare se consideriamo che la rete puó contare sulla partecipazione di tutti i suoi nodi.

16 10 Cap. 1. Reti di sensori wireless Ogni nodo della rete di sensori wireless, a differenza delle reti di sensori generiche, ha la particolaritá di avere a disposizione un piccolo elaboratore per trattare i dati che il sensore raccoglie. A tal proposito, una presenza in numero superiore di sensori, un algoritmo puó aumentare ad esempio l affidabilitá della misura, o coprire il malfunzionamento di un nodo. Qualsiasi ambientazione in cui non esiste la possibilitá di collegare tramite cavo il sensore al suo utilizzatore (o magari il sensore alla sua fonte di alimentazione), diventa una potenziale applicazione di un dispositivo wireless, ed in particolar modo, le WSN. L analisi dei problemi dell applicazione passa cosí dalla vecchia difficoltá strutturale di dover passare un cavo, alla difficoltá di fornire un alimentazione adeguata e trovare una potenza di trasmissione del segnale sufficente a coprire i disturbi. In questo modo, ambienti particolari o difficili possono essere monitorati ugualmente. I principali impieghi delle WSN sono: 1. MONITORAGGIO, semplice rilevazione della misura interessata, 2. LOCALIZZAZIONE, determinazione della posizione di un determinato sensore, 3. INSEGUIMENTO, determinazione del movimento di un sensore. Il campo tipico in cui le WSN sono impiegate, sono i monitoraggi ambientali, i quali sfruttano il vasto numero di nodi posizionato all interno dell area da controllare per monitorare il fenomeno interessato.

17 1.3 Applicazioni della WSN Monitoraggio ambientale Si riportano due esempi applicativi di monitoraggio ambientale sviluppati recentemente: 1. FireFly é una piattaforma per reti di sensori wireless a basso costo sviluppata presso l universitá di Carnegie Mellon. Ha funzionalità di acquisizione ed elaborazione dati e di comunicazione multi-hop. I nodi utilizzano un sistema di sincronizzazione temporale, basato sul confronto di un segnale orario di riferimento esterno che gli viene fornito via broadcast. Questa peculiaritá permette ai nodi considerevoli risparmi di energia, che consentono un lifetime di due anni. Le applicazioni supportate comprendono oltre al classico monitoraggio ambientale anche sorveglianza, localizzazione e applicazioni telecomunicazionistiche. Una rete di 42 nodi FireFly é stata installata nella miniera di carbone NIOSH con lo scopo di tener traccia della posizione dei minatori, della situazione ambientale,e di garantire, in caso di crolli, la possibilitá di comunicare con eventuali zone della miniera rimaste isolate. 2. Motetrack é un sistema di rilevamento per monitorare oggetti decentralizzato a radiofrequenza, sviluppato presso l universitá di Harvard. A differenza di altri esperimenti giá effettuati non utilizza un server centrale per mappare i segnali, ed é molto robusto ai guasti. L esperimento viene effettuato disponendo 25 nodi all interno dell edificio scientifico, riuscendo a raggiungere una precisione dell 50 % e dell 80% rispettivamente nel raggio di 1 e 1.7 metri.

18 12 Cap. 1. Reti di sensori wireless Figura 1.2: Disposizione dei nodi nella miniera nel progetto FireFly. Tale precisione viene raggiunta elaborando i dati ricavati dalle trasmissione dei segnali di test a 16 livelli di potenza diversi. Vengono inoltre studiate le condizioni di utilizzo piú disparate come: densitá dei nodi, sensibilitá ai disturbi, numero di ostacoli, malfunzionamento dei nodi. Figura 1.3: Dipartimento di Harvard, esperimento MoteTrack.

19 1.3 Applicazioni della WSN Altre applicazioni Si trovano molte altre applicazioni pratiche della WSN anche in: Ambito scientifico, Specialmente come rilevazioni di dati utili ad un particolare studio. Ad esempio in biologia sono utilizzate nel monitoraggio di habitat, dove si studiano i mutamenti in habitat ambientali su breve e media durata, si monitorano temperature, pressioni, umiditá, anche laddove la presenza umana potrebbe dare fastidio, o si necessita di sensori poco invasivi. I sensori possono essere utilizzati in varie dimensioni, e essere applicati sulla superficie dell habitat, sugli alberi, o sugli animali stessi nel caso in cui non sia invasivo. Il recupero dei dati puó avvenire ricorrendo a delle stazioni fisse, piú sofisticate e a piú lungo raggio, che possono agire da tramite fra il sensore e l elaboratore dei dati, o elaborare direttamente il dato sul campo. Recentemente in america é stato dato il via alla piú grande WSN adibita ad agricoltura di precisione. Dalla durata di due anni (terminerá nel 2008) con 273 nodi, e rilevazioni relative ad umiditá del terreno a vari livelli, densitá di chioma, monitoraggio del clima e controllo dell irrigazione, viene supervisionato lo sviluppo di un frutteto di peschenoci [14]. Le WSN possono essere adottate nelle rilevazioni acustiche, ove in particolar modo viene sfruttata la rilevazione di piú sensori per rilevare posizioni, movimenti, condizioni ambientali. Ad esempio vengono utilizzate nelle localizzazioni urbane a basso costo [15] o nelle reti WSN sottomarine i quali nodi trasmettono tra di loro tramite dei modem acustici [16]. Con lo stesso principio esse vengono utilizzate anche nel recupero dei

20 14 Cap. 1. Reti di sensori wireless superstiti e nella valutazione dei danni strutturali in zone terremotate. Possono essere compiute anche rilevazioni sismiche, ove si possono sfruttare le rilevazioni sia di onde sismiche che quelle di frequenze ultrasoniche. In questo modo si possono fare delle stime e dare delle previsioni ad esempio di eruzioni vulcaniche [17]. ambito militare, qui si sono rivelate molto utili in diversi utilizzi: si possono individuare presenze di intrusi (o alleati) con una buona affidabilitá tramite una semplice localizzazione e una adeguato numero di nodi, si possono individuare posizioni di cecchini tramite l elaborazione incrociata di vari nodi forniti di sensori acustici, si possono identificare i punti in cui ci sono delle mine, si possono creare dei sistemi di sorveglianza e riconoscimento, e tanto altro ancora. ambito industriale, l automazione di processi industriali é fortemente influenzata dalla presenza di WSN. Principalmente si é evoluto il monitoraggio di processi (la rilevazioni di variabili significative, in quasi tutte le condizioni di lavoro), la gestione della manutenzione dei macchinari (una elaborazione dei dati della vita del macchinario puó portare ad una predizione della rottura), la supervisione di magazzini, o il monitoraggio delle attivitá (si individuano operai e macchinari tempestivamente). Tale applicazione risulta vantaggiosa, poiché diminuisce fortemente i costi di manutenzione rispetto le reti wired, oltre a tutti gli altri vantaggi che un piccolo elaboratore nel posto puó portare. ambito medico, l applicazione di sensori che misurano le variabili vitali dell organismo del paziente, e la successiva trasmissione ad un meccanismo di controllo centrale puó migliorare la situazione di una corsia di ospedale, dove di sicuro non c é un medico per paziente.

21 1.3 Applicazioni della WSN 15 La tempestivitá della monitorizzazione dei parametri del paziente porta cosí ad una velocizzazione di un eventuale intervento da parte del personale medico. La presenza dell anamnesi digitale del soggetto inoltre, puó risultare utile quando vengono somministrati farmaci e ci siano allergie presenti: esse vengono tempestivamente segnalate e confrontate con le somministrazioni assegnate. Anche in ambienti casalinghi la continua supervisione e registrazione dei parametri medici di persone anziane puó risultare della stessa utilitá. ambito domestico, l idea di ambiente domestico connesso, inteso come interazione fra i vari elettrodomestici appartenenti ad uno stesso edificio, é da molto tempo preso in cosiderazione dalla domotica. Le reti WSN possono quindi trovare grande applicabilitá nella vita di tutti i giorni. Ogni elettrodomestico potrebbe quindi comunicare con degli altri e con dei nodi centrali, e la situazione all interno della casa potrebbe essere comodamente osservata via internet o via satellite. Attualmente, esistono due approci progettuali: l human centered, che prevede che l esigenze dell uomo vengano soddisfatte dalla tecnologia applicata, e la technology centered, dove é la tecnologia intelligente (smart) che decide l ambientazione ideale. Tra queste ultime, rientrano i sistemi HVAC (Heating, ventilation and air contidioning), ossia dei sistemi autoconfiguranti che utilizzano dei sensori per impostare la temperatura e l umiditá di un ambiente. Finora sono stati effettuate decine di esperimenti da universitá e imprese di tutto il mondo, cercando diverse soluzioni applicative, a seconda dei problemi incontrati.

22 16 Cap. 1. Reti di sensori wireless Si vogliano ricordare come esempio le seguenti 2 [4]: Esempi di esperimenti. nome topologia connettivitá nodi utilizzati GreatDuck Stelle di clusters connessa 10 ZebraN et graf o sporadica Glacier stella connessa CattleHerding graf o intermittente 100+ Bathymetry graf o connessa 100+ Ocean stella intermittente 3000 Grape albero connessa 100+ Cold Chain albero intermittente 100+ Avalanche stella connessa V italsign single hop connessa 10 P owerm onitoring multi hop connessa P artsassembly stella connessa 10 T racking graf o intermittente M ines graf o connessa 100+ Sniper graf o connessa 100+ Ognuno di questi progetti ha avuto il suo campo di applicazione particolare, e ognuno di essi ha apportato i suoi risultati. Great Duck é stato un esperimento che ha portato alla registrazione delle variabili climatiche di un isola, all interno e all esterno di cunicoli utilizzati come nidi da degli uccelli locali. ZebraNet ha monitorato i comportamenti di alcuni animali selvatici, enfatizzandone spostamenti, interazioni con altre specie e con l uomo. 2 La connettivitá é definita cosí: se la connessione fra nodi nel tempo é presente in qualsiasi momento, viene definita connessa, se é in parte non presente, viene definita intermittente ; se capita occasionalmente (magari solo in un tempo utile), viene chiamata sporadica.

23 1.3 Applicazioni della WSN 17 Glacier ha registrato spostamenti superficiali e sotterranei di un ghiacciaio in Norvegia. Cattle Herding ha portato all implementazione di una recinzione virtuale: si é creata una zona fissata in cui quando un animale la attraversa, scattano degli avvisatori acustici che ne rallentano la fuga. Bathymetry ha permesso di studiare l influenza che ha avuto un parco eolico sul fondo dell oceano. Ocean (water monitoring) ha permesso di stimare il comportamento delle masse d acqua oceaniche, come variabilitá climatica, correnti e salinitá. In Grape si é monitorata la crescita di un vigneto e tutte le influenze che le condizioni climatiche potessero causare. Cold Chain, come dice il nome, ha permesso di progettare un sistema WSN che assicurasse il mantenimento della catena del freddo su alcuni prodotti, con la possibilitá di verificarne gli stati del processo tramite internet. Vital sign ha fornito ulteriori dati sulle BAN (Body Area Network), fornendo i pazienti di un ospedale di un dispositivo in grado di registrare i segni vitali e di interagire con il medico tramite una penna particolare. Power Monitoring ha delimitato i potenziali luoghi in cui il consumo di potenza in un complesso di uffici era eccessivo. Parts Assembly é un esperimento particolare: é nato per assistere le persone al montaggio di macchinari forniti a pezzi. Ogni pezzo (compresi gli strumenti) é fornito di un sensore particolare, e la rete nel complesso controlla le azioni di montaggio, fornendo un feedback (a led luminoso nelle parti da montare) a seconda il montaggio venga effettuato a dovere o no. Tracking Military Vehicle [18] monitora il passaggio di carri armati nemici tramite dei sensori (difficili da distruggere) lanciati da un aereo senza pilota, che funziona da BaseStation. Self Healing Mine-Field invece é un sistema innovativo per mantenere omoge-

24 18 Cap. 1. Reti di sensori wireless neo un campo minato: i sensori montati sulle mine rilevano se ci sono mine difettose o disinnescate, e nel caso ce ne siano, provvedono da sole (grazie al movimento fornito da un razzo propulsore) a ricoprire la fascia di terra non minata. Sniper Localization infine, fornisce la posizione di un cecchino con una buona accuratezza, basandosi sull onda sonora causata dallo dello sparo: vari sensori la ricevono con ritardi diversi, ed in base ad essi si puó risalire al punto in cui é stato fatto fuoco. Figura 1.4: L aereo senza pilota utilizzato nel Tracking Military Vehicle. L esperimento é denominato 29palms.

25 Capitolo 2 La rete utilizzata Creiamo cosí la nostra rete sfruttando degli standard e dei dispositivi giá esistenti, cercando di sceglierli in modo che siano piú adeguati possibili alle nostre esigenze. Per effettuare un test di connettivitá ci servirá un dispositivo che compie un determinato numero di operazioni, che sappia trasmettere e ricevere un segnale sul mezzo trasmissivo scelto, che abbia una certa quantitá di memoria per immagazzinare i dati ricavati e per depositare il programma di esecuzione, di un bus di comunicazione che permetta la comunicazione fra i vari componenti, e che abbia a disposizione dei sensori che permettino la rilevazione delle variabili ambientali di interesse. Questi ultimi sono solitamente i piú importanti, ma nel nostro caso, l unica variabile necessaria al nostro scopo sará l RSSI (received signal strength indicator) che fortunatamente verrá fornito direttamente dall apparato radio scelto, in forma digitale. In questo modo non saranno necessarie le conversioni di grandezze fisiche fornite dai sensori, ed il dato di iteresse verrá semplicemente scritto in memoria. Nel paragrafo successivo si espongono i criteri scelti per la trasmissione dell informazione.

26 20 Cap. 2. La rete utilizzata 2.1 Lo standard e Zigbee Per poter concretamente creare la nostra rete, dobbiamo determinare la maniera con la quale l informazione viaggia nel mezzo trasmissivo, ossia specificare parametri quali tensioni, durata dei bit, velocitá di trasmissione, modalità di accesso al mezzo fisico. Utilizzeremo quindi lo standard [13], che definisce in due livelli le necessitá sovraesposte: il livello fisico (PHY) e il livello di accesso al canale (MAC). Questo standard risulta adatto a reti i cui dispositivi sono caratterizzati da bassa complessità e connettività wireless a basso data rate. La bassa complessitá ci porta inoltre ad un conseguente costo contenuto di implementazione dello standard stesso, e ad un limitato consumo energetico. Tale standard opera nella banda ISM non licenziata 2.4 Ghz, 915 Mhz e 868 Mhz, ed é l ideale per delle trasmissioni tra nodi che distano fra di loro meno di 100m. Il prossimo passo è di scegliere le regole con cui interfacciare il livello MAC con i linguaggi ad alto livello. Anche questa volta prenderemo uno standard già confermato e adatto ad essere utilizzato da piccole radio a bassa potenza. Lo ZigBee, specifica un insieme di protocolli di comunicazione ad alto livello basato sullo standard Tali protocolli sono progettati per l uso in applicazioni embedded con lo scopo di creare una rete mesh non mirata, economica e autogestita che possa essere utilizzata per scopi quali il controllo industriale, le reti di sensori, domotica, ecc. Essi hanno una complessitá di codice minore, e quindi un minor costo, rispetto a dei protocolli equivalenti, quali blutooth o wi-fi. ZigBee puó suddividere i dispositivi sui quali é montato, definendo l utilizza-

27 2.2 I mote 21 zione dei vari nodi: Il nodo coordinator, che gestisce tutta la rete e puó operare come ponte per altre eventuali reti, il nodo full function device, che puó generare informazioni e spedirle al coordinator, oltre che essere un intermediario per altri dispositivi, il nodo device che include le funzionalitá minime per dialogare con nodi parenti, e che occupa il minor quantitativo di memoria. Siccome avremo bisogno di piú memoria possibile, implementeremo tutti i nodi come device e siccome sfrutteremo un ulteriore nodo come contatore che scandisce i periodi di trasmissione, lo implementeremo come coordinator, dato che non avrá la necessitá di immagazzinare dati. I dispositivi ZigBee devono rispettare lo standard e quindi operare nelle frequenze definite per quello standard: nella banda 2.4 Ghz ci sono 16 canali ZigBee, da 3 Mhz ciascuno e la frequenza centrale per ogni canale puó essere calcolata come FC=(2400+5*k) Mhz, con K=1,2, La massima potenza di trasmissione è di 1mW, cioè 0 dbm e il range di copertura va dai 10 ai 75 metri, in base all ambiente. In base alla frequenza di trasmissione si possono avere vari data-rate, noi ad esempio utilizzeremo un data-rate di 250 kbps con una modulazione OQPSK. Fra le modalità di accesso al canale fornite da ZigBee, utilizzeremo sempre quello specificato dall IEEE : il CSMA/CA 1, dove si trasmette solo se il canale è libero.

28 22 Cap. 2. La rete utilizzata Figura 2.1: Architettura della rete. Figura 2.2: Il mote. 2.2 I mote I singoli mote che compongono la rete sono dei componenti prodotti dalla Moteiv denominati Tmote Sky [8]. Sono motes di ultima generazione, caratterizzati da bassa potenza e alto data rate e, sviluppati secondo lo standard , rispettando l insieme di protocolli ZigBee, e soddisfando quindi tutte le specifiche riportate nel capitolo precedente. 1 Carrier Sense Multiple Access with Collision Avoidance.

29 2.2 I mote 23 Questi mote, inoltre, devono il loro successo alla semplice connessione usb disponibile all utente per poter interagire con essi. La componentistica é abbastanza semplice: la CPU elabora e gestisce tutte le informazioni passategli dal bus, la radio e la memoria flash sono collegate anch esse con il bus, per poter comunicare con la CPU, mentre i sensori sono connessi tramite dei convertitori ADC, per poter adattare il segnale. Questi moduli contengono 10KB di memoria RAM, un antenna con un range di 125 metri, un convertitore 12-bit ADC e uno DAC, Timer, bus protocols di tipo I2C, UART e SPI e un controller DMA, oltre che 1MB di memoria Flash. Hanno un consumo di corrente minimo (sui 20 ma con radio accesa e sui 1 2µA con radio spenta), e un tempo di switch da stato sleep a idle minore di 6µs. É presente una predisposizione per l aggiunta di eventuali componenti aggiuntivi, come sensori o FPGA, ed il supporto per poter comunicare tramite porta seriale con il mote stesso. Questi mote hanno diverse fonti di alimentazione possibile, tra queste verrá utilizzate l alimentazione a batterie, con tutte le problematiche che ne conseguono: siccome questa alimentazione non risulta stabile nell arco di tempi lunghi, l autonomia ne risulterà limitata, dato che il mote non funziona con tensioni minori di 2,1V. Questi mote, avendo una capacità di calcolo e memoria limitata, non sono quindi adatti a poter lavorare con sistemi operativi complessi, ma ad utilizzare un linguaggio apposito (il TinyOS). Esso, come dice il nome, é diverso e piú leggero di un sistema operativo, anche se dovrebbe essere definito tale dato che utilizza delle istruzioni a livello hardware. Questa semplicità del software permette di raggiungere prestazioni più spinte alleggerendo il carico di conti del microprocessore, aumentando la tempestivitá del esecuzione stessa e riducendo un eventuale tempo di ciclo, ma questo lo vedremo piú avanti.

30 24 Cap. 2. La rete utilizzata Ora analizziamo la componentistica in dettaglio: Specifiche del datasheet CPU bus speed 8M hz ram 10Kb rom 48Kb f lash 1024Kb serial communication DIO, SP I, I2C,UART current active 19mA current sleep 5.1µA startup time 6µs voltage V RADIO f requency M hz data rate 25Kbps output power 25 0dBm startup time 580µs antenna type SM A Coaxial SENSORI humidity accuracy 3.5%RH temperature accuracy 0.5 o C sampling rate 90hz Il microprocessore MSP430 [11] utilizza un sistema di clock flessibile ed un indirizzamento della memoria del tipo Von-Neumann, é caratterizzato da un architettura RISC a 16 bit e una velocità di 8MHz. Il processore sfrutta una memoria RAM di 10KB e una flash ROM di 48 KB dove memorizzare il software.

31 2.2 I mote 25 Figura 2.3: Il mote nel dettaglio. Viene prodotto dalla Texas Instruments e solitamente viene utilizza to per applicazioni embedded. Il modulo che esegue la funzione di trasmettitore radio wireless é l integrato CC2420 [9]. Tale supporto é stato progettato rispettando le norme dello standard , e implementa quindi, i primi due livelli dell architettura di comunicazione: il MAC ed il PHY (vedi inizio del cap.3). Il chip ha integrato un trasmettitore/ricevitore che lavora in banda base a sequenza diretta, fornisce un guadagno di 9 db, e trasmette il segnale in modulazione O-QPSK, utilizzando come forma base un half sine pulse. Ma le caratteristiche che prenderemo più in considerazione sono: il segnale RSSI (received signal strength indicator) che il chip fornisce direttamente in digitale, che rappresenta un indicazione di qualitá del segnale ricevuto; e la possibilitá di scegliere la potenza di trasmissione del segnale fra una scala di valori che ha come estremi 0 e -25 dbm. Tale scelta

32 26 Cap. 2. La rete utilizzata Figura 2.4: Architettura della CPU. viene trasmessa, sempre in digitale, dalla CPU. Potenze del segnale Riferimento di potenza P otenza di uscita in dbm Integrati nei mote esistono dei sensori opzionali che misurano la temperatura, la luminositá e l umidità ambientale, e uno integrato di serie che misura la tensione delle batterie. Quest ultimo puó essere utilizzato per un analisi della tensione utilizzata durante l attivita del mote. Ogni sensore ha la sua precisione ed accuratezza, ma in questa tesi non

33 2.2 I mote 27 verranno considerati, in quanto verrá considerata solamente le proprietá di connetivitá. Per l attivitá dei mote sono necessarie due tipi di memorie flash: la memoria di massa, dove saranno immagazzinati i dati utili, é un chip (M25P80) [10] che fornisce 1MB di memoria suddiviso in 16 segmenti da 64 KB ciascuno connessa alla cpu mediante bus SPI. L altra memoria, dove sará memorizzato il programma esecutivo, ha la capacitá di 48 Kb. Da prendere in considerazione che radio e flash utilizzano lo stesso bus per comunicare con il microprocessore e questo crea la necessità di dover gestire la condivisione della risorsa (bus SPI). Figura 2.5: Architettura hardware del mote. Tra le connessioni possibili figura la usb fornita, che permette la co-

34 28 Cap. 2. La rete utilizzata municazione con qualsiasi sistema operativo per la programmazione del mote, e quelle aggiungibili, tramite le predisposizioni per l espansione, per poter collegare componenti a seconda della necessitá dell impiego. 2.3 TinyOs Dalla descrizione appena fatta ci ricaviamo che i mote hanno delle caratteristiche hardware piuttosto limitate: la velocitá di esecuzione del programma dipenderá quindi dalla complessitá dello stesso in maniera ancora piú marcata. Un metodo per gestire le risorse al meglio, potrebbe essere ad esempio di accorciare le chiamate ai vari componenti del mote, nominandoli 2 direttamente, senza passare per traduttori o sistemi operativi. Se poi mettiamo in conto che ogni nodo deve eseguire una sola applicazione alla volta, si puo creare un sistema operativo fatto su misura per i mote. Su questi principi, l Università di Berkeley ha sviluppato il sistema operativo open source TinyOS, che oltre a queste caratteristiche, ha la capacitá di essere flessibile e compatto [12]. Esso permetterebbe ai mote di poter essere riutilizzati per piú applicazioni, solamente cambiando il programma al loro interno, anche se i mote hanno poche risorse a disposizione e sarebbe indicato (come per tutti i dispositivi a poche risorse) installarci un programma dedicato. Questo sistema operativo creato su misura non puó essere definito univocamente sistema operativo né applicazione, dato che ha delle caratteristiche dell uno (ha un astrazione delle risorse hardware) e dell altro (é intercambiabile a seconda delle necessitá). TinyOs é caratterizzato da un Kernel ridotto che permette un accesso diretto 2 Si intende un controllo diretto a livello di componente.

35 2.3 TinyOs 29 all hardware, un meccanismo di gestione del processore che non prevede cambi di contesto e una memoria considerata come un unico spazio fisico lineare allocato solo nel momento della compilazione. É sviluppato su di un modello di programmazione basato su eventi 3 ed é costituito da un insieme di librerie di componenti che implementano protocolli di rete, servizi distribuiti, driver dei sensori e tools di acquisizione dati, ognuno dei quali puó essere utilizzato oppure modificato a seconda dei requisiti di impiego. Il software che viene fatto eseguire sui mote in cui opera TinyOS, é costituito da un unica entitá formata da codice del sistema operativo e da codice dei componenti dall applicazione. Questa entitá ha un architettura sviluppata in tre livelli diversi: Un primo livello in cui si trovano dei componenti specifici all applicazione, sviluppati in alto livello, ossia in modo da sfruttare i componenti di livello inferiore e da essere indipendente dal tipo di piattaforma su cui gira. Sempre allo stesso livello vi sono implementati anche gli strumenti per gestire la concorrenza dei vari componenti; Un livello di interfacciamento hardware, specifico a seconda della componentistica hardware presente, che permette un astrazione della stessa per un suo successivo utilizzo; Ed un livello intermedio (middleware), che permette una manipolazione piú avanzata delle periferiche hardware usufruendo delle astrazioni disponibili, e che agisce da intermediario col livello superiore, pessando dalla massima astrazione, ad un linguaggio piú elementare. 3 Le sue applicazioni sono composte da vari componenti che vengono attivati al verificarsi di un determinato evento: in questo modo quando il sistema è nello stato idle, semplicemente non esegue alcuna operazione, in modo da consumare pochissima energia.

36 30 Cap. 2. La rete utilizzata A seconda del livello in cui risiedono i componenti, possiamo trovarne diverse implementazioni: se risiedono nel livello di interfacciamento hardware, possono rappresentare componenti come i timer o la radio,ad esempio monitorandone lo stato, mentre per componenti di livello superiore possiamo vedere implementate strutture di dati. I componenti che formano i vari livelli sono quindi delle unitá software indipendenti, suddivise in due parti: il corpo del componente, formato anch esso da 1. Un frame, ossia una porzione di memoria allocata al momento della compilazione, che contiene i dati necessari all elaborazione dell applicazione, come ad esempio lo stato interno relativo ad un componente hardware, 2. un insieme di tasks relativi al componente stesso, ossia richieste di esecuzione che vengono eseguite in una determinata sequenza; e da un interfaccia implementata che permette l interazione fra componenti diversi (che siano dello stesso livello o meno). Essa é bidirezionale, poiché permette di gestire: 1. eventi (come potrebbe essere la fornitura di una variabile), e 2. comandi (come potrebbe essere la richiesta di una variabile). La comunicazione fra due componenti di livelli diversi avviene tramite un operazione chiamata split-phase: quando un componente di alto livello effettua una chiamata tramite un comando, il componente di livello inferiore ritorna un evento di conferma dell inoltramento della richiesta, poi quando l operazione richiesta della chiamata viene terminata, viene inviato un altro evento di conferma.

37 2.3 TinyOs 31 Da notare che l esecuzione dell operazione richiesta puó essere ritardata, ed in quel periodo il processore si trova in stato di attesa (idle). Figura 2.6: Struttura di TinyOs Il funzionamento di TinyOs I dispositivi collegati al mote, quali ADC, radio, memoria flash, etc., quando eseguono un operazione hanno diverse velocitá, e di conseguenza il software deve adattarsi ad esso: il processore puó compiere molte altre azioni finché i dispositivi terminano l operazione immessa, e quindi si necessita di avere delle operazioni in parallelo. Possono anche verificarsi delle situazioni in cui un dispositivo puó essere chiamato piú volte durante l esecuzione di una sua operazione. Solitamente per gestire casi del genere si ricorre ad una coda dove contenere le operazioni da effettuare per ogni dispositivo, e ad una gestione particolare dell attesa, il tutto denominato thread. La gestione di piú thread viene poi gestita dallo scheduler, che rispetta le varie prioritá associate ad ogni chiamata. Questo metodo peró é molto dispendioso in termini di memoria dato che il

38 32 Cap. 2. La rete utilizzata passaggio fra un thread e l altro si é obbligati a salvare in memoria i contenuti dei registri dei thread in attesa. TinyOs risolve questo problema utilizzando un unico stack comune a tutte le chiamate, e una gestione dei thread del tipo run-to-completion, cioé che normalmente ogni thread viene eseguito interamente, prima di passare al successivo. Questo modello facilita cosí la gestione della concorrenza in quanto non richiede scheduler complessi e si evita il bisogno di sincronizzazioni tra thread. Purtroppo i thread creati da interrupt hardware, avendo la massima prioritá, possono interrompere lo stesso altri thread, e si possono creare delle situazioni in cui si possono modificare delle variabili riservate ai trhead interrotti. All interno di TinyOs esistono peró delle soluzioni ottimali per queste situazioni: i concetti di task, codice sincrono, e codice asincrono. Il task é un thread richiamato dal sistema operativo, la cui esecuzione viene rimandata ad un momento successivo. Il codice sincrono é quello presente all interno dei tasks, e siccome i tasks vengono eseguiti con ordine FIFO e modalitá run-to-completion, i loro codici non hanno bisogno di sistemi di sincronizzazione, dato che non alterano l ordine di esecuzione degli stessi. Il codice asincrono invece é quello eseguito da un interrupt ad alta prioritá. Esso puó sia interrompere un task, sia interrompere una parte di codice asincrono. Per risolvere il problema iniziale, in pratica, quando é presente un thread e se ne presenta uno di prioritá superiore, il primo, essendo un task, puó temporaneamente interrompe la sua esecuzione, lasciando il tempo al thread urgente di completarsi.

39 2.4 NesC 33 Ovviamente, puó capitare che all interno di esso possa esserne chiamato un altro, e lo stesso verrá eseguito prima, e in un secondo momento sará completato il codice asincrono interrotto. Insomma, utilizzando i task il gestore di un interrupt puó terminare rapidamente eseguendo immediatamente quelle operazioni necessarie a memorizzare i dati prodotti dall interrupt, e rimandandone cosí l elaborazione in un momento successivo. 2.4 NesC Il codice con cui viene programmato il mote, ossia l insieme di tutte le istruzioni che il mote riconosce e che puó eseguire si chiama NesC. NesC come suggerisce il nome stesso, è un dialetto del linguaggio C sviluppato e ottimizzato appositamente per la programmazione dei mote. Esso rammenta un estensione del C, per quanto riguarda l implementazione del modello ad eventi, ma al tempo stesso ha una carenza: l assenza dei puntatori e dell allocazione dinamica. NesC permette di sviluppare applicazioni event driven dove i componenti dell applicazione vengono mandati in esecuzione solo se si verificano gli eventi corrispondenti e permette un integrazione molto spinta con il sistema operativo grazie ad un accorgimento: l applicazione viene compilata assieme ai soli componenti di TinyOS utilizzati e come risultato si ottiene un immagine del codice che viene cosí caricata sul nodo. In questo modo permette un considerevole risparmio di memoria ed una maggiore robustezza e velocitá dell applicazione. La contropartita é peró l impossibilitá di caricare più applicazioni indipendenti sullo stesso nodo e l assenza di allocazioni dinamiche di risorsa. Come giá accennato, un applicazione scritta in NesC è costituita da uno o più

40 34 Cap. 2. La rete utilizzata componenti collegati tra di loro tramite interfacce. Un interfaccia viene definita tramite la parola chiave interface, e rappresenta l insieme dei comandi e gli eventi utilizzati. Nel codice dell interfaccia viene quindi definito prima il nome del interfaccia, e successivamente l elenco indicativo degli eventi e dei comandi che saranno utilizzati, senza implementarli. Tale interfaccia verrá poi effettivamente implementata dal modulo (una parte del componente) che ne fornirá il codice esecutivo. Un componente viene solitamente realizzato attraverso un modulo ed una configurazione: Il modulo è composto da una prima parte in cui sono elencate le interfacce fornite e adoperate dal componente attraverso le parole chiave provides e uses. Nella seconda parte, segnalata dalla keyword implementation, vengono implementati i comandi e gli eventi specificati nell interfaccia. Qui, inoltre, è possibile lanciare eventi, invocare comandi e creare dei task, anche se l interazione con gli altri componenti é limitata alle label fornite dall interfaccia del componente stesso. La configurazione invece non è costituita da codice, ma da un elenco di tutti i componenti usati dall applicazione e da una parte in cui sono specificati i collegamenti tra le interfacce dei diversi componenti. Le interfacce sono lo strumento attraverso il quale si realizza la specifica di un componente: sono tutte bidirezionali e sono a loro volta costituite da comandi ed eventi, definendomi cosí il wiring. Esempio di interfaccia: interface Timer {

41 2.4 NesC 35 command void startperiodic( uint32 t dt ); command void startoneshot( uint32 t dt ); command void stop(); event void fired(); } Esempio di modulo: module BlinkC { uses interface Timer<TMilli> as Timer0; uses interface Timer<TMilli> as Timer1; uses interface Timer<TMilli> as Timer2; uses interface Leds; uses interface Boot; } implementation { event void Boot.booted() { call Timer0.startPeriodic( 250 ); call Timer1.startPeriodic( 500 ); call Timer2.startPeriodic( 1000 ); } event void Timer0.fired() { call Leds.led0Toggle();} event void Timer1.fired() { call Leds.led1Toggle();} event void Timer2.fired() { call Leds.led2Toggle();} }

42 36 Cap. 2. La rete utilizzata Esempio di configurazione: configuration BlinkAppC { } implementation { components MainC, BlinkC, LedsC; components new TimerMilliC() as Timer0; components new TimerMilliC() as Timer1; components new TimerMilliC() as Timer2; BlinkC -> MainC.Boot; BlinkC.Timer0 -> Timer0; BlinkC.Timer1 -> Timer1; BlinkC.Timer2 -> Timer2; BlinkC.Leds -> LedsC; } Come introdotto nel paragrafo precedente, TinyOs necessita di avere a disposizione dei task, del codice sincrono e asincrono per risolvere i problemi di sovrapposizione. NesC considera di default il codice come se fosse sincrono, mentre se si vogliono gestire i casi in cui avviene un interrupt hardware, bisogna specificarli a parte. Nesc mette quindi a disposizione tre diverse istruzioni: Task, che si riconduce al solito thread la cui esecuzione viene rimandata quando il processore é disponibile. Anch esso é specificato prima di un implementazione, dato che specifica una procedura; Async, che mi permette di definire un comando asincrono, cioé a cui é possibile interrompere un task, che peró viene eseguito a interrupt abilitati, ossia é possibile che venga interrotto anch esso;

43 2.4 NesC 37 Atomic, che introduce una parte di codice asincrona a interrupt disabilitati, solitamente adoperata per gestire al meglio la sincronizzazione fra parti di codice sincrono e asincrono. Esempio di task: task void readdonetask() { signal Read.readDone(SUCCESS, filterval); } command error t Read.read() { post readdonetask(); return SUCCESS; } Esempio di codice asincrono: bool state; async command bool Acquire() { uint8 t oldstate; atomic { oldstate = state; state = TRUE; } if (!oldstate) { return SUCCESS; } else { return FAIL; } }

44

45 Capitolo 3 Descrizione del Progetto Il progetto mira ad analizzare la connettivitá e la qualitá del segnale di una rete wireless, utilizzando i dati memorizzati sulle flash di ogni singolo mote. I mote vengono sparsi sulla superficie del piano terra del dipartimento DEI-A di Padova in maniera uniforme, tale da coprire una superficie di circa 500 m 2 (coprendo cosí circa 25 m 2 a peers). La durata dell esperimento permette di enfatizzare le differenti situazioni in cui l etere si trova: nell arco di una settimana si verificano periodi di accessi al dipartimento, esperimenti di natura elettromagnetica, periodi di stasi, spostamenti di oggetti, che mi andranno ad influenzare la comunicazione Mote-Mote e BaseStation-Mote (saranno spiegati piú avanti). Per predisporre i mote a questo tipo di esperimento, verrá utilizzato un programma suddiviso in due parti: La prima che mi permetterá di far comunicare i mote fra di loro a seconda del comando della basestation, La seconda che mi permetterá di comprimere i dati sulla flash in modo tale che abbia a disposizione il maggior numero possibile di dati su cui effettuare l analisi.

46 40 Cap. 3. Descrizione del Progetto Una volta raccolti i dati necessari, sará possibile effettuare l analisi, e vedere il peso che: momento della giornata, la combinazione dei nodi che trasmette, la potenza con cui i nodi trasmettono, la qualitá con cui un pacchetto viene ricevuto, la quantitá dei pacchetti ricevuti, la durata delle batterie, la distanza dei mote, i ritardi di comunicazione dei mote, la tolleranza ai guasti, hanno avuto sulla connettivitá della nostra rete wireless.

47 3.1 Fondamenti dell algoritmo di comunicazione Fondamenti dell algoritmo di comunicazione Una volta che i mote sono disposti, perché diano segni di vita, bisogna fargli comunicare qualcosa... Si utilizzano quindi 20 mote denominati peers (per via della tipologia di comunicazione che viene utilizzata), ed uno denominato BaseStation. La BaseStation ha la funzione di coordinare la comunicazione tra i vari peers, scandendo (decidendo e comunicando) il momento in cui un peers deve partire: viene effettuata una comunicazione in broadcasting in un canale in cui necessariamente solo un peers per volta trasmette il suo segnale. Mentre un peers trasmette, gli altri sono in ricezione, ed una volta terminata la ricezione, vengono scritti sulla flash i dati ricevuti, tramite l algoritmo di compressione (vedi paragrafo successivo). Una volta che il primo peers finisce la comunicazione, dopo un determinato periodo di tempo precalcolato (si veda piú avanti per i valori pratici), permettendo cosí il termine del secondo algoritmo, la BaseStation dá l ok al secondo peers, il quale comincia la nuova trasmissione. In questo momento il secondo trasmette e tutti gli altri sono in ascolto. Continuando cosí, si completerá un ciclo quando il ventesimo peers finisce la trasmissione. Una volta terminato il ciclo, si attende ancora una volta un periodo di tempo precalcolato a seconda delle necessitá, e si ricomincia con un nuovo ciclo, comunicando al primo peers di cominciare con la trasmissione. L utilizzo di una BaseStation e risultata necessaria, in quanto ci sono dei problemi di sincronismo fra i vari peers: ogni mote ha il suo oscillatore con la sua relativa stabilitá, e quindi é ovvio che dopo un certo tempo perdino la sincronizazzione necessaria per la comunicazione.

48 42 Cap. 3. Descrizione del Progetto Basti pensare che l esperimento, pur basandosi solo sullo scandire del clock della BaseStation, nell arco di una settimana ha rilevato un ritardo di circa 18 min (in pratica 3 min/giorno) Il pacchetto. Il pacchetto di byte che viene trasmesso fra un peers ed un altro puó essere di due tipi: il pacchetto segnale contiene informazioni sull operazione da eseguire; é identificato dal tipo di segnalazione che si vuole comunicare e dal numero del ciclo attuale (ad es: chiamata, stop, cancellazione); possono essere inviati sia dalla BaseStation, sia tra peers, il pacchetto dati contiene tutte le informazioni da scambiare tra peers; e sono inviati solamente da e verso peers. Il pacchetto di tipo dati sará quello che conterrá delle informazioni utili che verranno scritte sulla memoria flash del mote, fornendoci cosí i dati necessari per l analisi di connettivitá. Questo pacchetto sará composto da n byte contenenti: 1. il codice identificativo del pacchetto, cioè indica essere un pacchetto dati e non un segnale, 2. il numero di ciclo attuale, 3. l identificativo del nodo che sta trasmettendo, 4. il livello di carica delle batterie (opzionale), 5. la temperatura interna (opzionale).

49 3.1 Fondamenti dell algoritmo di comunicazione 43 Fra questi 1) servirá al mote a livello gestionale, mentre 2) e 3) saranno utilizzati nella scrittura, come vedremo nel paragrafo successivo. Questa comunicazione avverrá tramite la tecnica del flooding : per essere sicuri che tutti i nodi ricevano un pacchetto, ogni nodo, quando riceve un pacchetto, lo ritrasmette a tutti i suoi vicini, e questi ultimi faranno altrettando. In questo modo la rete verrá inondata di pacchetti, e un eventuale mote distante sará raggiunto ugualmente anche se la trasmissione fra BaseStation e mote suddetto non é possibile. Questa é una tecnica molto utile nel caso si presenti una situazione in cui alcuni mote non possano essere raggiunti fisicamente La configurazione Come condizioni iniziali, abbiamo che il tempo di spedizione di un pacchetto é di circa 64 ms. Ogni nodo deve spedire ad un altro nodo un certo numero di pacchetti: per effettuare una stima statistica accettabile, inviamo 20 pacchetti fra un nodo ed un altro, osservando poi quanti effettivamente raggiungono la destinazione prefissata. Logicamente piú saranno distanti, maggiore sará la possibilitá che un pacchetto non venga ricevuto. A questo punto, questa semplice comunicazione durerá = 1280 ms. Noi peró vogliamo analizzare la comunicazione in 6 potenze di trasmissione diverse 1, e quindi la durata comlessiva dei 6 casi sará: 7,68 secondi. Il tutto va peró sovrastimato, poiché bisogna lasciare il tempo al mote di comprimere il dato e di scriverlo sulla flash: i 120 pacchetti complessivi spediti, vengono portati a 150 per convenzione, arrivando ad un tempo di comunicazione complessivo di = 9,6 secondi, 10 s per arrotondamento. 1 Ce ne sono 8 in tutto, ma le due minori non vengono considerate in quanto utili solamente nel caso si abbia una densitá di peers maggiore.

50 44 Cap. 3. Descrizione del Progetto Ora, avendo determinato il tempo necessario fra mote-mote, per determinare il tempo di ciclo, ossia il tempo che ci vuole perché ognuno dei 20 motes della rete possa trasmettere, basta moltiplicare per venti, risultando cosí 200 s (circa 3 min. e mezzo)... La nostra analisi peró deve durare una settimana, ma per sapere quanti cicli ho a disposizione da distribuire (per calcolarmi il tempo di ciclo) devo prima sapere quanti ne posso memorizzare nella flash. Ogni informazione salvata in flash occupa 4 byte (cioé num. di ciclo; potenza di trasmissione; RSSI [indice di qualitá di trasmissione]; mote sorgente), e a disposizione ci sono byte (1 megabyte). Ogni mote memorizza = 480 byte 2 per comunicazione mote-mote, e per ogni ciclo = 9600 byte. a questo punto é semplice determinare il numero di cicli a disposizione per coprire il periodo di tempo necessario: /9600 = 110 cicli. Se poi sfruttiamo la possibilitá di comprimere i dati di almeno tre volte (stimato), il tutto viene moltiplicato per tre, poiché possiamo praticamente considerare una memoria virtualmente tre volte piú grande, arrivando alla possibilitá di avere circa 330 cicli. Come ultimo accorgimento, possiamo pensare che é impossibile che in realtá tutti i pacchetti di tutti i nodi vengano memorizzati nella flash, portandoci alla stima finale di 336 pacchetti: questo numero ci risulta comodissimo, dato che 336 é il numero delle mezz ore presenti in una settimana. Una ultima attenzione la dedichiamo alla numerazione dei mote: i nodi vengono numerati con valori crescenti e continui a partire da uno, mentre alla BaseStation viene assegnato un numero identificativo che puó essere 0, oppure un numero superione al numero di nodi utilizzati. Tale assegnazione é fondamentale, poiché se un nodo ha lo stesso ID di un altro, esiste la possibilitá che trasmettano contemporaneamente e mi rovinino la comunicazione. Questi sono parametri sviluppati per quest esperimento in particolare, ma ne possono 2 Vedi inizio del paragrafo relativo alla compressione per il significato dei singoli 4 byte.

51 3.1 Fondamenti dell algoritmo di comunicazione 45 essere sviluppati altri, seguendo sempre le linee guida: il tempo di durata di un intero ciclo, non puó essere inferiore al tempo impiegato da tutti i nodi della rete per trasmettere i propri pacchetti la capacitá della memoria dipende dal tipo di compressione utilizzato il tipo di compressione utilizzato dipende dal tipo dei dati da comprimere il calcolo dei tempi di trasmissione è funzione del numero di pacchetti il numero di pacchetti, a sua volta, è fortemente influenzato dalla capacità della memoria L esecuzione Come prima cosa, la BaseStation invia un segnale che, dandogli il tempo necessario, ordina ai peers di cancellare la loro memoria flash. Poi viene inviato un pacchetto di chiamata che indica al primo nodo di iniziare la trasmissione broadcast di tutti i propri pacchetti. Il primo nodo puó ricevere tale chiamata direttamente dalla Base-Station, o da un nodo vicino, il quale ha inoltrato la chiamata da parte della Base-Station stessa, o da un altro nodo ancora. La trasmissione di questi pacchetti utilizza il principio del flooding, viene cioé implementato in modo che tutti i peers della rete ne ricevano uno. Quando un nodo riceve un pacchetto che dev essere trasmesso in flooding, controlla dapprima a chi é indirizzato: se é la prima volta che vede quell indirizzo, lo inoltra agli altri, ricordandosi di averlo fatto; se l indirizzo invece si ripresenta (magari trasmesso da un altro peer), non avviene la trasmissione, ed il mote si mette in ascolto.

52 46 Cap. 3. Descrizione del Progetto Ora l intera rete si trova in stato di ascolto, tranne il primo mote, che é predisposto per la trasmissione. Il mote invia quindi i 120 pacchetti (non in flooding) e poi manda un segnale di stop (in flooding), che conferma la fine della trasmissione. Una volta che un nodo riceve il segnale di stop, comprime i dati ricevuti e li salva su flash (se ce ne sono). Successivamente la BaseStation indica al secondo nodo che deve trasmettere e l operazione si ripete per tutti i peers fino al termine del ciclo. Una volta che il ciclo termina, viene atteso un tempo tale che il ciclo si ripeta ogni mezz ora al giorno, per una settimana. Figura 3.1: Tempi dell esperimento.

53 3.2 Fondamenti dell algoritmo di compressione Fondamenti dell algoritmo di compressione Come giá accennato, il pacchetto ricevuto da un mote, contiene due byte utili alla nostra causa: il numero di ciclo ed il nodo che sta trasmettendo. Assieme a questi saranno scritti altri due byte sulla flash: l RSSI (received signal strength indicator) che viene fornito direttamente dalla radio e che ci indica la qualitá della ricezione, e la potenza con cui viene effettuata la trasmissione. Questi 4 byte mi costituiranno un blocchetto fondamentale da memorizzare sulla flash, e ne saranno archiviati tanti in maniera tale da sfruttare appieno la memoria fisica disponibile sul mote. Il mote ha in totale 1 mega di memoria fisica, che pero viene aumentata del fattore di compressione, portando a circa 3 mega la capacitá disponibile. I 4 byte, all interno della flash del mote, non saranno riconoscibili se letti al volo, poiché sono compressi, peró saranno poi visibili una volta che i dati saranno scaricati sul pc tramite un programma di lettutra adatto per effettuarne l analisi, apparendo come un file di testo con delle colonne che hanno i seguenti significati: N um. di ciclo P ot. di trasmissione RSSI N odo che trasmette L algoritmo di compressione, costruito in modo che non sia troppo pesante, sará presente nella memoria esecutiva del mote, e opererá senza essere visibile: una volta che i dati sono stati ricevuti, verranno scritti compressi nella flash, mentre, quando saranno letti con il programma di lettura apposito, saranno decompressi, e quindi salvati su di un file leggibile, sempre con una dimensione in byte tripla rispetto la memoria del mote. In questo modo, non ci sará l opportunitá di maneggiare un file compresso, si

54 48 Cap. 3. Descrizione del Progetto avranno subito a disposizione i dati nella forma ottimale. Ora illustreremo i principali metodi di compressione utilizzati attualmente, mettendo in rilievo quelli che saranno utilizzati nel software presente nel mote Tecniche di compressione Le tecniche di compressione dati si dividono in due categorie: lossy e lossless. Gli algoritmi lossy sfruttano ridondanze nell utilizzo dei dati e li comprimono attraverso un processo con possibile perdita di informazione. Gli algoritmi lossless sfruttano anch essi ridondanze nella codifica dei dati ma la compressione avviene senza perdita di informazione. Le tecniche lossy permettono compressioni piú spinte a scapito dell integritá dei dati. Solitamente sono utilizzate per la compressione di file multimediali in cui la perdita di un pó di informazione é tollerabile. Per file in cui non è accettabile alcuna perdita di informazione come testi o programmi si devono utilizzare invece tecniche lossless. Vedremo in seguito che per i valori relativi alla misurazione di un sensore, potranno essere utilizzate tecniche lossy, mentre per tutti gli altri valori saranno necessarie tecniche lossless. Ha inoltre grande importanza la disposizione dei dati stessi. Nel nostro caso i dati saranno raggruppati in modo che appaiano di seguito tutti i valori relativi ad un byte: in questo modo le successioni di byte appariranno come numeri piú uniformi, e grazie a questo accorgimento, il cuore dell algoritmo di compressione sfrutterá meglio le rindondanze presenti nei dati, aumentando cosí il rapporto di compressione. Questo tipo di raggruppamento viene chiamato Structured Transpose, ed appartiene alla categoria delle trasformazioni, che nel caso del nostro espe-

55 3.2 Fondamenti dell algoritmo di compressione 49 rimento appare come una semplice traslazione della matrice dei dati. Le trasformazioni di dati non comprimono i dati, quindi non devono essere confusi con l algoritmo di compressione stesso. Altre trasformazioni che possono essere comunemente utilizzate sono [6]: la trasformata delta, che rappresenta in uscita una sequenza di numeri con la sequenza formata dal primo numero e dalla differenza tra ogni numero e il precedente. la trasformata di Burrows-Wheeler[5], che applica una permutazione ai simboli in modo che se all interno del messaggio da trasformare appaiono molte sequenze ripetute, all interno del messaggio trasformato appaiono sequenze di simboli uguali. Esempio: trasformata codice in ingresso codice in uscita delta E2 E1 E0 E1 DF DD DE.. E2 FF FF 01 FE FE 01.. B&W TOMOMO@ TMM OO@O In questo modo i dati sono effettivamente pronti ad essere compressi dagli algoritmi che ora vedremo in dettaglio Gli algoritmi - RLE L algoritmo di compressione piú semplice che possiamo incontrare é il Run Length Encoding (RLE). La ridondanza che questo algoritmo loseless va ad eliminare è la serie di sequenze formate da uno stesso simbolo ripetuto consecutivamente più volte.

56 50 Cap. 3. Descrizione del Progetto Figura 3.2: La compressione nel mote.

57 3.2 Fondamenti dell algoritmo di compressione 51 Intuitivamente, lo si puó descrivere cosí: ad ogni iterazione l algoritmo manda in output la coppia (s,c), dove s rappresenta il simbolo in input, seguito dal conteggio delle ripetizioni di questo simbolo. Il decodificatore, invece legge in input una coppia (s,c) e la espande in sequenze lunghe c formate dal simbolo s. Questo algoritmo, essendo estremamente semplice, non richiede né difficoltá implementative, né eccessiva velocitá di esecuzione, e fa proprio al caso nostro, dato che le successioni di byte che incontreremo, sono proprio di questo tipo. Questo algoritmo, invece, non é indicato per applicazioni generiche, in quanto il tipo di rindondanza non é comune. Esempio: codice in ingresso codice in uscita (3,5) (6,7) (9,2) (2,8) (1,2) Gli algoritmi - LZ Un ulteriore algoritmo utile alla nostra causa é l LZ. Da questo derivano poi una la lunga serie di algoritmi diversi. L algoritmo LZ77, la versione piú semplice che possiamo incontrare, sostituisce ad una sequenza di simboli in in ingresso un puntatore di lunghezzadistanza che viene interpretato dal decodificatore come un istruzione di copiare lunghezza simboli a partire da distanza simboli prima del simbolo corrente. Utilizziamo quindi due buffer a dimensione fissa come strutture dati: il search buffer, che contiene gli ultimi simboli codificati e il look-ahead buffer, che contiene i prossimi simboli da codificare. Il funzionamento é il seguente: inizialmente il search buffer é vuoto, mentre il look-ahead buffer contiene i primi caratteri da codificare. Ad ogni passo un puntatore i indica il primo simbolo del search buffer. A partire dal simbolo i-esimo viene quindi percorso da sinistra verso destra

58 52 Cap. 3. Descrizione del Progetto il search buffer tramite un puntatore j, alla ricerca della prima ricorrenza del prefisso piú lungo. Dalla locazione j si contano quindi gli elementi costituenti il prefisso, sempre da sinistra verso destra. A questo punto viene emessa in output una tripla (offset, lunghezza, next), i cui elementi sono rispettivamente: la distanza tra gli indici i e j (offset), la lunghezza del prefisso, l elemento successivo al prefisso nel look-ahead buffer. La serie di triple sará l uscita del mio algoritmo, le quali saranno riprese dalla decodifica cosí: per ogni tripletta, si scriveránno in output lunghezza simboli copiandoli da offset posizioni prima, e aggiungendo alla fine il simbolo next. Questo algoritmo mantiene una difficoltá di implementazione bassa, utile al mote, ma altrettante basse prestazioni, cosicché prendiamo in considerazione altri algoritmi. Se ad esempio consideriamo in ingresso la sequenza , un search-buffer di grandezza 6 e un look-ahead-buffer di grandezza 7: n. s.buffer uscita posiz.s.buffer posiz.l.a.buffer 1 (0, 0, 0) (0, 0, 1) (2, 1, 0) (3, 2, 1) (5, 3, 1) (4, 4, 1) (3, 5, 1) Da ricordare che in uscita troviamo sempre la tripla (offset, lunghezza, next). In grassetto sono enfatizzate le piú lunghe serie che si possono trovare nel search-buffer relative al look-ahead-buffer. Le operazioni che vengono eseguite sono quindi:

59 3.2 Fondamenti dell algoritmo di compressione Il search-buffer é vuoto, quindi la ricerca della prima ricorrenza del prefisso piú lungo non avviene, e viene quindi messo in uscita il carattere successivo; 2. qui il search-buffer non é vuoto, ma non esistono prefissi uguali al primo simbolo del l.a.b., quindi in uscita viene ancora messo il simbolo successivo; 3. il primo simbolo del search-buffer é il prefisso piú lungo riconosciuto nel look-ahead-buffer, quindi in uscita va la tripla indicante che il prefisso lungo 1 a distanza 2 dal puntatore 3, all interno del search-buffer, é uguale al prefisso lungo 2 del contenuto del look-ahead-buffer; e il carattere successivo sará quindi uno 0; 4. qui il prefisso piú lungo 4 trovato é 10, quindi in uscita ci sará: il prefisso lungo 2 a distanza 3 dal puntatore, é uguale al prefisso lungo 2 del prefisso del contenuto del look-ahead-buffer; e il carattere successivo sará quindi un 1; 5. qui il prefisso piú lungo trovato é 001, quindi in uscita ci sará: il prefisso lungo 3 a distanza 5 dal puntatore, é uguale al prefisso lungo 3 del prefisso del contenuto del look-ahead-buffer; e il carattere successivo sará quindi un 1; 6. etc.. L algoritmo di decodifica ragiona in modo analogo a quello di codifica: vengono mantenuti i due buffer e si procede copiando le parti dell output giá emesso indicate dalle triple (offset,lunghezza,next) lette e aggiungendo alla fine il simbolo next. 3 Indicante il 1 o simbolo del look-ahead-buffer 4 ma non l unico, ci sarebbe anche 1, ma non viene valutato perché piú corto.

60 54 Cap. 3. Descrizione del Progetto Gli algoritmi - LZSS e LZ78 L algoritmo LZSS migliora l LZ77 sfruttando la rindondanza della stringa codificata, mantiene la stessa complessitá e ne aumenta leggermente le prestazioni. Tuttavia, l algoritmo LZ77 é costretto a sfruttare le ripetizioni di sequenze di dati solo localmente, cioé l algoritmo non riesce a rilevare ripetizioni di sequenze che avvengono a distanze piú grandi delle dimensioni dei buffer. Viene cosí apportata una miglioria nell algoritmo LZ78[19] implementando un dizionario delle sequenze dei dati piú significative che puó crescere in modo indefinito. L estesa memoria che serve al dizionario, peró, non rende idoneo questo algoritmo all applicazione su di una rete wireless Gli algoritmi - LZW Anche l LZW[20], sviluppato una decina d anni dopo l LZ77, associa ad ogni sequenza di simboli ridondanti un codice che ne indica la posizione in un dizionario. Qui peró, le novitá apportate sono diverse: l implementazione diversa del dizionario, che viene inizializzato con tutti i simboli dell alfabeto della stringa da codificare, e la modifica dell output dell algoritmo di codifica, che viene formato solamente da codici di sequenze nel dizionario. Tuttavia, il suo funzionamento é piuttosto semplice. La prima inizializzazione prepara il dizionario aggiungendogli i singoli simboli dell alfabeto, associando ad essi, ad esempio, il loro codice ASCII, come codice identificativo. Quindi l algoritmo di codifica LZW emette in output il codice del piú lungo

61 3.2 Fondamenti dell algoritmo di compressione 55 prefisso della parte di stringa ancora da codificare presente nel dizionario, ad ogni iterazione. Ma vediamolo piú in dettaglio, applicando in ingresso la sequenza abaababaabbaabbbbbbbbb: n. pref. codice pos. sequenza inserita uscita 1 a 97 a b)aababaabbaabbbbbbbbb ab > b 98 a b a)ababaabbaabbbbbbbbb ba > a 97 ab a a)babaabbaabbbbbbbbb aa > ab 256 aba a ba)baabbaabbbbbbbbb aba > aba 259 abaab a baa)bbaabbbbbbbbb abaa > ab 256 abaababa a bb)aabbbbbbbbb abb > ba 257 abaababaab b aa)bbbbbbbbb baa > abb 261 abaababaabba a bbb)bbbbbb abbb > b 98 abaababaabbaabb b b)bbbbb bb > bb 264 abaababaabbaabbbb b bb)bb bbb > bbb 265 abaababaabbaabbbbbb b bb) 265 Come prima cosa, viene utilizzato il codice ascii a 8 bit come inizializzazione: ad ogni simbolo viene fatto corrispondere il rispettivo codice e considerato il tutto come dizionario di partenza, poi, ad ogni iterazione viene aggiunto un lemma creando una associazione con un codice trovato, e il primo numero successivo disponibile del codice ASCII. 1. si cerca all interno del dizionario, il prefisso piú lungo che mi possa codificare la parte del messaggio che mi rimane: il mio dizionario é composto solo da simboli unitari, perció prendo il primo simbolo, e metto in uscita il corrispondente codice ASCII.

62 56 Cap. 3. Descrizione del Progetto Si prende quindi il simbolo successivo, ab, e si crea una sequenza lunga due simboli, aggiungendola al dizionario con il codice 256, che é il mio primo codice libero (dato che ASCII ad 8 bit definisce 255 simboli), e il puntatore avanza di un simbolo; 2. si cerca all interno del dizionario, il prefisso piú lungo che mi possa codificare la parte del messaggio che mi rimane: non ho prefissi piú lunghi del simbolo stesso, perció pongo in uscita ancora una volta il codice ASCII corrispondente al simbolo b, e prendendo il simbolo successivo, ba, lo inserisco nel dizionario con codice 257, e avanzo di un passo; 3. concettualmente uguale, ed aggiungo il lemma aa con codice 258; 4. qui il prefisso piú lungo che mi possa codificare la parte del messaggio che mi rimane é lungo due simboli, cioé fa parte del dizionario aggiunto: pongo in uscita il numero di codice corrispondente al codice ab, 256, e aggiungo al dizionario la definizione (sequenza appena trovata + simbolo successivo), aba, con il solito primo codice libero, cioé 259. Il puntatore si posiziona quindi al simbolo successivo alla sequenza aggiunta al dizionario, spostandosi quindi non di un simbolo, ma di due; 5. il prefisso piú lungo in questo caso é aba, quindi andrá in uscita il codice 259, e sará aggiunta la sequenza abaa, con codice 260, ed infine spostato il puntatore di 3 simboli; 6. etc.. L algoritmo di decodifica si comporta in maniera simile, costruendo il suo dizionario allo stesso modo dell algoritmo di codifica, ed é sempre in grado di tradurre il codice letto in input nella corrispondente sequenza di simboli, anche nel caso in cui il codice letto non é presente nel dizionario.

63 3.2 Fondamenti dell algoritmo di compressione 57 A differenza dei casi precedenti, in cui l algoritmo di decodifica aveva necessitá di conoscere il dizionario con cui si codificava, il dizionario viene costruito in base al codice in ingresso al decodificatore, risparmiando cosí risorse e aumentando le prestazioni globali Gli algoritmi - S-LZW-MC L ultima versione di LZ che presentiamo é l S-LZW-MC 5 : un algoritmo derivato da LZW ma adattato appositamente per l impiego in reti di sensori wireless. L algoritmo S-LZW-MC é sostanzialmente simile all algoritmo LZW, con un dizionario di grandezza limitata al massimo a 4096 entry, che non viene piú aggiornato una volta riempito, e con l aggiunta di una struttura denominata Mini-Cache(MC). L utilizzo della mini-cache porta a dei vantaggi dovuti al fatto che i dati prodotti da un nodo di una rete di sensori tendono ad essere simili in un intervallo ridotto. La mini-cache é una tabella di hash di dimensione N, con N potenza di 2, che memorizza gli ultimi N codici emessi in output. L algoritmo di codifica utilizza lo stesso principio di LZW, con la differenza che ad ogni iterazione, viene verificato se il codice è presente nella mini-cache prima di emetterlo in output: nel caso sia presente, viene cambiato l header, seguito dalla posizione del codice nella tabella. L algoritmo di decodifica legge quindi l header, che gli permette di determinare in che punto il codice deve essere letto: se dal dizionario oppure della 5 Christopher M. Sadler and Margaret Martonosi, Data Compression Algorithms for Energy-Constrained Devices in Delay Tolerant Networks, SenSys 06, November 1-3, 2006, Boulder, Colorado, USA.

64 58 Cap. 3. Descrizione del Progetto mini-cache, dopodiché legge il codice e lo decodifica, aggiungendolo infine nella mini-cache. Siccome la memoria disponibile dei mote é solitamente di qualche decina di Kilobyte, e l implementazione non risulta molto piú onerosa di quella dell L- ZW, questo algoritmo risulta adeguato all impiego Gli algoritmi - LTC L algoritmo LTC (Lightweight Temporal Compression 6 ), é un algoritmo lossy progettato appositamente per comprimere dati di rilevazione ambientale forniti dai sensori di un nodo. E fondato su due osservazioni di base: i sensori hanno una incertezza di misura dovuta alla qualitá dello stesso, i dati hanno la proprietá di essere abbastanza simili fra di loro in un intervallo ridotto di tempo. ció mi permette di costruire delle interpolazioni lineari a tratti dei dati che, se da una parte ne sono una rappresentazione fedele se si rimane all interno degli intervalli concessi dalle incertezze di misura, dall altra possono essere compressi in maniera efficace. La tecnica é semplice, se si prendono come minimo tre punti su di un grafico, si puó effettuare una interpolazione, e quindi una semplificazione dei dati da comprimere. All inizio LTC viene inizializzato con i primi due dati di input, che determinano due punti in un piano Tempo-Grandezza misurata, il primo punto é fisso 6 Tom Schoellhammer, Ben Greenstein, Eric Osterweil, MikeWimbrow,Deborah Estrin, Lightweight Temporal Compression of Microclimate Datasets.

65 3.2 Fondamenti dell algoritmo di compressione 59 mentre il secondo viene trasformato in un segmento verticale corrispondente a tutti i valori a cui il valore misurato può corrispondere a causa dell incertezza di misura. A partire da questo segmento, si puó determinare l insieme di tutte le linee che lo possono rappresentare, considerando le rette passanti il primo punto ed uno qualsiasi del segmento. Ad ogni iterazione successiva, l insieme di linee si riduce, considerando gli altri punti. Quando invece il nuovo punto cade al di fuori dal insieme di tutte le linee possibili, i dati incontrati fino a quel momento vengono rappresentati con la retta dal primo all ultimo punto, e l algoritmo viene reinizializzato. Con questo algoritmo si possono raggiungere rapporti di compressione piú o meno elevati, a seconda della accuratezza dei dati voluta. Figura 3.3: Principio di funzionamento dell algoritmo lossy LTC La scelta L algoritmo di compressione piú idoneo da utilizzare per eseguire efficacemente la compressione di dati in un mote, deve avere delle caratteristiche fondamentali: deve avere una dimensione contenuta, in quanto questo avrá poi a disposizione una memoria dalle dimensioni molto limitate su cui risiedere, una uguale pretesa a livello di memoria RAM, in quanto anch essa limitata, e infine non

66 60 Cap. 3. Descrizione del Progetto deve implicare un numero troppo grande di operazioni, essendo sia la velocitá di elaborazione della CPU, sia l energia a disposizione fortemente limitata. Inoltre, queste limitazioni di memoria vanno ad influenzare la dimensione dei blocchi da comprimere: quando comprimo non ho quindi a disposizione l intero file, ma solo dei spezzoni in cui devo far eseguire un algoritmo apposito. Gli algoritmi RLE, S-LZW-MC per quanto riguarda la categoria lossless, e LTC per quanto riguarda la categoria lossy, si sono dimostrati dei buoni algoritmi per l utilizzo in reti di sensori wireless. In particolare RLE sará utilizzato nella forma RLE-ST, cioé con l ulteriore utilizzo della Structured Transpose, una traslazione dei dati eseguita per porre ulteriori vantaggi nella compressione di dati strutturati a record L implementazione Abbiamo visto che i dati che vogliamo comprimere si presentano come successioni di 4 byte consecutivi, ognuno con il suo significato. Se noi li leggiamo consecutivamente, troveremo una certa rindondanza nei dati: ogni 4 posizioni troviamo i byte con lo stesso significato. Di queste quattro successioni possiamo notare due forme particolari: ci sono rilevazioni di sensori, con i valori che variano da una posizione all altra in maniera leggera, quasi lineare, senza troppi sbalzi, i quali possono venire compressi ad esempio utilizzando una trasformata delta ed un LTC 7 ; altre sono numerazioni di servizio, cioé successioni di numeri uguali che crescono con un certo periodo piú o meno fisso, che possono essere compresse tramite un semplice RLE. 7 E un esempio, verrá invece utilizzato un algoritmo loseless.

67 3.2 Fondamenti dell algoritmo di compressione 61 Siccome i dati sono disponibili in questa forma, il nostro programma perció organizzerá i dati utilizzando delle sequenze di record. Un record é assimilabile ad una riga di una tabella particolare: esso contiene vari dati, disomogenei tra loro, relativi ad una stessa entitá, ma se prendiamo una sequenza di record ci possiamo ricondurre ad una tabella di dati, dove in ogni colonna si trovano dati omogenei, mentre su colonne diverse possono trovarsi dati con caratteristiche molto diverse. In queste tabelle la parte in grassetto mi rappresenta un record. Se quest ultima operazione fosse eseguita prima di avviare un algoritmo di compressione, mi farebbe l intera trasposta della tabella dei dati uno ad uno, con notevole utilizzo di memoria, mentre manipolando i dati sotto forma di record, si riduce questo fabbisogno, limitando la quantitá di sequenze da elaborare. I dati all interno della memoria sono rappresentati come una lunga sequenza di byte, 01 1F 6C F 6C F 6E F 6C G 6D mentre se li consideriamo a record, prendendo un byte ogni 4, F 1F 1F 1F 1G... 6C 6C 6E 6C 6D posso prendere i dati che mi servono a blocchi, grandi quanto voglio, a seconda della memoria che ho a disposizione.

68 62 Cap. 3. Descrizione del Progetto Nel nostro programma, i dati in ingresso all algoritmo di compressione effettivo saranno convertiti cosí, e all uscita di esso, ne sará fatta la trasformazione inversa Il programma Il programma che viene utilizzato attua quindi una decisione: a seconda del tipo di dati che gli si presentano in ingresso, utilizza quindi un tipo di trasformazionecompressione idoneo: 1. Nel caso si presentino in ingresso dati che rappresentano i valori di un sensore, viene dapprima effettuata una trasformata delta, riducendo cosí il numero di valori differenti nella colonna stessa, e poi applicato un algoritmo denominatoworking Set. Quest ultimo si riconduce all S-LZW-MC visto in precedenza, ma modificato ulteriormente. La compressione di base viene effettuata utilizzando un dizionario statico che contiene solamente i simboli presenti nella sequenza di dati, codificati con il minimo numero di bit, mentre nel programma é sviluppato un dizionario dinamico, che puó trarre vantaggio anche dal fatto che alcuni simboli possono essere piú ripetuti di altri, e dal fatto che alcune parti della sequenza di simboli possano essere meno variabili di altre. La mini-cache inoltre, sfrutta il fatto che se i simboli tendono a ripetersi a intervalli sufficientemente brevi, é possibile mantenere una finestra di dimensione piuttosto ridotta sugli ultimi simboli codificati, e si avrá che con buona probabilitá il prossimo simbolo da codificare sará presente all interno di tale finestra. Cosí sará sufficiente mantenere una lista dei simboli presenti nella fine-

69 3.2 Fondamenti dell algoritmo di compressione 63 stra e codificare ogni simbolo con la posizione che esso occupa nella lista. 2. Nel caso si presentino in ingresso dati che rappresentano i valori del numero di ciclo, del nodo trasmittente, o qualsiasi sequenza di runs 8, non risulta necessario compiere trasformazioni, poiché l algoritmo di compressione RLE risulta giá globalmente adatto allo scopo. L unico caso in cui RLE potrebbe non risultare idonea, é quello un cui vi sono molte runs di lunghezza due: qui RLE, continuando a mandare in uscita le coppie (simbolo-ripetizioni dello stesso), non mi apporta una effettiva compressione, anzi, mi manda in uscita una quantitá di dati equivalente, mentre l elaborazione risulta molto piú appesantita a causa dell esecuzione dello stesso algoritmo. Nel nostro caso non andremo incontro a questa situazione, dato che le sequenze piú brevi che si possano incontrare nell esperimento, ossia le run rappresentanti il numero del nodo trasmittente, non dovrebbero essere inferiori alla decina. 8 Sequenza formata da uno stesso simbolo ripetuto consecutivamente più volte.

70 64 Cap. 3. Descrizione del Progetto Figura 3.4: compressione. Schema delle interfaccie di TinyOS usate nell algoritmo di

71 Capitolo 4 Analisi dei dati L esperimento viene eseguito nell arco di una settimana, piú precisamente dalle 16:00 del 12/10/07 al 19/10/07. Ogni mezz ora i mote si trasmettono 120 pacchetti a testa, mettendoci in totale circa tre minuti e mezzo, e rimanendo in attesa del segnale della basestation nel tempo rimanente. Come giá anticipato, ogni comunicazione porta a salvare delle lunghe serie di sequenze di 4 byte ciascuna, che appaiono come nella figura 4.1. Ogni nodo della nostra rete ne ha memorizzata una per ogni ciclo, idealmente per 336 cicli, ma in pratica circa Ogni ciclo ha al suo interno le combinazioni scelte in precedenza: ogni mote ha trasmesso agli altri 20, 20 pacchetti a 6 livelli di potenza diversi. Per ogni pacchetto ricevuto viene registrato anche il valore di RSSI. I dati vengono scaricati dai mote tramite un pacchetto java, e successivamente importati in matlab, dove verrá creata una grossa matrice utile alla creazione di grafici e ulteriori analisi. Tale matrice, é rappresentata cosí: 1 Finché l alimentazione ha mantenuto un livello tale per cui il mote potesse funzionare.

72 66 Cap. 4. Analisi dei dati Figura 4.1: Struttura dei dati disponibili forniti dal nodo. Campi della matrice di matlab n o pacchetto n o ciclo n o nodo trasmittente potenze n o nodo ricevente E logicamente sará di dimensioni 20x336x20x6x20. Possiamo ad esempio riportare in una serie di grafici il numero di pacchetti che un nodo riceve nell arco dei giorni del test, selezionando una potenza particolare, come in figura 4.2. Gia da qui si puó notare che esistono delle connessioni spurie, altre stabili, ed altre che garantiscono una buona connettivitá a seconda del giorno in cui cadono: ci sono due periodi principali in cui si puó suddividere la durata dell esperimento, quello festivo, in cui non sono presenti persone nell edificio e la connettivitá risulta stabile anche se minore (successivamente si vedrá in dettaglio perché), e quello feriale, in cui persone in movimento, porte che si aprono e si chiudono, e oggetti spostati, mi influiscono positivamente le connettivitá, creandomi delle riflessioni utili, ma nello stesso tempo, una instabilitá della

73 67 situazione dovuta alla sua natura. Si noti la connessione e 16-12, che Figura 4.2: Numero di pacchetti ricevuti. conferma la ipotesi appena fatta. Conviene perció eseguire un analisi approfondita della situazione, sfruttando l insieme globale dei dati, cominciando a considerare la trasmissione dei pacchetti a potenza massima.

74 68 Cap. 4. Analisi dei dati 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm Cominciamo analizzando la situazione migliore, in cui il segnale trasmesso ha una potenza di 0 dbm. Figura 4.3: Connettivitá globale a potenza 0 dbm, primo e quarto giorno. La figura 4.3 rappresenta i collegamenti fra nodo e nodo esistenti, che abbiano avuto almeno un pacchetto di scambio.

75 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 69 La situazione cambia in maniera ininfluente fra il periodo festivo ed il lavorativo: le connessioni segnate comprendono sia quelle stabili, con un alta percentuale di pacchetti ricevuti, sia quelle che abbiano ricevuto un pacchetto per caso, dovute magari a riflessioni o diffrazioni del segnale trasmissivo. Queste ultime sono relative a mote distanti con difficoltá di trasmissione e vengono rilevate in particolar modo nel periodo dove c é la presenza di persone. Si nota invece maggior differenza fra le connessioni del penultimo giorno di funzionamento, e l ultimo (vedi figura 4.4). In questo periodo, la tensione di Figura 4.4: Connettivitá globale a potenza 0 dbm, quinto e sesto giorno.

76 70 Cap. 4. Analisi dei dati alimentazione giunge ad essere insufficente, diminuendo cosí il numero di possibili connessioni, fino ad annularle. Si puó notare inoltre che la maggior parte delle connessioni esiste nella zona centrale della rete, dovuta dalla maggiore densitá dei peers. Il raggio di propagazione dei peers viene garantito dal costruttore, in ambiente indoor, in almeno 25 metri: in figura 4.5 tale proprietá viene a grandi linee rispettata. L ambiente all interno del dipartimento non é Figura 4.5: Connettivitá di singoli nodi a potenza 0 dbm. omogeneo, e soprattutto esistono diversi tipi di interferenze che ne influenzano negativamente la connettivitá, ma nonostante questo, si riesce a coprire un

77 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 71 raggio di circa 23 m. (vedi 3-20). In figura 4.5 viene poi sottolineato il fatto che un nodo in posizione centrale riesce a comunicare con tutti gli altri, mentre uno esterno ha la necessitá dell algoritmo di flooding, nel caso la base station fosse uno dei nodi con cui non riesce a comunicare. In figura 4.6 possiamo notare le connessioni relative alle percentuali di pac- Figura 4.6: Connettivitá globale a potenza 0 dbm, percentuale di pacchetti ricevuti. chetti ricevuti: se cerchiamo di identificare le connessioni affidabili, cioé quelle con almeno l 80% di pacchetti ricevuti, notiamo che sono in maggior parte

78 72 Cap. 4. Analisi dei dati ancora quelli in posizione centrale, ma soprattutto quelli di minor distanza, difatti, piú un mote é vicino ad un altro, maggiore é la possibilitá che riceva tutti i pacchetti. D atro canto, non si ha la certezza di questa affermazione, dato che esistono nodi vicini soggetti all attenuazione dovuta ad ostacoli che non arrivano a questa percentuale (vedi nodi 5-19), mentre nodi distanti che ci riescono ugualmente (come il 12-14). Nella parte inferiore di figura 4.6 si evidenziano le connessioni sporadiche, con una percentuale di pacchetti ricevuta inferiore al 5%. In questo caso, le connessioni riguardano nodi distanti, la cui trasmissione é sfavorita sia dalla distanza stessa, sia dagli ostacoli presentatisi in mezzo. Le connessioni fra nodi distanti sono poi le piú soggette alle asimmetrie: una trasmissione da un nodo a ad un nodo b che presenta una determinata qualitá di connettivitá, non implica che la trasmissione dal nodo b ad a ne presenti una uguale. In figura 4.7 ad esempio possiamo notare le asimmetrie nella condizione di connettivitá globale. Le connessioni vengono rilevate nell arco dei sei giorni trascorsi, e si considera una connessione esistente se viene ricevuto almeno un pacchetto: i grafi enfatizzano le connessioni fra nodi trasmittenti e riceventi, i quali primi abbiano numero di ID superiore (inferiore) dei riceventi. Ad esempio la connessione 5-15 esiste, mentre la 15-5 non ha mai scambiato un pacchetto. Cio potrebbe trovare risposta ragionando sulla propagazione dell onda trasmissiva che parte dal nodo 5: l antenna potrebbe essere stata posizionata in malo modo (non é omnidirezionale), oppure, con la scusa che il nodo 5 ha sulla sinistra dei muri portanti potrebbero aver influenzato il fenomeno di riflessione, o ancora, una persona potrebbe aver causato la riflessione o aver agito da passabasso sull onda propagante, eliminando i disturbi ad alta frequenza... Tale ragionamento puó anche essere fatto definendo una connessione attiva

79 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 73 non basandosi sulla presenza di almeno un pacchetto, ma basandosi sulla percentuale di pacchetti scambiati: anche qui ci saranno delle asimmetrie, cioé differenze di percentuali notevoli. Nella figura 4.8 riportiamo la percentuale Figura 4.7: Connettivitá globale a potenza 0 dbm, asimmetrie. approssimata dei pacchetti ricevuti 2 : sulle colonne abbiamo i dati relativi ad un nodo, cioé la percentuale dei pacchetti ricevuti dal nodo della riga corri- 2 Le informazioni dei nodi 1, 2 e 8 sono andate corrotte. Abbiamo peró a disposizione l informazione unilaterale corrispondente.

80 74 Cap. 4. Analisi dei dati spondente. Figura 4.8: Percentuale del numero di pacchetti ricevuti. Si nota che i nodi vicini (es. 6-7 e 7-6) sono abbastanza simmetrici, mentre coppie distanti hanno una maggiore probabilitá di perdere pacchetti, e quindi di avere delle asimmetrie nella trasmissione (es e 12-14, 18-3 e 3-18). Caso a parte sono le colonne 14 e 15, le quali probabilmente hanno avuto una durata di fornitura di tensione inferiore rispetto le altre, causando il termine prematuro del funzionamento (in pratica, batterie dello stesso pacchetto con tensione non ottimale). Altra osservazione possibile, é la particolaritá dei valori delle percentuali: esse sono o basse, relative a connessioni distanti, o alte, mentre le vie intermedie sono rare.

81 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 75 In figura 4.9 viene sottolineato questo fatto: In effetti, a parte qualche caso, la Figura 4.9: % di pacchetti a seconda della distanza di trasmissione. connettivitá entro 12 metri é sufficentemente buona, mentre oltre i 25 metri, praticamente non esiste una connessione efficace. La piccola serie di punti intorno al 58% di probabilitá, sono relative ai nodi 14 e 15 visti poco prima: oltre ad aver avuto una alimentazione poco duratura, esiste la possibilitá che siano stati spostati o maneggiati, in quanto giacenti all interno del laboratorio che principalmente li adopera (navlab). In figura 4.10, si rappresenta la deviazione standard del numero di pacchetti lungo tutta la durata dell esperimento. Si possono subito notare le connessioni stabili con le minime deviazioni standard (quelle con i colori freddi). I nodi piú vicini e con meno ostacoli, oltre ad avere un alta percentuale di pacchetti ricevuti, hanno anche una bassa deviazione, dovuta alla minore presenza di ostacoli che attenuano il segnale di trasmissione. In particolar modo, é da notare il quadrato centrale (quello con diagonale 9-9

82 76 Cap. 4. Analisi dei dati 13-13), relativo ai mote di un ampia stanza, che indica una situazione stabile e continua, con poche possibilitá di perdita di pacchetti dovute ad ostacoli. Figura 4.10: Deviazione standard del numero di pacchetti ricevuti. Ma la varianza non é sempre costante, essa varia a seconda se l ambiente é calmo o meno. In figura 4.11 riportiamo la varianza nel primo periodo dell esperimento, cioé dall inizio fino al mattino del lunedí: in questo periodo la presenza umana é limitatissima, gli RSSI tendono ad essere costanti, e la trasmissione é globalmente piú stabile. Se si effettuasse una media globale, si assesterebbe intorno al 2 o 3.

83 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 77 Figura 4.11: Deviazione standard del numero di pacchetti ricevuti, periodo festivo e feriale.

84 78 Cap. 4. Analisi dei dati Subito sotto consideriamo invece il periodo finale, cioé dall inizio del lunedí lavorativo, fino alla fine dell esperimento: qui tutte le varianze tendono a valori molto alti, dato che la presenza di ostacoli, e la loro mobilitá, é aumentata notevolmente. Da notare il comportamento in ricezione dei nodi 14 e 15: la varianza presa nei due momenti separati indicherebbe una connessione abbastanza stabile a differenza delle altre, ma non é cosí. Tale comportamento é invece spiegabile semplicemente dal fatto che nella fase finale dell esperimento, tali nodi smettono di trasmettere prima, assestando cosí i valori di RSSI a zero: in questo modo la varianza, se vista in tutta la durata del test, aumenta molto.

85 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm Analisi del RSSI L RSSI é una misura relativa alla potenza del segnale ricevuto, e puó essere utilizzato anche come indice della qualitá di trasmissione, inteso come indicatore relativo, dato che maggiore é la potenza di trasmissione, minore é la probabilitá che il segnale venga ricevuto corrotto. E fornito direttamente dall hardware del mote, e fa parte della serie di byte che viene registrato nella memoria flash del nodo, per ogni pacchetto. La potenza dell onda radio in ricezione (RSS), invece, puó essere ricavata semplicemente da: RSS = RSSI + offset[dbm] (4.1) dove l offset é un valore empirico normalizzato a -45 dbm. Il valore restituito dalla radio è quantizzato in 100 valori e presenta un accuratezza di 6 dbm; e mappato nel seguente modo: Consideriamo ora il valore di RSS ricevuto da un nodo in particolare. Figura 4.12: Rapporto fra RSS e potenza ricevuta. In figura 4.13 possiamo notare l andamento del valore di RSS del nodo 16: ogni punto rappresenta la media dell RSSI ricevuto sui 20 (o meno) pacchetti, per ognuno dei venti nodi, nell arco della settimana del test. Fra punto e punto di uno stesso nodo, passa all incirca mezz ora, mentre lo

86 80 Cap. 4. Analisi dei dati spazio fra un ticks e l altro dell asse x rappresenta un periodo di circa 5 ore. Si possono notare diverse cose: Figura 4.13: Grafico della media degli RSS sui 20 pkg ricevuti. i nodi piú vicini (e ovviamente anche quelli piú distanti) al nodo considerato con un certo margine d errore (17,8,20,..), cioé quelli con il valore di RSS maggiore, dato che maggiore é la distanza di comunicazione, maggiore é l attenuazione; la stabilitá della connessione nei periodi in cui il dipartimento é chiuso, e l aumento (ma non sempre) del valore di RSS (anche se instabile) nei periodi relativi all attivitá del dipartimento, dovuti alla presenza di persone, movimenti di oggetti, etc. ;

87 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 81 il progressivo degenerare del valore di RSS nella periodo finale del test, dovuta alla avanzante carenza di tensione intrinseca alla fonte di energia: i mote funzionano fino ad una tensione di 2.1 V, raggiunto quel limite la radio non riesce piú a trasmettere, mentre le parti rimanenti continuano il loro lavoro, continuando a consumarmi energia. Al termine del test, si é misurata una tensione residua complessiva di 1,66 V, quando la tensione di partenza era di circa 3 V. Figura 4.14: Grafico complessivo dell RSS in confronto alla % di pacchetti ricevuti, a potenza 0 dbm. In figura 4.14 rappresentiamo invece una visione complessiva di tutti i nodi: confrontiamo la percentuale di pacchetti ricevuti con il valore di RSS corrispondente: si puó notare che, escludendo casi particolari, al di sopra di un valore RSS di 80, la connettivitá é buona, in quanto la percentuale di pacchetti rice-

88 82 Cap. 4. Analisi dei dati vuti é quasi sempre maggiore di 70. Al di sotto, non si puó dire nulla, poiché a seconda dell ambientazione trovata, i nodi che ricevono i pacchetti a questo livello di RSS, possono riceverne pochi o tanti. Ci si puó ricavare quindi che una connettivitá é buona quando si ricevono pacchetti con un RSS>80 dbm. Prima abbiamo considerato la percentuale di pacchetti in funzione della distanza, discorso analogo lo passiamo fare ponendo l RSS in funzione della distanza: In figura 4.15 il comportamento del canale [1] ideale viene rappre- Figura 4.15: Grafico del modello del canale in confronto al RSS ricevuto, nodo 19 a potenza 0 dbm. sentato dalla linea blu, mentre i pallini rossi sono i valori di RSS registrati dal nodo 19 a potenza 0 dbm. L imprecisione della misura dell RSS rende difficile determinare la distanza del-

89 4.1 Analisi dei dati alla potenza di trasmissione 0 dbm 83 la trasmissione, dato che non ne esiste una corrispondenza biunivoca a livello di punto, ma a livello di intervallo. Il modello del canale é definito da: d = e γ 2 10 A P T x 10np (4.2) dove γ é definita come: Dove: γ = ( σln10 10n p ) 2. (4.3) γ mi rappresenta un fattore di decrescenza in funzione della distanza A rappresenta un parametro che dipende dai nodi e dal valore di potenza del campo elettromagnetico ricevuto da un trasmettitore a 0 dbm posizionato a 1 m di distanza. n p dipende dall ambiente in cui avviene l esperimento P T x rappresenta la potenza di trasmissione del segnale e σ é la deviazione standard media dell errore della potenza del campo elettromagnetico. Nel nostro caso utilizziamo come valori: σ= , A=-45 [dbm] e n p =2. In figura 4.16 vediamo la situazione complessiva dei 20 nodi, nelle stesse condizioni di figura Qua l incertezza si fa ancora piú marcata: siccome i vari nodi non si trovano tutti nell identica condizione ambientale di trasmissione (intesa come posizionamento nell infrastruttura), le tolleranze aumentano, e di conseguenza anche l imprecisione nel caso ci si voglia ricavare la distanza basandosi solo sull RSS. Se noi ad esempio rilevassimo un RSS di -55 dbm, potremmo dire che il nodosi trova da 3m a 12m di distanza, mentre se rilevassimo -80 dbm, l intervallo cadrebbe fra 4m e 24m.

90 84 Cap. 4. Analisi dei dati Figura 4.16: Grafico del modello del canale in confronto al RSS ricevuto, visione complessiva a potenza 0 dbm. L andamento generale del limite superiore tenderebbe a seguire quello del canale, mentre quello inferiore no. Purtroppo il modello del canale viene inteso valido solo se considerato in ambiente privo di ostacoli, indoor o outdoor che siano, per cui la presenza di ostacoli mi peggiora la situazione e, come nel nostro caso, puó renderne inutile l utilizzo nel caso della localizzazione. Tale situazione é inoltre aggravata dal fatto della calibrazione: se poniamo due nodi a 1m di distanza e li facciamo comunicare, fra di loro, gli RSSI rilevati non saranno identici. Esiste cioé un offset da tarare de caso a caso, ma nel nostro caso, a fini pratici, consideriamo quello fornito dal produttore, ossia -45 dbm.

91 4.2 Analisi dei dati alla potenza di trasmissione minore di 0 dbm Analisi dei dati alla potenza di trasmissione minore di 0 dbm La situazione della connettivitá a potenze minori di 0 dbm tende leggermente a peggiorare a seconda della potenza disponibile: le connessioni piú distanti e piú instabili ricevono un numero minore di pacchetti fino all annullamento e gli ostacoli diventano in questo modo sempre piú difficili da superare. Le potenze che ora consideriamo sono quelle associate ai livelli 27, 23, 19, 15, Figura 4.17: Nodi connessi con almeno l 80% di pacchetti ricevuti.

92 86 Cap. 4. Analisi dei dati 11, cioé una potenza del segnale rispettivamente di -1, -3, -5, -7, -10 [dbm]. Se si confrontano la parte superiore di figura 4.17 con quella di figura 4.6 (cioé la situazione da potenza 0dBm a -1dBm), e le due parti di figura 4.17 (cioé la situazione da potenza -1dBm a -10dBm), si nota subito che le connessioni con almeno l 80% di pacchetti ricevuti, ossia quelle che mi determinano una connettivitá accettabile, cominciano a calare. In figura 4.18 valutiamo invece le connessioni con massimo il 20% di pacchetti Figura 4.18: Nodi connessi con massimo il 20% di pacchetti ricevuti. ricevuti.

93 4.2 Analisi dei dati alla potenza di trasmissione minore di 0 dbm 87 In una prima analisi non sembrano chiare, ma c é un motivo: le connessioni da una parte aumentano, dato che al calare della potenza, la probabilitá che una connessione abbia pochi pacchetti ricevuti aumenta, dall altra le connessioni stesse calano, dato che al calare della potenza aumentano anche le connessioni che non riescono a scambiare neanche un pacchetto. Nelle figure 4.19 e 4.20 si riportano i valori dell RSS memorizzate del nodo 16, relativi a tutti i nodi trasmittenti, nelle situazioni in cui le potenze siano -1, -5, -7, -10 [dbm]. Si puó notare ancora una volta che a seconda della potenza, la media degli RSS cala, e relativamente a connessioni di partenza che abbiano giá un basso valore di RSS, lo scomparire definitivamente dopo un determinato livello, intorno a -93dBm. Durante la notte del giovedí, la tensione di alimentazione giunge insufficente, creando cosí un malfunzionamento dei mote, con un successivo abbassamento dell RSS registrato al di sotto del limite appena riscontrato. Questo comportamento anomalo dipende dalla componentistica del mote e dagli effetti che essa provoca nel funzionamento con energia insufficente. In figura 4.21 verifichiamo la percentuale di pacchetti ricevuti confrontando la situazione nelle varie potenze: ancora una volta, la percentuale media cala quando diminuisce la potenza di trasmissione. Si noti ad esempio le connessioni (e simmetriche), dove si passa da una trasmissione buona con almeno il 70% pacchetti ricevuti, ad una percentuale irrisoria con la quale la connessione é impossibile, con 10 dbm in meno (queste coppie di nodi distano circa 20 m). Abbiamo stimato in precedenza (vedi figura 4.9) che la connettivitá indoor é garantita (pacchetti ricevuti > 70 80%) per una distanza di 12 metri (nel caso 0 dbm), mentre per distanze maggiori di 25m non si riesce a ricevere quasi nulla: queste coppie risentono parecchio del calare della potenza di trasmissione, proprio perché si trovano nella fascia fra i 10m e i 25m.

94 88 Cap. 4. Analisi dei dati Figura 4.19: Grafico RSS complessivo del nodo 16 a potenza -1 dbm e -5 dbm.

95 4.2 Analisi dei dati alla potenza di trasmissione minore di 0 dbm 89 Figura 4.20: Grafico RSS complessivo del nodo 16 a potenza -7 dbm e -10 dbm.

96 90 Cap. 4. Analisi dei dati Nel caso in cui si vuole creare una rete WSN con una fitta presenza di nodi, con basso consumo di energia, ma con una connettivitá buona, bisogna quindi disporne i nodi ad un distanza corrispondente alla potenza selezionata. In figura 4.22 possiamo vedere come la fascia sopra mezionata si sposta: prendendo come riferimento la distanza 10m, si vede che alle potenze piú elevate tale misura puó essere considerata accettabile, mentre in quelle inferiori si hanno delle perdite non trascurabili. Anche la soglia oltre alla quale nessun pacchetto viene piú ricevuto viene traslata, avvicinando in questo modo la fascia di incertezza. Concludiamo infine confrondando il modello del canale ed i valori di RSS ricevuti di un determinato nodo, a seconda della potenza selezionata. In figura 4.23 valutiamo la situazione del nodo 16. I valori di RSS sono relativi alle varie potenze, mentre il modello del canale viene tenuto costante: ogni abbassamento di potenza influisce sull andamento degli RSS a grandi linee come una traslazione verso il basso di una quantitá corrispondente alla differenza di potenza. L equazione 4.2, su cui si basa il modello del canale ha il parametro A dipendente dalla potenza ricevuta, e il legame che le unisce é di tipo esponenziale, che diventa lineare se si utilizza un grafico in db. Le tolleranze nel caso della localizzazione restano ampie, e peggiorano con l avvicinarsi al livello minimo di RSS rilevato.

97 4.2 Analisi dei dati alla potenza di trasmissione minore di 0 dbm 91 Figura 4.21: Percentuale complessiva dei pacchetti ricevuti a potenza 0,-1,-3,- 5,-7,-10 dbm.

Caratteristiche di un PC

Caratteristiche di un PC Caratteristiche di un PC 1 Principali porte presenti sui personal computer PC Una porta è il tramite con la quale i dispositivi (periferiche o Device ) vengono collegati e interagiscono con il personal

Dettagli

EcoRemote SISTEMA DI GESTIONE DI UNA STAZIONE DI MONITORAGGIO DELLA QUALITÀ DELL ARIA. Ingegneria dei sistemi

EcoRemote SISTEMA DI GESTIONE DI UNA STAZIONE DI MONITORAGGIO DELLA QUALITÀ DELL ARIA. Ingegneria dei sistemi Sistema per l acquisizione, l elaborazione e la gestione delle apparecchiature di una stazione di monitoraggio della qualità dell aria sviluppato da Project Automation S.p.A. è il sistema periferico per

Dettagli

Sistema di misurazione distanza ed anticollisione

Sistema di misurazione distanza ed anticollisione Sistema di misurazione distanza ed anticollisione LPR-1DP/2 LPR-1DP Area virtuale di stop Area virtuale di stop LPR-1DXi Regolatore e sensore di distanza semplice e veloce misurazione della posizione misurazione

Dettagli

SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI

SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI 1/10 SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI 2/10 ARCHITETTURA DI SISTEMA Il sistema è basato su una rete di stazioni di ricarica, con configurazione e tipologia

Dettagli

Ricevitore Supervisionato RX-24

Ricevitore Supervisionato RX-24 Ricevitore Supervisionato RX-24 Dati tecnici Gestione a microprocessore 24 Sensori memorizzabili 8 Uscite allarme uno per canale 8 Canali con 3 sensori per ogni canale 10 Telecomandi programmabili 1 Uscita

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Tipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB)

Tipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB) Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB) Architettura degli Elaboratori (Prima Unità) Renato.LoCigno@dit.unitn.it www.dit.unitn.it/~locigno/didattica/archit/02-03/index.html

Dettagli

Laboratorio software. A.A. 2009-2010 C. Brandolese

Laboratorio software. A.A. 2009-2010 C. Brandolese Laboratorio software A.A. 2009-2010 Hardware testing with software T1. RAM Testing Il progetto ha lo scopo di studiare e sviluppare alcune delle tecniche note per il testing della memoria RAM di un sistema

Dettagli

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti

Elettronica dei Sistemi Programmabili A.A. 2013-2014. Microcontrollori. Introduzione allo sviluppo di progetti Elettronica dei Sistemi Programmabili A.A. 2013-2014 Microcontrollori Introduzione allo sviluppo di progetti Premessa Qualunque sistema basato su microcontrollore deve eseguire un codice memorizzato in

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

La soluzione innovativa CONSUMI IN TEMPO REALE SU CLOUD SEMPLICE E VELOCE DA INSTALLARE PER TUTTI I TIPI DI CONTATORE BASSO COSTO

La soluzione innovativa CONSUMI IN TEMPO REALE SU CLOUD SEMPLICE E VELOCE DA INSTALLARE PER TUTTI I TIPI DI CONTATORE BASSO COSTO NEW Gestione illuminazione pubblica da remoto e La soluzione innovativa CONSUMI IN TEMPO REALE SU CLOUD SEMPLICE E VELOCE DA INSTALLARE PER TUTTI I TIPI DI CONTATORE BASSO COSTO per controllare i consumi

Dettagli

SECONDO BIENNIO ISTITUTO TECNICO ELETTRONICA ED ELETTROTECNICA

SECONDO BIENNIO ISTITUTO TECNICO ELETTRONICA ED ELETTROTECNICA SETTORE TECNOLOGICO ISTITUTO TECNICO INDIRIZZO ELETTRONICA ED ELETTROTECNICA ARTICOLAZIONE ELETTRONICA ESITI DI APPRENDIMENTO (competenze, abilità, conoscenze) Regolamento, Art.5, comma 1 Nota: Le Competenze,

Dettagli

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3

Dettagli

Vivi la tua casa in tutta sicurezza

Vivi la tua casa in tutta sicurezza Vivi la tua casa in tutta sicurezza Sistemi domotici di sicurezza per finestre Un vantaggio assoluto Valorizzazione dell immobile: valore aggiunto anche per aumentare la vendita o l affitto Facile da usare:

Dettagli

SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN

SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN Università degli Studi di Pavia Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica SISTEMA DI MONITORAGGIO AMBIENTALE TRAMITE WSN Relatore: Prof. Paolo Ettore Gamba Correlatore:

Dettagli

MANUALE UTENTE RIO-42

MANUALE UTENTE RIO-42 MANUALE UTENTE RIO-42 Dispositivo generico di Telecontrollo con 4 ingressi e 2 uscite. Manuale Utente RIO-42 Rev.0 SOMMARIO PRESENTAZIONE... 3 Caratteristiche generali (TODO)... 3 Caratteristiche tecniche...

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Il Metodo Scientifico

Il Metodo Scientifico Unita Naturali Il Metodo Scientifico La Fisica si occupa di descrivere ed interpretare i fenomeni naturali usando il metodo scientifico. Passi del metodo scientifico: Schematizzazione: modello semplificato

Dettagli

Sistemi di Telecontrollo GSM (GPRS) per Inverter Fotovoltaici

Sistemi di Telecontrollo GSM (GPRS) per Inverter Fotovoltaici Sistemi di Telecontrollo GSM (GPRS) per Inverter Fotovoltaici Forum Telecontrollo Reti Acqua Gas ed Elettriche Roma 14-15 ottobre 2009 Cosa sono gli Inverter fotovoltaici Gli inverter progettati per gli

Dettagli

Il progetto SIMULATOR

Il progetto SIMULATOR Conferenza Esri Italia 2015 Roma 15-16 Aprile 2015 Ergife Palace Hotel Il progetto SIMULATOR Utilizzo di dati da ricevitori GNSS a singola frequenza per il monitoraggio geofisico Davide Curone Esri Italia

Dettagli

YABC - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE

YABC - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Pag 1/1 Sessione ordinaria 2008 N o 088102/08 Seconda prova scritta YABC - ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE Indirizzo: INFORMATICA CORSO SPERIMENTALE Progetto ABACUS Tema di: SISTEMI DI ELABORAZIONE

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 7 Le reti telematiche 1 Le reti telematiche Tra le tecnologie del XX secolo dominano l elaborazione e la distribuzione delle informazioni

Dettagli

Gruppo di continuità UPS stand-alone. PowerValue 31/11 T da 10 a 20 kva UPS monofase per applicazioni critiche

Gruppo di continuità UPS stand-alone. PowerValue 31/11 T da 10 a 20 kva UPS monofase per applicazioni critiche Gruppo di continuità UPS stand-alone PowerValue 31/11 T da 10 a 20 kva UPS monofase per applicazioni critiche Un efficiente gruppo di continuità (UPS) con autonomia scalabile Un alimentazione elettrica

Dettagli

Modulo 1 Software e Reti. Prof.ssa Francesca Rammairone

Modulo 1 Software e Reti. Prof.ssa Francesca Rammairone Modulo 1 Software e Reti Prof.ssa Francesca Rammairone SOFTWARE Insieme di istruzioni che consentono al computer di svolgere le più svariate funzioni. Queste istruzioni sono i programmi che descrivono

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Lab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di

Lab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di interfacciamento è stato introdotto al fine di collegare dispositivi remoti a bassa velocità con un calcolatore centrale. In questo genere

Dettagli

Esercitazione Strumentazione virtuale

Esercitazione Strumentazione virtuale Esercitazione Strumentazione virtuale - 1 Esercitazione Strumentazione virtuale 1 - Oggetto Introduzione alla strumentazione virtuale. LabView: il pannello frontale e il diagramma a blocchi. Esempi: generatore

Dettagli

UPS 03 Professional fino a 3 kva

UPS 03 Professional fino a 3 kva UPS 03 Professional fino a 3 kva A Chloride Power Protection Company Desk Power da 300 a 1400 VA - Pc domestici e mercato SoHo - Workstation - Apparecchiature in rete - Sistemi POS DESK POWER e DESK POWER

Dettagli

Dr. Greco Polito Silvana. LAN: Local Area Network

Dr. Greco Polito Silvana. LAN: Local Area Network LAN: Local Area Network Reti di accesso e di trasporto Topologie diverse nelle reti di accesso: ANELLO, BUS, STELLA Come viene regolata la condivisione delle risorse di accesso tra le varie stazioni???

Dettagli

La gestione dell I/O (Cap. 5, Tanenbaum)

La gestione dell I/O (Cap. 5, Tanenbaum) La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità

Dettagli

EFA Automazione S.r.l. SB3Conf Help V1.00 (01 ITA).doc pag. 1 / 10

EFA Automazione S.r.l. SB3Conf Help V1.00 (01 ITA).doc pag. 1 / 10 EFA Automazione S.r.l. SB3Conf Help V1.00 (01 ITA).doc pag. 1 / 10 SOMMARIO Requisiti software pag. 2 Istruzioni per l installazione pag. 2 Avvio del Configuratore pag. 2 Creazione di un nuovo progetto

Dettagli

Reti - Concetti di base

Reti - Concetti di base Reti - Concetti di Docenti: Dott. Stefano Bordoni Dott. Francesco Guerra Facoltà di Economia, Università di Modena e Reggio Emilia Reti - Concetti di Reti - concetti di Che cos'è una rete? una rete è un

Dettagli

Motori Motore passo-passo Stadio di potenza PWM Sincrono Stadio di potenza del motore passopasso. Blocchi funzionali. Set point e generatore PWM

Motori Motore passo-passo Stadio di potenza PWM Sincrono Stadio di potenza del motore passopasso. Blocchi funzionali. Set point e generatore PWM RC1 Blocchi funzionai Motori a corrente continua Generatori Circuiti per il controllo dei motori in CC Motori a corrente alternata Circuiti per il controllo dei motori in CA Motori passo-passo Circuiti

Dettagli

Le aree dell informatica

Le aree dell informatica Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

velum wls DATASHEET Rilevatore di Movimento Doppia Tecnologia a Tenda per esterno con antimascheramento Wireless 868 Mhz Bi-Direzionale KSI5402010.

velum wls DATASHEET Rilevatore di Movimento Doppia Tecnologia a Tenda per esterno con antimascheramento Wireless 868 Mhz Bi-Direzionale KSI5402010. velum wls Rilevatore di Movimento Doppia Tecnologia a Tenda per esterno con antimascheramento Wireless 868 Mhz Bi-Direzionale KSI540200.303 CARATTERISTICHE PRINCIPALI I I rilevatori di movimento velum

Dettagli

L automazione al servizio della gestione dell asset Dai carrelli automatici al monitoraggio dei consumi energetici. A cura di Speed Automazione Srl

L automazione al servizio della gestione dell asset Dai carrelli automatici al monitoraggio dei consumi energetici. A cura di Speed Automazione Srl L automazione al servizio della gestione dell asset Dai carrelli automatici al monitoraggio dei consumi energetici. A cura di Speed Automazione Srl Fabio Massimo Marchetti Speed Automazione Media grande

Dettagli

Progetto Smart Grid Delibera ARG/elt 39/10

Progetto Smart Grid Delibera ARG/elt 39/10 Progetto Smart Grid Delibera ARG/elt 39/10 Utente Attivo SEA Energia S.p.A. Milano, 09/10/2015 INQUADRAMENTO DI SEA ENERGIA NEL PROGETTO SEA ENERGIA partecipa come «Utente attivo» al progetto pilota Smart

Dettagli

Capitolo Acquisizione dati con PC

Capitolo Acquisizione dati con PC Capitolo 2 Acquisizione dati con PC 2.1 Generalità 2.2 Sistema di acquisizione dati analogici monocanale con PC, per segnali lentamente variabili 2.3 Sistema di acquisizione dati analogici multicanale

Dettagli

Il sistema M-Bus symphonic di ista

Il sistema M-Bus symphonic di ista Il sistema symphonic di ista Istruzioni di installazione e pianificazione Indice 1. Introduzione 2 1.1 Informazioni generali 2 1.2 Norme / letteratura 2 2. Panoramica del sistema 2 2.1 Principio Bus 2

Dettagli

SOFTWARE PER DATA LOGGER VACQ

SOFTWARE PER DATA LOGGER VACQ SOFTWARE PER DATA LOGGER VACQ I software a disposizione sono stati sviluppati appositamente per ogni prodotto, esaltandone le specifiche tecniche senza tuttavia risultare incomprensibili all utente. Non

Dettagli

Internet (- working). Le basi.

Internet (- working). Le basi. Internet (- working). Le basi. 1 GABRIELLA PAOLINI (GARR) 18 OTTOBRE 2011 Capire come funziona Internet 2 FACCIAMO UN PASSO INDIETRO Internet È un insieme di reti interconnesse fra di loro su tutto il

Dettagli

DEDALO CONFIGURAZIONI DISPONIBILI PACKAGE BASE PACKAGE ESTESO MODULI AGGIUNTIVI

DEDALO CONFIGURAZIONI DISPONIBILI PACKAGE BASE PACKAGE ESTESO MODULI AGGIUNTIVI DEDALO L APPLICATIVO PER LA LOGISTICA DI MAGAZZINO CONFIGURAZIONI DISPONIBILI PACKAGE BASE PACKAGE ESTESO - Anagrafiche di base - Deposito semplificato - Mappa di deposito - Pianificazione arrivi - Controllo

Dettagli

A.S. 2015/16 CLASSE 5 AEE MATERIA: LABORATORIO DI T.P.S.E.

A.S. 2015/16 CLASSE 5 AEE MATERIA: LABORATORIO DI T.P.S.E. A.S. 2015/16 CLASSE 5 AEE MATERIA: LABORATORIO DI T.P.S.E. UNITA DI APPRENDIMENTO 1: AMPLIFICATORI OPERAZIONALI Essere capace di progettare le principali configurazioni circuitali con op-amp. Caratteristiche

Dettagli

I-XIII_romane_sawyer 14-02-2006 10:50 Pagina V. Indice. Prefazione

I-XIII_romane_sawyer 14-02-2006 10:50 Pagina V. Indice. Prefazione I-XIII_romane_sawyer 14-02-2006 10:50 Pagina V Prefazione XI Capitolo 1 Tecnologie dell informazione e della comunicazione e Sistemi Informativi 1 1.1 Informatica e ICT 1 1.2 Il funzionamento dei computer:

Dettagli

Introduzione alle macchine a stati (non definitivo)

Introduzione alle macchine a stati (non definitivo) Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore Architettura di un calcolatore Macchina di von Neumann: CPU (Central Processing Unit, CU+ALU) Memoria Centrale BUS di sistema Interfaccia alle periferiche I/O Fondamenti di Informatica 1 Architettura di

Dettagli

Sistema di trasmissione LIVE DEJERO

Sistema di trasmissione LIVE DEJERO LABORATORIO TEVERE S.r.L. Via Giacomo Peroni n. 104/106 00131 Roma Tel. (+39) 06 3346192 - (+39) 06 3347190 Fax (+39) 06 3346308 e-mail: laboratoriotevere@laboratoriotevere.com www.laboratoriotevere.com

Dettagli

http://www.indagini.assolombarda.it/myk-user-ui/begin.jsp?campaignuri=c3rvcmfn...

http://www.indagini.assolombarda.it/myk-user-ui/begin.jsp?campaignuri=c3rvcmfn... PERITO INFORMATICO Dati azienda Ragione sociale * Settore Classe dimensionale Seleziona un'opzione Seleziona un'opzione CAP Località - es. 20100 (per Milano) - Associazione di appartenenza * E' possibile

Dettagli

LA RETE RADIOMOBILE REGIONALE (R3) TETRA (TErrestrial Trunked Radio )

LA RETE RADIOMOBILE REGIONALE (R3) TETRA (TErrestrial Trunked Radio ) LA RETE RADIOMOBILE REGIONALE (R3) TETRA (TErrestrial Trunked Radio ) Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria Enzo Ferrari Università degli Studi di Modena e Reggio Emilia INTRODUZIONE TETRA

Dettagli

COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO. Moduli di acquisizione e controllo, unità intelligenti SERIE DAT9000

COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO. Moduli di acquisizione e controllo, unità intelligenti SERIE DAT9000 COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO Moduli di acquisizione e controllo, unità intelligenti Le unità intelligenti della serie DAT9000, sono state ideate da DATEXEL per offrire

Dettagli

Implementazione di sistemi real time

Implementazione di sistemi real time Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI

Dettagli

Sensore da soffitto con infrarosso passivo

Sensore da soffitto con infrarosso passivo Sensore da soffitto con infrarosso passivo Descrizione Dispositivo di controllo e comando, alimentato da Bus SCS, dotato di due differenti sensori che grazie alla combinazione dei quali è in grado di gestire

Dettagli

Collaudo statico di un ADC

Collaudo statico di un ADC Collaudo statico di un ADC Scopo della prova Verifica del funzionamento di un tipico convertitore Analogico-Digitale. Materiali 1 Alimentatore 1 Oscilloscopio 1 Integrato ADC 0801 o equivalente Alcuni

Dettagli

I componenti indispensabili per una rete sono almeno i seguenti:

I componenti indispensabili per una rete sono almeno i seguenti: CONCETTO DI RETE: due o più computer tra loro collegati fisicamente in modo da potersi scambiare dati ed informazioni. I dati che possono essere trasmessi da un nodo all altro, possono riguardare le tipologie

Dettagli

Moduli Bluetooth 03 - connessione seriale via BT

Moduli Bluetooth 03 - connessione seriale via BT Moduli Bluetooth 03 - connessione seriale via BT v 0.1 - Author: Mirco Piccin aka pitusso La connessione seriale ai moduli BT permette di inviare dati dal pc/smartphone/altro ad Arduino, in modalita wireless.

Dettagli

Manuale Utente. Campanello WiFi Trilly. Indice

Manuale Utente. Campanello WiFi Trilly. Indice Manuale Utente Campanello WiFi Trilly Indice TRILLY NEW Capitolo 1 Introduzione... 3 Panoramica...3 Rapida Scheda Tecnica...4 Descrizione Fronte...4 Descrizione Retro...5 Capitolo 2 Applicazione... 6 Capitolo

Dettagli

Sempre più sicuri con EXCHANGE.

Sempre più sicuri con EXCHANGE. Energia e sicurezza. E questa la missione di SIEL group, holding interamente italiana, leader nella progettazione e produzione di UPS - Gruppi Statici di Continuità, Commutatori Statici, Stazioni di Ener-gia,

Dettagli

RADIANT. Tre fasi in un click

RADIANT. Tre fasi in un click 100% Radiant. I kit di pannelli endotermici sono proposti per ridurre i costi ed aumentare le prestazioni della cabina di verniciatura. Barton Equipment si è posta l'obiettivo di rendere questa applicazione

Dettagli

di Alessandro Guaragni Sviluppo applicazioni Windows

di Alessandro Guaragni Sviluppo applicazioni Windows di Alessandro Guaragni Sviluppo applicazioni Windows Profilo della società Nata nel 1996 GASoft si posiziona sul mercato come partner ideale per lo sviluppo di applicativi in ambiente Microsoft Windows

Dettagli

INDIRIZZI IP SUBNETTING

INDIRIZZI IP SUBNETTING INDIRIZZI IP SUBNETTING Indirizzi IP Nella loro implementazione corrente (IPv4), gli indirizzi IP consistono di 4 byte - e forniscono un totale di 32 bit di informazione disponibile Gli indirizzi IP vengono

Dettagli

cont Trasp ro or ll ata to a FREEZER temperatu

cont Trasp ro or ll ata to a FREEZER temperatu FREEZER Trasporto a temperatura controllata Ottobre 2011 Scenari di Applicazione Sateltrack FREEZER è un software di Gestione Flotta avanzato e integrato con la tecnologia GPS, costruito per servire clienti

Dettagli

La t ecnologia WSN La piattaforma NI WSN Ambiente di programmazione Real Time (NI LabVIEW):

La t ecnologia WSN La piattaforma NI WSN Ambiente di programmazione Real Time (NI LabVIEW): La programmazione grafica di Reti di Sensori Wireless (Wireless Sensor Networks - WSN) in ambito industriale Massimiliano Banfi - Systems Engineers Manager - National Instruments Italy La t ecnologia WSN

Dettagli

AUTOMAZIONEStylo ESTERNA PER CANCELLI A BATTENTE DI PICCOLE E MEDIE DIMENSIONI.

AUTOMAZIONEStylo ESTERNA PER CANCELLI A BATTENTE DI PICCOLE E MEDIE DIMENSIONI. AUTOMAZIONEStylo ESTERNA PER CANCELLI A BATTENTE DI PICCOLE E MEDIE DIMENSIONI. 1 2 3 4 5 6 7 8 9 10 11 12 12 Stylo Piccole le dimensioni, grandi le prestazioni. Sottile, compatto, dal design esclusivo,

Dettagli

Controllo di un climatizzatore da Smartphone

Controllo di un climatizzatore da Smartphone Controllo di un climatizzatore da Smartphone Esistono diverse soluzioni per comandare un termostato programmabile per l accensione di una caldaia via internet con uno smartphone Ma se l apparecchio da

Dettagli

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43 I dischi ottici Le tecnologie dei dischi ottici sono completamente differenti e sono basate sull'uso di raggi laser Il raggio laser è un particolare tipo di raggio luminoso estremamente focalizzato che

Dettagli

IN UNO SPAZIO PRECISO. IN UN MOMENTO PRECISO. CONTENUTI PRECISI. PIATTAFORMA HOONEY

IN UNO SPAZIO PRECISO. IN UN MOMENTO PRECISO. CONTENUTI PRECISI. PIATTAFORMA HOONEY / HOONEY PLATFORM IN UNO SPAZIO PRECISO. IN UN MOMENTO PRECISO. CONTENUTI PRECISI. PIATTAFORMA HOONEY 01 Promuovere la propria azienda comunicando con media nuovi come, quando, ma soprattutto dove vuoi.

Dettagli

Lo Stack TCP/IP: Le Basi

Lo Stack TCP/IP: Le Basi Lo Stack TCP/IP: Le Basi I livelli TCP/IP hanno questa relazione con i livelli di OSI. Lo stack di protocolli TCP/IP implementa un livello network (livello 3) di tipo: packet-switched; connectionless.

Dettagli

TinyOS. Sistema operativo open-source per wireless sensor network sviluppato dall Università di Berkley e centro ricerche Intel www.tinyos.

TinyOS. Sistema operativo open-source per wireless sensor network sviluppato dall Università di Berkley e centro ricerche Intel www.tinyos. Sistema operativo open-source per wireless sensor network sviluppato dall Università di Berkley e centro ricerche Intel www.tinyos.net Outline Wireless Sensor Network 1 Wireless Sensor Network Caratterisiche

Dettagli

Souliss Arduino and Android SmartHome at your fingertip

Souliss Arduino and Android SmartHome at your fingertip Souliss Arduino and Android SmartHome at your fingertip http://souliss.net @soulissteam Fulvio Spelta SmartHomeNow - Torino 11 Marzo 2016 La nascita Souliss Nel 2011 sul forum Arduino la domotica era un

Dettagli

Climatizzazione - riscaldamento e raffrescamento

Climatizzazione - riscaldamento e raffrescamento Climatizzazione - riscaldamento e raffrescamento La più grande innovazione delle tecniche di risparmio energetico si concentra nelle soluzioni di riscaldamento e raffrescamento. Il passaggio di calore

Dettagli

Centrale M-Bus. Impiego. Funzioni. Maggio 1996

Centrale M-Bus. Impiego. Funzioni. Maggio 1996 s Maggio 1996 5 362 Centrale M-Bus OZW10 Centrale per la concentrazione dei dati dei misuratori. I dati vengono memorizzati in modo imperdibile per la lettura diretta e/o a posteriore tramite la scheda

Dettagli

Parigi 2010 43 Sessione

Parigi 2010 43 Sessione Sintesi e principali risultanze Introduzione/1 Workshop di apertura dedicato ai sistemi elettrici ed alle reti del futuro Confermati i TC Projects su UHV, Energy Efficiency e The Network of the Future

Dettagli

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

I Bistabili. Maurizio Palesi. Maurizio Palesi 1 I Bistabili Maurizio Palesi Maurizio Palesi 1 Sistemi digitali Si possono distinguere due classi di sistemi digitali Sistemi combinatori Il valore delle uscite al generico istante t* dipende solo dal valore

Dettagli

Raccolta dati wireless in libertà

Raccolta dati wireless in libertà Raccolta dati wireless in libertà 02 Con Nylux non ci sono limiti. 03 Sistemi operativi in continuo cambiamento? Problemi di incompatibilità? Costi pesanti per l'adeguamento? Oggi Nylux vi libera da un

Dettagli

Reti di Sensori Wireless (WSN) per il telecontrollo nelle energie rinnovabili

Reti di Sensori Wireless (WSN) per il telecontrollo nelle energie rinnovabili Reti di Sensori Wireless (WSN) per il telecontrollo nelle energie rinnovabili Matteo Bambini Technical Marketing Manager Forum Telecontrollo Reti Acqua Gas ed Elettriche Roma 14-15 ottobre 2009 Agenda

Dettagli

Corso di Sistemi di Elaborazione A.A. 2008/2009

Corso di Sistemi di Elaborazione A.A. 2008/2009 Università di Ferrara Facoltà di Ingegneria Docente: Ing. Massimiliano Ruggeri Mail: m.ruggeri@imamoter.cnr.it mruggeri@ing.unife.it Tel. 0532/735631 Corso di Sistemi di Elaborazione A.A. 2008/2009 Durata:

Dettagli

F.A.Q. - Domande Generali

F.A.Q. - Domande Generali F.A.Q. F.A.Q. - Domande Generali Cos'è? COMMON NET è un Internet Service Provider (ISP) che offre soluzioni communitydriven per l accesso ad Internet e la digitalizzazione del territorio. Per chi è? COMMON

Dettagli

MONITORAGGIO MICRO-CLIMA IN AMBITO MUSEALE

MONITORAGGIO MICRO-CLIMA IN AMBITO MUSEALE TELEMOBILITY FORUM 2008 5-6 Novembre 2008 Campus Bicocca Milano ITALY MONITORAGGIO MICRO-CLIMA IN AMBITO MUSEALE RELATORE: STEFANO DERME IL PUNTO DI PARTENZA Il contesto: Aree Museali Espositive e di Storage

Dettagli

L IMPATTO DELLE ANTENNE SWITCHED BEAM IN RETI WIRELESS DI SENSORI

L IMPATTO DELLE ANTENNE SWITCHED BEAM IN RETI WIRELESS DI SENSORI Università degli studi di Trieste Facoltà di Ingegneria Prova Finale in Trasmissione Numerica L IMPATTO DELLE ANTENNE SWITCHED BEAM IN RETI WIRELESS DI SENSORI Relatore: Chiar.mo Prof. Fulvio Babich Laureando:

Dettagli

Flessibilità dei sistemi domotici per una casa confortevole, sicura e ad elevata efficienza energetica

Flessibilità dei sistemi domotici per una casa confortevole, sicura e ad elevata efficienza energetica Flessibilità dei sistemi domotici per una casa confortevole, sicura e ad elevata efficienza energetica Sergio Puricelli 7 Giugno 2011 La domotica La domotica è il sistema nervoso della casa che controlla

Dettagli

PROGETTO RE.S.M.I.A. REti e Stazioni di Monitoraggio Innovative per l Ambiente

PROGETTO RE.S.M.I.A. REti e Stazioni di Monitoraggio Innovative per l Ambiente Progetto RE.S.M.I.A. PROGETTO RE.S.M.I.A. REti e Stazioni di Monitoraggio Innovative per l Ambiente Progetto finanziato da: POR Veneto Obiettivo Competitività Regionale e Occupazione FESR "Fondo Europeo

Dettagli

Verificare la connettività e il funzionamento del proprio nodo

Verificare la connettività e il funzionamento del proprio nodo Verificare la connettività e il funzionamento del proprio nodo Stefano Pilla - stefano@ninux.org 21 Maggio 2011 Ninux Academy 2011 Sommario Come verificare che il nodo funzioni correttamente Quali sono

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

Dettagli

TERMINALI PER IL RILEVAMENTO PRESENZE LBX 2780 FOGLIO

TERMINALI PER IL RILEVAMENTO PRESENZE LBX 2780 FOGLIO TERMINALI PER IL RILEVAMENTO PRESENZE LBX 2780 FOGLIO Potente e dal design sofisticato Una gamma diversificata di terminali è la risposta di Solari alle esigenze più diverse ed articolate del mercato.

Dettagli

Una definizione di rete

Una definizione di rete Una definizione di rete Una moderna rete di calcolatori può essere definita come: UN INSIEME INTERCONNESSO DI CALCOLATORI AUTONOMI Componenti delle reti Come è fatta una rete di calcolatori? Componenti

Dettagli

Programma di Robotica[LEGO EV3]

Programma di Robotica[LEGO EV3] Programma di Robotica[LEGO EV3] Target: 1. Alunni ultima classe scuola media inferiore per i quali sia possibile compiere un lavoro di potenziamento delle abilità per i livelli di eccellenza didattica

Dettagli

Veronafiere! 28-29 ottobre 2014! Gli atti dei convegni e più di 4.000 contenuti su www.verticale.net

Veronafiere! 28-29 ottobre 2014! Gli atti dei convegni e più di 4.000 contenuti su www.verticale.net Veronafiere! 28-29 ottobre 2014! Gli atti dei convegni e più di 4.000 contenuti su www.verticale.net Le novità del software di configurazione ETS5 Ing. Renato Ricci Coordinatore Formazione KNX Italia Verona

Dettagli

Un case study. Una soluzione di Building Automation per un edificio pubblico. Luca Liuni. Settimana della domotica

Un case study. Una soluzione di Building Automation per un edificio pubblico. Luca Liuni. Settimana della domotica APICE s.r.l. Un case study La scuola che pensa: Una soluzione di Building Automation per un edificio pubblico Luca Liuni Modena 17/10/2007 Settimana della domotica Polo scolastico a Montelupo f.no Nuovo

Dettagli

HP LED Driver Shield. EtherMania di Signorini Marco Via Cadore 9 21046 MALNATE (VA) P.I. 03111760124 REA VA-324137 http://www.ethermania.

HP LED Driver Shield. EtherMania di Signorini Marco Via Cadore 9 21046 MALNATE (VA) P.I. 03111760124 REA VA-324137 http://www.ethermania. HP LED Driver Shield Introduzione Lo HPLEDDriverShield e' uno shield per Arduino (UNO e Mega 2560) che permette di pilotare fino a 4 stringhe di LED High Power. Ogni canale e' dotato di un preciso generatore

Dettagli

Un sistema flessibile di pianificazione e controllo: il progetto SIGEST

Un sistema flessibile di pianificazione e controllo: il progetto SIGEST Un sistema flessibile di pianificazione e controllo: il progetto SIGEST Ing. Ciro Esposito Dirigente Generale Ministero delle Infrastrutture e dei Trasporti La misura delle politiche: controllare la gestione

Dettagli

Sistema UPS monofase a doppia conversione on-line reale PowerValue 11 RT da 1 a 10 kva Sistema UPS monofase per applicazioni critiche

Sistema UPS monofase a doppia conversione on-line reale PowerValue 11 RT da 1 a 10 kva Sistema UPS monofase per applicazioni critiche Sistema UPS monofase a doppia conversione on-line reale PowerValue 11 RT da 1 a 10 kva Sistema UPS monofase per applicazioni critiche Proteggere l alimentazione elettrica non è mai stato così semplice

Dettagli

PIANO DI LAVORO ANNO SCOLASTICO 2015-2016. I.T.S.O.S C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO: SISTEMI E RETI PROF.

PIANO DI LAVORO ANNO SCOLASTICO 2015-2016. I.T.S.O.S C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO: SISTEMI E RETI PROF. PIANO DI LAVORO ANNO SCOLASTICO 2015-2016 I.T.S.O.S C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO: SISTEMI E RETI PROF.SSA MARZIA CONTI CLASSE 5AL INFORMATICO LIVELLI DI PARTENZA Dalle prime lezioni

Dettagli

Come SIEMENS e IEC61850 hanno Automatizzato l alimentazione dei servizi ausiliari della centrale elettrica di Maritza EAST III per ENEL

Come SIEMENS e IEC61850 hanno Automatizzato l alimentazione dei servizi ausiliari della centrale elettrica di Maritza EAST III per ENEL Come SIEMENS e IEC61850 hanno Automatizzato l alimentazione dei servizi ausiliari della centrale elettrica di Maritza EAST III per ENEL Sistema di comunicazione conforme a IEC61850 in una centrale elettrica:

Dettagli

Verso l infinito e oltre con Studer

Verso l infinito e oltre con Studer Verso l infinito e oltre con Studer La tecnologia Infinity alla base del funzionamento dei mixer audio Vista V e Vista X della Studer è stata protagonista degli incontri organizzati il 2 e 3 dicembre da

Dettagli

IM-6145. Un sistema di misurazione completamente nuovo. p osi z iona re e. Sistema di misurazione dimensionale tramite immagini. Esempi di misurazione

IM-6145. Un sistema di misurazione completamente nuovo. p osi z iona re e. Sistema di misurazione dimensionale tramite immagini. Esempi di misurazione IM-6145 Un sistema di completamente nuovo È su ffi c iente p osi z iona re e preme re Sistema di dimensionale tramite immagini Esempi di Panoramica del sistema di dimensionale tramite immagini Obiettivo

Dettagli

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal

Dettagli

SISTEMI DI ACQUISIZIONE DATI: SOMMARIO

SISTEMI DI ACQUISIZIONE DATI: SOMMARIO SISTEMI DI DATI: SOMMARIO Il seminario si propone di approfondire le tematiche di acquisizione dati da sensori nel settore industriale Argomenti trattati: architettura e generalità di un generico sistema

Dettagli

Combustione. GALMARINI sas. System Integrator. (Combustori, Impianti di Combustione e Bruciatori)

Combustione. GALMARINI sas. System Integrator. (Combustori, Impianti di Combustione e Bruciatori) GALMARINI sas System Integrator Combustione (Combustori, Impianti di Combustione e Bruciatori) GALMARINI sas mette a disposizione dei suoi Clienti l esperienza maturata nel campo dell automazione industriale

Dettagli

Tastierini HomeWorks QS Dynamic

Tastierini HomeWorks QS Dynamic HomeWorks QS I tastierini racchiudono le funzionalità di più tastierini Lutron in un unico strumento intuitivo e facile da usare. Aiutano infatti a ridurre la confusione e il disordine sulla parete, riunendo

Dettagli

Via Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA

Via Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA Via Oberdan, 4, 4808 Faenza (RA) Italy Tel.: ++9-0546-677 Fax: ++9-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA * tasti con doppia funzionalità : dipende dalla modalità di

Dettagli