Aller au contenu

LoRa et LoRaWAN

LoRa (Long Range) est une technologie de modulation de signal radio qui permet la transmission de données sur de longues distances (jusqu’à 5 kilomètres en milieu urbain et 15 kilomètres en campagne).

En Suisse et en Europe, la modulation LoRa opère sur la bande 868 MHz et se base sur une technique appelée Chirp Spread Spectrum (CSS). Cette technique permet de transmettre à faible puissance et est également utilisée pour les communications militaires.

Consultez les vidéos suivantes pour une introduction à la technologie LoRa :

Plan des fréquences

En Suisse, comme dans le reste de l’Europe, les fréquences allouées pour LoRa vont de 863 à 870 MHz. Ces fréquences font parti de la des bandes ISM (industriel, scientifique et médical) et sont également utilisées pour les clés de voiture, les télécommandes des portes de garage …

La législation suisse et européenne nous oblige à n’émettre sur ces fréquences que pendant 1% du temps (duty cycle). Si l’envoi d’un message utilise 100ms de temps radio, on devra donc attendre au moins 9.9 secondes avant d’en envoyer un autre.

Notez que la fréquence de 433 MHz est également autorisée en Europe, mais dans la pratique, ces dernières sont assez peu utilisées pour LoRa.

Les canaux pour les messages envoyés par les devices LoRa (uplink) sont les suivants :

  1. 868.1 MHz - SF7BW125 à SF12BW125
  2. 868.3 MHz - SF7BW125 à SF12BW125 et SF7BW250
  3. 868.5 MHz - SF7BW125 à SF12BW125
  4. 867.1 MHz - SF7BW125 à SF12BW125
  5. 867.3 MHz - SF7BW125 à SF12BW125
  6. 867.5 MHz - SF7BW125 à SF12BW125
  7. 867.7 MHz - SF7BW125 à SF12BW125
  8. 867.9 MHz - SF7BW125 à SF12BW125
  9. 868.8 MHz - FSK

Pour les messages reçus par les devices LoRa (downlink), les canaux sont les suivants :

  • Les canaux uplink 1 à 9 (RX1)
  • 869.525 MHz - SF9BW125 (RX2)

Le Spreading Factor

Le Spreading Factor (SF) détermine la vitesse de transmission de données ainsi que la portée des signaux LoRa. Plus le SF est élevé, plus le débit de données est faible et plus la portée est longue.

Le tableau ci-dessous décrit le 6 Spreading Factor possibles:

SF Bit rate Taille maximum du payload
SF7BW125 5.5 kbit/s 242 bytes
SF8BW125 3.1 kbit/s 242 bytes
SF9BW125 1.8 kbit/s 115 bytes
SF10BW125 980 bit/s 51 bytes
SF11BW125 440 bit/s 51 bytes
SF12BW125 250 bit/s 51 bytes

Notez que la progression est logarithmique. En passant au SF suivant, la vitesse est divisée par 2 :

On mesure la qualité d’un signal radio avec 2 paramètres :

Le RSSI (Received Signal Strength Indication) indique la puissance du signal. Il se mesure en dBm et est représenté par un nombre négatif. Un RSSI supérieur à -30 dBm indique un signal très fort. -115 dbm est encore un bon signal. Un RSSI inférieur à -120 dBm est un signal faible.

Le SNR (Signal-to-Noise Ratio) indique le rapport entre le signal LoRa et le bruit. Un SNR supérieur à zéro indique que le signal LoRa est supérieur au bruit. Un SNR négatif indique que le signal est moins fort que le bruit. La modulation du signal utilisé par LoRa se distingue par sa capacité à fonctionner avec un SNR négatif!

Le tableau ci-dessous montre les SNR minimaux pour les différents spreading factors

SF SNR minimum
7 -7.5 dB
8 -10 dB
9 -12.5 dB
10 -15 dB
11 -17.5 dB
12 -20 dB
  • Le signal est bon si le RSSI est bon (\(\gt -115\,\mathsf{dBm}\)) et le SNR est également bon (\(\gt -7\,\mathsf{dB}\))
  • Si le RSSI est bon (\(\gt -115\,\mathsf{dBm}\)) mais que le SNR est mauvais (\(\le -13\,\mathsf{dB}\)), c’est que l’environnement est très “bruyant”.
  • Si le RSSI est mauvais (\(\le -120\,\mathsf{dBm}\)) mais que le SNR est bon (\(\gt -7\,\mathsf{dB}\)), c’est que le device LoRa est trop éloigné du récepteur ou qu’il y a trop d’obstacles entre eux.

