Comment implémenter un micrologiciel sans fil (Firmware Over the Air, FOTA) LoRa avec une consommation énergétique minimale
Avec la contribution de Rédacteurs nord-américains de DigiKey
2019-02-13
En octobre 2018, la LoRa Alliance a annoncé des spécifications destinées à normaliser les mises à jour micrologicielles sans fil (FOTA) pour les points de terminaison IoT. Même s'il s'agit d'une bonne nouvelle pour les réseaux LoRa, cela constitue un défi pour les concepteurs de points de terminaison LoRa IoT basse consommation qui utilisent des microcontrôleurs à mémoire Flash.
Contrairement à la lecture, l'écriture en mémoire Flash d'un microcontrôleur peut augmenter temporairement, mais considérablement, la consommation énergétique du microcontrôleur. Cela requiert également l'utilisation d'un régulateur de tension plus important pour gérer l'excès d'énergie.
Ni l'un ni l'autre ne sont souhaitables, mais cet article décrit comment utiliser un microcontrôleur avec FRAM comme moyen basse consommation d'écriture de micrologiciel. Associée à un nouvel émetteur-récepteur LoRa, cette combinaison forme une solution basse consommation pour FOTA, par rapport à l'approche de microcontrôleur à mémoire Flash traditionnelle.
Présentation de LoRa
Avec l'Internet des objets (IoT), l'un des objectifs est de transmettre des données sans fil en utilisant le moins d'énergie possible. Les concepteurs d'applications de capteurs alimentés par batterie sont particulièrement concernés par la question de l'envoi sans fil de données de capteur à bas débit sur plusieurs kilomètres, tout en limitant l'utilisation de l'énergie de la batterie. Parmi les solutions existantes, les technologies Bluetooth et Zigbee sont conçues pour les applications à courte portée et les données cellulaires sont relativement gourmandes en énergie. LoRa a fait son apparition pour résoudre ce problème.
LoRa est l'abréviation de « Long Range » (longue portée). Le réseau sans fil LoRa s'est développé pour la transmission longue portée, basse consommation et à faible débit de données en différé. Le débit de données varie de 0,3 kilobit par seconde (kbit/s) à 5,5 kbit/s, ce qui convient parfaitement aux transferts de données de capteurs périodiques. Bien que les spécifications LoRa décrivent les caractéristiques électriques et de modulation du réseau, LoRaWAN (réseau étendu) décrit les protocoles et le format de données d'un réseau LoRa.
La signalisation LoRa est semblable à la FM, car elle module un signal en modifiant sa fréquence. Toutefois, tandis qu'un signal FM correctement modulé change de fréquence instantanément, un signal LoRa modulé fait baisser ou augmenter lentement sa fréquence sur une période donnée. Ce processus progressif d'augmentation ou de diminution de fréquence est appelé compression d'impulsions (« chirp »), et la méthode utilisée est la modulation linéaire de fréquence (« chirp modulation »). Le taux de variation de fréquence au fil du temps est appelé « chirpiness ».
Les réseaux LoRaWAN présentent toujours une topologie en étoile, et le protocole d'accès et de signalisation est conçu pour utiliser le minimum d'énergie et réduire les collisions entre les signaux dans le cas de plusieurs points de terminaison. Chaque point de terminaison LoRaWAN envoie ses données vers une passerelle qui les transfère à un autre réseau, comme Ethernet ou Wi-Fi. Généralement, la passerelle reçoit toutes les données LoRaWAN et les transfère via le réseau sur un ordinateur central pour qu'elles soient stockées ou traitées.
La portée des communications sans fil dépend de l'environnement. Dans les zones urbaines, la distance de transmission attendue pour LoRaWAN peut varier de 1,5 km à 5 km. Les zones rurales peuvent avoir des portées de 5 km à 14 km et les transmissions de données en visibilité directe peuvent atteindre 211 km. Par exemple, un point de terminaison LoRaWAN dans un ballon météorologique a été en mesure de transmettre des données à une passerelle terrestre à une distance de 702 km, en utilisant une puissance de transmission de seulement 25 milliwatts (mW).
Chaque point de terminaison LoRa présente trois sections :
- Un ou plusieurs capteurs pour collecter les données
- Un microcontrôleur
- Une puce radio LoRa de Semtech
Le point de terminaison a besoin des capteurs. Les applications de détection LoRa peuvent inclure la surveillance de la température et de l'humidité, la surveillance du niveau de liquide (eau et carburant) et la surveillance de la pression atmosphérique et hydraulique. Ces types de capteurs collectent des données statiques qui ne varient pas rapidement au fil du temps et peuvent, par conséquent, être transmises sans fil à seulement 5,5 kbit/s sans affecter l'application.
La puce radio et l'antenne communiquent directement via le réseau LoRa. Semtech est la société qui détient les brevets du projet de transmission LoRa. Actuellement, toutes les radios LoRa utilisent les puces radio Semtech ou des modules radio dotés de puces radio Semtech.
L'émetteur-récepteur radio LoRa SX1262IMLTRT de Semtech est conçu pour les applications LoRa alimentées par batterie et est conforme à la norme de transmission radio LoRaWAN (Figure 1). La transmission ou la réception de données ne consomme que 4,2 milliampères (mA), avec une puissance de sortie RF de +22 dBm. Une version à plus faible consommation, le SX1261, présente une puissance de sortie RF de +15 dBm. Ces deux versions sont des émetteurs-récepteurs semi-duplex qui fonctionnent sur la plage sub-GHz et gèrent des schémas de modulation à enveloppe constante, comme LoRa, ainsi que la modulation par déplacement de fréquence (FSK). Un convertisseur abaisseur CC/CC et un régulateur LDO linéaire sont fournis sur la carte.

