Comparaison des approches d’interfaçage d’un modem LTE-M (CAT-M1)

Introduction

Cet article compare deux approches pour interfacer un modem LTE-M (Cat-M1). L’article a été écrit par Altus Technologies , un fabricant canadien de surveillance de la chaîne du froid et d’autres solutions IoT.

Objectif du projet

Pour Altus Technologies, l’objectif de ce projet était de développer un capteur de température sans fil qui envoie des données sur un réseau LTE-M (Cat-M1) et mesure ses caractéristiques de performance par rapport à une conception basée sur LoRaWan.

Architecture de base

L’architecture actuelle d’un capteur de température basé sur LoRa est décrite dans la Figure-1.

Le MCU est conçu pour lire la température périodiquement ou en fonction de l’entrée de l’utilisateur. Les valeurs échantillonnées sont envoyées à la passerelle LoRa via la messagerie LoRa. Côté cloud, un serveur LoRa reçoit le message des passerelles et se connecte à un tableau de bord cloud pour la visualisation et l’analyse.

Cette architecture est parfaite pour les cas d’utilisation industrielle où l’appareil est soit stationnaire, soit mobile jusqu’à quelques kilomètres. Mais il ne peut pas prendre en charge le cas d’utilisation où l’appareil est en transit sur un camion réfrigéré. De plus LoRa ne fournit pas de QoS aux niveaux requis par la plupart des cas d’utilisation industrielle critiques.

Figure 1 : Architecture système actuelle pour un capteur LoRa

PicoLTE – Le réseau tout-en-un

En savoir plus sur le PicoLTE et ce qu’il peut faire pour vous.

Architecture proposée du module CAT-M

Les cas d’utilisation où la température doit être surveillée en continu pendant que l’appareil est en transit et où des alertes doivent être générées immédiatement sont traités par le capteur basé sur CATM. Pour ce faire, un module LTE CAT-M prenant en charge la bande 14 est choisi. Le module HL78xx CAT-M choisi de Sierra Wireless prend en charge la bande 14 et la bande 42. Ce module est certifié PTCRB et est disponible aujourd’hui pour un déploiement sur les réseaux Verizon, Rogers, Vodafone, T-Mobile et Sierra Wireless. Le module est précertifié et aucune modification de logiciel/micrologiciel n’est nécessaire. Le module HL78 sera interfacé à notre processeur STM32 existant via une interface UART.

Nous avons envisagé deux approches :

Approche no 1) Utilisez la pile LwM2M sur module

Un client LwM2M est déjà implémenté sur le module L78xx CAT-M. On peut tirer parti de la pile LwM2M de Sierra et envoyer des données à Airvantage Cloud en utilisant simplement quelques commandes AT simples sur le MCU STM32L03X. C’est l’approche la plus simple.

Approche no 2) Implémentez votre propre pile sur notre MCU

L’autre approche consiste à implémenter notre propre pile sur STM32. On peut implémenter LwM2M, MQTT, un autre protocole, ou définir votre propre protocole et traiter les paquets TCP ou UDP bruts.

Traiter

Nous avons décidé d’implémenter MQTT sur le STM32 (Approche no 2) parce que nous voulions un protocole plus simple qui soit plus comparable à LoRaWAN et qui consiste à fournir un transport pour la publication des données des capteurs vers le cloud. Nous n’avions pas besoin du cadre de sécurité de LwM2M ni de la fonctionnalité de gestion des appareils.

Telit a un excellent article sur les différences entre MQTT et LwM2M que nous ne couvrirons pas ici.

Dans ce cas, nous exploitons toujours la pile TCP/IP sur le module Sierra, mais nous n’utilisons pas les commandes AT spécifiques à Airvantage. Nous utilisons uniquement les commandes AT pour ouvrir un port et établir une connexion tcp/ip socket à notre serveur. MQTT est implémenté sur le STM32.

Les inconvénients de notre approche sont un temps de développement plus long, les risques liés à la mise en œuvre de MQTT sur STM32, etc. De plus, davantage de tests et d’optimisations seront nécessaires pour garantir le bon fonctionnement de MQTT, en particulier dans des conditions de couverture Cat-M1 médiocres. Contrairement au LwM2M qui est entièrement configuré et approuvé, nous avons utilisé PicoLTE de Nutaq pour mettre en œuvre un réseau Cat-M1 privé dans les bandes 14 et 42 et optimisé et caractérisé le comportement de l’appareil dans diverses conditions de réseau dans un environnement contrôlé.

Un client MQTT doit être porté sur le processeur STM et un client AT enverra les paquets MQTT au module CATM. La pile TCP/IP s’exécute sur le module CATM. Le portage du client MQTT vers STM et son utilisation de la mémoire est un élément à haut risque et a déjà été analysé pour réduire les risques du projet.

Figure 2: Architecture système proposée pour un capteur CAT-M

Architecture logicielle

Le micrologiciel de base est conçu pour échantillonner l’ADC et envoie périodiquement des messages LoRa. MQTT doit être porté sur cette plateforme et un client AT doit être développé pour s’interfacer avec le module HL78 CATM. La pile TCP/IP fonctionnera sur le module CATM et est précertifiée pour plusieurs exploitants de réseaux mobiles.

