Protocollo di comunicazione Wireless: Zigbee

Zigbeearticolo

Power Consumption Zigbee 

Zigbee è un protocollo di rete wireless mesh curato dalla ZigBee Alliance e rappresenta uno dei principali standard di comunicazione in ambito Internet of Things. ZigBee si differisce da altri protocolli per la sua capacità di combinare una buona autonomia  (basso consumo energetico) e un discreto livello di sicurezza (crittografia integrata a 128 bit).
Viene principalmente applicato per comunicazioni a corto raggio e grazie allo standard IEEE 802.15,4 offre un elevato grado di interoperabilità.  Attraverso piccole antenne a bassa potenza e basso consumo per WPAN (Wireless Personal Area Networks), questo standard esplicita una moltitudine di profili applicativi che permettono di sviluppare una comunicazione specifica per diversi profili nel campo dell’energia (Smart Energy) e della domotica (ZigbeeLightLink). Il rapporto tra ZigBee e IEEE 802.15.4-2003 può essere paragonato a quello esistente tra Wi-Fi Alliance e IEEE 802.11.

I protocolli ZigBee sono stati progettati per l’uso in applicazioni embedded con un basso transfer rate e bassi consumi energetici. L’obiettivo è quello di definire una Wireless Mesh Network economica e autogestita per il controllo di una rete di sensori e attuatori al fine di creare scenari di automazione e domotici. Il risultato è la configurazione di una rete intelligente in grado di poter funzionare anni grazie alla batteria integrata nei singoli nodi.

Zigbee Network

Curiosità

Il nome ZigBee deriva dal modello di comportamento di un alveare di api. In un alveare infatti la comunità è guidata da un’unica regina (Coordinator), poche api maschio  (Router) e migliaia di api lavoratrici (End Device). Esse comunicano con un modello a “zig-zag” dove le informazioni vengono condivise nel network in modo da arrivare al destinatario nel modo più efficiente possibile, superando talvolta barriere e ostacoli.

I dispositivi ZigBee imitano questo modello di continuo scambio e condivisione delle informazioni, fondamentale nella progettazione di un sistema IoT.

Protocolli

I protocolli ZigBee supportano sia reti “beacon enabled” sia reti “non beacon enabled” e si basano su un’attenta ricerca nel campo degli algoritmi di routing (comunemente detti Ad-Hoc On-Demand Distance Vector) finalizzati alla strutturazione di reti specifiche di nodi a bassa velocità”.

Nelle reti non-beacon enabled (dove il beacon order è di 15), si impiega un meccanismo di accesso al canale di tipologia CSMA/CA. Queste reti sono miste : ci sono alcuni dispositivi costantemente pronti a ricevere, mentre il resto si limita a trasmettere in presenza di un attivatore (stimolo) ricevuto dall’esterno. Tutto ciò consente alla rete un notevole risparmio energetico.

Un esempio è il tipico interruttore Wireless: il nodo ZigBee della lampada può essere costantemente in ricezione (o in ricezione con determinate regole) grazie alla connessione associata alla rete elettrica mentre il comando di accensione/spegnimento può rimanere inattivo fino a cui non viene mandato un segnale.  In quel momento si attiva, invia un comando, riceve un segnale di acknowledge per poi ritornare inattivo. L’interruttore rappresenta quindi uno ZED, la lampada uno ZR o uno ZC.

Nelle reti beacon enabled, i nodi detti ZigBee Router si preoccupano di trasmettere ad intervalli di tempo predefiniti dei beacon per confermare la loro presenza ad altri nodi. L’intervallo con cui viene gestito questo tempo consente di risparmiare energia, abbassando il duty cycle agendo su meccanismi di timing ben precisi.

Il risparmio energetico che garantisce questo protocollo è quindi dovuto al fatto che viene minimizzato in modo efficiente e intelligente il tempo di attività del radiotrasmettitore.

I dispositivi ZigBee devono rispettare le norme definite dello standard IEEE 802.15.4-2003 Low-Rate Wireless Personal Area Network (WPAN). Questo standard specifica sia il protocollo di livello fisico (definito PHY) che la parte del livello data link del Medium Access Control (MAC). La peculiarità di questo standard è la sua operabilità nelle bande 2,4 GHz, 915 MHz e 868 MHz.

 

Zigbee alliance

Alcuni dati

