Implementación de Gnuradio del transmisor y receptor Lora
Este módulo contiene una implementación modular de Lora. Las cadenas del transmisor (TX) y el receptor (RX) están, en el mejor grado posible, descomponense en bloques de construcción atómicos. Solo el demodulador de spread de seguimiento de la frecuencia de tiempo de sincronización y el portador se implementa el Demodulador del espectro de propagación de Chirp (CSS) de forma monolítica, ya que Gnuradio no permite bucles eficientes en el flujo de flujo.
Esta modularidad está destinada a:
- Experimente fácilmente con las variaciones de la capa física de lora (código de corrección de errores de diferentes errores, patrón de preámbulo, etc.),
- Use esta implementación como material pedagógico: parte de las cadenas TX/RX podrían volver a implementarse como un ejercicio, las subtilidades de la implementación de la capa física del mundo real son claramente visibles (por ejemplo: la cadena TX/RX diferente dependiendo del encabezado o la carga útil, los bits de relleno).
Instalación
Bajo Linux
Dentro del directorio gr-lora2 y como usuario regular:
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
Una raíz:
# make install
# ldconfig
Ejemplos
Varios ejemplos de gnuradio-compranion Flowgraph están presentes en examples/GRC :
-
lora_test.grc : lora tx/rx en una pila de flujo simple sin canal, para verificaciones de cordura -
lora_tx.grc : un transmisor de Lora -
lora_rx.grc : un receptor de lora -
lora_soft_test.grc : decodificación suave lora tx/rx en una poca de flujo simple sin canal, para verificaciones de cordura -
lora_soft_rx.grc : un receptor Lora usando decodificación suave
Cómo enviar paquetes Lora
lora_test.grc o lora_tx.grc Espere datos provenientes de datagramas UDP en el puerto 52002: la carga útil del datagrama UDP recibido se transfiere a la carga útil de paquetes Lora, y se envían. Eso significa que se necesita algo de cuidado para asegurarse de que la longitud de carga útil del datagrama UDP de entrada pueda caber en un paquete Lora (esto depende del factor de distribución y la tasa de codificación).
Ambos FlowGraph necesitan que se especifiquen los siguientes parámetros:
-
SF : factor de propagación de Lora. -
CR : tasa de codificación Lora. -
has_crc : si o no agregar o no un Lora CRC al final del paquete.
lora_tx.grc espera un SDR admitido por OSMOCom Sink y los siguientes parámetros adicionales:
-
RF_samp_rate : la frecuencia de muestreo de su SDR (en Hz). -
chan_freq : la frecuencia central del canal que desea usar (en Hz). -
chan_bw : El ancho de banda del canal que desea usar (en Hz).
Cómo recibir paquetes Lora
lora_test.grc , lora_rx.grc , lora_soft_test.grc , lora_soft_rx.grc transferirá la carga útil de los paquetes Lora recibidos a la carga útil de datagramas UDP enviadas en el puerto 52001.
Todos los gráficos de flujo necesitan que se especifiquen los siguientes parámetros:
-
SF : factor de propagación de Lora.
lora_rx.grc y lora_soft_rx.grc Espere un SDR admitido por la fuente OSMOCOM, y los siguientes parámetros adicionales:
-
RF_samp_rate : la frecuencia de muestreo de su SDR (en Hz). -
chan_freq : la frecuencia central del canal que desea usar (en Hz). -
chan_bw : El ancho de banda del canal que desea usar (en Hz).
Material relacionado
(Anteriormente) El desarrollo de este módulo conduce a la publicación de los siguientes artículos de investigación:
- A. Marquet, N. Montavont, G. Papadopoulos, Investigando el rendimiento teórico y las técnicas de demodulación para Lora . 2019 IEEE 20th International Simposio sobre "Un mundo de redes inalámbricas, móviles y multimedia" (WOWMOM) , junio de 2019, Washington, Estados Unidos. pp.1-6, ⟨10.1109/wowmom.2019.8793014⟩. ⟨Hal-02284110⟩.
- A. Marquet, N. Montavont, G. Papadopoulos, Hacia una implementación SDR de Lora: ingeniería inversa, estrategias de demodulación y evaluación sobre el canal de Rayleigh . Computer Communications , Elsevier, 2020, 153, pp.595-605. ⟨10.1016/j.comcom.2020.02.034⟩. ⟨Hal-02485052⟩.
- A. Marquet, N. Montavont, sincronización de portadores y símbolos para receptores Lora . Conferencia internacional sobre sistemas y redes inalámbricas integradas , febrero de 2020, Lyon, Francia. pp.277-282. ⟨Hal-02860476⟩.
Todo este trabajo fue construido o inspirado en esfuerzos similares. Encontrará a continuación referencias e implementaciones que tuvieron un impacto significativo en este trabajo.
Artículos:
- M. Knight, B. Seeber, Decoding Lora: realizando un LPWAN moderno con SDR . Actas de la Conferencia de Radio GNU , v. 1, n. 1, sep. 2016. Disponible en: <https://pubs.gnuradio.org/index.php/grcon/article/view/8>.
- P. Robyns, P. Quax, W. Lamotte y W. Tenaers, un decodificador de software multicanal para el esquema de modulación LORA . Actas de la tercera conferencia internacional sobre Internet de las cosas, big data y seguridad-IOTBDS, ISBN 978-989-758-296-7; ISSN 2184-4976, páginas 41-51. Doi: 10.5220/0006668400410051.
- R. Ghanaatian, O. Afisiadis, M. Cotting y A. Burg, Análisis e implementación del receptor digital de Lora . ICASSP 2019 - Conferencia Internacional IEEE 2019 sobre acústica, procesamiento de habla y señales (ICASSP) , 2019, pp. 1498-1502, doi: 10.1109/ICASSP.2019.8683504.
- J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-Stimming y A. Burg, un prototipo de capa física Lora de código abierto en la radio GNU . 2020 IEEE 21st International Workshop on Signal Processing Avances en comunicaciones inalámbricas (SPAWC) , 2020, pp. 1-5, doi: 10.1109/SPAWC48557.2020.9154273.
- M. Xhonneux, O. Afisiadis, D. Bol y J. Louveaux, un algoritmo de sincronización LORA de baja complejidad robusto para las compensaciones de tiempo de muestreo . IEEE Internet of Things Journal , vol. 9, no. 5, pp. 3756-3769, 1 de marzo de 2022, doi: 10.1109/jiot.2021.3101002.
- C. Bernier, F. Dehmas y N. Deparis, sincronización de marco Lora de baja complejidad para radios definidos por software de potencia ultra bajo . IEEE Transactions on Communications , vol. 68, no. 5, pp. 3140-3152, mayo de 2020, doi: 10.1109/tcomm.2020.2974464.
Otras implementaciones de 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 (ver Chirpchat)