Figure 3 : Architecture logicielle

Modes de fonctionnement

Le MCU principal est le maître de cette architecture et échantillonne les données selon la configuration de l’utilisateur. Le MCU réveillera le module CATM en basculant un GPIO. Après le réveil du MCU, une connexion TCP sera établie pour transmettre les données du capteur au cloud. Si la connexion réseau n’est pas disponible, l’appareil stockera les échantillons localement et se synchronisera avec le cloud à la prochaine période.

Figure-4: Modes de fonctionnement

Modes basse consommation dans le module CATM

Le module HL78 fonctionne comme un esclave dans cette conception. Le module CATM sera réveillé par le MCU externe par un signal GPIO. Après le réveil de l’appareil, une connexion TCP est établie avec le serveur cloud et les échantillons sont transférés sur le réseau. Si la connectivité réseau n’est pas disponible, le module CATM repasse en mode Hibernation.

Mode d’alimentation État possible du modem État des E/S Source du signal de réveil matériel
Veille Pile désactivée, DRX, eDRX, PSM, aucun service Retenu UART1_DTR
Se réveiller
Hibernation partielle Pile désactivée, eDRX, PSM, aucun service Retenu UART1_DTR
Se réveiller
Hibernation Stack OFF, eDRX, PSM Non retenu UART1_DTR

Avertissement : Si USB_VBUS est connecté, il ne sera pas possible d’entrer en mode Hibernation partielle ou Hibernation.

Figure-5 : Modes basse consommation

Rapport de projet

Utilisation de la mémoire

Dans un premier temps, l’utilisation de la mémoire du client MQTT sur l’appareil STM32 a été étudiée. Les conclusions sont les suivantes :

Type de mémoire Disponible Utilisée actuellement Exigence MQTT Utilisation (y compris le client MQTT)
Éclat 192 Ko 55,10 Ko ~3,5 Ko 30,5 %
RAM 20 Ko 7,14 Ko ~0,5 Ko 38,2 %
EEPROM 20 Ko Non utilisée N / A N / A

Tableau-2 : Utilisation de la mémoire

D’après notre analyse, le client MQTT s’adapte confortablement à l’architecture proposée. Bien qu’il y ait suffisamment d’espace pour prendre en charge une pile réseau comprenant LwIP et SSL, les ajouter au processeur STM pourrait nous coûter plus de 100 Ko et est risqué si nous voulons garder de l’espace pour ajouter de nouvelles fonctionnalités. Avec l’architecture proposée, LwIP et SSL seront dans le module CATM, l’utilisation de la mémoire n’est donc pas un problème.

Performances du réseau

Comme MQTT a des paramètres QoS programmables et que LoRa QoS est similaire à MQTT QoS niveau 0, nous avons comparé l’implémentation de LoRa avec MQTT au niveau QoS 0 comme cas de base.

Les captures côté serveur pendant que l’appareil envoyait des données de température à l’aide d’un réseau CATM via MQTT ont permis de confirmer qu’il n’y avait pas de baisse de paquets alors que le rssi de la cellule restait fort.

Figure 6 : trace Wireshark

Figure 7 : Graphique E/S Wireshark

Le PicoLTE a joué un rôle déterminant dans l’optimisation et la caractérisation du comportement de notre appareil lorsque nous avons diminué le gain de la cellule Cat-M1, introduit la gigue des paquets, testé le transfert et activé le mode d’amélioration de la couverture.

Figure 8: Simulateur Nutaq PicoLTE Cat-M1 et NB-IOT

PicoLTE – Le réseau tout-en-un

En savoir plus sur le PicoLTE et ce qu’il peut faire pour vous.

Statistiques IPV4

Nous avons simulé des déconnexions du réseau en retirant l’antenne et en la reconnectant ainsi qu’en redémarrant le serveur. Nous avons également arrêté et redémarré la cellule Cat-M1 sur le PicoLTE. L’appareil s’est reconnecté (comme indiqué par les 3 ports différents dans l’image ci-dessous) et a récupéré dès que le réseau a été rétabli.

Figure 9: Destinations et ports Wireshark

Architecture et conception matérielles

Au lieu du modem intelligent, un modem BitPipe est utilisé pour le projet car il s’agissait du seul appareil prenant en charge BAND14 et certifié pour les exploitants de réseaux mobiles canadiens au début du projet.

Le modem BitPipe provient de Sierra Wireless et d’un module appelé HL7800. Il est connecté à un processeur embarqué STM32 programmable via UART.

Figure 10 : Architecture matérielle

Conclusion

En conclusion, nous avons pu développer un capteur de température sans fil qui publie sur un courtier MQTT sur un réseau LTE-M (Cat-M1) et le comparer à notre conception de base basée sur LoRaWan. Nous avons appris les compromis entre deux approches :

Approche no 1) Utiliser la pile LwM2M sur module

Approche no 2) Implémentez votre propre pile sur notre MCU

Nous avons appris à utiliser le simulateur de réseau PicoLTE de Nutaq pour optimiser et valider notre appareil.