Nella banda 2.4 GHz ci sono 16 canali Zigbee, ognuno da 5MHz. La frequenza centrale per ogni canale viene calcolata come Fc = (2400 + 5k)MHz con k= 1 a 16.  Ricordiamo che i trasmettitori radio utilizzano una codifica DSSS, viene utilizzata una modulazione BPSK nelle bande 868 e 915 MHz e una QPSK con offset di trasferimento 4 bit (nella banda 2.4 GHz). Il range di applicabilità varia tra i 10 e i 75 metri in base ad ostacoli e barriere architettoniche, questi ostacoli possono essere superati grazie alla configurazione di una rete Mesh intelligente capace di prevedere questi ostacoli e comunicare i dati di conseguenza. Il data rate over the air è di 250 kb/s per la banda 2.4 GHz, 40 kb/s nella banda 915 MHz e 20 kb/s in quella 868 MHz. La potenza massima di trasmissione è di circa 1 mW.

Il Carrier Sense Multiple Access / Collision Avoidance (CSMA/CA) definisce le modalità di base di accesso al canale specificato da IEEE. Ciò significa che i nodi controllano quando il canale è libero e quando devono trasmettere, se il messaggio è indirizzato a loro oppure no.  I segnali di beacon vengono inviati secondo uno schema prefissato,  i messaggi e le trasmissioni di dispositivi in reti beacon utilizzano il Guaranteed Time Slots (GTS).

Quali i vantaggi di questo standard

La tecnologia Zigbee è stata sviluppata con l’intenzione di essere semplice ed economica ma ugualmente performante, specie per nuove applicazioni in ambito IoT.
La differenza principale rispetto al Wi-Fi è la velocità di trasmissione, nettamente inferiore per Zigbee ma che gli consente di ottenere consumi altrettanto limitati. Questo punto è cruciale in quanto sensori e attuatori funzionano a batterie e un parametro critico è proprio la gestione di questi consumi.

Principali applicazioni di ZigBee

Zigbee consente di garantire flessibilità necessaria a creare reti di sensori e attuatori intelligenti in ambito domotico e di building automation. È possibile configurare una rete con sensori e attuatori di diversi produttori, purché siano certificati Zigbee

Un esempio è il nuovo ecosistema di Amazon (Echo Plus), capace di gestire i dispositivi Zigbee presenti nell’ambiente e interagire con l’assistente virtuale Alexa.

Approfondiamo questi concetti.

Definizione

Lo stack ZigBee è costituito da un insieme di blocchi chiamati layers. Ogni layer esegue uno specifico insieme di servizi per il layer soprastante. Tra due layer contigui è esposta un’interfaccia di comunicazione, chiamata SAP (service access point). Ogni SAP supporta un certo numero di servizi.

La tecnologia ZigBee si basa per lo strato fisico (ISO/OSI 1) e per il livello Medium Access Control (MAC – ISO/OSI 2) sullo standard IEEE 802.15.4, gli strati superiori di rete (Network NWK layer) e applicativo (Application APL layer) sono stati definiti dalla ZigBee Alliance.

Lo strato fisico opera sulla frequenza separati: 868/915 MHz e 2.4 GHz.

 

Zigbeearchitettura

 Stack protocollare ZigBee

 

 

Tipi di nodi

Lo standard IEEE 802.15.4 definisce due distinte tipologie di dispositivi:

 – FFD (Full Function Device): nodi che possono eseguire tutte le funzionalità definite dallo standard ZigBee e in particolare sono nodi    che possono fungere da relay per altri nodi.

– RFD (Reduced Function Device): nodi che possono eseguire solo un limitato numero di funzionalità, in particolare sono nodi che non possono inoltrare traffico agli altri nodi, ma fungono solo da sorgenti o da destinatari finali del traffico. Vengono definiti nodi “foglia”. Il fatto che possano eseguire solo un limitato numero di funzionalità permette a questi nodi di consumare meno energia.

Nella rete ZigBee i nodi si distinguono in:

– ZigBee Coordinatore: è un dispositivo di tipo FFD. In una rete ZigBee vi è un solo nodo che può agire da coordinatore, ed è il primo ad essere attivato. Lo ZigBee Coordinator svolge la funzione di IEEE 802.15.4 PAN (Personal Area Network) coordinator. L’IEEE 802.15.4 PAN Coordinator è responsabile per la formazione della rete.

