LoRa - Kasimashi/Systemes-embarques GitHub Wiki

LoRa

La modulation LoRA

Le procédé de modulation est emprunté à la technologie RADAR, et consiste à élaborer, pendant la durée de transmission de chaque symbole, une onde sinusoïdale $su(t)$ présentant, autour d’une fréquence porteuse $fc$, une variation linéaire de fréquence. Cette onde sinusoïdale dont la fréquence varie linéairement en fonction du temps est appelée CHIRP (Compressed High Intensity Radar Pulse). On distingue les Upchirps, pour lesquels la fréquence croit linéairement au cours du temps, des Downchirps pour lesquels la fréquence décroit linéairement

image

Exemple de Chirps sur SDRSharp :

image

Dans le cas de la modulation LoRa, ce sont des Upchirps qui sont élaborés, d’où la désignation du signal modulé $su(t)$. Dans les chronogrammes ci-dessous, en supposant que les symboles à transmettre soient codés sur 8 bits (0 à 255), on transmet avec une vitesse de modulation de 1 kBauds, le message m(t) constitué des 8 symboles successifs 0, 0, 64, 128, 192, 128, 0 et 192 :

image

Le codage de l’information consiste, à l’instant de transmission d’un nouveau symbole, à faire commencer le chirp avec une fréquence f dont la valeur est fonction de la valeur du symbole n.

Caractérisation du signal modulé $su(t)$

On propose ci-dessous la représentation de la fréquence fu du signal modulé su(t) en fonction du temps, correspondant à la transmission d’un symbole de valeur quelconque n :

image

On note :

  • $fu(t)$ (u pour Upchirp), la fonction représentative de l’évolution de la fréquence de l’upchirp su(t) au cours du temps ;
  • $ΔF$, l’excursion de fréquence de l’upchirp (dont la fréquence varie entre $fc-ΔF$ et $fc+ΔF$, ce qui correspond à une variation de fréquence de $2ΔF$) ;
  • $fx$, la fréquence à laquelle commence l’upchirp (instant t=0) ;
  • $Ts$, la durée de transmission d’un symbole ;
  • $tx$, l’instant où le chirp présente une discontinuité de fréquence.

On précise que dans ce qui suit, les symboles n à transmettre sont codés sur 8 bits (de 0 à 255).

Objectif : exprimer les grandeurs fx et tx en fonction de la valeur n du symbole à transmettre Si l’on reprend l’exemple de la page précédente, il apparait que :

  • pour $n = 0$, $fx = fc-ΔF$, et $tx = Ts$ ;
  • pour $n = 64$, $fx = fc-ΔF + ΔF/2 = fc - ΔF/2$, et $tx = 3Ts/4$ ;
  • pour $n = 128$, $fx = fc-ΔF + ΔF = fc$, et $tx = Ts/2$ ;
  • pour $n = 192$, $fx = fc-ΔF + 3ΔF/2 = fc + ΔF/2$, et $tx = Ts/4$

On démontre aisément que pour toute valeur de n comprise entre 0 et 255 :

$fx = fc - (128 - n)/128 \times ΔF$

et

$tx = (256 - n)/256 \times Ts$

image

Spécification de l'interface radio LoRa

Bien que la technologie de l’interface radio LoRa soit propriétaire, Semtech communique quandmême un certain nombre d’informations sur les caractéristiques du signal modulé $su(t)$.

Bande de fréquence

En Europe, l’interface radio LoRa utilise la bande de fréquence ISM (Industrielle, Scientifique et Médicale) dite Sub-GHz des 868 MHz (alors qu’aux Etats-Unis on utilise la bande des 915 MHz).

Largeur de bande BW ou encombrement spectral du signal modulé $su(t)$ La variation de fréquence d’un chirp ($fmax-fmin$), que nous avons notée $2ΔF$, se note en anglais BW pour BandWidth, soit largeur de bande en français. La norme prévoit 3 valeurs de BW possibles : 125 kHz, 250 kHz et 500 kHz. En Europe, seules les largeurs de bande 125 kHz et 250 kHz sont utilisées.

Facteur d’étalement SF ou nombre de bits par symbole

Le constructeur définit une grandeur notée SF pour Spreading Factor (facteur d’étalement en français), telle que $Ts = 2^{SF}/BW$, où Ts désigne la durée de transmission d’un symbole. Selon la norme, le facteur d’étalement SF peut prendre les 6 valeurs entières distinctes 7 à 12. Le facteur d’étalement SF correspond également au nombre de bits transmis pendant la durée Ts.

Taux de codage CR de la donnée à transmettre

