Accélérer la conception de connectivité sans fil longue portée avec un SiP LoRaWAN

Par Stephen Evanczuk

Avec la contribution de Rédacteurs nord-américains de DigiKey

Dans les applications de détection à distance nécessitant une connectivité sans fil longue portée, basse consommation et économique, la technologie LoRa est privilégiée par rapport à d'autres alternatives comme le Bluetooth et le Wi-Fi. Néanmoins, les développeurs ont encore du mal avec les nuances de la conception RF pour implémenter de manière efficace et rapide des conceptions LoRa qui maximisent la portée et les débits de données en respectant les budgets énergétiques limités disponibles pour les systèmes IoT classiques.

Pour accélérer la conception basée sur LoRa, les fournisseurs de puces ont développé des modules SiP (System-in-Package, système en boîtier) complets et les piles logicielles LoRaWAN associées, proposant ainsi des solutions de remplacement quasi direct pour une connectivité longue portée.

Cet article aborde brièvement l'approche LoRa avant de présenter des solutions matérielles et logicielles appropriées. Il explique ensuite la manière dont les concepteurs peuvent les utiliser pour obtenir une conception rapidement opérationnelle.

Réseaux IoT à longue portée

LoRa, abréviation de l'anglais « long-range » pour longue portée, définit une radio propriétaire à spectre étalé ultra-efficace, à faible coût et basse consommation. Sa capacité à prendre en charge des capteurs alimentés par batterie et d'autres applications basse consommation la rend particulièrement adaptée aux applications IoT fonctionnant à des distances supérieures aux portées Wi-Fi ou Bluetooth. Les conceptions basées sur LoRa peuvent fonctionner pendant de nombreuses années grâce à une batterie compacte tout en offrant une connectivité fiable et sécurisée aux grands réseaux qui s'étendent sur plusieurs kilomètres.

