Corso di LoRa - Teoria della Trasmissione
Table of Contents
Premessa
I messaggi LoRa possono essere suddivisi in messaggi uplink e downlink in base alla direzione in cui viaggiano.
messaggi Uplink
: vengono inviati dai dispositivi finali1 al Network Server inoltrato da uno o più gateway. Questo tipo di messaggio puo' essere confermato o meno. I messaggi dai dispositivi finali ai server di rete e applicazioni e viceversa potrebbero non essere confermati o confermati.Quando un dispositivo invia un messaggio non confermato, non richiede un riconoscimento dal server. Ad esempio, il più delle volte un rilevatore di fumo invierà collegamenti periodici e non confermati al server di rete tramite gateway vicini solo per confermare che funziona. I gateway ricevono i dati e li trasmettono al server di rete, che a sua volta li trasmette al server delle applicazioni. Quando si invia un messaggio confermato, il dispositivo finale richiede che il messaggio sia riconosciuto come ricevuto dal server di rete. Diamo un'occhiata di nuovo al nostro rilevatore di fumo. Quando il rilevatore di fumo rileva qualcosa, continuerà a trasmettere avvisi che devono essere confermati fino a quando l'avviso non viene riconosciuto. Il riconoscimento informa il rilevatore di fumo che qualcuno sta rispondendo all'avviso. Poiché i downlink della rete sono una risorsa scarsa, dovrebbero essere usati con parsimonia. I messaggi confermati devono essere utilizzati solo per dati di sensori molto importanti.messaggi downlink
:viene inviato dal Network Server a un solo dispositivo finale ed è trasmesso da un singolo gateway. Ciò include anche alcuni messaggi avviati da Application Server e Join Server.
Panoramica sulla tecnologia LoRa
LoRa (Long Range) è una tecnologia che fa riferimento ad uno stack composto da due livelli. mentre il secondo livello è il protocollo per il livello MAC (Media Access Control) chiamato LoRaWAN.
Il primo livello dello stack LoRa è il physical layer (PHY) ovvero lo strato fisico che utilizza una modulazione proprietaria derivata dal Chirp Spread Spectrum (CSS). LoRa offre un compromesso tra sensibilità e velocità dati, operando in un canale a larghezza di banda fissa di 125 KHz o 500 KHz (per canali uplink) e 500 KHz (per canali downlink canali). Inoltre, LoRa utilizza fattori di diffusione ortogonali. Ciò consente alla rete di preservare la durata della batteria dei nodi finali connessi effettuando ottimizzazioni adattive della potenza di un singolo nodo finale livelli e velocità dati. Ad esempio, un dispositivo terminale situato vicino a un gateway dovrebbe trasmettere i dati a basso fattore di diffusione, poiché è necessario una potenza molto ridotta. Tuttavia, un dispositivo finale a diverse miglia da un gateway dovra' trasmettere con un fattore di diffusione molto più elevato. Questa maggiore diffusione fornisce un maggiore guadagno di elaborazione e una maggiore sensibilità di ricezione, anche se la velocità dei dati e', necessariamente, essere inferiore.
LoRa è puramente un'implementazione del livello fisico (PHY) o "bit", come definito dall'OSI a sette livelli Modello di rete, illustrato nella Figura seguente. Invece del cablaggio, l'aria viene utilizzata come mezzo di trasporto Onde radio LoRa da un trasmettitore RF in un dispositivo IoT a un ricevitore RF in un gateway e viceversa.
Figure 1: Confronto tra i livelli ISO/OSI e il livelli LoRa
Fondamenti di rete LoRaWAN MAC
Per comprendere appieno le reti LoRaWAN, inizieremo con uno sguardo allo stack tecnologico. Come mostrato nella Figura seguente, LoRa è il livello fisico (PHY), ovvero la modulazione wireless utilizzata per creare il segnale a lungo raggio legame di comunicazione. LoRaWAN è un protocollo di rete aperto che offre sicurezza bidirezionale servizi di comunicazione, mobilità e localizzazione standardizzati e mantenuti dalla LoRa Alliance.
Figure 2: Struttura del protocollo LoRaWAN
Protocollo per il livello LoRaWAN MAC
LoRa utilizza due tipi di formati di pacchetti per la trasmissione dei dati: esplicito e implicito. Nel primo modo un pacchetto include i seguenti elementi:
Preamble
: viene utilizzato per sincronizzare il ricevitore con il trasmettitore. DEVE essere composto da 8 simboli per tutte le regioni, come menzionato nel documento Parametri regionali LoRaWAN. Tuttavia, il trasmettitore radio aggiungerà altri 4,25 simboli con una lunghezza del preambolo finale di 8 + 4,25 = 12,25 simboli;PHDR (intestazione fisica)
: è un elemento opzionale presente solo nella modalità esplicita che contiene informazioni sulla dimensione del carico utile e CRC (controllo di ridondanza ciclica);PHDR_CRC (Header CRC)
: è un campo opzionale che contiene un codice di rilevamento errori per correggere errori nell'intestazione;PHDR e PHDR_CRC
: sono codificati con il tasso di codifica di 4/8;PHYPayload
: contiene il frame completo generato dal livello MAC. La dimensione massima del carico utile varia in base a DR (Data Rate) ed è specifica per regione;CRC
è un campo opzionale che contiene un codice di rilevamento errori per correggere errori nel payload dei messaggi uplink.
PHYPayload e CRC sono codificati con una delle tariffe di codifica (4/5, 4/6, 4/7 o 4/8). Il frame completo viene quindi inviato utilizzando uno dei fattori di diffusione (SF = da 7 a 12). Le figure seguenti mostrano la struttura del livello fisico dei pacchetti uplink e downlink che utilizza la modalità esplicita.
Figure 3: Struttura del pacchetto LoRa a livello fisico di uplink in modalita' esplicita
Figure 4: Struttura fisica di un pacchetto LoRa di downlink in modalita' esplicita
Figure 5: Dettaglio del PHYPayload
Nella modalita' implicita l'intestazione viene rimossa dal pacchetto in cui la dimensione del payload e la velocità di codifica sono fisse o note in anticipo. Ad esempio i beacon utilizzano la modalità implicita del pacchetto radio LoRa per inviare informazioni di sincronizzazione del tempo dai gateway ai dispositivi finali. La figura seguente mostra la struttura di un pacchetto LoRa che utilizza la modalità implicita.
Figure 6: Struttura fisica di un pacchetto LoRa in modo implicito
Classe dei dispositivi finali
I dispositivi finali in una rete LoRaWAN sono disponibili in tre classi: Classe A2, Classe B e Classe C. Mentre i dispositivi finali possono sempre inviare uplink a piacimento, la classe del dispositivo determina quando può ricevere downlink. La classe determina anche l'efficienza energetica di un dispositivo. Più un dispositivo è efficiente dal punto di vista energetico, maggiore è la durata della batteria.
Classe A
Trascorrono la maggior parte del loro tempo in modalità sospensione. Poiché LoRaWAN non è un protocollo "slottato", i dispositivi finali possono comunicare con il server di rete in qualsiasi momento si verifichi una modifica nella lettura di un sensore o quando si accende un timer. Fondamentalmente, possono svegliarsi e parlare con il server in qualsiasi momento. Dopo che il dispositivo ha inviato un uplink, "ascolta" un messaggio dalla rete uno e due secondi dopo il uplink apre una finestra temporale di ascolto (Rx1) e se durante quel periodo non viene ricevuto alcun downlink apre una seconda finestra di ricezione (Rx2). L'ora di inizio di Rx1 inizia dopo un determinato periodo di tempo dopo la fine della trasmissione uplink. In genere, questo ritardo è di un secondo, tuttavia questa durata è configurabile. Rx2 in genere inizia due secondi dopo la fine della trasmissione uplink, sebbene questa durata sia anche configurabile, dopiche' la board si rimette in sonno. La classe A è la più efficiente dal punto di vista energetico e si traduce nella più lunga durata della batteria.
Figure 7: Temporizzazione di una board in classe A
Classe B
Al contrario, anziché aspettare solo che uno dei suoi sensori noti un cambiamento nell'ambiente o invii un timer, i dispositivi di fine Classe B si svegliano e aprono una finestra di ricezione per ascoltare un downlink in base a un programma configurabile e definito dalla rete . Un segnale di segnalazione periodico trasmesso dalla rete consente a tali dispositivi finali di sincronizzare i loro orologi interni con il server di rete. Di questa classe fanno parte i beacom.
Figure 8: Temporizzazione di una board in classe B
Classe C
I dispositivi finali di Classe C ("Continuo") non vanno mai a dormire. Ascoltano costantemente i messaggi downlink dalla rete, tranne quando trasmettono dati in risposta a un evento del sensore. Questi dispositivi sono più ad alta intensità energetica e di solito richiedono una fonte di alimentazione costante, piuttosto che fare affidamento su una batteria.
Figure 9: Temporizzazione di una board in classe C
Attivazione dei nodi in una rete LoRaWAN e Sicurezza
Ogni nodo di una rete LoRaWAN dispone delle seguenti informazioni:
- l’indirizzo identificativo del device denominato DevAddr (Device Address) che identifica il nodo nella rete e si compone di 32 bit, di cui i sette più significativi identificano la rete mentre i rimanenti sono assegnati in maniera arbitraria dal Network Server;
- un identificativo di applicazione denominato AppEUI (Application Identifier) composto da 64 bit. Questo è l’identificativo esclusivo dedicato al proprietario dell’applicazione a cui è assegnato il dispositivo, l’AppEUI è conservato all’interno del dispositivo;
- una chiaveve di sessione di rete denominata NwkSKEY (Network Session Key), questa chiave AES-128 bit è specifica per il nodo ed è utilizzata dal Network Server e dal device per generare il MIC (Message Integrity Code) per il controllare l’integrità del messaggio e per criptare e decriptare il FRMPayload (Frame Payload);
- una chiave di sessione per l’applicazione denominata AppSKey (Application Session Key), questa chiave AES-128 bit è specifica per il dispositivo ed è utilizzata dall’Application Server e dal nodo per criptare e decriptare il payload dei messaggi specifici di un’applicazione in modo da creare un canale di comunicazione sicuro end-to-end;
LoRaWAN rende disponibili due modalità per associare un nodo alla rete: la modalità Over-The-Air Activation (OTAA) e la modalità Activation By Personalization (ABP).
Per ulteriori informazioni sulla sicurezza vds le specifiche LoRaWAN.