Un ZigBee Coordinator esegue quindi le seguenti funzioni:

    • seleziona il canale da utilizzare nella rete
    • seleziona l’ID della Personal Area Network (PAN)
    • assegna gli indirizzi agli altri nodi
    • permette agli altri nodi di unirsi o abbandonare la rete
    • si occupa di trasferire i pacchetti applicativi mantiene una lista di nodi vicini e routers

– ZigBee Routers:  è un dispositivo di tipo FFD.  I nodi di tipo router sono usati solo in alcune tipologie di reti ZigBee (tree e mesh) e permettono di estendere la copertura della rete. Un router è responsabile di inoltrare i pacchetti applicativi ad altri nodi trovando il percorso migliore. Può eseguire tutte le funzioni di un coordinatore eccetto quella di stabilire una rete.

– ZigBee End Device: è un dispositivo di tipo RFD. I nodi end device sono dispositivi semplici che inviano e ricevono i pacchetti applicativi ma non possono eseguire altre funzioni nella rete.  Un end device può essere connesso a un router o a un coordinatore. Di solito sono dispositivi a batteria che consumano energia solo in fase di trasmissione e quindi di solito il tempo di trasmissione di un end device è breve. Oltre alla trasmissione dei pacchetti applicativi un end device può unirsi o abbandonare una rete.

Topologie di reti

Lo strato Network (NWK) supporta tre differenti topologie di rete:

Star: in una rete a stella oltre allo ZigBee coordinator vi sono solo dispositivi di tipo end device che comunicano quindi direttamente con il coordinatore.

Tree: a differenza della rete a stella, questa rete può essere estesa attraverso l’uso di ZigBee Routers. Gli end device possono quindi essere connessi sia allo ZigBee Coordinator che agli ZigBee Routers. Nella rete tree viene utilizzata una strategia di routing gerarchica. Inoltre può anche essere usata una comunicazione beacon oriented.

Mesh: anche le reti mesh, come quelle tree, possono essere estese attraverso l’uso di ZigBee Routers. In questo caso non vengono però utilizzate strategie di routing gerarchico, ma permettono una piena comunicazione peer-to-peer. Inoltre i ZigBee Routers nelle reti mesh attualmente non emettono normali beacon IEEE 802.15.4.

Standard ZigBee

Negli anni si sono succedute diverse versioni di ZigBee. Le principali sono le seguenti:

– 2006: ZigBee 2006 specification

– 2007: ZigBee 2007 specification con la popolare ZigBee PRO feature set.

– 2015: ZigBee PRO 2015. Queste specifiche sono state integrate dentro la versione ZigBee 3.0: questa nuova versione elimina tutti i problemi che ne hanno rallentato la diffusione, offrendo la completa interoperabilità tra un’ampia varietà di dispositivi che ora possono funzionare insieme e interagire tra loro all’interno dell’abitazione. ZigBee 3.0 semplifica inoltre la realizzazione di applicazioni e servizi per la smart home e la Internet of Things da parte degli sviluppatori. In dettaglio, lo standard include ZigBee Home Automation, ZigBee Light Link, ZigBee Building Automation, ZigBee Retail Services, ZigBee Health Care e ZigBee Telecommunication.

2017: ZigBee PRO 2017,

Profili ZigBee

I profile ZigBee utilizzati per l’implementazione degli scenari progettuali sono i seguenti: Home Automation Profile e ZigBee Light Link.

Home automation Profile

ZigBee Home Automation (HA) è lo stand globale definito dall’Alliance di Zigbee per la creazione di sistemi Smart Home per il controllo di dispositivi in ambito energy management, illuminazione, HVAC, building automation, etc.

L’ultima versione dello standard è pienamente interoperabile con precedenti versioni dello stesso, aggiunge nuove caratteristiche per migliorare la durata delle batterie, rende più semplice l’installazione e il mantenimento del sistema per gli installatori e utenti finali e migliora la procedura di inserimento (pairing) di nuovi dispositivi alla rete wireless.

I principali comandi in ambito illuminazione che vengono supportati sono:

  • On/Off Light
  • Dimmable Light
  • Color Dimmable Light
  • On/Off Light Switch
  • Dimmer Switch
  • Color Dimmer Switch
  • Light Sensor
  • Occupancy Sensor

Esempi di comandi standardizzati in ambito HVAC sono invece:

  • Heating/Cooling Unit
  • Thermostat
  • Temperature Sensor
  • Pump
  • Pump Controller
  • Pressure Sensor
  • Flow Sensor

ZigBee Light Link

