Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

ZigBee: analizziamo l'architettura del protocollo

ZigBee: analizziamo nel dettaglio l'architettura del protocollo di comunicazione wireless e il suo funzionamento
ZigBee: analizziamo nel dettaglio l'architettura del protocollo di comunicazione wireless e il suo funzionamento
Link copiato negli appunti

Dopo aver introdotto l'argomento, in questa lezione ci immergeremo nello studio dell'architettura del noto protocollo di comunicazione wireless ZigBee che ha rivoluzionato il modo in cui i dispositivi a bassa potenza si connettono e comunicano tra loro. Lo studio della sua architettura è fondamentale per comprendere come i vari componenti di ZigBee lavorano insieme per garantire una comunicazione efficiente, scalabile e sicura. ZigBee è specificatamente progettato per applicazioni che richiedono una lunga durata della batteria e una comunicazione affidabile, rendendolo ideale per l'automazione domestica e l'Internet of Things (IoT).

Struttura Generale di ZigBee

Iniziamo esaminando la struttura generale di ZigBee, che comprende diversi livelli e componenti. Esso si basa sulle specifiche IEEE 802.15.4 che definiscono i requisiti fisici e il livello di accesso al supporto. Questa architettura stratificata consente di gestire comunicazioni affidabili e sicure tra dispositivi. L'architettura di ZigBee è composta essenzialmente da tre livelli principali:

  1. Livello Fisico (PHY): il Livello Fisico (PHY) è uno degli elementi fondamentali che si occupa della gestione delle comunicazioni radio tra i dispositivi. E' responsabile delle operazioni di base necessarie per trasmettere e ricevere segnali attraverso l'aria, tra cui la modulazione, la demodulazione, la codifica e la decodifica dei dati.

    Modulazione e Demodulazione: la modulazione è il processo che converte i dati digitali in segnali analogici (onde radio) per trasmetterli attraverso un canale radio. Il PHY in Zigbee utilizza la modulazione DSSS (Direct Sequence Spread Spectrum) con O-QPSK (Orthogonal Quadrature Phase Shift Keying). Al ricevitore, avviene il processo inverso, cioè la demodulazione, per recuperare i dati digitali dai segnali ricevuti.

    Bande di Frequenza: il PHY definisce anche le bande di frequenza utilizzate da Zigbee per la trasmissione radio. Le frequenze standard previste da Zigbee sono:

    • 2.4 GHz: banda utilizzata in tutto il mondo, compatibile con dispositivi come Wi-Fi e Bluetooth. Questa banda supporta una velocità di trasmissione fino a 250 kbps.
    • 868 MHz: banda utilizzata prevalentemente in Europa. Ha una velocità di trasmissione di 20 kbps.
    • 915 MHz: banda utilizzata principalmente in Nord America, con una velocità di trasmissione di 40 kbps.

    Gestione della potenza e della portata: il PHY è responsabile anche del controllo della potenza di trasmissione per ottimizzare il consumo energetico, fondamentale in applicazioni a basso consumo come Zigbee. A seconda della potenza del segnale e delle condizioni ambientali, la portata può variare da pochi metri fino a centinaia di metri.

    Codifica e Decodifica dei dati: il PHY codifica i dati per la trasmissione, aggiungendo informazioni necessarie per garantire che il segnale radio sia robusto e affidabile. Include tecniche di correzione degli errori (come la ridondanza) per garantire la trasmissione corretta dei dati anche in presenza di interferenze o ostacoli.

  2. Livello di controllo dell’accesso al supporto (MAC): il livello MAC (Medium Access Control) si occupa della gestione dell'accesso al mezzo radio, consentendo ai dispositivi di comunicare in modo efficiente senza interferenze o collisioni.
    • CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance): usa questo protocollo per assicurarsi che i dispositivi verifichino che il canale sia libero prima di trasmettere i dati. In caso contrario, attende un periodo casuale prima di riprovare, riducendo così le collisioni.
    • Gestione dei Frame: il livello MAC gestisce i frame (pacchetti di dati), includendo informazioni sull'indirizzo del mittente e del destinatario, nonché codici di controllo per rilevare errori nei dati trasmessi.
    • Sicurezza: questo livello gestisce importanti funzionalità di sicurezza, tra cui:
      • Cifratura: cifriamo i dati trasmessi per garantire la riservatezza e impedire accessi non autorizzati.
      • Autenticazione: i dispositivi devono autenticarsi prima di poter inviare o ricevere dati, assicurando che solo dispositivi autorizzati possano far parte della rete.
      • Controllo degli accessi: solo dispositivi validati possono accedere alla rete e comunicare.
      • Ritrasmissione e conferma: quando trasmettiamo un pacchetto di dati, ci aspettiamo una conferma di ricezione. Se non riceviamo conferma, il pacchetto viene ritrasmesso.
  3. Livello di Rete (NWK): il livello NWK è responsabile della gestione e del controllo della topologia della rete, del routing dei pacchetti e della sicurezza. In pratica, è ciò che permette ai dispositivi di comunicare efficacemente all'interno di una rete Zigbee, organizzando e mantenendo la struttura della rete stessa.

Gestione della topologia di rete: Zigbee supporta diverse topologie di rete, tra cui:

  • Rete a stella (Star): un dispositivo centrale (coordinatore) comunica direttamente con gli altri nodi che non comunicano tra loro.
  • Rete a maglia (Mesh): Tutti i dispositivi possono comunicare direttamente tra loro, permettendo un'elevata resilienza. In caso di guasto di un nodo, il livello di rete ricalcola un nuovo percorso per i dati.
  • Rete a cluster tree: una struttura gerarchica che può essere utilizzata per applicazioni a basso consumo.

