Publié le 27 mars 2023 Mis à jour le 27 mars 2023

Un texte de la Minute Recherche par Alexandre Guitton, Weixuan Xiao et Nancy El Rachkidy (LIMOS, unité mixte de recherche UCA / CNRS).

LoRa (acronyme de Long range – ? Longue distance ?) est une technologie radio permettant à des équipements sans fil de communiquer sur des distances de plusieurs kilomètres (typiquement, du sommet du Puy-de-D?me au campus des Cézeaux), en consommant très peu d’énergie. Ainsi, de petits capteurs alimentés par piles peuvent récupérer des données environnementales depuis un site isolé, et les envoyer pour analyse à un serveur distant.

L’inconvénient principal de LoRa est le faible nombre de données que les équipements peuvent envoyer, de l’ordre de quelques courts messages par jour. Quand plusieurs équipements essayent de communiquer en même temps, les messages se superposent et le serveur ne peut en récupérer aucun. On parle alors de ? collision ?. Lorsque les équipements détectent ces collisions, ils doivent retransmettre les messages perdus, ce qui est co?teux pour eux.

Notre étude consiste à décoder les collisions de messages LoRa. ? chaque collision correctement décodée, nous faisons économiser aux équipements un peu d’énergie et nous augmentons la quantité d’informations que le serveur va recevoir. Mais le décodage de signaux en collision n’est pas simple.

Un message LoRa est transmis sous forme de symboles. Chaque symbole correspond à une fréquence croissante, comme un court son qui deviendrait de plus en plus aigu. Ces symboles ressemblent d’ailleurs beaucoup aux ultra-sons produits par les chauves-souris. La fréquence de démarrage correspond à la valeur transmise.

Quand deux signaux entrent en collision, les fréquences des symboles se superposent. Par exemple, si le message ? 123 ? entre en collision avec le message ? 459 ?, le récepteur ne sait pas si les messages transmis étaient ? 123 ? et ? 459 ?, ? 129 ? et ? 453 ?, ? 153 ? et ? 429 ?, ou encore ? 159 ? et ? 423 ?. Ainsi, lorsque le nombre de symboles de deux messages en collision dépasse 21 (ce qui est peu, même pour un message LoRa), le nombre de possibilités dépasse le million.

Or, chaque message LoRa introduit une redondance dans les messages transmis, afin de détecter des erreurs ponctuelles de transmission. Cette redondance est similaire à la clé du numéro de sécurité sociale. Pour simplifier, nous avons considéré dans l’exemple précédent que la redondance était obtenue en stockant la somme des symboles du message dans le dernier symbole : ainsi, pour transmettre ? 45 ?, on calcule donc 4+5=9, et on transmet ? 459 ?. Notre solution utilise cette redondance pour éliminer des possibilités incorrectes. Dans l’exemple ci-dessus, on peut ainsi éliminer tous les messages erronés et retrouver ? 123 ? et ? 459 ?. Gr?ce à une méthode rapide de calcul, nous arrivons à décoder la plupart des collisions de deux signaux LoRa.
 
Interface du logiciel LoRa
Interface du logiciel LoRa - Interface du logiciel LoRa