Figure 1 : Les modèles SX1262IMLTRT et SX1261 de Semtech sont des radios semi-duplex autonomes dédiées aux applications LoRa incluant un convertisseur abaisseur CC/CC et un régulateur LDO linéaire sur la carte. (Source de l'image : Semtech)
Sélection d'un microcontrôleur pour un point de terminaison LoRa
Dans un point de terminaison LoRa, le microcontrôleur lit et traite les données du capteur, et sert également d'interface avec le SX1262 pour transmettre les données sur le réseau. Le microcontrôleur doit disposer d'une mémoire suffisante pour les circuits du SX1262, les circuits du capteur et le code d'application. Les exigences pour un microcontrôleur dans un point de terminaison LoRaWAN avec la puce radio SX1262 de Semtech sont indiquées dans le Tableau 1.
|
Tableau 1 : Les exigences minimum pour un microcontrôleur sont indiquées pour un point de terminaison LoRaWAN simple qui collecte et transmet des données de capteur avec un traitement minimal. Pour les points de terminaison plus complexes, les exigences recommandées offrent un système plus robuste. (Source du tableau : Semtech)
Conformément au Tableau, les exigences minimales pour un point de terminaison LoRaWAN autonome de base peuvent être implémentées sur un microcontrôleur 8 bits. Il peut s'agir d'un point de terminaison LoRaWAN basse consommation simple qui a uniquement besoin de transmettre occasionnellement des données brutes à une passerelle.
Toutefois, si le point de terminaison doit gérer un trafic important ou effectuer des tâches supplémentaires de traitement sur les données de capteur, les exigences recommandées dans le Tableau 1 doivent être suivies. Bien évidemment, comme la puissance de traitement et la mémoire augmentent dans un point de terminaison LoRaWAN, sa consommation énergétique grimpe également, ce qui nécessite une capacité de batterie plus importante. Cet élément est en contradiction avec l'objectif de conception de LoRaWAN pour les points de terminaison IoT basse consommation.
Lors de la conception d'un point de terminaison LoRaWAN, il est important de se concentrer sur le fait qu'il s'agit d'un système basse consommation et d'empêcher l'introduction de nouvelles fonctionnalités qui viendraient compliquer le système et requérir plus d'énergie que nécessaire. Lors de la sélection d'un microcontrôleur pour un point de terminaison LoRaWAN, il convient de réduire au maximum la fréquence d'horloge et la taille de la mémoire, comme cela affecte également la consommation énergétique.
Mise à jour micrologicielle d'un microcontrôleur dans un point de terminaison LoRaWAN
En octobre 2018, la LoRa Alliance a normalisé les mises à jour micrologicielles sans fil (FUOTA) pour les points de terminaison LoRa sur l'ensemble des réseaux LoRa. Les nouvelles normes concernent la synchronisation d'horloge sur l'ensemble du réseau, ce qui réduit considérablement le nombre de paquets de données perdus. Les transmissions multidiffusions sont également standardisées, ce qui est nécessaire pour transmettre la même mise à jour micrologicielle à différents points de terminaison. La synchronisation d'horloge et les transmissions multidiffusions requièrent une base de temps précise, ce qui signifie que tous les points de terminaison LoRa doivent disposer de microcontrôleurs avec une horloge temps réel précise jusqu'à une milliseconde.
Même si la mise à jour micrologicielle dans les points de terminaison LoRaWAN est une fonction importante, cela crée un nouveau problème. La mise à jour micrologicielle sur le terrain implique la reprogrammation de la mémoire programme du microcontrôleur, qui est généralement une mémoire Flash non volatile. La programmation de la mémoire Flash requiert l'application de 10 V ou plus sur la cellule de mémoire. Cela nécessite un régulateur de tension plus grand et les circuits associés pour juste programmer la mémoire Flash. Comme les mises à jour micrologicielles ne se produisent que quelques fois par an dans certains systèmes en réseau, il s'agit d'un investissement qui élève les coûts et utilise l'espace carte inefficacement.
Il existe une alternative au microcontrôleur à mémoire Flash : le microcontrôleur à mémoire vive ferroélectrique (FRAM). La mémoire FRAM ne requiert que 1,5 V pour programmer une cellule. Le microcontrôleur basé FRAM 16 bits MSP430FR6047 de Texas Instruments constitue un bon exemple de solution répondant aux exigences recommandées pour un nœud LoRaWAN. Il présente une mémoire programme FRAM de 256 Ko et une horloge temps réel avec des fonctions d'alarme et de calendrier. Un bloc de cryptage prend en charge les normes AES-128 et AES-256. Le microcontrôleur prend en charge jusqu'à quatre ports SPI et dispose de suffisamment d'entrées d'interruption externes pour accueillir les quatre requises par le SX1262 de Semtech, facilitant ainsi l'interfaçage des deux dispositifs. De plus, la génération d'un identifiant unique étendu (EUI) IEEE 64 bits peut être facilement implémentée dans le micrologiciel (Figure 2).
Figure 2 : Le MSP430FR6047 présente une mémoire FRAM de 256 Ko, une mémoire SRAM de 8 Ko et une vaste gamme de périphériques pour les applications basées sur capteurs. (Source de l'image : Texas Instruments)
Le MSP430FR6047 est conçu pour les compteurs intelligents alimentés par batterie et présente un périphérique de détection à ultrasons intégré qui fournit une détection très précise du débit d'eau et du niveau de liquide. Ces fonctionnalités avancées peuvent s'adapter facilement à de nombreuses applications de détection.
Même si le MSP430FR6047 offre seulement 8 Ko de RAM au lieu des 16 Ko recommandés, il est possible que cela ne pose pas problème dans un point de terminaison de capteur LoRaWAN si l'application ne nécessite pas de traitement de fusion de capteurs complexe. De plus, le MSP430FR6047 offre un degré d'intégration élevé, ce qui améliore les performances tout en économisant de la mémoire et de l'espace carte. Un circuit d'entrée analogique pour les applications de détection à ultrasons inclut un générateur d'impulsions programmable, un convertisseur analogique-numérique (CAN) de 12 bits et un amplificateur à gain programmable, des dispositifs très utiles pour collecter des données à partir de capteurs analogiques.
Le MSP430FR6047 présente un multiplicateur matériel de 32 bits, ainsi qu'un cœur de traitement des signaux doté d'un accélérateur basse consommation (LEA) capable de réaliser des calculs FFT en 256 points, indépendamment du cœur MSP430. L'accélérateur basse consommation accélère le traitement des signaux pour les applications basse consommation, étendant ainsi la durée de vie des batteries.
Le MSP430FR6047 offre une consommation très basse, même avec des microcontrôleurs de 8 bits et 16 bits, qui sont déjà des dispositifs basse consommation. Avec le cœur MSP430 16 bits et les périphériques en cours d'exécution, il ne consomme que 120 microampères par mégahertz (µA/MHz). En mode veille avec l'horloge temps réel active, il consomme uniquement 450 nanoampères (nA). Le microcontrôleur présente un mode d'arrêt qui ne consomme que 30 nA, mais qui désactive l'horloge temps réel, c'est pourquoi le mode d'arrêt n'est pas recommandé pour un point de terminaison LoRaWAN.
Conception avec FRAM pour FUOTA
La carte d'évaluation EVM430-FR6047 est disponible pour le développement micrologiciel MSP430FR6047. Elle est alimentée par USB et contient tout le matériel nécessaire pour évaluer le MSP430 dans une application. La carte d'évaluation est dotée de connecteurs pour les modules BoosterPack™, afin d'ajouter des fonctionnalités supplémentaires à la carte. D'autres broches sont disponibles sur la carte pour connecter les capteurs.

Figure 3 : La carte d'évaluation EVM430-FR6047 de Texas Instruments pour le MSP430FR6047 est dotée d'un écran LCD et fournit un accès à toutes les broches sur le MSP430FR6047. (Source de l'image : Texas Instruments)
Pour l'évaluation et le développement du SX1262, Semtech offre la carte d'interface MBED LoRa SX1262MB2CAS (Figure 4).

Figure 4 : La carte d'interface MBED de Semtech pour le SX1262 est une simple carte d'évaluation contenant l'émetteur-récepteur RF SX1262. (Source de l'image : Semtech)
Les connecteurs BoosterPack du MSP430 fournissent tous les signaux nécessaires pour connecter le MSP430 à la carte d'interface MBED du SX1262. Le connecteur BoosterPack comprend les quatre broches SPI requises, ainsi que trois broches GPIO supplémentaires qui peuvent être configurées en tant qu'entrées interrogées sur le MSP430, ou configurées comme des interruptions externes. Si une interruption externe supplémentaire est nécessaire, quatre des broches du connecteur BoosterPack sont connectées à l'un des UART MSP430. Ces broches UART peuvent être configurées en tant que GPIO ou interruptions externes pour la carte d'interface MBED. Bien que le BoosterPack et la carte d'interface MBED n'offrent pas un brochage physiquement compatible, ils peuvent être facilement reliés pour fournir les connexions nécessaires entre le MSP430 et le SX1262.
De plus, Texas Instruments propose Code Composer Studio™, un environnement de développement intégré (IDE) qui prend en charge l'écriture et le débogage du code du MSP430.
Conclusion
LoRa a fait son apparition en tant que norme populaire pour la transmission de données de capteurs IoT. La norme s'est étendue pour inclure FUOTA, engendrant de nouveaux défis de longue durée de vie des batteries. En sélectionnant des microcontrôleurs basés FRAM et non Flash, les concepteurs peuvent considérablement réduire l'énergie requise pour écrire ces mises à jour dans la mémoire du dispositif.
De plus, comme démontré, le choix des microcontrôleurs devient encore plus important pour limiter la décharge de la batterie, tout en fournissant assez de puissance de traitement pour l'application.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.