Il livello NWK si occupa di gestire e mantenere questa topologia, garantendo che i dispositivi siano connessi in modo ottimale.

Routing dei pacchetti: una delle funzioni fondamentali del livello di rete è il routing, ovvero la capacità di instradare i pacchetti di dati da un dispositivo all'altro attraverso i percorsi più efficienti. In una rete mesh, ad esempio, i dati potrebbero dover attraversare più dispositivi per raggiungere la destinazione. Il routing in Zigbee utilizza due principali tecniche:

  • Table-driven routing: viene costruita una tabella di routing che mantiene le informazioni sui percorsi disponibili verso i vari dispositivi della rete.
  • Routing ad-hoc on-demand: i percorsi vengono calcolati solo quando necessari, riducendo l'overhead dovuto al mantenere costantemente aggiornate le tabelle di routing.

Il livello NWK garantisce che i pacchetti trovino il percorso migliore, riducendo i tempi di trasmissione e aumentando l'affidabilità della comunicazione.

Gestione dei dispositivi e degli indirizzi: in una rete Zigbee, ogni dispositivo ha un indirizzo univoco. Il livello NWK si occupa di assegnare e gestire questi indirizzi, assicurandosi che ogni nodo abbia un indirizzo coerente e che la comunicazione possa essere instradata correttamente. Inoltre, gestisce l'unione di nuovi dispositivi alla rete e la rimozione dei dispositivi esistenti.

Sicurezza: il livello NWK implementa varie misure di sicurezza, come l'autenticazione dei dispositivi e la crittografia dei dati, per proteggere la rete da accessi non autorizzati e garantire la riservatezza dei dati. Zigbee utilizza chiavi di rete e chiavi di sessione per garantire che solo i dispositivi autorizzati possano partecipare alla rete e scambiare informazioni.

Discovery della rete: quando un nuovo dispositivo Zigbee si unisce alla rete, il livello NWK facilita il network discovery che consente al dispositivo di trovare il coordinatore della rete e identificare quali dispositivi sono disponibili per la comunicazione. Il discovery può essere sia passivo (ascoltando i segnali di altri dispositivi) che attivo (inviando richieste alla rete).

Scenario pratico

La rete ZigBee, come anticipato nella lezione precedente, è composta da vari componenti chiave, ognuno con un ruolo specifico nel funzionamento del sistema. Tra questi ricordiamo gli end device, i coordinatori e i router.

Supponiamo di avere all'interno di una rete un sensore di temperatura, un coordinatore e un router. Immaginiamo adesso che Il sensore di temperatura ogni qual volta rilevi una temperatura inferiore a un valore impostato, ad esempio 18 °C, invii un messaggio all'attuatore per il riscaldamento per accenderlo e aumentare la temperatura ambiente. Il sensore di temperatura rileva la temperatura ambiente e poiché la temperatura è sotto i 18 °C, genera un messaggio di allerta che può includere informazioni come l'ID del dispositivo, il tipo di messaggio (ad esempio, "ATTIVA RISCALDAMENTO") e la temperatura attuale.

Il sensore di temperatura invia il messaggio al coordinatore ZigBee. Qui entra in gioco il livello di rete (NWK). Prima il messaggio viene preparato nel livello MAC per includere l'indirizzo del coordinatore e i dettagli di sicurezza (cifratura, autenticazione). Il livello fisico (PHY) gestisce quindi la trasmissione del messaggio utilizzando onde radio. Il coordinatore ZigBee riceve il messaggio e verifica la sua validità utilizzando i meccanismi di autenticazione e la cifratura. Se il messaggio è valido, il coordinatore lo interpreta e determina che deve essere inoltrato all'attuatore per il riscaldamento. Se il coordinatore non è direttamente connesso all'attuatore, invia il messaggio a un router ZigBee presente nella rete che funge da intermediario.

Il router utilizza le informazioni dell'intestazione del messaggio per instradare correttamente il messaggio all'attuatore. La rete ZigBee sfrutta una topologia a maglia, quindi il messaggio può viaggiare attraverso vari router fino a raggiungere la destinazione. L'attuatore per il riscaldamento riceve il messaggio dal router. Anche qui, il messaggio passa attraverso i livelli MAC e PHY, garantendo la corretta ricezione e l'integrità dei dati.

Una volta ricevuto il messaggio, l'attuatore lo interpreta e riconosce che deve accendere il riscaldamento. L'attuatore per il riscaldamento esegue l'azione richiesta, attivando il riscaldamento per aumentare la temperatura ambiente. Potrebbe anche inviare un messaggio di conferma al sensore o al coordinatore per informare che il riscaldamento è stato attivato con successo.

Conclusioni

In questa lezione abbiamo visto come attraverso uno scenario pratico, un sensore di temperatura possa comunicare con un attuatore per regolare la temperatura di un ambiente in base ai dati raccolti. Questo esempio dimostra chiaramente l'efficacia dell'instradamento dei dati e la collaborazione tra i vari dispositivi ZigBee all'interno di una rete.

Infine, nonostante la necessità di un coordinatore o hub ZigBee per il corretto funzionamento della rete, esistono scenari in cui dispositivi ZigBee possono essere gestiti direttamente tramite altre tecnologie di comunicazione, come Bluetooth o Wi-Fi, oppure attraverso soluzioni ibride con l'integrazione di dispositivi come hub smart o dongle USB. Questo amplia ulteriormente le possibilità di interazione tra i dispositivi ZigBee e le app mobili. Senza la necessità di hardware aggiuntivo dedicato.

Ti consigliamo anche