vignette|Logo de LoRaWAN.
LoRaWAN est un protocole de communication radio qui définit comment des équipements terminaux communiquent sans fil au travers de passerelles, constituant ainsi un réseau étendu à basse consommation (LPWAN).
Il est basé sur la technologie de modulation propriétaire LoRa, créée en 2009 par la start-up grenobloise Cycléo, et rachetée par l'entreprise américaine Semtech en 2012.
LoRaWAN est l'acronyme de (« réseau étendu à longue portée »).
Description générale
Le protocole LoRaWAN est un protocole de communication pour l'Internet des objets qui utilise une technique propriétaire de modulation par étalement de spectre (de type ) appelée LoRa.
LoRaWAN cible principalement les communications nécessitant de faire transiter un volume de données faible avec un débit réduit, ce qui permet de limiter la consommation énergétique des objets connectés et de proposer des autonomies de plusieurs années sur piles.
L'architecture du réseau, en étoile, ainsi qu'une technique de modulation plus simple à implémenter que celle des réseaux cellulaires classiques permettent de réduire le coût des composants électroniques des équipements.
L'utilisation de bandes de fréquences libres (utilisables sans redevance) permet de réduire les coûts de fonctionnement du réseau. Elle offre également la possibilité de créer des réseaux dits privés (indépendants des opérateurs) pouvant couvrir un immeuble, un champ ou une ville sans frais d'abonnement. Cette caractéristique peut être source de problèmes (pertes de messages, effondrement du réseau), notamment dans les villes, lorsque la quantité d’appareils augmente de façon incontrôlée.
Architecture
vignette|Schéma illustrant une architecture LoRaWAN Un réseau LoRaWAN est constitué d'équipements sans fil basse consommation qui communiquent avec des serveurs applicatifs au travers de passerellesExemple d'équipement terminal IoT LoRaWAN émettant des données, plateforme utilisée Cloud Studio IoT: . La technique de modulation utilisée entre les équipements et les passerelles est LoRa. La communication entre les passerelles et les serveurs est établie via le protocole IP au moyen d'un réseau de collecte Ethernet ou cellulaire.
La topologie réseau LoRaWAN est dite en étoile d'étoiles (star-of-stars), chaque passerelle étant connectée au serveur applicatif.
Au sens réseau, les équipements ne sont pas connectés aux passerelles, elles leur servent uniquement de relais pour joindre le serveur gérant le réseau (par exemple avec un logiciel comme Chirpstack), lui-même connecté à un ou plusieurs serveurs applicatifs. Les paquets envoyés par les équipements sont retransmis par les passerelles après y avoir uniquement ajouté des informations concernant la qualité du signal reçu.
Si la couverture radio le permet, plusieurs passerelles peuvent retransmettre le même message d'un équipement, il est alors dupliqué dans le réseau de collecte, c'est le serveur hébergeant l'application qui assure le dédoublement des paquets. Cette particularité permet notamment la localisation des équipements via la comparaison des différents temps d'arrivée pour un même paquet dupliqué.
Lorsqu'une réponse doit être émise par le serveur, il utilise les informations ajoutées par les passerelles concernant la qualité de signal afin de choisir celle vers laquelle envoyer le paquet de réponse.
LoRaWAN ne permet pas le dialogue direct entre deux objets connectés. Si un tel dialogue doit avoir lieu il se fait au travers du serveur applicatif.
Modulation LoRa
LoraWAN utilise une modulation à étalement de spectre de type propriétaire appelée LoRa. Cette modulation s’effectue principalement sur les bandes radios ISM en Europe et en Amérique du Nord. L’utilisation de la modulation CSS pour l’internet des objets a été brevetée par Cycléo, une compagnie française ayant été rachetée par Semtech en 2012. Cette modulation permet en moyenne une distance entre une passerelle et un équipement jusqu'à en zone urbaine et en zone rurale-39.
Les techniques de modulation par étalement du spectre comme LoRa utilisent une bande passante plus grande que ce qui est idéalement nécessaire pour un débit donné mais profitent de cet étalement en fréquence pour fonctionner avec un signal faible ou fortement bruité. L'étalement du spectre consiste à répéter plusieurs fois le message transmis à des fréquences différentes. La variation de fréquence effectuée par LoRa est linéaire ce qui permet aux récepteurs d’éliminer simplement les décalages de fréquences et effets Doppler inhérents à la transmission du signal. Ce fonctionnement permet aux transmetteurs LoRa d’être produits à faible coût. Cette technique d'étalement de spectre permet aussi aux capteurs d'être moins sensibles à l'effet Doppler et donc de transmettre plus facilement des messages envoyés en déplacement (sur un train à grande vitesse en mouvement par exemple). Une étude de 2017 a mesuré cet effet grâce à un équipement installé sur une moto.
Le facteur d'étalement est généralement fixé par le serveur lors de la connexion au réseau d'un équipement terminal, via l'envoi d'une demande de mesure du rapport signal sur bruit.
LoRa définit le facteur d'étalement du spectre (SF) par la formule : avec Rc étant le débit du message transmis (Chirp) et Rs le débit du symbole à transmettre. L'augmentation du Spreading Factor permet de couvrir une distance plus grande entre l'équipement et la passerelle au détriment de la bande passante disponible.
Les différents SF sont orthogonaux, ce qui signifie que plusieurs trames peuvent être reçues en même temps sur le même canal à condition qu'elles utilisent un SF différent. Si deux trames sont reçues en même temps par une passerelle avec une différence de moins de sur le même canal et avec le même SF elles seront perdues car impossible à différencier.
Les bandes passantes possibles à configurer pour un canal sont, pour LoRa, 500, 250, 125, 62.5, 41.7, 31.25, 20.8, 15.6, 10.4, et 7.8 KHz, et en LoRaWAN, plus restrictif, 125, 250 et pour la bande , ce qui permet d'atteindre un débit maximum de 22 kbit/s avec une bande passante de et un Spreading Factor de 7.
L'utilisation de fréquences libres impose de respecter un temps d'occupation maximum du canal radio (). L'occupation maximum du canal est de 1 % en Europe sur la bande . Le non-respect de ce temps d’occupation peut causer des pertes de messages en raison d’une saturation du réseau. Sur la bande , la spécification LoRa impose initialement 3 canaux d’une largeur de communs à tous les équipements , et pour que le message d'activation puisse être reçu par le serveur. Ce paramètre peut ensuite être modifié par le réseau et permettre au capteur de répartir ses messages sur un nombre de canaux plus important. Les équipements peuvent donc aléatoirement répartir leurs émissions sur chacune de ces bandes en respectant le temps d'occupation réglementaire.
LoRa permet de fixer les principaux paramètres radio à l'aide du paramètre Data Rate. Le Data Rate est défini par une valeur de 0 à 15 et fixe le type de modulation, le spreading factor ainsi que la bande passante utilisée.
Data Rates pour la bande 863- : Data Rate (DR) Modulation Spreading Factor (SF) Bande passante Débit physique (bit/s)0LoRaSF122501LoRaSF114402LoRaSF109803LoRaSF94LoRaSF85LoRaSF76LoRaSF77FSK50kbit/s8Réservé pour utilisation future
La trame physique LoRa se compose d'un préambule, un en-tête, les données puis un contrôle d'erreurs. vignette|upright=3|centré|Format d'une trame physique LoRa L'en-tête est présent dans le mode de transmission par défaut (explicite), il est transmis avec un taux de code de 4/8. Il indique la taille des données, le taux de code pour le reste de la trame et il précise également si un CRC est présent. Un CRC est présent dans l'en-tête afin de permettre au récepteur de détecter s'il est altéré. La taille maximale des données se situe entre 51 et 222 octets selon le facteur d'étalement utilisé (plus le SF est grand plus la taille des données est faible). Le code rate pour le reste de la trame peut être paramétré de 4/5 à 4/8, le taux 4/5 étant le plus utilisé.
D'après ces paramètres, il est donc possible de définir le débit utile Rb par la formule mathématique :
Le protocole LoRaWAN
LoRaWAN est un protocole de type contrôle d'accès au support. Son fonctionnement est plus simple que celui des technologies cellulaires qui reposent sur des équipements terminaux puissants et donc plus coûteux que ceux utilisés dans l'internet des objets.
Le protocole n'est pas symétrique, et il y a des différences entre les messages montant (uplink) provenant des objets et les messages descendant (downlink) provenant de l'applicatif et à destination des objets.
Il repose sur un fonctionnement de type ALOHA pour l'envoi des messages, ainsi lorsqu'un équipement doit envoyer des données il le fait sans contrôler si le canal qu'il va utiliser est disponible, et répète cet envoi sur différent canaux sans savoir si ce message a été correctement reçu. Un message d'acquittement peut être demandé par l'objet, celui ci pouvant répéter automatiquement l'envoi si ce message n'a pas été reçu.
Les messages descendants (downlink) émis par la gateway ont un coût réseau plus fort, car si la gateway émet un message, elle ne peut plus pendant ce temps écouter les autres messages envoyés.
Le protocole définit trois classes d'équipements (A, B et C). La classe A doit être implémentée dans tous les équipements par souci de compatibilité. Un équipement peut changer de classe en cours de fonctionnement.
Classe A : Cette classe a la consommation énergétique la plus faible. Lorsque l'équipement a des données à envoyer, il le fait sans contrôle puis il ouvre deux fenêtres d'écoute successives pour des éventuels messages provenant du serveur, les durées recommandées sont de 1 puis 2 secondes. Ces deux fenêtres sont les seules durant lesquelles le serveur peut envoyer à l'équipement les données qu'il a précédemment stockées à son attention. vignette|upright=2|centré|Fenêtres de réception pour un équipement de classe A Classe B : Cette classe permet un compromis entre la consommation énergétique et le besoin en communication bi-directionnelle. Ces équipements ouvrent des fenêtres de réception à des intervalles programmés par des messages périodiques envoyés par le serveur. Classe C : Cette classe a la plus forte consommation énergétique mais permet des communications bi-directionnelles n'étant pas programmées. Les équipements ont une fenêtre d'écoute permanente.
Le format des paquets LoRaWAN est décrit dans le schéma ci-dessous. Les tailles des champs sont indiquées en bits.
vignette|upright=3|centré|Format des paquets LoRaWAN
Voici la définition des différents champs contenus dans un paquet LoRaWAN : Mtype Ce champ indique le type du message (montant ou descendant). RFU Ce champ est réservé pour usage futur. Major Ce champ indique la version du protocole utilisée. MIC Ce champ permet le calcul d'intégrité du paquet afin de détecter s'il a été altéré durant son transport. DevAddr Ce champ contient l'adresse de l'équipement. FCtrl Ce champ permet l'adaptation du débit et les acquittements. Il indique la présence de paquets supplémentaires ainsi que la longueur du champ FOpts. FCnt Ce champ est un compteur de trame (incrément à chaque envoi). FOpts Ce champ permet de passer des commandes MAC (contrôle de connectivité par un équipement par exemple). FPort Ce champ contient le port de l'application ou du service auquel est adressé le paquet.
Afin de pouvoir fonctionner sur le réseau, un équipement doit avoir été activé. Deux procédures d'activation sont possibles : Activation By Personalization (ABP) : Les clefs de chiffrement sont stockées dans les équipements ; Over The Air (OTAA) : Les clefs de chiffrement sont obtenues par un échange avec le réseau.