Einfache Realisierung einer Funkstrecke LoRa ohne WAN

Modulsteuerung und die optimalen Parameter

Das RN2483-Modul unterstützt eine ganze Reihe von ASCII-Befehlen, die allesamt im Command Reference User‘s Guide [6] von Microchip beschrieben sind. Es lassen sich drei Befehlstypen unterscheiden:

 Systembefehle (»sys«),
 Befehle für die Konfigurierung eines LoRaWANs (»mac«) und
 Befehle für die Konfigurierung des Funktransceivers (»radio«).

Diese Befehle sind fallabhängig (case sensitive) und sind stets mit »\r\n« abzuschließen. Darauf folgende (optionale) Parameter dürfen grundsätzlich keine Leerzeichen enthalten.

Die »sys«-Befehle sind für das Auslesen und Ändern von grundlegenden Systemeinstellungen oder auch für die Kommunikation mit den GPIO-Leitungen zuständig. Mit »get«, gefolgt von einem weiteren Parameter, lassen sich beispielsweise verschiedene Informationen aus dem Modul auslesen, wie etwa die Version der Hardware-Plattform mit »sys get ver«. Dementsprechend werden Werte mit »set« geschrieben. Beispielsweise schaltet die Befehlsfolge »sys set pinmode GPI0 ana« den GPIO-Pin Null von einem digitalen in einen analogen Eingang.
Wenn wie hier kein LoRaWAN, sondern eine möglichst Strom einsparende und weitreichende (im wahrsten Sinn des Wortes) Funkstecke für Sensordaten realisiert werden soll, sind zunächst die standardmäßig aktivierte LoRaWAN-Funktion abzuschalten und stattdessen eine Punkt-zu-Punkt-Funktion festzulegen. Dies wird über den Befehl »mac pause« erreicht. Das Modul antwortet darauf mit einer Zeitangabe in Millisekunden (was ca. 50 Tagen entspricht), für die die LoRaWAN-Funktion daraufhin deaktiviert wird. Mit jedem Neustart wird diese Zeit wieder zurückgesetzt.
Wichtig für die optimale Konfiguration der Funkstrecke sind die »radio«-Kommandos, um etwa die Sendeleistung und die Bandbreite einstellen zu können. In Tabelle 3 sind die wichtigsten Parameter mit ihren jeweiligen Voreinstellungen angegeben, die jeweils mit »radio set« gesetzt und mit »radio get« gelesen werden können. Diese Default-Konfiguration lässt sich über das Kommando »sys reset« jederzeit wiederherstellen.
Der »pwr«-Parameter stellt die Sendeleistung ein, was logischerweise nicht nur die Reichweite stark beeinflusst, sondern auch den Energiebedarf. Die Sendeleistung kann zwischen –3 dBm und +15 dBm betragen, wobei im 868-MHz-Band eine maximale Leistung von +14 dBm erlaubt ist. Wie Tabelle 4 zu entnehmen ist, verdoppelt sich der Eingangsstrom in etwa bei einer Anhebung der Sendeleistung von –3 dBm auf +12 dBm. Deshalb ist diese Einstellung auf die zu überbrückende Strecke anzupassen, insbesondere dann, wenn der Energiebedarf der Applikation beispielsweise per Energy Harvesting gedeckt werden soll.
Das Besondere am LoRa-Funkverfahren ist nicht allein die Verwendung eines Frequenzspreizverfahrens (Chirp), sondern dass die Bandbreite von der Datenrate entkoppelt wird, was sich über den Spreizfaktor (SF) einstellen lässt. Ein kleiner Spreizfaktor erlaubt eine hohe Bitrate (bis zu 50 kbit/s), ein großer (SF12) hingegen nur noch 290 bit/s. Ein hoher Spreizfaktor (SF) verbessert grundsätzlich das Signal-zu-Rausch-Verhältnis (SNR), was jedoch die Sendezeitdauer (Time on Air) und damit auch die Stromaufnahme in der Summe wieder erhöht. Mit SF12 ergibt sich ein SNR von –20 dB, womit sich eine Sendezeitdauer von 528 ms einstellt, während mit SF10 ein SNR von –15 dB und eine Sendezeitdauer von 132 ms folgt.
Die Empfindlichkeit (Sensitivity) lässt sich einstellen, indem man die Bandbreite verkleinert. Allerdings werden die Daten dann in einem kleineren Spektrum übertragen, was mehr Zeit benötigt und deshalb auch mehr Sendezeitdauer. Es sind Bandbreiten von 125 kHz, 250 kHz und 500 kHz möglich, sodass für eine unkritische Sendezeitdauer eine Bandbreite von 125 kHz passend erscheint, was mit SF12 zu einer Empfindlichkeit von –134 dBm führt.
Mit der Codierrate (»cr«) wird festgelegt, wie viele zusätzliche Bit (1 bis 4) für die Fehlerkorrektur mit zu übertragen sind. Je mehr Bit hierfür verwendet werden, desto besser ist die Fehlerkorrektur und desto stabiler ist damit auch die Datenübertragung. Die Daten werden wie üblich in Paketen übertragen, die mit einem Präambel-Feld beginnen, dessen Länge sich mit dem Parameter »prlen« verändern lässt (Bild 4). Kleinere Pakete verkürzen die Sendezeitdauer und somit die Energieaufnahme. Die bestmögliche Einstellung hängt von der Anzahl der zu übertragenden Bytes (Payload) und der dazu passenden Codierrate ab.
Wegen der Vielzahl der möglichen Parameter lässt sich eine Funkstrecke im Hinblick auf Reichweite, Transferrate, Qualität der Datenübertragung und Strombedarf individuell anpassen. Dies muss sich letztlich in einer Umgebung mit der jeweiligen konkreten Anwendung beweisen. Als praktische Orientierungshilfe erweist sich das Programm »LoRa Modem Calculator« (Bild 5), mit dem sich verdeutlichen lässt, wie sich die Parameter auf das Timing, die HF-Leistung und die Stromaufnahme auswirken.
Beim Empfangsknoten ist zunächst der »radio watchdog timer« einzustellen, der die Zeitspanne festlegt, in der auf gesendete Daten gewartet werden soll. Ist diese Zeit abgelaufen, werden keine Daten mehr empfangen und das Modul gibt dann die Meldung »radio_err« aus. Es schadet nichts hier das Maximum mit »radio set wdt 0« anzugeben, wie es für den kontinuierlichen Betrieb als Empfangsknoten sinnvoll ist, der mit »radio rx 0« festgelegt wird. Bei korrekter Einstellung eines gesendeten Befehls gibt das Modul stets ein »ok« zurück.
Der Befehl »radio tx nachricht« veranlasst den Sendeknoten, die Nachricht, d. h. den an dieser Stelle stehenden Text oder den Datenstring, der bis zu 255 byte lang sein darf, zu übertragen, was mit »radio_tx_ok« beim Sender und mit einem übertragenem »radio_rx_nachricht« beim Empfänger erkennbar ist.

