Implementação de Gnuradio do transmissor e receptor Lora
Este módulo contém uma implementação modular de Lora. As cadeias de transmissor (TX) e receptor (RX) são, na melhor medida possível, divididas em blocos de construção atômicos. Somente o desmodulador de spread de rastreamento de rastreamento de compensação de tempo de tempo e frequência de tempo de tempo (CSS) é implementado de maneira monolítica, pois o gnuradio não permite loops eficientes no fluxo.
Esta modularidade deve::
- Experimente facilmente as variações da camada física de Lora (diferentes erros de correção de código, padrão de preâmbulo, etc.),
- Use essa implementação como material pedagógico: parte das cadeias TX/RX pode ser reimplementada como um exercício, as subtilidades da implementação da camada física do mundo real são claramente visíveis (por exemplo: a cadeia TX/RX diferente, dependendo do cabeçalho ou da carga útil, preenchimento).
Instalação
Em Linux
No diretório gr-lora2 e como usuário regular:
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
Uma raiz:
# make install
# ldconfig
Exemplos
Vários exemplos de fluxo de gnuradio-companion estão presentes em examples/GRC :
-
lora_test.grc : lora tx/rx em um simples fluxo sem canal, para verificações de sanidade -
lora_tx.grc : um transmissor Lora -
lora_rx.grc : um receptor Lora -
lora_soft_test.grc : Soft Decoding Lora TX/RX em um Flowgraph simples sem canal, para verificações de sanidade -
lora_soft_rx.grc : um receptor Lora usando decodificação suave
Como enviar pacotes Lora
lora_test.grc ou lora_tx.grc Espere que os dados provenientes dos datagramas UDP na porta 52002: a carga útil do datagrama UDP recebidos são transferidos para a carga útil dos pacotes LORA e enviados. Isso significa que é necessário alguns cuidados para garantir que a duração da carga útil do datagrama UDP de entrada possa caber em um pacote Lora (isso depende do fator de espalhamento e da taxa de codificação).
Ambos os fluxografias precisam dos seguintes parâmetros a serem especificados:
-
SF : fator de propagação de Lora. -
CR : Taxa de codificação Lora. -
has_crc : se deve ou não anexar um Lora CRC no final do pacote.
lora_tx.grc espera um SDR suportado pelo Osmocom Sink e os seguintes parâmetros adicionais:
-
RF_samp_rate : a taxa de amostragem do seu SDR (em Hz). -
chan_freq : a frequência central do canal que você deseja usar (em Hz). -
chan_bw : a largura de banda do canal que você deseja usar (em Hz).
Como receber pacotes Lora
lora_test.grc , lora_rx.grc , lora_soft_test.grc , lora_soft_rx.grc transferirá a carga útil dos pacotes LORA recebidos para a carga útil dos datagramas UDP enviados na porta 52001.
Todos os fluxogramas precisam dos seguintes parâmetros a serem especificados:
-
SF : fator de propagação de Lora.
lora_rx.grc e lora_soft_rx.grc esperam um SDR suportado pela OSMOCOM Source, e os seguintes parâmetros adicionais:
-
RF_samp_rate : a taxa de amostragem do seu SDR (em Hz). -
chan_freq : a frequência central do canal que você deseja usar (em Hz). -
chan_bw : a largura de banda do canal que você deseja usar (em Hz).
Material relacionado
(Anterior) O desenvolvimento deste módulo levou à publicação dos seguintes artigos de pesquisa:
- A. Marquet, N. Montavont, G. Papadopoulos, Investigando o desempenho teórico e as técnicas de desmodulação para Lora . 2019 IEEE 20º Simpósio Internacional sobre "um mundo de redes sem fio, móvel e multimídia" (WoWMom) , junho de 2019, Washington, Estados Unidos. pp.1-6, ⟨10.1109/wowmom.2019.8793014⟩. ⟨HAL-02284110⟩.
- A. Marquet, N. Montavont, G. Papadopoulos, em direção a uma implementação de SDR de Lora: engenharia reversa, estratégias de desmodulação e avaliação sobre o canal de Rayleigh . Computer Communications , Elsevier, 2020, 153, pp.595-605. ⟨10.1016/j.comcom.2020.02.034⟩. ⟨HAL-02485052⟩.
- A. Marquet, N. Montavont, sincronização de transportadora e símbolo para receptores LORA . Conferência Internacional sobre sistemas e redes sem fio incorporado , fevereiro de 2020, Lyon, França. pp.277-282. ⟨HAL-02860476⟩.
Todo esse trabalho foi construído ou inspirado por esforços semelhantes. Você encontrará referências e implementações abaixo que tiveram um impacto significativo neste trabalho.
Artigos:
- M. Knight, B. Seeber, decodificando Lora: percebendo um LPWAN moderno com sdr . Anais da Conferência de Rádio GNU , v. 1, n. 1, set. 2016. Disponível em: <https://pubs.gnuradio.org/index.php/grcon/article/view/8>.
- P. Robyns, P. Quax, W. Lamotte e W. Thenaers, um decodificador de software multicanal para o esquema de modulação da LORA . Anais da 3ª Conferência Internacional sobre Internet das Coisas, Big Data e Segurança-IOTBDS, ISBN 978-989-758-296-7; ISSN 2184-4976, páginas 41-51. Doi: 10.5220/0006668400410051.
- R. Ganaatiano, O. Afisiadis, M. Cotting e A. Burg, Lora Digital Receiver Análise e Implementação . ICASSP 2019 - 2019 Conferência Internacional do IEEE sobre Acústica, Speech and Signal Processing (ICASSP) , 2019, pp. 1498-1502, doi: 10.1109/iCassp.2019.8683504.
- J. Tapparel, O. Afisiadis, P. Mayoraz, A. Balatsoukas-Stimming e A. Burg, um protótipo de camada física Lora de código aberto no rádio GNU . 2020 IEEE 21º Workshop Internacional sobre Avanços de Processamento de Sinais em Comunicações Sem Wireless (SPAWC) , 2020, pp. 1-5, doi: 10.1109/spawc4857.2020.9154273.
- M. Xhonneux, O. Afisiadis, D. Bol e J. Louveaux, um algoritmo de sincronização de baixa complexidade Lora robusto para amostrar compensações de tempo . IEEE Internet of Things Journal , vol. 9, não. 5, pp. 3756-3769, 1 de março de 2022, doi: 10.1109/jiot.2021.3101002.
- C. Bernier, F. Dehmas e N. Deparis, Sincronização de quadros Lora de baixa complexidade para rádios definidos por software de energia ultra-baixa . IEEE Transactions on Communications , vol. 68, não. 5, pp. 3140-3152, maio de 2020, doi: 10.1109/tcomm.2020.2974464.
Outras implementações da 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)