# ZigBee

In telecomunicazioni lo ZigBee è uno standard di comunicazione wireless basato sulla specifica IEEE 802.15.4, curato dalla ZigBee Alliance. Attraverso l'uso di piccole antenne digitali a bassa potenza e basso consumo implementa una wireless personal area network (WPAN).
Lo standard specifica una serie di profili applicativi che permettono di realizzare una comunicazione specifica per i diversi profili tipici nel campo delle Wireless Sensor Networks, che variano dal mondo dell'energia (Smart Energy) al mondo della domotica (Home Automation e ZigbeeLightLink). La relazione esistente fra ZigBee e IEEE 802.15.4 è simile a quella esistente tra la Wi-Fi Alliance e IEEE 802.11.
Nel 2014 la ZigBee Alliance ha annunciato un nuovo stack protocollare chiamato "ZigBee 3.0" (che sostituisce la specifica ZigBee PRO 2007) e che va ad inglobare diversi profili applicativi oggi visti come verticali e non interoperabili fra loro. Di fatto ora, con il rilascio di ZigBee 3.0, ci sono solo 2 domini principali, uno per l'efficienza energetica e uno per la domotica.

## Introduzione

ZigBee opera nelle frequenze radio assegnate per scopi industriali, scientifici e medici (ISM, 868 MHz in Europa, 915 MHz negli Stati Uniti e 2,4 GHz nella maggior parte del resto del mondo), ma di fatto oggi le uniche vere implementazioni disponibili sul mercato sono quelle a 2,4 GHz. Questa tecnologia è nata con lo scopo di essere più semplice e più economica di altre Wireless PAN come, ad esempio il Bluetooth (quest'ultima per ricorrere ai ripari ha successivamente rilasciato una versione meno dispendiosa in termini di consumi chiamata Bluetooth Low Energy).
Nel 2005 il costo stimato per il ricetrasmettitore di un nodo ZigBee era di circa $1,10 per il produttore, contando grossi volumi. La maggior parte dei dispositivi ZigBee richiedono però anche un microcontrollore, che fa alzare il costo totale. Quando fu lanciato (1998), per il Bluetooth si prevedeva un costo di $4–$6 per grandi volumi, mentre il prezzo attuale per la fascia consumer è oggi sotto i $3.
ZigBee Alliance ha cominciato a lavorare sulla versione 1.1 che mira ad avvantaggiarsi dei miglioramenti della specifica 802.15.4b, la cui più evidente miglioria è CCM*, introdotto in alternativa al CCM mode (CTR + CBC-MAC). Il CCM* gode delle stesse caratteristiche di sicurezza di CCM, fornendo però maggiore flessibilità nella scelta dei metodi di autenticazione e criptazione.

## Storia

* Le reti tipo ZigBee incominciarono a essere studiate nel 1998, quando molti ingegneri capirono che sia WiFi sia Bluetooth non riuscivano a rispondere alle necessità di molte nuove applicazioni. In particolare molti ingegneri videro la necessità di sviluppare reti radio digitali ad-hoc con una propria autonomia di organizzazione.
* Lo standard IEEE 802.15.4 fu completato nel maggio 2003.
* Nell'estate del 2003, Philips Semiconductors cessò di finanziare lo studio. Philips Lighting però ha continuato a rappresentare l'impegno di Philips nel settore e questa rimane un membro promotore della ZigBee Alliance Board of Directors.
* La ZigBee Alliance annunciò nell'ottobre 2004 che il numero di membri era più che raddoppiato nell'anno precedente ed era cresciuta fino a raggruppare più di 100 ditte in 22 paesi. Nell'aprile 2005 vi erano più di 150 aziende.
* La prima specifica ZigBee fu ratificata il 14 dicembre 2004, alla quale successivamente vennero pubblicate due versioni nel 2007: ZigBee 2007 e ZigBee PRO (la prima è un sottoinsieme delle feature richieste invece obbligatoriamente dalla seconda).
* La ZigBee Alliance annuncia la disponibilità della specifica 1.0 il 13 giugno 2005.
* Nel dicembre 2014 la ZigBee Alliance annuncia la pubblicazione nella nuova specifica ZigBee 3.0.

## Usi

I protocolli ZigBee sono progettati per l'uso in applicazioni embedded che richiedano un basso transfer rate e bassi consumi. L'obiettivo di ZigBee è di definire una Wireless mesh network non mirata, economica e autogestita che possa essere utilizzata per scopi quali il controllo industriale, le reti di sensori, domotica, le telecomunicazioni, ecc. La rete risultante avrà un consumo energetico talmente basso da poter funzionare per uno o due anni sfruttando la batteria incorporata nei singoli nodi.

## Tipi di dispositivo

Ci sono tre differenti tipi di dispositivo ZigBee:
* ZigBee Coordinator (ZC): è il dispositivo più "intelligente" tra quelli disponibili, costituisce la radice di una rete ZigBee e può operare da ponte tra più reti. Ci può essere un solo "Coordinator" in ogni rete. Esso è inoltre in grado di memorizzare informazioni riguardo alla sua rete e può agire come deposito per le chiavi di sicurezza.
* ZigBee Router (ZR): questi dispositivi agiscono come router intermedi passando i dati da e verso altri dispositivi. Di fatto non vi sono distinzioni hardware tra un ZC e un ZR se non che viene rilasciato al coordinator il ruolo di inizializzare la rete, dopodiché diventano dispositivi identici.
* ZigBee End Device (ZED): includono solo le funzionalità minime per dialogare con il nodo padre (Coordinator o Router), non possono trasmettere dati provenienti da altri dispositivi e dunque non partecipano al multi-hop di un messaggio; sono i nodi che richiedono il minor quantitativo di memoria e quindi risultano spesso più economici rispetto ai ZR o ai ZC.

## Protocolli

I protocolli si basano su una ricerca nel campo degli algoritmi di routing (Ad-hoc On-demand Distance Vector) che puntano a costruire delle reti ad-hoc di nodi a bassa velocità. Nelle reti più grandi la rete reale sarà formata da cluster di cluster, ma si potranno anche formare reti Mesh o cluster singoli. I profili correnti derivati dai protocolli ZigBee supportano sia reti "beacon enabled" sia reti "non-beacon enabled".
Nelle reti non-beacon enabled (quelle il cui beacon order è 15), viene utilizzato un meccanismo di accesso al canale di tipo CSMA/CA. In questo tipo di reti i ZigBee Router solitamente tengono i loro ricevitori sempre attivi, il che provoca un consistente consumo di energia. In pratica queste reti sono "miste": alcuni dispositivi sono costantemente pronti a ricevere, mentre altri si limitano a trasmettere in presenza di uno stimolo esterno. L'esempio tipico di una rete di questo tipo è dato dagli interruttori wireless: il nodo ZigBee nella lampada può essere costantemente in ricezione, avendo la possibilità della connessione diretta alla rete elettrica, mentre l'interruttore (al pari di un telecomando) alimentato a batteria può rimanere inattivo fino all'istante in cui vi è necessità di mandare un segnale. A quel punto si attiva, invia il comando, riceve un segnale di acknowledge e ritorna inattivo. In questo esempio la lampada sarà un ZR, se non un ZC, mentre l'interruttore sarà uno ZED.
Nelle reti beacon enabled, i nodi detti ZigBee Router trasmettono periodicamente dei beacon per confermare la loro presenza agli altri nodi. Tra un beacon e l'altro i nodi possono cambiare modalità per risparmiare energia, abbassando il duty cycle. Gli intervalli tra i beacon vanno da 15,36 millisecondi a 15,36 ms · 2$^{14}$ = 251.658,24 secondi a 250 kb/s, da 24 millisecondi a 24 ms · 2$^{14}$ = 393.216 secondi a 40 kb/s e da 48 ms a 48 ms · 2$^{14}$ = 786.432 secondi a 20 kb/s. Comunque operazioni a basso duty cycle con lunghi intervalli di beacon richiedono meccanismi di timing preciso, più difficili e costosi da realizzare.
In generale, i protocolli ZigBee minimizzano il tempo di attività del radiotrasmettitore, così da ridurre il consumo di energia. Nelle reti beacon enabled i nodi consumano energia solo nel periodo in cui c'è il beacon, mentre in quelle non-beacon enabled alcuni nodi sono sempre attivi (il loro consumo di energia è quindi alto) mentre altri sono per la maggior parte del tempo spenti.
I dispositivi ZigBee devono rispettare le norme dello standard IEEE 802.15.4-2003 Low-Rate Wireless Personal Area Network (WPAN). Esso specifica il protocollo di livello fisico (PHY), e la parte del livello data link del Medium Access Control (MAC). Questo standard opera nella banda ISM non licenziata 2,4 GHz, 915 MHz e 868 MHz. Nella banda 2,4 GHz ci sono 16 canali ZigBee, da 5 MHz ciascuno. La frequenza centrale per ogni canale può essere calcolata come F$_C$ = (2400 + 5·k) MHz, con k = 1, 2, …, 16. I trasmettitori radio usano una codifica DSSS. Si usa una modulazione BPSK nelle bande 868 e 915 MHz e una QPSK con offset (O-QPSK) che trasmette 4 bit per simbolo nella banda 2,4 GHz. Il data rate over-the-air è di 250 kb/s per canale nella banda 2,4 GHz, 40 kb/s per canale nella banda 915 MHz e 20 kb/s nella banda 868 MHz. Il range è tra 10 e 75 metri, dipendente dall'ambiente. La massima potenza trasmessa è in genere 0 dBm (1 mW).
La modalità di base di accesso al canale specificato da IEEE 802.15.4-2003 è il Carrier Sense Multiple Access / Collision Avoidance (CSMA/CA). Questo significa che i nodi, controllano se il canale è libero, quando devono trasmettere. Vi sono alcune eccezioni all'uso del CSMA: i segnali di beacon, inviati secondo uno schema prefissato, i messaggi di acknowledge e le trasmissioni di dispositivi in reti beacon-oriented che hanno necessità di bassa latenza e usano Guaranteed Time Slots (GTS) che per definizione non fa uso di CSMA.

## Software e hardware

Il software è progettato per rendere facile lo sviluppo su microprocessori piccoli e a basso costo. Il progetto dei radiotrasmettitori è stato ottimizzato per avere un basso costo unitario con produzioni su larga scala. Ha poca circuiteria analogica e usa il digitale ovunque sia possibile.
Anche se i radiotrasmettitori sono economici, il ZigBee Qualification Process comporta una validazione completa delle richieste del livello fisico. Questa minuziosa analisi del livello fisico ha molti vantaggi, poiché tutti i trasmettitori derivanti da uno stesso set di semiconduttori avranno le stesse caratteristiche RF. D'altra parte un livello fisico non certificato che presenta malfunzionamenti potrebbe influenzare negativamente le capacità della batteria di altri dispositivi di una rete ZigBee. In questo caso infatti i vincoli ingegneristici sono necessariamente stretti, in termini di banda e di consumo di energia. Così i trasmettitori sono testati secondo lo standard ISO-17025 e la Clause 6 dello standard 802.15.4-2003. La maggior parte dei produttori integra radiotrasmettitori e microcontrollori su un singolo chip.