LoRaWAN est une couche MAC (Media Access Control) reposant sur l'interface radio LoRa qui définit le mode de fonctionnement du réseau et les débits de données (typiquement jusqu'à 50 kbit/s). (Reportez-vous à l'article LoRaWAN Part 1: How to Get 15 km Wireless and 10-Year Battery Life for IoT.) Fonctionnant dans une topologie de réseau en étoile, l'architecture de réseau étendu LoRaWAN utilise des passerelles pour relayer les messages entre plusieurs dispositifs finaux comme des capteurs IoT et un serveur hôte (Figure 1). Une radio LoRa peut être utilisée séparément, avec une couche MAC alternative à LoRaWAN, mais cette interface n'est pas conforme à la spécification LoRaWAN.

Schéma de la spécification LoRaWAN

Figure 1 : La spécification LoRaWAN permet des communications authentifiées et cryptées entre les dispositifs finaux et les serveurs réseau, en utilisant des passerelles pour relier la connectivité longue portée aux dispositifs finaux et la connectivité étendue aux hôtes réseau dans les environnements cloud ou dédiés. (Source de l'image : LoRa Alliance)

Dans cette architecture, les dispositifs finaux et les serveurs hôtes communiquent via des dispositifs passerelles, qui peuvent être configurés pour servir simplement de ponts de communication. Pour communiquer avec les serveurs hôtes, la passerelle utilise des options de connectivité classiques telles que Wi-Fi, Ethernet ou cellulaire. Pour communiquer avec les dispositifs finaux, la passerelle s'appuie sur la capacité de la couche physique (PHY) LoRa propriétaire de Semtech pour atteindre une connectivité longue portée fiable sur des bandes sub-GHz. Dans les deux cas, LoRaWAN protège les communications de bout en bout avec le cryptage AES à l'aide de clés de session réseau ou de session d'application pouvant être créées pendant la production, pendant la mise en service ou via l'activation sans fil (OTA).

Dans un réseau LoRaWAN, toutes les communications avec les dispositifs finaux sont bidirectionnelles, mais la spécification du protocole LoRaWAN fournit trois classes de dispositifs finaux différentes qui permettent aux développeurs d'équilibrer essentiellement la consommation énergétique et la latence de réponse. Les dispositifs finaux de classe A ne peuvent recevoir que pendant deux courtes fenêtres de réception en liaison descendante après chacune de leurs transmissions. En limitant les périodes d'activité des récepteurs, les dispositifs de classe A conviennent bien aux dispositifs à alimentation limitée, tels que les capteurs IoT. La classe B combine la classe A avec des fenêtres de réception supplémentaires. Cette classe convient donc aux dispositifs d'actionneur IoT qui doivent répondre plus rapidement aux requêtes de l'hôte, même si cela implique une consommation énergétique accrue du récepteur (Rx). Enfin, les dispositifs de classe C fournissent des fenêtres de réception presque continues et conviennent parfaitement aux passerelles LoRaWAN.

En cherchant à optimiser la sécurité LoRaWAN et la connectivité longue portée et à réduire la consommation, les développeurs peuvent prendre du retard en raison des nombreux détails nécessaires à la configuration de la plateforme matérielle et des systèmes logiciels. Cependant, le matériel et les logiciels de Microchip Technology simplifient l'implémentation des réseaux LoRaWAN, en offrant une solution de substitution quasi directe pour le déploiement de la technologie LoRa.

Solution intégrée basse consommation

Les modules SiP SAM R34/35 de Microchip associent un processeur Arm® Cortex®-M0+ basse consommation, un émetteur-récepteur SX1276 de Semtech, une mémoire Flash, une mémoire RAM, une mémoire RAM basse consommation (LP) spéciale et les périphériques typiquement requis dans les systèmes de capteurs (Figure 2). Outre les modules logiques configurables personnalisés, le SAM 34/35 inclut un convertisseur analogique-numérique (CAN) 12 bits à plusieurs canaux, des comparateurs analogiques et plusieurs modules de communication série pouvant être programmés pour prendre en charge les interfaces I2C, SPI et d'autres interfaces série. Les SiP SAM R34 et R35 présentent une seule différence : le R35 ne fournit pas l'interface USB incluse avec le R34. Hormis cette différence, les modules SAM R34/35 de 6 mm x 6 mm sont identiques dans trois configurations de mémoire différentes :

  • ATSAMR3xJ16BT-I/7JX avec mémoire Flash de 64 Ko, SRAM de 8 kbit, SRAM basse consommation de 4 Ko
  • ATSAMR3xJ17BT-I/7JX avec mémoire Flash de 128 Ko, SRAM de 16 kbit, SRAM basse consommation de 8 Ko
  • ATSAMR3xJ18BT-I/7JX avec mémoire Flash de 256 Ko, SRAM de 32 kbit, SRAM basse consommation de 4 Ko

Schéma du module SiP SAM R34/R35 de Microchip Technology

Figure 2 : Le module SiP SAM R34/R35 de Microchip Technology associe un cœur de processeur Arm Cortex-M0+ basse consommation, un émetteur-récepteur SX1276 de Semtech, de la mémoire et plusieurs périphériques, à l'exception d'USB pour le SAM R35. (Source de l'image : Microchip Technology)

Conçus spécifiquement pour les applications basse consommation, les modules SiP offrent de multiples options sélectionnables par logiciel pour réduire la consommation pendant les périodes de faible activité. Les développeurs peuvent configurer le SAM R34/R35 pour qu'il fonctionne à deux niveaux de performances différents. Au niveau de performances le plus élevé, PL2, le cœur du dispositif fonctionne à la tension la plus élevée, ce qui lui permet de fonctionner à des fréquences d'horloge élevées. Au niveau de performances inférieur, PL0, le niveau de tension du cœur est adapté à la fréquence de fonctionnement réduite, ce qui réduit la consommation énergétique globale.

À un niveau de performances donné, les développeurs peuvent également programmer le dispositif pour qu'il fonctionne dans différents modes d'alimentation. En mode inactif, le module ne consomme que 4,5 mA avec de courtes périodes de pointe atteignant 28 mA pour l'émetteur et 10,3 mA pour le récepteur. Les développeurs peuvent réduire la consommation énergétique du module à 1,4 µA en le plaçant en mode veille, ce qui désactive toutes les horloges et fonctions, à l'exception de celles programmées spécifiquement pour poursuivre leur activité. De plus, les modules prennent en charge le fonctionnement SleepWalking, qui permet aux périphériques sélectionnés de répondre aux événements indépendamment du processeur, d'effectuer des opérations sur les périphériques et de réactiver le processeur uniquement si nécessaire. Pour réduire la consommation énergétique pendant les périodes d'inactivité prolongées, les développeurs peuvent placer le module en mode de veille renforcée, qui ne consomme que 790 nA. Microchip met en garde contre la mise hors tension du dispositif en raison des conditions de métastabilité résultant de l'impédance élevée au niveau du bus SPI interne.

Implémentation de la conception

Grâce à la fonctionnalité d'intégration des modules, les exigences en matière d'interface matérielle sont simples. Outre des condensateurs de découplage pour le SiP SAM R34/R35, les développeurs doivent uniquement ajouter un commutateur de signal comme le SKY13373 de Skyworks Solutions et les composants passifs requis pour les trajets des signaux RF de transmission et de réception (Figure 3).

Schéma du module SAM R34/R35 de Microchip Technology (cliquez pour agrandir)

Figure 3 : Avec un module SAM R34/R35 de Microchip Technology, les développeurs ont besoin de quelques composants supplémentaires, autres que ceux requis pour le trajet du signal RF et le commutateur RF associé, comme le SKY13373 de Skyworks Solutions. (Source de l'image : Microchip Technology)

Les développeurs peuvent éviter ces exigences matérielles supplémentaires en utilisant le kit d'évaluation Xplained Pro SAM R34 DM320111 de Microchip Technology. Ils peuvent utiliser le kit pour commencer à évaluer immédiatement le SAM R34 ou étendre la conception de référence matérielle pour leurs dispositifs personnalisés.

Microchip aide également à accélérer le développement logiciel en combinant un micrologiciel de module SAM R34/R35 et le logiciel d'exemple, disponibles avec l'environnement de développement intégré Atmel Studio 7. S'appuyant sur la couche PHY et l'émetteur-récepteur LoRa SX1276 de Semtech intégrés, les SiP SAM R34/R35 fournissent une implémentation LoRaWAN certifiée par le biais de leur pile LoRaWAN Microchip (MLS) intégrée (Figure 4).

Schéma de la pile LoRaWAN de Microchip (MLS)

Figure 4 : Grâce à un ensemble d'interfaces de programmation (API), la pile LoRaWAN de Microchip (MLS) fournit aux développeurs des services micrologiciels pour les couches MAC et PHY, le stockage persistant, la gestion de l'alimentation, etc. (Source de l'image : Microchip Technology)

Basé sur la structure ASF (Advanced Software Framework) de Microchip des modules principaux et des pilotes du dispositif, le micrologiciel MLS fournit des interfaces de programmation pour chacun de ses services, notamment :

  • LoRaWAN MAC, qui fournit la fonctionnalité de couche LoRaWAN MAC
  • LoRaWAN Radio Layer (TAL), qui permet d'accéder à l'émetteur-récepteur LoRa
  • Persistent Data Server (PDS), qui fournit une couche de service pour la mémoire Flash, réduisant le temps d'accès et les cycles d'accès pour la récupération des paramètres MLS
  • Power Manager Module (PMM), qui met le processeur en mode de veille renforcée pendant les périodes d'inactivité
  • Hardware Abstraction Layer (HAL), qui protège le code des spécificités matérielles
  • Bibliothèques de temporisateurs
  • Programmateur, qui alloue les ressources du processeur aux différents modules

À l'aide des fonctions de l'API, les développeurs peuvent contrôler avec précision chaque aspect des fonctionnalités du module. Par exemple, pour mettre le module en mode de veille renforcée, les développeurs appellent la fonction API PMM, PMM_Sleep(), qui implique une structure de demande de veille contenant la durée de veille, le mode de veille (inactivité, veille, veille renforcée ou désactivation) et une fonction de rappel à l'achèvement (Liste 1). Dans une application, les développeurs appellent généralement cette fonction après chaque tâche. Par exemple, la distribution ASF de Microchip inclut une application de dispositif final d'exemple qui utilise cette approche dans une boucle sans fin (Liste 2). Chaque API MLS fournit des points d'entrée similaires aux services micrologiciels MLS.

Copier /* Structure of sleep request */ typedef struct _PMM_SleepReq_t { /* Sleep time requested to PMM. Unit is milliseconds */ uint32_t sleepTimeMs; /* Sleep Modes */ HAL_SleepMode_t sleep_mode; /* Callback from sleep request */ void (*pmmWakeupCallback)(uint32_t sleptDuration); } PMM_Sleep 

Liste1 : La distribution ASF (Advanced Software Framework) de Microchip fournit un logiciel d'exemple démontrant les principaux schémas de conception et structures de données, comme cette structure utilisée pour mettre le module SAM R34/R35 de Microchip Technology en veille renforcée. (Source du code : Microchip Technology)

Copier .
.
.
while (1)     {               serial_data_handler();         SYSTEM_RunTasks(); #ifdef CONF_PMM_ENABLE         if (false == certAppEnabled)         {             if(bandSelected == true)             {                 PMM_SleepReq_t sleepReq;                 /* Put the application to sleep */                 sleepReq.sleepTimeMs = DEMO_CONF_DEFAULT_APP_SLEEP_TIME_MS;                 sleepReq.pmmWakeupCallback = appWakeup;                 sleepReq.sleep_mode = CONF_PMM_SLEEPMODE_WHEN_IDLE;                 if (CONF_PMM_SLEEPMODE_WHEN_IDLE == SLEEP_MODE_STANDBY)                 {                     deviceResetsForWakeup = false;                 }                 if (true == LORAWAN_ReadyToSleep(deviceResetsForWakeup))                 {                     app_resources_uninit();                     if (PMM_SLEEP_REQ_DENIED == PMM_Sleep(&sleepReq))                     {                         HAL_Radio_resources_init();                         sio2host_init();                         /*printf("\r\nsleep_not_ok\r\n");*/                     }                 }             }         } #endif     }   .
.
. 

Liste 2 : Le logiciel d'exemple de Microchip explique comment les développeurs peuvent utiliser quelques appels d'API pour ramener un module SAM R34/R35 de Microchip Technology à un état basse consommation pendant les périodes inactives. (Source du code : Microchip Technology)

Le code d'exemple disponible via Studio 7 ou séparément via la distribution ASF fournit une démonstration complète de l'utilisation des appels API MLS lors de l'implémentation d'une application LoRaWAN. Une démonstration de l'implémentation du dispositif final illustre d'importantes opérations de haut niveau, notamment l'initialisation d'un dispositif en récupérant les attributs et paramètres MLS précédemment stockés à partir du service PDS (Persistent Data Server) (Liste 3). D'autres logiciels d'exemple fournissent une suite de routines de test permettant aux développeurs d'examiner les caractéristiques de performances LoRaWAN détaillées et les appels API MLS utilisés pour extraire ces valeurs. En combinant les exemples logiciels de Microchip avec le kit d'évaluation Xplained Pro SAM R34, les développeurs peuvent rapidement se familiariser avec les opérations LoRaWAN en général et avec le service micrologiciel de Microchip en particulier.

Copier /*********************************************************************//** \brief Initialization the Demo application *************************************************************************/ void mote_demo_init(void) { bool status = false; /* Initialize the resources */ resource_init(); /* Read DEV EUI from EDBG */ dev_eui_read(); startReceiving = false; /* Initialize the LORAWAN Stack */ LORAWAN_Init(demo_appdata_callback, demo_joindata_callback); printf("\n\n\r*******************************************************\n\r"); printf("\n\rMicrochip LoRaWAN Stack %s\r\n",STACK_VER); printf("\r\nInit - Successful\r\n"); status = PDS_IsRestorable(); if(status) { static uint8_t prevBand = 0xFF; uint8_t prevChoice = 0xFF; PDS_RestoreAll(); LORAWAN_GetAttr(ISMBAND,NULL,&prevBand); for (uint32_t i = 0; i < sizeof(bandTable) -1; i++) { if(bandTable[i] == prevBand) { prevChoice = i; break; } } memset(rxchar,0,sizeof(rxchar)); sio2host_rx(rxchar,10); printf ("Last configured Regional band %s\r\n",bandStrings[prevChoice]); printf("Press any key to change band\r\n Continuing in %s in ", bandStrings[prevChoice]); SwTimerStart(demoTimerId,MS_TO_US(1000),SW_TIMEOUT_RELATIVE,(void *)demoTimerCb,NULL); } else { appTaskState = DEMO_CERT_APP_STATE; appPostTask(DISPLAY_TASK_HANDLER); } } 

Liste 3 : Cet extrait de code provenant d'une application d'exemple de dispositif final de Microchip illustre le schéma de conception de base associé à l'initialisation d'un dispositif, incluant la restauration des attributs LoRaWAN (PDS_IsRestorable ()), le cas échéant, à partir du service PDS (Persistent Data Server). (Source du code : Microchip Technology)

Conclusion

La technologie LoRa est idéale pour répondre à la demande émergente en matière de connectivité longue portée pour les capteurs IoT alimentés par batterie. Par le passé, toutefois, les développeurs devaient développer des parties majeures de sous-systèmes matériels et logiciels. Grâce à leur matériel et à leur micrologiciel intégrés, les modules SiP SAM R34/R35 de Microchip éliminent efficacement bon nombre des exigences de conception détaillées associées aux approches antérieures. En les combinant avec le matériel et les logiciels basés sur LoRaWAN de Microchip, les développeurs peuvent rapidement implémenter des dispositifs IoT alimentés par batterie et des passerelles basse consommation pour réaliser des communications longue portée sécurisées avec des serveurs hôtes dans le cloud ou dans des environnements dédiés.

DigiKey logo

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é.

À propos de l'auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk affiche plus de 20 ans d'expérience dans la rédaction de contenu pour et sur l'industrie électronique, couvrant un large éventail de sujets, notamment le matériel, les logiciels, les systèmes et les applications, y compris l'IoT. Il a obtenu son doctorat (Ph.D.) en neurosciences sur les réseaux neuronaux et a travaillé dans l'industrie aérospatiale sur les systèmes sécurisés massivement distribués et les méthodes d'accélération par algorithmes. Actuellement, lorsqu'il n'écrit pas d'articles techniques, il travaille sur l'application de l'apprentissage approfondi pour les systèmes de reconnaissance et de recommandation.

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey