Implémentation Gnuradio de l'émetteur et récepteur LORA
Ce module contient une implémentation modulaire de LORA. Les chaînes de l'émetteur (TX) et du récepteur (RX) sont, dans la meilleure mesure possible, décomposées en blocs de construction atomiques. Seule le démodulateur SPECTRUM (CSS) de suivi de la fréquence de chronométrage (CSS).
Cette modularité est censée:
- expérimenter facilement avec les variations de la couche physique LORA (différentes erreurs de correction du code, modèle de préambule, etc.),
- Utilisez cette implémentation comme matériau pédagogique: une partie des chaînes TX / RX pourrait être réimplémentée en tant qu'exercice, les sous -tités de la mise en œuvre de la couche physique réelle sont clairement visibles (par exemple: une chaîne Tx / Rx différente en fonction de l'en-tête ou de la charge utile, des bits de rembourrage).
Installation
Sous Linux
Dans le répertoire gr-lora2 et en tant qu'utilisateur régulier:
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
Une racine:
# make install
# ldconfig
Exemples
Plusieurs exemple de flux de gnuadio-companion sont présents dans examples/GRC :
-
lora_test.grc : lora tx / rx dans un simple flowgraph sans canal, pour les chèques de santé mentale -
lora_tx.grc : un émetteur LORA -
lora_rx.grc : un récepteur Lora -
lora_soft_test.grc : décodage souple lora tx / rx dans un flux simple sans canal, pour les chèques de santé mentale -
lora_soft_rx.grc : un récepteur LORA utilisant le décodage doux
Comment envoyer des paquets Lora
lora_test.grc ou lora_tx.grc attendez les données provenant des datagrammes UDP sur le port 52002: la charge utile du datagramme UDP reçu est transféré dans la charge utile des paquets LORA et envoyés. Cela signifie que certains soins sont nécessaires pour s'assurer que la longueur de charge utile du datagramme UDP d'entrée peut s'adapter à un paquet LORA (cela dépend du facteur d'écart et du taux de codage).
Les deux FlowGraph ont besoin que les paramètres suivants soient spécifiés:
-
SF : Facteur de propagation LORA. -
CR : Taux de codage LORA. -
has_crc : Que ce soit pour ajouter ou non un CRC LORA à la fin du paquet.
lora_tx.grc attend un SDR pris en charge par Osmocom Sink et les paramètres supplémentaires suivants:
-
RF_samp_rate : La fréquence d'échantillonnage de votre SDR (en Hz). -
chan_freq : La fréquence centrale du canal que vous souhaitez utiliser (en Hz). -
chan_bw : La bande passante du canal que vous souhaitez utiliser (en Hz).
Comment recevoir des paquets Lora
lora_test.grc , lora_rx.grc , lora_soft_test.grc , lora_soft_rx.grc transférera la charge utile des paquets LORA reçus à la charge utile des datagrammes UDP envoyés sur le port 52001.
Tous les graphiques de flux ont besoin que les paramètres suivants soient spécifiés:
-
SF : Facteur de propagation LORA.
lora_rx.grc et lora_soft_rx.grc attendez-vous à un SDR pris en charge par la source Osmocom, et les paramètres supplémentaires suivants:
-
RF_samp_rate : La fréquence d'échantillonnage de votre SDR (en Hz). -
chan_freq : La fréquence centrale du canal que vous souhaitez utiliser (en Hz). -
chan_bw : La bande passante du canal que vous souhaitez utiliser (en Hz).
Matériel connexe
(Plus tôt) le développement de ce module a conduit à la publication des articles de recherche suivants:
- A. Marquet, N. Montavont, G. Papadopoulos, Enquête sur les techniques théoriques de performance et de démolation pour LORA . 2019 IEEE 20th International Symposium sur "A World of Wireless, Mobile et Multimedia Networks" (WOWMOM) , juin 2019, Washington, États-Unis. pp.1-6, ⟨10.1109 / wowmom.2019.8793014⟩. ⟨HAL-02284110⟩.
- A. Marquet, N. Montavont, G. Papadopoulos, vers une mise en œuvre de la SDR de LORA: inverse, stratégies de démolation et évaluation sur le canal de Rayleigh . Computer Communications , Elsevier, 2020, 153, pp.595-605. ⟨10.1016 / j.comcom.2020.02.034⟩. ⟨HAL-02485052⟩.
- A. Marquet, N. Montavont, synchronisation des transporteurs et des symboles pour les récepteurs LORA . Conférence internationale sur les systèmes et réseaux sans fil intégrés , février 2020, Lyon, France. pp.277-282. ⟨HAL-02860476⟩.
Tout ce travail a été construit sur ou inspiré d'efforts similaires. Vous trouverez ci-dessous des références et des implémentations qui ont eu un impact significatif sur ce travail.
Articles:
- M. Knight, B. Seeber, Decoding Lora: réaliser un lpwan moderne avec sdr . Actes de la Radio Conference GNU , v. 1, n. 1, sep. 2016. Disponible sur: <https://pubs.gnuradio.org/index.php/grcon/article/view/8>.
- P. Robyns, P. Quax, W. Lamotte et W. Thenaers, un décodeur logiciel multicanal pour le schéma de modulation LORA . Actes de la 3e Conférence internationale sur l'Internet des objets, Big Data and Security - IOTBDS, ISBN 978-989-758-296-7; ISSN 2184-4976, pages 41-51. Doi: 10.5220 / 0006668400410051.
- R. Ghanaatian, O. Afisiadis, M. Cotting et A. Burg, Lora Digital Receiver Analysis and Implementation . ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) , 2019, pp. 1498-1502, doi: 10.1109 / icassp.2019.8683504.
- J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-stage et A. Burg, un prototype de couche physique Lora open source sur la radio GNU . 2020 IEEE 21st International Workshop on Signal Processing Advances in Wireless Communications (SPAWC) , 2020, pp. 1-5, doi: 10.1109 / SPAWC48557.2020.9154273.
- M. Xhonneux, O. Afisiadis, D. Bol et J. Louveaux, un algorithme de synchronisation LORA à faible complexité robuste aux compensations d'échantillonnage . IEEE Internet des objets Journal , vol. 9, no. 5, pp. 3756-3769, 1 mars1, 2022, doi: 10.1109 / jiot.2021.3101002.
- C. Bernier, F. Dehmas et N. Deparis, Synchronisation du cadre LORA à faible complexité pour les radios définies par logiciel de puissance ultra-bas . Transactions IEEE sur les communications , vol. 68, no. 5, pp. 3140-3152, mai 2020, doi: 10.1109 / tcomm.2020.2974464.
Autres implémentations LORA:
- https://github.com/bastilleresearch/gr-lora
- https://github.com/rpp0/gr-lora
- https://github.com/tapparelj/gr-lora_sdr
- https://github.com/f4exb/sdrangel (voir chirpchat)