ZigBee Light Link (ZLL) è il profilo ZigBee designato per il mondo dell’illuminazione che permette di connettere lampade (monocromatiche e RGB), interruttori, dimmer e controlli remoti. Riferito allo standard ISO-OSI, il livello di rete su cui si appoggia ZLL è l’Home Automation.

ZLL è costituito da 2 tipi di nodi:

– controllori (interruttori per luci, sensori di occupazione ambienti, unità di controllo remoto, smartphone, PC/Tablet). Ogni nodo può controllare più dispositivi ed effettuare regolazioni del tipo: on/off, colore, mood (ambientazione), timer;

– luci (monocromatiche e a colori).

ZLL è basato su ZigBee Pro con queste configurazioni:

  • ogni nodo è  (preferibilmente) un Router;
  • non è necessario un Coordinatore;
  • non è necessario un Trust Center per implementare la Sicurezza;
  • usa solo la rete mesh;
  • usa Cluster, ZCL, per la definizione di aggregazioni di nodi in tipologie: Basic, Identify, Groups, Scenes, On/Off, Level Control, Colour Control. La presenza del Cluster ZLL Commissioning è necessaria.

Alcune note:

– la procedura semplificata Touchlink abilita l’installazione dei nodi in rete attraverso un semplice tocco di un bottone presente sul dispositivo;

– ZigBee Pro stub affianca ZigBee Pro stack per permette la comunicazione tra Personal Area Network (PAN);

– ZLL usa un network-level security in cui un’unica chiave di rete (generata in random dal nodo iniziatore) è usata per criptare/decriptare la comunicazione tra i nodi della stessa rete. La distribuzione della chiave avviene usando la ZLL master-key, pre-installata in tutti i nodi in fase di produzione.

Sicurezza ZigBee

La sicurezza in una rete ZigBee, secondo quanto stabilisce lo Standard ZigBee Pro 2015, si basa sue due tipi di chiavi:

– Link key: chiave a 128-bit che viene utilizzata per una comunicazione unicast tra pari entità a livello APL. La chiave viene condivisa tra due dispositivi.

– Network key: chiave a 128-bit che viene utilizzata per le comunicazione broadcast e per le comunicazioni del livello di rete. La chiave di rete è condivisa tra tutti i dispositivi nella rete.

Il destinatario conosce sempre con quale chiave il frame è stato protetto.

Un dispositivo può acquisire la link key in due modi:

  • usando la procedura di key-transport
  • in fase di pre-installazione (durante l’installazione di fabbrica)

La network key viene acquisita solo attraverso la procedura di key-transport.

La sicurezza tra i dispositivi dipende dall’inizializzazione e installazione sicura di queste chiavi.

Lo standard ZigBee 3.0 è inoltre più sicuro degli standard precedenti perché impone che la chiave di sicurezza usata per criptare i messaggi sia diversa per ogni dispositivo. In particolare ZigBee 3.0 introduce gli install codes (codici di installazione). I codici di installazione sono composti da 128 bit di dati casuali e da un CRC a 16 bit. Questi codice di installazione vengono passati ad una funzione di hash MMO al fine di generare una Trust Center link key, che quindi verrebbe utilizzata al posto della Trust Center link key nota o di default.

In genere, le Trust Center link key derivate dai codici di installazione sono codificate nei dispositivi che si uniscono alla rete durante il processo di fabbricazione. Il corrispondente codice di installazione viene quindi incluso con il dispositivo e programmato nel nodo che inizializza la rete attraverso un metodo fuori banda come un’interfaccia utente.

Distribuzione delle chiavi

Per ragioni di sicurezza, nella rete ZigBee, viene definito il ruolo di Trust Center. Il Trust Center è un device di cui tutti gli altri dispositivi si fidano  per la distribuzione delle chiavi e per la configurazione di applicazioni end-to-end. Tutti i dispositivi devono riconoscere esattamente un Trust Center attivo. Il Trust Center si occupa di stabilire, gestire e aggiornare le policy di sicurezza nella rete.

In una rete Zigbee ci sono due modelli di sicurezza che controllano come viene distribuita la network key:

  • modello di sicurezza distribuito
  • modello di sicurezza centralizzato.

Nel modello di sicurezza distribuito tutti i router hanno la capacità di agire come Trust Center e di distribuire la network key (non è possibile distribuire link key). In quello centralizzato ci può essere un solo dispositivo che agisce da Trust Center. In un modello di sicurezza centralizzato, il Trust Center stabilisce le politiche per la join dei dispositivi e la sicurezza di rete.