Le constructeur ajoute au message $m(t)$ à transmettre des bits supplémentaires qui seront analysés en réception afin de détecter et de corriger d’éventuelles erreurs (technique classique dite FEC pour Forward Error Correction). Le nombre et la fréquence d’introduction de ces bits sont caractérisés par le taux de codage CR (pour Code Rate en anglais). Pour ce qui concerne la modulation LoRa, il est possible de sélectionner 4 valeurs de CR distinctes : 4/5, 4/6, 4/7 et 4/8. Ainsi, pour un taux de codage de 4/7, on introduit 7-4 = 3 bits redondants tous les 4 bits d’information utiles. Plus la valeur de CR est élevée, plus la communication est considérée comme robuste. Et évidemment, plus la valeur du taux de codage CR est élevée, plus le nombre et la fréquence d’introduction de bits redondants sont élevés, et plus le débit binaire utile diminue.

Débit binaire de transmission Rb en bits/s

La valeur du débit de transmission binaire, noté Rb (bit Rate en anglais) et exprimée en bits/s, est donnée par l’expression :

$R_{b} = SF * ( BW/2^{SF}) \times CR$ (en bits/s)

Vitesse (ou rapidité) de modulation Rs en Bauds

Puisque le facteur d’étalement SF est égal au nombre de bits par symbole, on peut déduire de la relation précédente, la valeur de la vitesse de modulation notée Rs (symbol Rate) et exprimée en Bauds :

$R_{s} = BW * ( BW/2^{SF}) \times CR$ (en bauds).

Les paramètres BW, SF et CR sont programmables, au niveau du module LoRa, et compte tenu des valeurs autorisées par la norme en Europe, on obtient 28 valeurs de débit de transmission utile, comprises entre 180 bits/s et 11 kbits/s.

image

Portée de la transmission

Le constructeur Semtech précise qu’à puissance d’émission constante, la portée du signal modulé est d’autant plus importante que le facteur d’étalement est élevé, et propose, pour un taux de codage CR de 4/5, le diagramme ci-contre, permettant de caractériser l’impact du facteur d’étalement SF sur le débit utile de transmission Rb ainsi que sur la portée de la transmission.

image

Considérations énergétiques

Comme indiqué précédemment, c’est lorsque le module LoRa transmet (ou reçoit) une donnée qu’il consomme le plus d’énergie, et par conséquent, pour réduire sa consommation énergétique, il faut faire en sorte de réduire au maximum la durée de transmission, c’est-à-dire transmettre avec un débit de transmission Rb le plus élevé possible.

On retiendra que le choix fait par le programmeur des 3 paramètres SF, BW et CR de la modulation LoRa est forcément le résultat d’un compromis : - plus le facteur d’étalement SF est élevé et plus le débit de transmission Rb est faible ; - plus la largeur de bande BW est élevée et plus le débit de transmission Rb est élevé ; - plus le taux de codage CR est faible, plus la transmission est robuste et plus le débit de transmission Rb est faible ; - plus le débit de transmission Rb est élevé et plus la portée de la transmission est faible ; **- plus le débit de transmission Rb est élevé et plus la consommation énergétique est faible. **

Ce compromis peut être synthétisé par le graphe ci-contre. L’appellation LoRa pour Long Range prend ici tout son sens, puisque la portée de la transmission, en environnement dégagé (LOS en anglais pour Line Of Sight) peut aller jusqu’à 14 km !

image

Enfin précisons que le débit binaire de transmission d’un objet connecté Rb est auto-adaptatif : lorsque la passerelle reçoit une donnée, elle procède à une mesure de niveau du signal reçu (RSSI) qu’elle transmet au serveur, lequel peut, le cas échéant, configurer en retour l’objet connecté avec une nouvelle valeur de facteur d’étalement SF, donc un nouveau débit Rb compatible avec la distance à laquelle il se situe de la passerelle.

Si les spécifications de la modulation LoRa sont connues, en revanche, le constructeur Semtech ne dit absolument rien sur le procédé de démodulation (en réception). Il s’agit là d’une solution propriétaire ayant fait l’objet d’un dépôt de brevet sur laquelle il ne communique évidemment pas. Cependant, on trouve sur internet, y-compris dans le domaine universitaire supposé être sérieux et fiable, des éléments laissant à penser que la démodulation peut s’effectuer de deux manières : en multipliant le signal modulé su(t) réceptionné par l’antenne soit par un upchirp, soit par un downchirp. Nous envisageons dans ce qui suit ces 2 procédés.

Caractéristique des devices LoRa

Il faut respecter les paramètres LoRa dans le tranceiver et le receiver à savoir :

  • Channels (Canal)
  • Bandwidth (Bande passante)
  • Coding Rate (Facteur de redondance : permet de corriger des erreurs sans à avoir à retransmettre une trame)
  • Spreading Factor

Cependant il faut respecter le 1% de Duty Cycle. (Si on transmet pendant 1s on ne doit plus transmettre pendant 99s).