Gnuradio -Implementierung von LORA -Sendern und Empfänger
Dieses Modul enthält eine modulare Implementierung von Lora. Sender (TX) und Empfänger (RX) -Ketten sind zum bestmöglichen Ausmaß in atomare Bausteine unterteilt. Nur der CSS-Demodulator (Timing- und Trägerfrequenzversetzungsverfolgungsverfolgungsverfolgungsmittel) wird auf monolithische Weise implementiert, da Gnuradio keine effizienten Schleifen im Flowgraphen zulässt.
Diese Modularität soll:
- Proben Sie leicht mit Variationen der LORA Physical Layer (unterschiedliche Fehlerkorrekturcode, Präambelmuster usw.), leicht zu korrigieren.
- Verwenden Sie diese Implementierung als pädagogisches Material: Ein Teil der TX/RX-Ketten kann als Übung neu implementiert werden. Die Subtilitäten der Implementierung der physischen Schicht in der realen Welt sind deutlich sichtbar (z.
Installation
Unter Linux
Im Verzeichnis gr-lora2 und als regulärer Benutzer:
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
Eine Wurzel:
# make install
# ldconfig
Beispiele
In examples/GRC sind mehrere Beispiele für Gnuradio-Kompanonions-Flowgraphen vorhanden:
-
lora_test.grc : lora tx/rx in einem einfachen Flussgraph ohne Kanal für Vernunftprüfungen -
lora_tx.grc : ein Lora -Sender -
lora_rx.grc : ein Lora -Empfänger -
lora_soft_test.grc : Soft Decoding lora tx/rx in einem einfachen Flussgraphen ohne Kanal für Vernunftprüfungen -
lora_soft_rx.grc : Ein Lora -Empfänger mit sanftem Decodieren
So senden Sie Lora -Pakete
lora_test.grc oder lora_tx.grc erwarten, dass Daten von UDP -Datagrammen auf Port 52002 stammen. Dies bedeutet, dass eine gewisse Sorgfalt erforderlich ist, um sicherzustellen, dass die Nutzlastlänge des Eingangs -UDP -Datagramms in ein LORA -Paket passen kann (dies hängt vom Ausbreitungsfaktor und der Codierungsrate ab).
Beide Flowgraph benötigen die folgenden Parameter, die angegeben werden müssen:
-
SF : Lora -Spreizfaktor. -
CR : Lora -Codierungsrate. -
has_crc : Ob am Ende des Pakets eine Lora CRC anhängen oder nicht.
lora_tx.grc erwartet einen SDR, der von Osmocom Sink unterstützt wird, und die folgenden zusätzlichen Parameter:
-
RF_samp_rate : Die Beispielrate Ihres SDR (in Hz). -
chan_freq : Die Mittelfrequenz des Kanals, den Sie verwenden möchten (in Hz). -
chan_bw : Die Bandbreite des Kanals, den Sie verwenden möchten (in Hz).
So erhalten Sie Lora -Pakete
lora_test.grc , lora_rx.grc , lora_soft_test.grc , lora_soft_rx.grc überträgt die Nutzlast der empfangenen LORA -Pakete auf die Nutzlast von UDP -Datagramms, die an Port 52001 gesendet wurden.
Alle Flussgraphen müssen die folgenden Parameter angegeben werden:
lora_rx.grc und lora_soft_rx.grc erwarten, dass ein SDR von der Osmocom -Quelle unterstützt wird, und die folgenden zusätzlichen Parameter:
-
RF_samp_rate : Die Beispielrate Ihres SDR (in Hz). -
chan_freq : Die Mittelfrequenz des Kanals, den Sie verwenden möchten (in Hz). -
chan_bw : Die Bandbreite des Kanals, den Sie verwenden möchten (in Hz).
Verwandtes Material
(Früher) Die Entwicklung dieses Moduls führt zur Veröffentlichung der folgenden Forschungsartikel:
- A. Marquet, N. Montavont, G. Papadopoulos, Untersuchung der theoretischen Leistung und Demodulationstechniken für Lora . 2019 IEEE 20. Internationales Symposium über "Eine Welt der drahtlosen, mobilen und multimedischen Netzwerke" (Wowmom) , Jun 2019, Washington, USA. S. 1-6, ⟨10.1109/wowmom.2019.8793014⟩. ⟨Hal-02284110⟩.
- A. Marquet, N. Montavont, G. Papadopoulos, auf eine SDR-Implementierung von Lora: Reverse-Engineering, Demodulationsstrategien und Bewertung gegenüber Rayleigh Channel . Computerkommunikation , Elsevier, 2020, 153, S. 595-605. ⟨10.1016/j.com.2020.02.034⟩. ⟨Hal-02485052⟩.
- A. Marquet, N. Montavont, Träger und Symbolsynchronisation für LORA -Empfänger . Internationale Konferenz über eingebettete drahtlose Systeme und Netzwerke , Februar 2020, Lyon, Frankreich. S. 277-282. ⟨Hal-02860476⟩.
All diese Arbeiten wurden entweder auf ähnlichen Bemühungen aufgebaut oder inspiriert. Nachfolgend finden Sie Referenzen und Implementierungen, die erhebliche Auswirkungen auf diese Arbeit hatten.
Artikel:
- M. Knight, B. Seeber, Decoding Lora: Erkenntnis eines modernen LPWAN mit SDR . Verfahren der GNU -Radiokonferenz , v. 1, n. 1, Sep. 2016. Verfügbar unter: <https://pubs.gnuradio.org/index.php/grccon/article/view/8>.
- P. Robyns, P. Quax, W. Lamotte und W. Thenaers, ein Decoder für das LORA-Modulationsschema . Verfahren der 3. Internationalen Konferenz über Internet der Dinge, Big Data and Security-IOTBDS, ISBN 978-989-758-296-7; ISSN 2184-4976, Seiten 41-51. Doi: 10.5220/0006668400410051.
- R. Ghanaatian, O. Afisiadis, M. Cotting und A. Burg, Analyse und Implementierung von LORA Digitalempfänger . ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) , 2019, S. 1498-1502, doi: 10.1109/ICASSP.2019.8683504.
- J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-Stimming und A. Burg, ein Lora-Prototyp für physikalische Schicht auf GNU-Radio . 2020 IEEE 21. Internationaler Workshop zu den Fortschritten der Signalverarbeitung in der drahtlosen Kommunikation (SPAWC) , 2020, S. 1-5, doi: 10.1109/spawc48557.2020.9154273.
- M. Xhonneux, O. Afisiadis, D. Bol und J. Louveaux, ein Lora-Synchronisations-Algorithmus mit niedriger Komplexität, der sich robust an Time-Offsets auszeichnet . IEEE Internet of Things Journal , Vol. 9, nein. 5, S. 3756-3769, 1. März, 2022, doi: 10.1109/jiot.2021.3101002.
- C. Bernier, F. Dehas und N. DeParis, LORA-Rahmensynchronisation mit geringer Komplexität für ultra-niedrige, leistungsstarke Software-definierte Funkgeräte . IEEE Transactions on Communications , Vol. 68, nein. 5, S. 3140-3152, Mai 2020, doi: 10.1109/tcomm.2020.2974464.
Andere LORA -Implementierungen:
- https://github.com/bastilleresearch/gr-lora
- https://github.com/rpp0/gr-lora
- https://github.com/tapparelj/gr-lora_sdr
- https://github.com/f4exb/sdrangel (siehe chirpchat)