In alcune applicazioni un dispositivo può essere precaricato con l’indirizzo del Trust Center e con la Trust Center link key iniziale, in altre se viene accettato un momento di vulnerabilità la network key può essere inviata tramite un messaggio APS di key transport sicuro usando una ben nota link key. A tale scopo esiste infatti una link key di default.

In una rete di sicurezza centralizzata un dispositivo comunica in modo sicuro con il suo Trust Center utilizzando una Trust Center link key.  Ci sono due tipi di trust center link key: globale e unica. Il tipo di trust center link key usata dal dispositivo può determinare come il dispositivo gestisce i messaggi del trust center, incluso se applicare o meno la cifratura APS.

La  trust center link key può anche essere usata per rendere sicuri i messaggi di dati APS tra il trust Center e il corrispondente device. La scelta se utilizzare la sicurezza APS o questi messaggi di dati APS è lasciata ai livelli applicativi.

Per scopi di trust management, un dispositivo accetta una Trust Center link key o una network key solo se originata dal suo Trust Center e inviata usando una key transport.

Per scopi di gestione della rete, in un modello di sicurezza centralizzato, un dispositivo accetta una network key solo dal suo Trust Center se protetta con la Trust Center link key.

Per scopi di configurazione, un dispositivo accetta link key volta a stabilire una sicurezza end-to-end tra due dispositivi solo dal suo Trust Center o mediante negoziazione a livello di applicazione utilizzando un protocollo di livello superiore tra i due dispositivi.

A parte per l’iniziale Trust Center link key o network key, le chiavi aggiuntive di tipo link o gli aggiornamenti di network key sono accettati da un dispositivo solo se originati dal suo Trust Center e inviati tramite messaggio di key transport protetto o solo se negoziati usando un protocollo di livello superiore.

Una link key tra due dispositivi, nessuno dei quali è il trust center, è chiamata application link key.

Scelte architetturali per la sicurezza

In una rete ZigBee sono state fatte le seguenti scelte architetturali:

– Un layer Zigbee che genera un frame è responsabile per la sua protezione. Ad esempio se un frame di comando NWK necessità di protezione, deve essere utilizzata la sicurezza del livello NWK.

– Se si vuole proteggere la rete dai dispositivi malevoli tutti i frame devono utilizzare la sicurezza del livello NWK. Solo un dispositivo che si è unito correttamente alla rete e ha ricevuto la network key potrà comunicare i suoi messaggi passando da più hop. Infatti l’unica fase in cui la network key può non essere utilizzata è quella di join perché solo dopo la join un dispositivo riceve la network key.

– Ogni livello può ri-utilizzare le chiavi di un altro livello. Ad esempio la network key può essere utilizzata dal livello NWK e dal livello APS. Il riutilizzo di chiavi è permesso per ridurre i costi di memorizzazione.

– ZigBee fornisce anche una sicurezza end-to-end in modo che solo una sorgente e una destinazione possano accedere ai messaggi protetti da una shared key.

– Tutti i dispositivi e tutti i livelli di un dispositivo devono usare lo stesso livello base di sicurezza nella rete. Se un’applicazione necessità di più sicurezza per il suo payload rispetto a quella fornita dal livello di rete, può stabilire un livello di sicurezza applicativo con un altro dispositivo.

 

Ecosistema BOX-IO e Zigbee

Uno dei tanti protocolli supportati dalla nostra centralina di controllo è proprio Zigbee. Noi utilizziamo BOX-IO e Zigbee per la domotica del nostro ufficio di lavoro. Tramite BOX-IO con protocollo ZigBee infatti possiamo gestire tutti i nostri sensori e attuatori di temperatura, umidità, sicurezza, posizione, rilevamento e luci per creare scenari di automazione intelligenti.

Grazie a Zigbee abbiamo ridotto del 65% il consumo energetico del nostro ufficio e la sua flessibilità ci ha permesso di creare configurazioni di rete specifiche per i nostri clienti. La conoscenza approfondita di questo standard di comunicazione ci permette di fornire soluzioni collaudate e affidabili creando reti in cui i diversi nodi operano per superare interferenze e barriere e offrire livelli di servizio eccellenti in qualsiasi condizione interna ed esterna alla rete.

Zigbee Architecture

Scopri i vantaggi della nostro ecosistema IoT BOX-IO al link www.box-io.com!