LoRa è una delle tecnologie più interessanti che maggiormente contribuir`a nei prossimi anni allo sviluppo delle LPWAN. Il termine LoRa è l’acronimo di Long Range e si colloca nell’ambito di applicazioni WAN a bassa potenza. LoRa è una tecnologia wireless proprietaria operante nella banda ISM (Industrial, Scientific and Medical) sviluppata dall’azienda francese Semtech Corporation. LoRa è un marchio sottoposto a brevetto, pertanto ogni altro produttore di componenti elettronici che volesse integrarla nei propri dispositivi dovrà corrispondere delle royalties alla casa francese.
Spesso si sente parlare di LoRa e LoRaWAN indistintamente, ma `e necessario fare distinzione tra i due termini. Il primo è il livello fisico (o modulazione wireless) utilizzato per creare un link di comunicazione a lungo raggio attraverso questa tecnologia. Adotta una tecnica di modulazione chiamata CSS (Chirp Spread Spectrum) utilizzata gia` da decenni in ambito militare e nelle comunicazioni aerospaziali, ma che è stata impiegata per la prima volta in ambito commerciale grazie a Semtech. LoRaWAN `e il protocollo di comunicazione superiore a quello fisico con il quale vengono definite tutta una serie di regole e l’architettura della rete. I requisiti di progettazione di questo protocollo sono in linea con le caratteristiche definite per le LPWAN, ovvero il risparmio energetico dei dispositivi, la capacit`a della rete, la qua- lit`a del servizio, la sicurezza e la gestione di applicazioni vaste e variegate.
La LoRa Alliance (https://www.lora-alliance.org/) è un’organizzazione non profit nata con lo scopo di standardizzare ilprotocollo e veicolare il successo a livello globale, i cui membri sono i maggiori leader del mercato, tra cui IBM, GoogleCloud, Cisco, Orange, ST Microelectronics, Bouygues telecom e, ovviamente, Semtech.
La caratteristica di LoRa, in linea con le linee guida delle reti LPWAN, `e quella di permettere la comunicazione tradispositivi su lungo raggio e con bassa potenza. Inoltre, `e in grado di colmare quel gap che sia le reti cellulari che le tecnologie come WiFi, BLE (bluetooth low energy) non sono in grado di soddisfare, in quanto le prime richiedono una elevata capacit`a di banda e potenza trasmissiva mentre le seconde sono state pensate principalmente per ambienti indoor e per applicazioni a corto raggio. Le tecnologie basate su standard IEEE 802.15.4 come Zigbee, soddisfano il requisito di risparmio energetico ma non sono state progettate per trasmissioni a lungo raggio. Lo standard IEEE 802.15.4 adotta come soluzione al problema di copertura di una vasta aria, l’implentazione di una topologia di rete amesh, che però ha come svantaggio l’utilizzo di nodi che svolgono il compito di routing quindi devono essere sempreaccesi.
Figura 1 – Confronto tra LoRA e altre tecnologie wireless.
LoRa opera all’interno della banda ISM ovvero la porzione di spettro elet- tromagnetico riservato dall’ITU (International Telecommunication Union) alle applicazioni di radiocomunicazioni non commerciali, ma per uso industriale, scientifico e medico. I requisiti normativi sono differenti in base ai vari continenti. Le due frequenze più diffuse sono 868 MHz inEuropa e 915 MHz in Nord America. Altre regioni, in particolare l’Asia, hanno esigenze diverse. Queste frequenze, denominate Sub GigaHertz, hanno un’ottima ca- pacit`a di propagazione nello spazio e sono abbastanza resistenti agliostacoli, pertanto si prestano bene agli ambiti in cui sono necessarie le trasmissioni a lungo raggio. Di contro, utilizzando una limitata ampiezza di banda, non consentono il trasporto di dati ad elevato bit rate. Una trasmissione LoRa pu`o estendersi in campo aperto fino a 15 chilometri di distanza ed in ambito metropolitano fino ad un paio di chilometri. [20] A livello fisico la tecnologia LoRa impiega, in Europa, 10 canali di trasmissione nella banda degli 867-869Mhz. I canali hanno un’ampiezza di banda leggermente differente in base a che si tratti di canali in uplink (trasmissione disegnale) o downlink (ricezione di segnale). Nel primo caso l’ampiezza di banda è di 125/250 KHz, mentre nel secondo caso è di 125 KHz (in Europa) [2].
LoRa è una tecnologia di trasmissione wireless proprietaria di Semtech. Essa utilizza la tecnica CSS, “Chirp SpreadSpectrum”, per ottenere una buona resilienza al rumore e raggiungere coperture di diversi chilometri sia in aree rurali che in zona urbane. Si presentano brevemente gli aspetti principali inerenti alla trasmissione LoRa che sono risultati utili al prosieguo del lavoro.
Come già accennato il segnale wireless trasmesso si basa sulla tecnica CSS. Esso è composto da simboli, contenenti leinformazioni da trasportare, ciascuno ha le seguenti caratteristiche:
All’interno della banda del segnale esistono 2SF livelli di frequenza dai quali ciascun simbolo può originarsi (SF è lo “Spreading Factor”). Pertanto per ciascun SF è possibile ottenere 2SF simboli diversi e ogni simbolo codifica un numero di bit pari a SF.
Figura 2 – Rappresentazione di un “upchirp”.
Si riporta (1):
𝑅𝑐ℎ𝑖𝑝 = 𝐵𝑊
e (2):
𝑇𝑐ℎ𝑖𝑝 = 𝑅𝑐ℎ𝑖𝑝−1
Con 𝑅𝑐ℎ𝑖𝑝 frequenza di un singolo “chip” e 𝑇𝑐ℎ𝑖𝑝 durata di un singolo “chip”. A partire dall’equazione (2) definiamo la durata di un simbolo (3):
e (4):
Infatti ciascun simbolo è ottenuto moltiplicando i dati da trasmettere per uno “spreading code” composto da 2SF “chips”.
Infine calcoliamo la rapidità di variazione delle frequenze di un simbolo come (5):
Come si può notare dall’equazione (6) è possibile modificare la “pendenza” di un simbolo agendo sulla BW e sullo SF. Unaproprietà interessante che si ottiene da questo fenomeno è l’ortogonalità dei simboli. Due simboli si definiscono ortogonali quando configurati con opportune valori di BW e SF non interferiscono l’uno con l’altro pur sovrapponendosi temporalmente. Grazie a tale proprietà è possibile avere contemporaneamente trasmissioni multiple sullo stesso canale. In Figura 3 si possono osservare simboli non ortogonali tutti dotati della stessa rapidità di variazione di frequenza nel tempo.
Figura 3 – Spettrogramma di simboli non ortogonali.
Invece in Figura 4 i simboli rappresentati sono ortogonali tra di loro.
Figura 4 – Spettrogramma di simboli ortogonali.
SF | 07 | 08 | 09 | 10 | 11 | 12 | 07 | 08 | 09 | 10 | 11 | 12 | 07 | 08 | 09 | 10 | 11 | 12 | ||
BW | 125 | 125 | 125 | 125 | 125 | 125 | 250 | 250 | 250 | 250 | 250 | 250 | 500 | 500 | 500 | 500 | 500 | 500 | ||
SF | BW | |||||||||||||||||||
07 | 125 | X | X | X | ||||||||||||||||
08 | 125 | X | X | X | ||||||||||||||||
09 | 125 | X | X | |||||||||||||||||
10 | 125 | X | X | |||||||||||||||||
11 | 125 | X | ||||||||||||||||||
12 | 125 | X | ||||||||||||||||||
07 | 250 | X | X | |||||||||||||||||
08 | 250 | X | X | |||||||||||||||||
09 | 250 | X | X | X | ||||||||||||||||
10 | 250 | X | X | X | ||||||||||||||||
11 | 250 | X | X | X | ||||||||||||||||
12 | 250 | X | X | |||||||||||||||||
07 | 500 | X | ||||||||||||||||||
08 | 500 | X | ||||||||||||||||||
09 | 500 | X | X | |||||||||||||||||
10 | 500 | X | X | |||||||||||||||||
11 | 500 | X | X | X | ||||||||||||||||
12 | 500 | X | X | X |
Figura 5 – Configurazioni di Spreding Factor (SF) e Bandwidth [kHz] (BW) non ortogonali. Evidenziate in rosso le configurazioni disponibili per le reti LoRaWAN.
Un altro aspetto della modulazione LoRa è lo schema di correzione degli errori utilizzato per migliorare la robustezza dei segnali trasmessi. Esso garantisce prestazioni di decodifica migliori a spese di una certa ridondanza introdotta nei datitrasmessi.
Partendo da un bit rate di modulazione Rb pari a (6):
dove SF indica il numero di bit presenti in ogni simbolo, possiamo definire un bit rate nominale 𝑅𝑏𝐼 che tiene conto anche della ridondanza introdotta dalla tecnica di correzione (7):
Nell’equazione (7) il 𝑅𝑎𝑡𝑒 𝐶𝑜𝑑𝑒, sempre minore di uno, quantifica l’overhead in trasmissione dovuto allo schema dicorrezione e dipende dal parametro detto “code rate”, abbreviato con CR [14].
Prima di proseguire mostrando le prestazioni dichiarate da Semtech sulla “sensitivity” offerta da LoRa nella decodifica dei messaggi, ovvero la minima intensità di un segnale correttamente rilevabile da un ricevitore, introduciamo il concetto di “link budget”. Esso rappresenta la quantità di energia che una trasmissione radio può spendere per propagarsi nelmezzo di comunicazione e raggiungere un ricevitore con una potenza sufficiente alla decodifica delle informazionitrasportate.
La potenza di una trasmissione radio varia durante il tragitto tra il trasmettitore e il ricevitore. Si hanno solitamente perdite dovute alle connessioni tra i vari componenti dei dispositivi, guadagni di potenza forniti dalle antenne ma soprattutto siha un grandissimo degrado delle prestazioni durante la propagazione del segnale in aria. In Figura 8 si propone una rappresentazione grafica della variazione di potenza di un segnale durante la sua propagazione.
Figura 6 – Potenza di un segnale nel tragitto dal trasmettitore al ricevitore.
Utilizzare modulazioni wireless che offrono una “sensitivity” molto bassa è vantaggioso perché permettono dicoprire lunghe distanze in trasmissione.
Per quantificare le prestazioni dichiarate da Semtech [14] si sono calcolate le distanze teoriche massime di alcune trasmissioni LoRa supponendo l’utilizzo della massima potenza permessa ai dispositivi, ovvero 14dB [12], e il modello dipropagazione denominato “Okumura-Hata”, appositamente realizzato per lo studio di comunicazioni radio in scenari urbani [15]. In particolare la formula considerata per il calcolo del “path loss”, ovvero la perdita di potenza del segnale durante la fase di propagazione in aria, è stata (8):
𝐿𝑢 = 69.55 + 26.16 ∗ 𝑙𝑜𝑔10 𝑓 − 13.82 ∗ 𝑙𝑜𝑔10 ℎ𝐵 − 𝐶𝐻 + (44.9 − 6.55 ∗ 𝑙𝑜𝑔10 ℎ𝐵) ∗ 𝑙𝑜𝑔10 𝑑
Dove per città grandi si ha (9):
Con:
I valori ottenuti nei calcoli al variare delle configurazioni di rete considerate sono riassunti in Tabella 1.
Spreading Factor | Bit Rate1 [kb/s] | Sensitivity1 [dBm] | Covered Distance2 [km] |
12 | 0.293 | -137 | < 4.68 |
11 | 0.537 | -134.5 | < 3.99 |
10 | 0.976 | -132 | < 3.49 |
09 | 1.757 | -129 | < 2.88 |
08 | 3.125 | -126 | < 2.38 |
07 | 5.468 | -123 | < 1.96 |
06 | 9.375 | -118 | < 1.42 |
1 – si considera una bandwidth di 125kHz. | |||
2 – nell’utilizzo dell’equazione (9) è stato considerato hB = 25m, hM = 1.5m e f = 868MHz. |
Tabella 1 – Bit rate e sensitivity di diverse configurazioni di trasmissioni LoRa e relative distanze di copertura derivate con l’utilizzo dell’equazione.
LoRa PHY (livello fisico) utilizza CSS (Chirp Spread Spectrum) come tecnica di dispersione dello spettro. Questa modulazione `e stata sviluppata originariamente per applicazioni radar fin dagli anni ’40 per poi essere adot- tata indiverse applicazioni di comunicazione di ambito militare. I punti di forza di questo tipo di modulazione sono la potenza relativamente bassa e l’elevata robustezza intrinseca a meccanismi di degrado del canale di comuni- cazione da interferenze come il multipath fading, l’effetto Doppler e l’in-band jamming.
Europa | Nord America | |
Banda difrequenza | 867 − 869 MHz | 902 − 928 MHz |
Canali | 10 | 64 + 8 + 8 |
BW canale uplink | 125/250KHz | 125/500KHz |
BW canale downlink | 125KHz | 500KHz |
Potenza TX uplink | +14dBm | +20 dBm tip. (+30 dBm ammesso) |
Potenza TX downlink | +14dBm | +27dBm |
SF uplink | 7 − 12 | 7 − 10 |
V elocita` dati | 250 ∼ 50 kbps | 980 ∼ 21, 9 kbps |
Bilancio collegamento uplink | 155dBm | 154 dBm |
Bilancio collegamento downlink | 155dBm | 157 dBm |
Tabella 2 – Riepilogo caratteristiche spettro LoRA.
Essendo resistente all’effetto Doppler pu`o essere anche impiegata per oggetti in movimento. CSS codifica i dati conun “chirp”, essenzialmente un segnale sinusoidale modulato in frequenza a banda larga che varia linearmente con il tempo, crescendo (up-chirp) o decrescendo (down-chirp) [23].
CSS, a differenza di FHSS e DSSS, non aggiunge alcun elemento pseudo- casuale al segnale per aiutare a distinguerlo dal rumore sul canale, affidandosi invece alla natura lineare dell’impulso del chirp. La modulazione LoRa ado- pera pertanto una variazione di frequenza, concettualmente simile ad FSK (Frequency Shift Key) ma con uno schema un p`opiu` complesso che rende la trasmissione piu` resiliente alle interferenze. L’intera banda di canale viene impiegata per la trasmissione. La bandwidth (BW) è la porzione di spettro occupata da un chirp, che nel caso di LoRa, è scalabile ed è stata stabilita essere, in base agli accordi internazionali, di 125 Khz, 250 Khz e 500 Khz.
Figura 7 – Rappresentazione di un chirp.
In Europa sono ammesse solo le prime due. Un incremento della banda permette di usare un data rate effettivo piu` alto,ma esistono dei vincoli nor- mativi da rispettare in merito all’occupazione di banda. Sebbene CSS `e una tecnica di dispersione dello spettro e quindi garantisce una migliore qualit`a di trasmissione, per poter garantire un buoncompromesso tra performance ed impiego minimo di risorse i canali LoRa dispongono di una bandwidth ristretta [21].La modulazione spread spectrum LoRa viene eseguita attra- verso la rappresentazione di ciascun bit dell’informazionedel payload in piu` chirps di informazione. Il rate con il quale l’informazione viene diffusa ed inviata `e relativa al symbolrate. Il rapporto tra il symbol rate nominale ed il chip rate `e chiamato spreading factor e rappresenta il numero di simboli inviati per bit di informazione. Spreading Factor (SF) è ottenuto calcolando il logaritmo del numero di chirps per simbolo, in quanto 1 simbolo equivale a 2SF [21].
LoRa offre sei diversi fattori di dispersione che vanno da SF-7 a SF-12. Quanto piu` il fattore di dispersione `e alto, tanto piu` il segnale `e robusto e sopravvive alle lunghe distanze. Nella Tabella 3 vengono riportati i valori di spreading factor ed il relativo numero di chips per simbolo.
Spreading Factor | Chirps / Symbol | Lora Demodulator SNR |
7 | 128 | -7.5 db |
8 | 256 | -10 db |
9 | 512 | -12.5 db |
10 | 1024 | -15 db db |
11 | 2048 | -17.5 db |
12 | 4096 | -20 db |
Tabella 3 – Lora Spreading Factor, Chirps Symbol, Demodulator SNR.
Nella Figura 8 `e possibile apprezzare la differenza della durata di un chip in relazione ai valori di SF. Ad un valore piu` elevato di SF corrisponde una durata maggiore del segnale.
Figura 8 – Spettrogramma dei diversi valori di Spreading Factor.
Il Chirp Rate rappresenta il numero il numero di chirp per secondo ed `e equivalente alla BW [21]. Il Coding Rate(CR) viene usato per migliorare la robustezza di un link LoRa ed indica il quantitativo di ridondanza applicata ai dati.Maggiore ridondanza equivale a fornire maggiore affidabilit`a al trasporto dei dati a discapito del quantitativo di datiutili del payload.
Esiste una relazione inversamente proporzionale tra ridondanza e bit rate. Il coding rate pu`o assumere valori da 1 a 4. Il modem LoRa impiega il con- trollo a ridondanza ciclica (CRC) per effettuare la correzione degli errori. Tuttavia la correzione degli errori introduce un overhead di dati relativo alla trasmissione. Il data overhead per trasmissione `e riepilogato nella seguente tabella:
Coding Rate | Cycle Coding Rate | Overhead Radio |
1 | 4/5 | 1.25 |
2 | 4/6 | 1.5 |
3 | 4/7 | 1.75 |
4 | 4/8 | 2 |
Tabella 4.3: Lora Coding Rate, Cycle Coding Rate,Overhead Radio.
Un simbolo nella modulazione CSS ha quattro importanti parametri: Spreading Factor, frequenza minima fmin, frequenza massima fmax, input bits. Per generare un simbolo CSS, `e necessaria una frequenza di parten- za f0. La frequenza di partenza `e compresa tra fmin e fmax e rappresenta l’informazione in input ottenuta con log2(SF ) [23]. Per SF 1, log2(SF ) bits definisco f0.
La lunghezza di un simbolo Ts pu`o essere cos`ı calcolata [23]:
Una volta che la lunghezza di un simbolo Ts `e stata definita, possiamo definire un chirp come un tono che oscilla tra f0 e fmax. La modulazione LoRa `e definita attraverso tre parametri: Spreading Factor (SF), bandwidth (BW) e frequenza del canale. Il compito svolto dal modulatore `e quello di tradurre i simboli costituiti da SF bits in chirps che corrispondono a 2SF samples ad un specifico chirp rate (BW). Pertanto i bits di SF del simbolo in ingresso si traduconoin 2SF spostamenti unici dell’onda base che rappresenta il chirp. Un aspetto importante della modulazione CSS `e che per ogni sim- bolo `e necessario raddoppiare il numero di samples in output necessari per modulare ilsimbolo. Questo rende la modulazione LoRa CSS molto lenta ma estremamente robusta alle interferenze ed alrumore.
Il fattore di dispersione SF, la bandwidth BW ed il coding rate determi- nano Il bit rate della trasmissione dati LoRa :
Dove:
Il bit rate in LoRa dipende dalla combinazione dei possibili valori di SF, CR e BW, pertanto si pu`o calcolare quali sono i data rate possibili. Il rapporto che esiste tra spreading factor e bit rate `e inversamente proporzionale. Se si vogliono raggiungere distanze maggiori bisogna aumentare spreading factor a discapito del bit rate, viceversa se si vuole incrementare data rate bisogna ridurre spreading factor. Nella Tabella 4 riporto un esempio del data rate ottenibileper le tre differenti bande a parit`a di spreading factor e coding rate [21].
In base ai requisiti dell’applicazione, ma soprattutto in base allo scenario in cui vengono collocati due stazioni chetrasmettono attraverso un link Lora `e possibile configurare i parametri di spreading factor, coding rate e bandwidth per ottenere le migliori condizioni per la qualit`a di servizio. Tra le features piu` interessanti di LoRa c’`e anche l’elevatasensitivit`a, in quanto la stazione radio `e in grado di decifrare il segnale fino alla soglia di -137 dBm.
Bandwidth (KHz) | Spreading Factor | Coding Rate | Nominal Rb (bps) |
125 | 7 | 4/5 | 5470 |
250 | 7 | 4/5 | 11000 |
500 | 7 | 4/5 | 21875 |
125 | 12 | 4/5 | 293 |
250 | 12 | 4/5 | 586 |
500 | 12 | 4/5 | 1172 |
Tabella 4 – Lora Bandwidth (KHz), Spreading Factor, Coding Rate, Nominal Rb.
Grazie a questa caratteristica, LoRa `e in grado di ricevere e trasmettere dati anche su distanze dell’ordine dei chilometri. Esiste un rapporto diretto tra spreading factor, bandwidth e la soglia di sensitivit`a possibile in relazione aquesti due fattori. Spreading Factor rappresenta il rapporto tra chip rate e symbol rate, pertanto per un valore alto di SFcorrisponde un incremento del Signal Noise Ratio (SNR), della sensitivita, della distanza ma anche tempo necessario allatrasmissione del dato (airtime). SNR `e il rapporto minimo tra potenza del segnale desiderata e rumore che pu`oessere demodulato e viene espressa in db [29]. Per il calcolo della sensibilit`a del ricevitore, `e necessario il valore SNR minimo in modo che l’informazione possa essere decodificata correttamente. Ad ogni valore di spreading factorcorrisponde una soglia minima di SNR. Ad esempio per un valore di SF pari a 7 `e necessario un valore minimo di-7.5 db di SNR per decifrare l’informazione. Questi valori possono cambiare anche in base alla BW. La tabella 4.6 riepiloga la corrispondenza che esiste tra SF, SNR e time on air sulla banda dei 125 KHz. Bisogna precisare che il time on air dipende anche dalla dimensione in byte del pacchetto inviato [21].
La soglia di sensitivit`a di un ricevitore radio indica il valore espresso in db al di sotto del quale non `e possibiledecodificare i dati trasmessi.
Spreading Factor | SNR Limit (db) | Time on air (10 byte packet) |
7 | -7.5 | 56 ms |
8 | -10 | 103 ms |
9 | -12.5 | 205 ms |
10 | -15 | 371 ms |
11 | -17.5 | 741 ms |
12 | -20 | 1483 ms |
Tabella 5 – Lora Spreading Factor,SNR Limit (db),Time on air.
La formula per calcolare la sensitivit`a S, di un ricevitore radio `e la seguente:
S = −174 + 10log10(BW ) + NF + SNR
Dove:
L’equazione della soglia di sensitivit`a prende in considerazione il valore di SNR, pertanto essendo quest’ultimo,nel caso di LoRa in riferimento a SF, ne consegue che esiste un valore di sensitivit`a diverso per ogni valore di SF.
Anche in questo caso per un piu` alto valore di SF corrisponde un piu` alto valore di SNR e quindi `e necessaria unasensitivit`a maggiore. La Tabella 6 mostra quali sono i valori di sensitivit`a in relazione ai valori di SF per ogni bandadi frequenza [21].
La modulazione LoRa implementata dal livello PHY fornisce un impor- tante miglioramento di link budget rispetto alle tradizionali modulazioni narrowband.
Spreading Factor | BW = 125 KHz | BW = 250 KHz | BW = 500 KHz |
7 | -126.50 | -124.25 | -120.75 |
8 | -127.25 | -126.75 | -124.00 |
9 | -131.25 | -128.25 | -127.50 |
10 | -132.75 | -130.25 | -128.75 |
11 | -134.50 | -132.75 | -128.75 |
12 | -133.25 | -132.25 | -132.25 |
Tabella 6 – Rapporto tra Spreading Factor e Bandwidth.
Il link budget massimo `e di 157 dB e viene calcolato in questo modo [22]:
LB = +20 − (−137) = +157dB
Dove:
Il livello fisico LoRa (PHY Layer) oltre a definire tutte le caratteristiche per la modulazione del segnale, definisce anche la struttura del pacchetto. BW e SF sono i principali parametri della modulazione LoRa. Un simbolo LoRa `e composto da 2SF chirps, che coprono l’intera banda a disposizione. Un chirps a livello fisico, inizia con una serie di upward chirps (variazione crescente della frequenza). La variazione di frequenza nel tempo viene ef- fettuata quando viene raggiunta la frequenza massima della banda per poi ripartire dalla frequenza minima, come `e possibile vedere in Figura 9.
Figura 9 – Variazione di frequenza nel tempo di un segnale emesso. fc `e la frequenza centrale del canale.
Sebbene la modulazione LoRa potrebbe trasmettere un qualsiasi frame, Semtech definisce uno specifico formato del frame per la trasmissioni di un pacchetto tra due stazioni LoRa. Un frame LoRa inizia con un preambolo. Il preamboloinizia con una sequenza costante di otto up-chirps che coprono l’intera banda di frequenza. Gli ultimi due up-chirps dell’ottetto, decodi- ficano la sync word. La sync word `e un valore di un byte che `e usato da differenti LoRa network che usando la stessa banda. Un dispositivo configu- rato con una specifica sync word potr`a fermare l’ascoltodelle trasmissioni se si accorge che la sync word non corrisponde alla sua configurazione. Dopo gli otto up-chirps seguono due down-chirps piu` 1/4 di down-chirp, per una durata di 2.25 simboli chiamati simboli di sincronizzazioneche vengono usati per la sincronizzare la trasmissione nel tempo. La durata totale del pream- bolo pu`o essere configurata tra 10.25 e 65539.25 simboli. A seguire c’`e la trasmissione dei simboli che identificano il payload. L’immagine 4.5 mostra la modulazione del segnale di un frame LoRa.
Dopo il preambolo c’`e un header opzionale. Quando `e presente, questo header `e trasmesso con un code rate di4/8. Questo indica la dimensione del payload (in byte), il code rate usato per la fine della trasmissione e se il CRC a 16-bit `e abilitato o meno, quindi se presente dopo il payload. L’header, inoltre, include un CRC che permette al receiver di scartare i pacchetti con un header non corretto. Il payload pu`o avere dimensioni da 1 a 255 byte. L’header pu`o essere disabilitato se ritenuto non opportuno usarlo per lasciare un maggiore spazio per il payload. Ilpayload `e sempre inviato dopo l’header e alla fine del frame pu`o esserci opzionalmente il CRC del payload. La Figura 11 mostra lo schema che riassume il formato del frame.
Figura 10 – Spettrogramma LoRa.
Per trasmettere il payload ns `e possibile calcolare quanti simboli sono necessari attraverso un’equazione che prende in considerazione tutti questi parametri. Per calcolare quanti sono i simboli necessari per la dimensio- ne totale del pacchetto bisogna aggiungere anche i simboli per codificare il preambolo. L’equazione `e la seguente :
Dove:
Figura 11 – Struttura di un frame LoRa.
LoRaWAN `e il protocollo di livello MAC creato per usare lo strato fisico LoRa. Esso `e stato progettato principalmente per le reti di sensori, in cui i dispositivi scambiano pacchetti con un server con un basso data rate e con un lungointervallo di tempo. Lo stack LoRaWAN `e composto da quattro livelli. Al livello piu` basso c’`e la specifica inerentel’accesso fisico alle frequenza della banda ISM e le relative regolamentazioni che dipendono dall’area geografica in cui si opera. Il secondo livello c’`e la specifica sulla modulazione LoRa e rappresenta lo strato proprietario di Semtech, in quanto la tecnica di CSS utilizzata da LoRa `e stata brevettata. Il livello Mac `e open source e definisce le classi degliend device. Il livello piu` alto `e l’applicazione in cui il dispositivo viene impiegato.
LoRAWAN definisce l’organizzazione della rete e quali sono i ruoli dei dispositivi in questo contesto. La topologia `e a stella, in cui vi `e un no- do centrale con la funzione di gateway in grado di instradare verso la rete Internet tutti i pacchetti provenienti dai vari dispositivi con cui interagisce attraverso un link LoRa entro il raggio di copertura della trasmissione. In questo design non `e previsto che i dispositivi possano comunicare diretta- mente tra loro e tantomeno possano instradare i pacchetti verso altri nodi.
Figura 12 – Stack LoRaWAN.
Questa scelta progettuale fa in modo che, sebbene l’architettura di rete sia abbastanza semplice ed il nodo gatewayrappresenta un single point of failure, permette di mantenere i costi di deploy bassi, in quanto i dispositivi hanno solo compito di trasmettere e ricevere dati verso il gateway e vengono assolti dalle funzioni di routing tipico delle reti mesh.
Nelle specifiche del protocollo LoRaWAN vengono definiti i ruoli dei com- ponenti all’interno della rete: end device, gateway e network server. Gli end device sono sensori a basso consumo energetico in grado di comunicare con ilgateway attraverso un link LoRa. All’interno di una rete LoRa possono esse- re presenti anche migliaia di questi nodi in quanto questi dispositivi possono trasmettere anche allo stesso tempo sul mezzo trasmissivo usando differentifrequenze o spreading factor [21].
Il gateway `e dispositivo intermedio in grado di instradare i pacchetti pro- venienti dagli end device verso il networkserver attraverso un collegamento IP che possa permettere un elevato throughput come ad esempio un link 3g/4g oppure Ethernet. In un deploy LoRaWAN possono esistere piu` gateways e lo stesso pacchetto pu`o essere ricevuto ed instradato da uno o piu` di essi. Per poter supportare una rete a stella di ampie dimensioni, il gateway deve disporre di buone capacit`a di ricezione, ed essere capace di gestire un alto numero di messaggi provenienti da svariati enddevice (anche sull’ordine delle migliaia). Il gateway `e in grado di ascoltare le trasmissioni anche su piu` canali e di decodificare pacchetti inviati con un differente spreading factor contemporaneamente.
Il network server `e una componente di back-end che svolge processi piu` complessi in relazione al management delnetwork. Esso `e responsabile della ricezione dei dati provenienti dai vari gateway e svolge diverse funzionalit`a tracui il filtraggio ed eliminazione di eventuali pacchetti duplicati. Il network server implementa la funzionalit`a di adaptivedata rate (ADR) allo scopo di massimizzare la vita delle batterie che alimentano i dispositivi e la capacit`a totale della rete. Il network server assegna a ogni end node che si vuole connettere alla rete, un data rate e una potenza di uscitada utilizzare per la trasmissione RF, diversa per ogni esigenza. L’algoritmo ADR assegna un data rate maggiore ai nodi terminali piu` vicini al gateway in quanto meno suscettibili alle interferenze, e una potenza di uscita minoreper la trasmissione RF. Minor tempo di trasmissione e minor potenza di uscita si traducono in un ovvio risparmioenergetico. Solo ai nodi che si trovano a distanze notevoli dal gateway, il server assegner`a un data rate piu` basso (minore suscettibilit`a ai rumori) e una maggiore potenza di uscita. Il data rate previsto non `e quindicostante. Le specifiche LoRaWAN indicano valori che vanno da 300bps fino a 50kbps [22].
I dati ricevuti possono essere inviati agli application server per le elabora- zioni successive oppure `e possibile inviareeventuali notifiche agli end device per far attuare un’azione. Non ci sono interfacce standard di trasmissione dei dati tranetwork server ed application server.
Figura 13 – Architettura LoRaWAN.
A differenza di una tradizionale rete cellulare o una rete Wi-Fi, gli end device non sono associati ad uno specifico gateway per poter accedere alla re- te. Il gateway ha semplicemente il ruolo di stabilire un link di comunicazione LoRa edi instradare i pacchetti ricevuti dagli end device verso il network server e viceversa, al piu` aggiungendo informazionisulla qualit`a di ricezione dei dati. In questo modo, un end device `e associato ad un network server il quale rappresentauna sorta di coordinatore della rete ed `e in grado di comunicare con un altro end device attraverso il gateway opportuno. A livello logico il gateway `e trasparente in quanto ha solo il ruolo di instradamento senza fare alcuna elaborazione. Le trasmissioni tra end device e gateway possono essere di due tipi:
Figura 14 – Struttura dei diversi componenti di una rete LoRaWAN e connessioni presenti tra di esse [Fonte: https://www.lora-alliance.org/technology].
LoRaWAN definisce tre classi di funzionamento, di cui solo la classe A deve essere obbligatoriamente implementata su tutti i dispositivi compatibili con LoRaWAN. Grazie a questa politica, abbiamo un insieme di caratteristiche di base che sono presenti su tutti i dispositivi finali LoRaWAN, mantenendo sia la complessità architettonica che il costo di produzione il più basso possibile.
LoRaWAN ha tre differenti classi di end device che si differenziano tra loro sulla modalit`a di ricezione dei pacchetti in downlink (da gateway verso end device), il che permette di soddisfare i requisiti di scenari applicativi differen- ti in relazione al consumo energetico.
Oltre alla classe di base, sono state definite due modalità di funzionamento più complesse con l’obiettivo di disaccoppiare le trasmissioni a valle da quelle a monte. Dato che queste due modalità avanzate possono essere più costose da progettare, produrre e mantenere, solo i dispositivi finali che richiedono fortemente queste caratteristiche sono tenuti a implementarle.
Di default i dispositivi LoRa operano in modalit`a classe A con le propriet`a di risparmio energetico, mentre devono essere esplicitamente configurati per operare in classe B o C. Inoltre i dispositivi di classe B e C devono comunque soddisfare anche i requisiti di classe A [22]. Le tre classi dei dispositivi sono:
La scelta della classe dell’end device deve essere ponderata in base ai re- quisiti dell’applicazione ed al contesto in cui si opera. Le classi A e B garantiscono una migliore efficienza energetica e sono stati pensati per i dispositivi alimentati a batteria, mentre gli end device di classe C sono alimentati at- traverso rete elettrica. Questo tipo di comunicazione non `e pensato per il risparmio energetico ma garantisce che il dispositivo possa ricevere direttive in un qualsiasi momento.La banda ISM utilizzata dalle reti LoRaWAN `e soggetta a limitazioni d’uso sulla base delle normative vigenti. Esistono delle regolamentazioni in merito alla potenza massima trasmissiva e sul duty cycle (ciclo di lavoro utile).
Figura 15 – Classe A.
Figura 16 – Classe B.
Le limitazioni sul duty cycle si traducono in un ritardo sul frame che deve essere successivamente inviato. In Europa sulla banda di frequenza degli 868 MHz il duty cycle `e pari a 1% per gli end device [27]. Questo implica che unend device su 100 slot di tempo (suddivisione logica del tempo) ne pu`o impiegare al piu` uno per la trasmissione. Inoltre dovr`a effettuare un salto di canale pseudo-random per ogni trasmissione. Infine, nelle public community network, esiste un regolamento per una equa politica di accesso al canale che limita la trasmissione in uplink a 30 secondi al giorno per end device ed i messaggi in down-link a 10 messaggi al giorno per end device. Tuttavia se si unarete LoRaWAN privata non sono previste que- ste limitazioni ma bisogna rispettare i limiti imposti dalle leggigovernative.
Figura 17 – Classe C.
Per quanto riguarda la politica di accesso al canale condiviso da parte di piu` stazioni trasmittenti, LoRa nonimplementa nessun meccanismo di chan- nel feedback ovvero di ascoltare il canale prima di trasmettere perverificare se `e occupato da un’altra trasmissione come avviene invece per il protocol- lo CSMA. I dispositivi di classe A implementano una politica di accesso al mezzo simile ad ALOHA, in cui il tempo `e suddiviso in intervalli logici (slot) di lunghezza prefissata. La trasmissione del dato sul canale avviene quando il trasmettitore radio `e pronto dopo averaspettato per un numero casuale di slot. Viene inviato sempre il primo pacchetto in testa alla coda del buffer. Nel caso di messaggi che richiedono conferma (ack) il trasmettitore effettua una ritrasmissione in caso di mancata ricezione diack.
Dopo ogni trasmissione in uplink, il dispositivo finale apre due brevi finestre di ricezione. La finestra di ricezione inizia esattamente dopo un intervallo di tempo predefinito dalla trasmissione dell’ultimo bit di uplink.
La prima finestra di ricezione (RX1) viene aperta dopo RECEIVE DELAY1 milli-secondi, che per impostazione predefinita è impostato su 1 secondo. Utilizza la stessa frequenza della trasmissione uplink precedente e, in generale, anche la stessa velocità di trasmissione (in alcune regioni può essere funzione della velocità di trasmissione uplink).
La seconda finestra di ricezione (RX2) viene aperta dopo RECEIVE DELAY2 millisecondi, definito come RECEIVE DELAY1 + 1 secondo. La fre- quenza e la velocità di trasmissione sono fisse per tutte le trasmissioni, quindi non dipendono dalla comunicazione uplink precedente, e sono configurabili tramite un comando MAC come rappresentato in Figura 18.
Figura 18 – Finestre di ricezione LoRaWAN.
Ciascuna finestra di ricezione viene mantenuta aperta almeno per il tempo necessario a de- ttrare il preambolo di una trasmissione downlink LoRa, che è dell’ordine dei microsecondi. Se un frame viene ricevuto correttamente durante la prima finestra di ricezione, il dispositivo finale non apre la seconda. Un dispositivo finale non deve trasmettere un altro messaggio uplink prima che sia stato ricevuto un messaggio downlink o che sia scaduta la finestra RX2.
LoRaWAN fornisce un protocollo di rete full stack, con caratteristiche di livello data- link, rete e trasporto, e supporta nativamente la crittografia, l’autenticazione e la comunicazione affidabile attraverso la ritrasmissione dei pacchetti.
Ogni pacchetto LoRa trasporta un carico utile fisico (PHYPayload) che contiene messaggi LoRaWAN. Quando un pacchetto LoRa contiene un messaggio LoRaWAN, il campo CRC, calcolato sul PHYPayload, è presente solo nelle trasmissioni up-link, poiché è disabilitato per le trasmissioni down-link.
Preamble | Physical Head | PHDR_CRC | PHY Payload | CRC* |
Figura 19 – Livello fisico della radio LoRa (messaggi CRC solo in uplink).
Il payload fisico contiene tre campi principali:
– MAC Header: specifica il tipo di messaggio e la versione di LoRaWAN;
– MAC Payload: contiene il frame LoRaWAN;
– MIC: il Message Integrity Code, è calcolato come specificato nella RFC 4493 e autentica ogni messaggio al LoRa Network Server.
Size (bytes) | 1 | 7…N | 4 |
PHY Payload | MAC Header | MAC Payload | MIC |
Figura 20 – Carico utile fisico LoRa strutturato come messaggio LoRaWAN.
L’intestazione MAC specifica il tipo di messaggio e la versione di LoRaWAN. Nella tabella 3.1 sono riportati tutti i possibili tipi di messaggio LoRaWAN.
Bit# | 7…5 | 4…2 | 1…0 |
Fields | Message Type | RFU | Major Version |
Figura 21 – LoRaWAN MAC header.
Msg Type | Description |
000 | Join Request |
001 | Join Accept |
010 | Unconfirmed Data Up |
011 | Unconfirmed Data Down |
100 | Confirmed Data Up |
101 | Confirmed Data Down |
110 | RFU |
111 | Proprietary |
Tabella 7 – LoRaWAN message types.
Il payload MAC contiene i campi obbligatori Frame Header e, facoltativamente, Frame Port e Frame Payload.
Size (bytes) | 7 … 22 | 0 … 1 | 0 … M |
MAC Payload | Frame Header | Frame Port | Frame Payload |
Figura 22 – LoRaWAN MAC payload.
Il Frame Header contienes il 32 bit Device Address, il campo Frame Control, il Frame Counter e il campo Frame Options, che viene utilizzato per aggiungere comandi MAC al traffico dati dell’utente.
Size (bytes) | 4 | 1 | 2 | 0 … 15 |
Frame Header | Device Addr | Frame Control | Frame Counter | Frame Options |
Figura 23 – LoRaWAN frame header.
Nel Frame Control sono presenti diversi flag importanti: il flag ADR segnala che la velocità dei dati è controllata dalla rete; il flag ADRACKReq è impostato dal dispositivo per verificare se il gateway è ancora in grado di ricevere il suo traffico; il flag ACK è impostato per confermare il precedente pacchetto ricevuto.
Bit # | 7 | 6 | 5 | 4 | 3…0 |
Fields | ADR | ADRACKReq | ACK | RFU | FOptsLen |
Figura 24 – LoRaWAN frame control.
Per impostazione predefinita, LoRaWAN cripta ogni Frame Payload mediante l’Application Session Key. Se il Frame Payload contiene un comando MAC, la Frame Port viene impostata a 0 e viene crittografata con la Network Session Key. Se la crittografia viene eseguita al di sopra del livello LoRaWAN, è possibile disabilitare questa funzione tramite un comando MAC, ma ciò è consentito solo se il frame payload non contiene un comando MAC.
I comandi MAC sono un insieme di messaggi scambiati esclusivamente tra il livello MAC dei dispositivi finali e il server di rete. Questi messaggi possono contenere informazioni utili per l’amministrazione della rete, come la verifica dello stato di un dispositivo o la modifica di alcuni parametri di comunicazione, e non sono mai visibili al server applicativo in esecuzione nel cloud o all’applicazione in esecuzione sul dispositivo finale.
I comandi MAC possono essere inviati come Frame Payload, impostando Frame Port a 0 ed eseguendo la crittografia tramite NetworkSessionKey. I comandi MAC possono anche essere inseriti nel campo FOpts, in questo caso non devono superare i 15 ottetti e vengono inviati sempre in chiaro.
Un comando MAC consiste in un identificatore di comando (CID) di 1 ottetto seguito da una sequenza di ottetti eventualmente vuota specifica del comando. I CID nell’intervallo tra 0x00 e 0x7F sono riservati, mentre i CID da 0x80 a 0xFF sono disponibili per le estensioni di rete proprietarie.
CID | Command | TX by | Description | |
ED | GW | |||
0x02 | LinkCheckReq | x | Used by an end-device to validate itsconnectivity to a network. | |
0x02 | LinkCheckAns | x | Answer to LinkCheckReq command.Contains the received signal powerestimation indicating to the end-devicethe quality of reception (link margin). | |
0x03 | LinkADRReq | x | Requests the end-device to change data rate, transmit power, repetition rate or channel. | |
0x03 | LinkADRAns | x | Acknowledges the LinkRateReq. | |
0x04 | DutyCycleReq | x | Sets the maximum aggregated transmit duty-cycle of a device | |
0x04 | DutyCycleAns | x | Acknowledges a DutyCycleReq command | |
0x05 | RXParamSetupReq | x | Sets the reception slots parameters | |
0x05 | RXParamSetupAns | x | Acknowledges a RXSetupReq command |
Tabella 8 – Comandi MAC da 0x02 a 0x05.
La Tabella 8 e la Tabella 9 contengono l’elenco dei comandi MAC definiti nella specifica LoRaWAN 1.0.
Per partecipare a una rete LoRa, un dispositivo finale deve ottenere tre informazioni:
CID | Command | Transmitted by | Description | |
ED | GW | |||
0x06 | DevStatusReq | x | Requests the status of the end-device | |
0x06 | DevStatusAns | x | Returns the status of the end-device, namely its battery level and its demodulation margin | |
0x07 | NewChannelReq | x | Creates or modifies the definition of a radio channel | |
0x07 | NewChannelAns | x | Acknowledges a NewChannelReq command | |
0x08 | RXTimingSetupReq | x | Sets the timing of the of the reception slots | |
0x08 | RXTimingSetupAns | x | Acknowledge RXTimingSetupReq command | |
0x08 to 0xFF | Proprietary | x | x | Reserved for proprietary network command extensions |
Tabella 9 – Comandi MAC da 0x06 a 0xFF.
A questo scopo esistono due possibili procedure di adesione: l’Attivazione via etere Over-The-Air Activation (OTA), in cui ogni dispositivo finale deve eseguire una procedura di adesione che prevede lo scambio di alcuni messaggi con l’infrastruttura del server, e l’Attivazione tramite personalizzazione Activation by Personalization, in cui i dispositivi finali conoscono già l’indirizzo e le chiavi, quindi possono bypassare la procedura di adesione.
Mentre l’attivazione tramite personalizzazione può essere banalmente implementata caricando su tutti i dispositivi finali l’indirizzo e le chiavi di sessione, l’adesione OTA richiede sia un protocollo per ottenere le informazioni dal server, sia un algoritmo per generare le chiavi di sessione.
La procedura di join consiste in due messaggi:
Se questa procedura si conclude con successo, sia il dispositivo finale che il server possono eseguire l’algoritmo di generazione della chiave per calcolare la chiave di sessione.
I dispositivi finali di Classe B aprono finestre di ricezione, chiamate ping slots, a intervalli di tempo prevedibili, consentendo l’invio di messaggi down-link avviati dal server, chiamati ping. Per implementare questa funzione, tutti i gateway devono trasmettere in modo sincrono un beacon. Se un dispositivo finale si sposta e rileva un beacon diverso, deve inviare un messaggio up-link per aggiornare il percorso di routing.
Tutti i dispositivi finali entrano nella rete come classe A e la decisione di passare alla classe B deve provenire dal livello applicativo del dispositivo finale. In questo caso, il livello Lo- RaWAN cerca un beacon e, se lo trova, seleziona la velocità dei dati e la periodicità dello slot di ping.
Il dispositivo finale deve trasmettere periodicamente un messaggio di uplink per aggiornare il percorso di routing nel server di rete. Se non riceve alcun beacon per un certo periodo di tempo, passa nuovamente alla classe A.
La classe C è implementata aprendo RX2 il più spesso possibile, in modo da essere continuamente in ascolto del canale. Questo porta a un protocollo inefficiente, con un consumo energetico molto elevato, non adatto a dispositivi finali alimentati a batteria. I dispositivi finali di classe C non possono implementare l’opzione di classe B.
In modalità Classe B e Classe C i dispositivi possono ricevere anche frame multicast in downlink. L’indirizzo multicast multicast address, la NetSessionKey e la AppSessionKey devono provenire dal livello applicativo e i frame multicast non possono trasportare comandi MAC. Poiché gli ACK non sono ammessi quando si opera in modalità multicast, il tipo di messaggio LoRaWAN deve essere “Unconfirmed Data Down”.
Come già detto, ogni gateway comunica con il server di rete tramite una connessione IP standard. A seconda del server di rete e del packet forwarder installato sul gateway, possono essere utilizzati diversi protocolli applicativi.
Le specifiche LoRaWAN non richiedono uno specifico protocollo gateway-server, poiché il server deve ricevere il carico fisico completo LoRa, incapsulato nel protocollo più adatto, a seconda del caso d’uso specifico.
Tuttavia Semtech, l’azienda che ha sviluppato inizialmente la modulazione LoRa e il protocollo LoRaWAN, ha rilasciato anche un proprio protocollo gateway-server, chiamato Gateway Message Protocol (GWMP).
GWMP si basa su UDP, che lo rende un protocollo senza connessione, e utilizza il formato JSON per trasportare il frame ricevuto con le statistiche associate.
Ogni messaggio GWMP, come mostrato nella figura 3.11, comprende tre campi obbligatori e due opzionali:
Size (bytes) | 1 | 2 | 1 | 0/8 | 0 … N |
Content | Protocol Ver. | Token | Type | GW EUI | JSON obj |
Figura 25 – GWMP packet format.
L’oggetto Json è utilizzato per trasportare i messaggi LoRaWAN e altre informazioni. Per migliorare la compatibilità sono ammessi solo caratteri ASCII e non devono esserci spazi bianchi al di fuori del testo quotato. Inoltre, l’oggetto JSON di primo livello può contenere altri oggetti, purché rispettino la restrizione sopra descritta.
Type | Code | Transmitted by | |
Gateway | Network Server | ||
PUSH DATA | 0x00 | x | |
PUSH ACK | 0x01 | x | |
PULL DATA | 0x02 | x | |
PULL ACK | 0x03 | x | |
PULL RESP | 0x04 | x | |
TX ACK | 0x05 | x |
Tabella 10 – GWMP types.
Nelle trasmissioni upstream l’oggetto Json può contenere un array di oggetti RXPK, uno per ogni messaggio LoRa trasportato, e un oggetto STAT, che riporta alcune statistiche sul gateway.
Come già detto, ogni oggetto RXPK contiene un frame LoRa catturato, codificato nel formato Base64, insieme all’ora di ricezione e alle informazioni sul canale LoRa su cui è stato rilevato (data rate, coding rate, frequenza, ecc.). In Figura 28è mostrato un esempio di un possibile oggetto RXPK.
1. | “rxpk”: | |
2. | [{ | |
3. | “time”:”2013-03-31T16:21:17.528002Z”, | |
4. | “tmst”:3512348611, | |
5. | “chan”:2, | |
6. | “rfch”:0, | |
7. | “freq”:866.349812, | |
8. | “stat”:1, | |
9. | “modu”:”LORA”, | |
10. | “datr”:”SF7BW125″, | |
11. | “codr”:”4/6″, | |
12. | “rssi”:-35, | |
13. | “lsnr”:5.1, | |
14. | “size”:32, | |
15. | “data”:”-DS4CGaDCdG+48eJNM3Vai-zDpsR71Pn9CPA9uCON84″ | |
16. | }] |
Figura 26 – Esempio di oggetto RXPK.
L’oggetto STAT è utilizzato per informare il server di rete sullo stato del gateway. In particolare, contiene le coordinate geografiche del gateway e le statistiche sui messaggi ricevuti e inoltrati. Un esempio di oggetto STAT è riportato in Figura 29.
1. | “stat”: | |
2. | { | |
3. | “time”:”2014-01-12 08:59:28 GMT”, | |
4. | “lati”:46.24000, | |
5. | “long”:3.25230, | |
6. | “alti”:145, | |
7. | “rxnb”:2, | |
8. | “rxok”:2, | |
9. | “rxfw”:2, | |
10. | “ackr”:100.0, | |
11. | “dwnb”:2, | |
12. | “txnb”:2 | |
13. | } |
Figura 27 – Esempio di un oggetto STAT.
L’oggetto TXPK è incluso nei messaggi downstream per trasportare il messaggio LoRa downlink insieme alle informazioni necessarie sui parametri, quali velocità di trasmissione dati, velocità di codifica e frequenza, da utilizzare per la trasmissione. È importante notare che i gateway, in generale, non hanno alcuna nozione del livello LoRaWAN e delle sue finestre di ricezione, quindi si affidano al timestamp incluso nell’oggetto TXPK per sincronizzarsi correttamente con le finestre di ricezione dei dispositivi finali. La Figura 30 riporta una possibile istanza di un oggetto TXPK.
1. | “txpk”: | |
2. | { | |
3. | “imme”:true, | |
4. | “freq”:864.123456, | |
5. | “rfch”:0, | |
6. | “powe”:14, | |
7. | “modu”:”LORA”, | |
8. | “datr”:”SF11BW125″, | |
9. | “codr”:”4/6″, | |
10. | “ipol”:false, | |
11. | “size”:32, | |
12. | “data”:”H3P3N2i9qc4yt7rK7ldqoeCVJGBybzPY5h1Dd7P7p8v” | |
13. | } |
Figura 28 – Esempio di oggetto TXPK.