PROTOCOLLI IEEE 802.15.4
Abbiamo la necessità di leggere dati provenienti da sensori come umidità, temperatura,
luminosità ecc., ovviamente queste letture avvengono nella maggior parte dei casi in
modalità periodica, ovvero interrogo il sensore in un determinato intervallo di tempo,
ad intervalli regolari, per leggere il dato che è stato rilevato. Ovviamente utilizzando
questo approccio viene meno la necessità di avere sempre l’hardware attivo, quindi in
questo caso posso pensare anche di accendere o spegnere il dispositivo a seconda che
debba trasmettere o ricevere qualcosa. In questo caso, attraverso questa semplice
tecnica che nella pratica vedremo come si implementa, posso già avere un risparmio
energetico significativo e oltretutto quando il dispositivo è attivo, non è detto debba
ricevere o trasmettere per l’intero periodo.
Questa caratteristica viene chiamata Duty Cycle. Dato un periodo di tempo t in cui il
dispositivo è attivo, il Duty Cycle (o Ciclo di lavoro) è il rapporto tra il tempo in cui il
dispositivo è attivo, in trasmissione come in ricezione, e la durata totale del periodo.
Ovviamente bisogna cercare di garantire il valore più alto possibile di questo parametro
perché nel periodo in cui il dispositivo è attivo, avrò un consumo di energia.
Un’altra delle caratteristiche tipiche di queste reti, a differenza dell’802.11, è il non
avere a disposizione alcuna infrastruttura al di sopra di queste reti.
Abbiamo visto che le reti wireless sono collegate tra loro da una rete di black hole,
ovvero una struttura che nella maggior parte dei casi è cablata e che mi consente di
interconnettere varie sottoreti.
In questi casi le reti non hanno a disposizione una struttura ad un livello superiore che
possa consentire lo scambio dei dati perché, nella maggior parte dei casi, queste reti
sono auto configuranti ed auto formanti, quindi i collegamenti che abbiamo sono
deboli.
Un’altra delle caratteristiche tipiche è dover garantire un basso costo implementativo,
sempre dettato dalla necessità di avere pochi dispositivi a disposizione e l’utilizzo di
applicazioni ad es. a livello industriale. All’interno di questa famiglia abbiamo
l’802.15.4 che è uno standard definito per reti wireless a basso rate.
Il design con il quale è stato sviluppato questo standard sta nel fatto che l’utilizzo tipico
di questo protocollo è stato pensato per applicazioni con bassi data rate, ovvero che si
interfacciano con i sensori, non è possibile pensare di utilizzare questi protocolli per
applicazioni di audio e video-streaming proprio perché abbiamo un basso data rate che
deve di conseguenza garantire un’elevata durata delle batterie.
Abbiamo detto basso consumo di potenza, bassa complessità e soprattutto limitato
range di trasmissione, infatti in questi casi la copertura ideale risiede in 10-50m anche
se, a seconda della banda utilizzata, abbiamo teoricamente una copertura fino a 200m;
come sappiamo questo nella realtà non è sempre vero sempre a causa di fenomeni come
l’interferenza, i disturbi, il rimbombo, ecc.
Abbiamo applicazioni per la reading automation, la domotica, smart metring e il
wireless sensor network.
Abbiamo detto che le caratteristiche quindi sono data rate molto bassi, ad es. massimo
250kb/sec, raggiungibili grazie ad una portante a 2.4 Ghz, la stessa frequenza utilizzata
nell’802.11.
Le specifiche di accesso al canale, definite sempre a livello MAC, sono anche in questo
caso definite grazie al protocollo CSNA/CA. Vedremo in seguito altre modalità di
accesso al canale.
Riguardo alle topologie possibili per questo tipo di reti abbiamo:
topologia di tipo a stella
tipologia peer-to-peer.
In tutte le reti abbiamo, in ogni caso, un nodo principale che prende il nome di PAN
COORDINATOR. Il pan coordinator è responsabile di varie operazioni all’interno della
rete, viene detto nodo root poiché stabilisce le caratteristiche della rete, stabilisce il
nome della rete e gestisce i rapporti con gli altri nodi.
Gli indirizzi in questo caso sono di 64 bit ma vengono compressi in 16 bit, in questo
caso si differisce dalla 802.11 poiché in quel caso il MAC address era di 48 bit.
Abbiamo, poi, due tipologie di dispositivi:
- FULL FUNCTION DEVICE (FFD), dispositivi che implementano intere specifiche
dello standard 802.15.4 e sono candidati ad essere dei pan coordinator a livello locale
nel caso di topologie master free.
- REDUCED FUNCTION DEVICE (RFD), dispositivi che implementano funzionalità
ridotte dello standard, possono comunicare solo con il pan coordinator o in generale
con l’FFD e, solitamente, all’interno della topologia questo tipo di nodi prende la
posizione sempre di nodo foglia.
Nella topologia peer-to-peer abbiamo sempre il pan coordinator ed i collegamenti tra i
nodi possono essere multipli, la comunicazione che è possibile abilitare è di tipo multi-
hole, ovvero, partendo da un nodo posso collegarmi a più nodi a differenza della
tipologia star in cui la comunicazione di ogni nodo avviene sempre e soltanto con il pan
coordinator.
Vi è poi la topologia di tipo CLUSTER TREE.
In alcuni casi, ad es. quando abbiamo una
rete molto estesa, possiamo avere la
necessità di suddividerla in cluster, sia che
la rete sia estesa o per scelta, possiamo
avere la necessità di suddividere la rete in
più nodi. Banalmente, se ci troviamo in un
centro commerciale o in un’area in cui
sono previsti diversi settori, ognuno di essi
necessita che quando un nodo entri nella
propria area, debba essere associato alla propria rete.
La formazione della rete avviene sempre a partire dal pan coordinator che può
demandare ad altri nodi FFD di assumere il ruolo di coordinator solidali, possiamo
quindi avere più reti collegate tra loro in questa maniera. Ovviamente possiamo notare
che sia le sottoreti che la rete formata ha sempre una struttura di tipo ad albero, ovvero
non abbiamo un loop, come ad es. nel caso peer-to-peer, questo ovviamente per
garantire performance migliori.
La topologia di tipo STAR è preferibile adottarla per reti poco estese mentre la
topologia di tipo peer-to-peer detta anche nash si presta di più per reti più estese.
Una delle modalità più utilizzate è la specifica 802.15.4 del 2006 in cui si utilizza una
banda nel range di 2,4 Ghz che prevede 16 canali ognuno da 3Mhz distanziati tra loro
da 5Mhz. Si utilizzano varie tipologie di modulazione del segnale e di codifica che
influiscono in maniera più o meno diretta sul data rate.
Nella comunicazione tra coordinator e gli altri nodi della rete è necessario mutuare
comunque delle operazioni, alcune delle quali avvengono a livello fisico ed altre a
livello…
La comunicazione, come già detto, avviene a partire dal coordinator e una delle prime
operazioni è quella di sincronizzarsi con gli altri nodi. La fase di sincronizzazione
avviene attraverso l’utilizzo di frame, pacchetti speciali chiamati BEACONS.
Caratteristiche di un beacon sono:
- la durata, specificata in fase di progettazione
- il periodo, definito da una parte attiva in cui l’antenna dei nodi è attiva e può
trasmettere, sottodivisa in due sottoperiodi (primo in cui i nodi cercano di trasmettere i
dati nella rete effettuando un accesso col protocollo CSMA/C, secondo in cui vengono
allocati una serie di slot per dare priorità a dei determinati nodi di comunicare, sono
degli slot di seconda per applicazioni specifiche), a questa segue un periodo di inattività
durante il quale i nodi vengono disattivati.
In questa parte iniziale che parte dal frame di apertura e si conclude alla fine del
periodo attivo viene detta super frame.
Abbiamo due tipologie di comunicazione tra coordinator e device:
- COMUNICAZIONE DEVICE-COORDINATOR / BEACON ENABLED
Si utilizzano i beacon, il pan coordinator inizia la comunicazione effettuando il
broadcast di questi beacon in cui vengono annunciati vari parametri della rete. Gli altri
dispositivi, ovvero i nodi foglia e gli FFD ascoltano questi beacon e dopo aver
effettuato la sincronizzazione possono comunque allinearsi al periodo del super frame e
quindi iniziare la comunicazione con il proprio nodo.
Si utilizza una versione particolare del protocollo CSMA/CA detta di tipo slot, ovvero
vengono utilizzati degli slot time. Uno slot time è un determinato periodo di tempo
necessario a due nodi per comunicare, ovvero il tempo minimo tale da consentire ad un
nodo di trasmettere il proprio frame e di ricevere il conseguente ack.
Nella fase iniziale il beacon viene ricevuto dal nodo, nella fase successiva se il nodo ha
il proprio slot time allocato (informazione che viaggia sul beacon), inizierà subito la
trasmissione altrimenti accederà al canale tramite il CSMA/CA per trasmettere il dato.
Quando il dato viene ricevuto dal coordinator, può essere eventualmente ricevuto un
ack, ovvero un riscontro.
- COMUNICAZIONE COORDINATOR-DEVICE / NON BEACON ENABLED
Nella modalità in cui non vengono utilizzati i beacon, il device accede direttamente al
canale senza ascoltare i messaggi beacon che vengono da parte del coordinator,
ovviamente l’ack è sempre di tipo opzionale.
Questi due esempi fanno sempre riferimento al caso di topologia a stella.
In questo caso invece abbiamo che è un coordinator a voler trasmettere un particolare
dato ad un nodo; quando un coordinator ha dei dati pendenti nel proprio buffer di
memoria che sono destinati al nodo, effettua sempre il broadcast dei beacon nella
modalità beacon enabled con la particolarità che nel beacon viene attivato un
particolare flag nel quale appunto si indica che il coordinator ha dei dati da trasmettere
e viene anche specificato il nodo a cui i dati sono destinati. Quando il beacon
destinatario del pacchetto capisce che il pacchetto è destinato a se ed invia data readers
ovvero chiede al coordinator di inviargli il dato che ha a disposizione, ovviamente a
questo segue un doppio riscontro, un riscontro iniziale di invio del dato ed un secondo
riscontro da parte del nodo che ha ricevuto il dato. Stessa cosa nel caso non beacon
enabled nel cui caso non viene effettuato il broadcast dei nodi.
Vi è inoltre una COMUNICAZIONE di tipo DEVICE-DEVICE.
Nella comunicazione di tipo peer-to-peer è possibile la comunicazione direttamente tra
dispositivi, in questo caso più function device possono essere collegati tra loro in
modalità multipla, i dispositivi hanno necessità di essere sempre sincronizzati ed in
questo caso le politiche di routing (ovvero gestire ogni pacchetto in uscita scegliendo la
strategia di forwording del pacchetto) vengono gestite a livello più alto.
La procedura prevede che ogni nodo memorizzi due variabili: la variabile NB ovvero il
numero di tentativi di accesso al canale effettuati e la variabile BE che è l’esponente del
periodo di back-off ovvero il periodo in cui il nodo dovrà attendere prima di iniziare a
trasmettere. La procedura sostanzialmente è molto simile a quella vista per l’802.11
ovvero prima di iniziare la trasmissione viene calcolato il periodo in cui il nodo dovrà
attendere prima di tentare l’accesso al canale. Dopo di che il nodo effettua la fase
chiamata CCA ovvero Clear Channel Assessment ovvero tramite tecniche a livello
fisico, ascolta il canale ed è in grado di rilevare se ci sono trasmissioni in atto in quel
momento. Viene quindi introdotta una variabile aggiuntiva, ovvero CV che rappresenta
il numero di periodi di back off durante il quale il nodo ha rilevato un canale libero,
questo parametro nella maggior parte dei casi viene impostato solitamente uguale a 2,
questa è un’operazione particolare ed aggiuntiva del caso slotted.
Quindi, nel caso slotted, ogni nodo ha la necessità di rilevare almeno per due periodi di
back off, questa operazione viene effettuata x garantire che quando il nodo trova il
canale è libero deve essere aggiuntivamente allineato all’inizio del super frame ovvero
del periodo relativo al beacon, questa operazione viene fatta per limitare nel maggior
numero possibile il numero di collisioni e quindi si cerca di effettuare le trasmissioni
sempre all’inizio di un super frame.
Abbiamo un numero di tentativi massimi che il nodo può effettuare nel rilevare il
canale libero e in questo caso se non abbiamo raggiunto il numero di tentativi massimi
la procedura viene ripetuta, oppure se abbiamo superato il numero di tentativi, la
trasmissione del pacchetto fallisce.
Questo è il formato del frame, a livello fisico abbiamo un frame il cui payload è un
intero frame a livello superiore, vi sono dei campi aggiuntivi tra cui il campo SHR e la
lunghezza del frame; all’interno del MAC frame abbiamo poi tutta una serie di campi in
cui vengono effettivamente immessi i dati, un frame di controllo, l’indirizzo, altri campi
aggiuntivi legati alle operazioni di sicurezza. La dimensione massima del frame MAC è
comunque fissata a 127 byte compresi header e payload.
Come accennato prima, ci sono altre tecniche di accesso al canale che si differenziano
dal CSMA/CA per varie operazioni, questo perché la tecnica CSMA/CA ha un basso
livello di performance in termini di risparmio energetico e prestazioni, ovviamente
poiché richiede che i nodi siano sempre attivi per un numero fissato di slot oltre a
garantire un basso utilizzo della rete, questi requisiti ovviamente non soddisfano le
applicazioni di tipo industriale.
In campo industriale, infatti, vogliamo che il dato arrivi il più possibile per gestire
situazioni critiche per es. il disaster recovery o il controllo dei processi, oltre al fatto
che i fenomeni di interferenza sono molto più sentiti in questi scenari. Per questo
motivo uno degli emendamenti dell’802.15.4, in particolare la versione E rilasciata nel
2012 ed integrata successivamente nel 2015, ha definito altre specifiche per l’accesso al
canale come la tecnica TSCH. La tecnica TSCH prevede che il tempo in cui i nodi sono
attivi nella rete sia suddiviso in slot. La tecnica di suddivisione in slot è stata
precedentemente introdotta e si basa sulla tecnica TDMA ovvero “accesso multiplo a
divisione di tempo”. Una delle prime caratteristiche è quella peer-to-peer, ad ogni
coppia di nodi viene riservato uno specifico slot in cui possono trasmettere ed in
aggiunta avviene anche il TimeSlotted Channel Hopping? Il TSCH è una tecnica per cui
i 16 canali a disposizione vengono utilizzati simultaneamente per consentire ad ogni
coppia di nodi di comunicare in ogni time slot su frequenze diverse del canale.
Un time slot è il tempo minimo atto a garantire la trasmissione del dato e la ricezione
del relativo ack, valori tipici sono 10 o 15ms, questo perché si tiene conto sia della
banda utilizzata e del data rate e si stima ad es. nel caso di banda a 2,4 Ghz per l’invio
di un frame di tipo MAC vengono richieste mediamente 4ms e 1ms per la ricezione
dell’ack, più 5ms addizionali richiesti dal dispositivo per switch-are l’antenna dalla
modalità di trasmissione a quella di ricezione. Ovviamente questi valori possono essere
variabili a seconda dell’applicazione.
L’insieme di più time slot in sequenza forma uno slot frame; uno slot frame ha una
dimensione fissa dettata dalle specifiche richieste e si ripete nel tempo. Sostanzialmente
la tecnica prevede che ad ogni coppia di nodi partecipanti alla comunicazione sia
associato un time slot nel quale comunicare.
Parallelamente per consentire la tecnica del TSCH viene assegnato ad ogni time slot un
canale predefinito in cui i nodi possono eventualmente comunicare, successivamente
tramite questa funziona viene calcolato in ogni time slot la frequenza effettiva in cui i
due nodi devono comunicare ovvero questa funzione prende input dallo slot number
che rappresenta una sorta di contatore generale. Questo dato è fondamentale per due
ragioni, consente il TSCH e poiché quando un nuovo nodo si aggiunge alla rete ha
necessità di sapere in quale time slot deve allinearsi e quindi l’offset che è in quel
momento nello slot frame.
Un altro parametro preso in considerazione è l’offset del canale.
Ad ogni time slot viene calcolata la frequenza del canale su cui i due nodi possono
comunicare
con la formula f = (ASN + C Hoff), scegliendo un determinato range di valori tra
queste varibili, in particolare prendendo ASN = k * s + t
dove k è la dimensione del time slot , s la dimensione dello slot frame e t è l’offset dello
slot frame ovvero in quale slot frame lo sto inserendo.
In questo modo verranno utilizzate tutte le frequenze disponibili ovvero non avremo
ripetizioni per le frequenze utilizzate.
Questa tecnica permette sia tramite il cambio frequente della frequenza utilizzata, sia
suddividendo la comunicazione in time slot differenti, di garantire condizioni migliori
per la comunicazione e soprattutto così ogni nodo conosce esattamente in quale time
slot deve trasmettere.
Questa tecnica garantisce un’elevata efficienza in termini di risparmio energetico
poiché il nodo può stare spento quando non trasmette.
Altra caratteristica di questa tecnica è che lo standard non ha formulato come gli slot
debbano essere assegnati, ovvero mancano le specifiche per lo sheduling dei nodi
sebbene venga definita la tecnica di comunicazione. Manca la tecnica secondo la quale
posso, a priori, assegnare in maniera opportuna quali nodi devono comunicare in un
determinato slot.
Questa è una panoramica degli elementi presenti all’interno dello stack protocollare che
definisce i protocolli maggiormente utilizzati nell’IoT.
Avendo espresso la problematica delle ridotte dimensioni del frame NELL’802.15.4., si
rende necessario in questo caso un livello aggiuntivo, ovvero 6LoWPAN, questo perché
la dimensione del datagramma è maggi
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Appunti Internet of things
-
Internet Of Things - Appunti
-
Internet of things
-
Paniere nuovo di Internet of things