Parameter

Bedeutung: Werte

Voreinstellung

mod

Modulationsart: FSK oder LoRa

LoRa

freq

Frequenz: 433 MHz oder 868 MHz

868,1 MHz

pwr

Sendeleistung: –3 dBm bis +15 dBm

+1 dBm

sf

Spreizfaktor: SF6 – SF12

SF12

bw

Bandbreite: 125, 250, 500 kHz

125 kHz

cr

Codierrate: 4/5, 4/6, 4/7, 4/8

4/5

prlen

Präambellänge: 0 – 65535 Symbole

8 Symbole

 

 

 

 

 

 

 

 

 

 

 

 

Tabelle 3: Die wichtigen Parameter für die Modulkonfigurierung.

»pwr«-
Parameter

Ausgangsleistung [dBm]

Eingangsstrom (typ.) [mA]

–3

–4,0

17,3

–2

–2,9

18,0

–1

–1,9

18,7

0

–1,7

20,2

1

–0,6

21,1

2

+0,4

22,3

3

+1,4

23,5

4

+2,5

24,7

5

+3,6

26,1

6

+4,7

27,5

7

+5,8

28,8

8

+6,9

30,0

9

+8,1

31,2

10

+9,3

32,4

11

+10,4

33,7

12

+11,6

35,1

13

+12,5

36,5

14

+13,5

38,0

15

+14,1

38,9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tabelle 4: Die Stromaufnahme steigt mit der Sendeleistung, hier am Beispiel des 868-MHz-Bands.

Quelle: Microchip