Le schéma ci-dessous résume les rapports entre le RSSI, le SNR, et la qualité de la transmission.

Les outils suivants permettent de calculer la durée d’envoi d’un message LoRa en fonction de la bande pasante, du spreading factor et de la taille du payload :

LoRaWAN

LoRa est la technologie radio utilisée pour transmettre de petits messages sur de longues distances. LoRaWAN (Long Range Wide Area Network) est le protocole qui permet aux devices de communiquer avec une passerelle LoRaWAN (gateway).

La figure ci-dessous représente une infrastructure typique de LoRaWAN :

Les nodes (ou devices) sont les appareils connectés. Ça peut être des capteurs de température, des détecteurs de présence, ou n’importe quel appareil connecté.

Les nodes envoient des messages avec la technologie radio LoRa. Ces messages sont captés par un ou plusieurs gateways (passerelles). Ces passerelles sont installées par les opérateurs (tels que Swisscom), par des entreprises ou des privés qui souhaitent leur propre réseau LoRa, ou encore par une communauté (telle que The Thing Network)

Les gateways sont connectés aux network servers par Internet. Ces network servers reçoivent les messages et suppriment les éventuels duplicats. Si vous avez votre propre réseau LoRa, vous pouvez aussi héberger votre propre network server avec des projets tels que The Thing Stack ou ChirpStack. Si vous utilisez le réseau d’un opérateur ou d’une communauté, vous utiliserez leurs network servers.

Les network servers envoient pour terminer les données reçues des nodes (en passant par les gateways et les network servers) aux application servers. Le protocole utilisé à ce niveau est souvent MQTT ou des Web hooks.

Dans les paragraphes qui précèdent, nous avons décrit le mécanisme qui permet aux nodes d’envoyer des données et c’est le scénario le plus fréquent dans un réseau LoRa. Mais ce n’est pas tout, les nodes peuvent aussi recevoir des données.

Dans LoRaWAN, on distingue 3 classes de device :

  • Class A : Les devices ne peuvent recevoir de données que dans slots présents dans secondes qui suivent un envoi de données. Ces devices sont les plus efficaces dans la gestion de l’énergie, car la radio peut être complètement éteinte quelques secondes après l’envoi de données.
  • Class B : En plus des slots de la classe A, le classe B permet de recevoir des données dans des slots à intervalles définis. Ces devices consomment plus de courant, car il doivent périodiquement enclencher la radio pour recevoir d’éventuels messages.
  • Class C : Les devices de classe C sont en permanence prêts à recevoir des données (sauf quand ils en envoient). C’est le mode le plus gourmand en énergie, car la radio est enclenchée en permanence.

Lisez la page Device Classes sur le site The Thing Network pour plus d’information.

Sécurité

Dans un réseau LoRaWAN, les paquets sont chiffrés avec l’algorithme AES et des clés de 128 bits. Lorsqu’un node se connecte au réseau (on parle d’activation ou de join), le système génère deux clés de session :

  • une Network Session Key (NwkSKey). Cette clé est utilisée pour assurer l’intégrité des données entre le node et le network server.
  • une Application Session Key (AppSkey). Cette clé est utilisée pour chiffrer le payload.

Lorsqu’on configure un node, on lui donne aussi une Application Key (AppKey). Cette clé est utilisée pour dériver les deux clés de sessions citées précédemment. Notez que cette clé n’est utilisée que pour une activation de type OTAA (Over The Air Activation). On peut aussi activer un node en mode ABP (Activation By Personalization) et dans ce cas, les clés de sessions sont permanentes et stockées dans le node. Cette manière d’activer un node est moins sûre et on préfère en général activer un node avec l’activation OTAA.

Résumé

La figure suivante résume la différence entre LoRa et LoRaWAN :