Créer rapidement un dispositif réseau maillé compatible avec plusieurs protocoles

Par Jim Turley

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

Les dispositifs connectés sont souvent mis en réseau au moyen d'un des nombreux modèles de topologie maillée disponibles qui mettent l'accent sur la robustesse du réseau, la couverture de la zone et l'aspect basse consommation. Les concepteurs devaient généralement choisir l'un de ces protocoles concurrents et incompatibles, puis procéder à l'implémentation de la pile logicielle sur la plateforme matérielle choisie. Ces deux tâches représentent un défi et peuvent désormais être évitées.

Grâce aux progrès en intégration, les développeurs ont la possibilité de choisir un contrôleur de réseau maillé existant à faible coût et à faible empreinte, qui prend en charge plusieurs normes concurrentes, y compris Thread, Zigbee et Bluetooth Low Energy (BLE). Plusieurs degrés de flexibilité peuvent alors être obtenus :

  • Cela permet aux développeurs de procéder à la conception et de sélectionner un protocole plus tard dans le cycle de conception.
  • Cela permet aux développeurs de tester et de choisir le meilleur protocole pour l'application, de manière empirique, à l'aide d'un dispositif et d'une plateforme de développement simples.
  • Une plateforme simple peut être utilisée pour plusieurs applications et régions géographiques.
  • Cela permet à des dispositifs d'être déployés avec un protocole, puis d'être transformés plus tard avec une mise à niveau micrologicielle.

Cet article décrit quelques principes de base du réseau maillé sans fil avant de présenter la gamme de systèmes sur puce (SoC) sans fil Mighty Gecko et les outils de développement associés de Silicon Labs. Il montre ensuite la façon dont un concepteur peut l'utiliser comme une plateforme pour créer rapidement un réseau maillé opérationnel basé sur divers protocoles réseau concurrents.

Qu'est-ce qu'un réseau maillé sans fil ?

Les réseaux maillés sans fil diffèrent des réseaux présentant une topologie en étoile habituelle comme le Wi-Fi ou des protocoles point à point, selon la spécification Bluetooth d'origine. Dans un réseau maillé, les paquets de données peuvent effectuer un « saut » d'un dispositif connecté à un autre jusqu'à ce qu'ils atteignent leur destination (Figure 1). Par ailleurs, il suffit que chaque dispositif individuel se trouve à portée d'un autre dispositif sur le réseau pour pouvoir communiquer avec tous les autres dispositifs du même réseau. Par exemple, un dispositif situé au sous-sol peut communiquer avec un dispositif situé au grenier, même si aucun ne dispose d'une énergie RF suffisante pour atteindre l'autre directement. Un bon protocole maillé permet d'optimiser le chemin en fonction des exigences de l'application.

Schéma de comparaison entre un réseau en étoile et un réseau maillé

Figure 1 : Un réseau en étoile (en haut) possède un routeur ou un point d'accès central par lequel tous les nœuds doivent communiquer, tandis que dans un réseau maillé (en bas), tous les nœuds coopèrent pour distribuer les données dans un réseau. (Source de l'image : Silicon Labs)

Du fait que tous les dispositifs d'un réseau maillé coopèrent pour transmettre des messages vers leur destination, le réseau peut tolérer des nœuds manquants, défaillants ou désactivés. En supposant que chaque nœud se trouve à portée de plusieurs autres nœuds, cette capacité de saut et de routage rend les réseaux maillés très robustes et tolérants aux pannes. Le concept est similaire à l'ensemble de protocoles TCP/IP sur lequel repose Internet : les paquets de données arrivent au final à destination, même si cela n'est pas toujours par un chemin direct.

Il existe plusieurs protocoles de réseau maillé concurrents, qui sont tous mutuellement incompatibles, bien qu'ils reposent sur des principes sous-jacents similaires. Zigbee, Thread et BLE en sont trois exemples. Ils fonctionnent tous dans la même bande de 2,4 GHz, mais utilisent des protocoles de maillage différents, ce qui les rend incapables d'interagir.

Chaque protocole de maillage sans fil possède ses avantages et inconvénients, et il appartient aux développeurs de choisir la norme qui leur convient le mieux. Dans certains cas, les développeurs préféreront créer leur propre réseau maillé sans fil propriétaire plutôt que d'adopter l'une des normes disponibles. Cela peut être pour des raisons de sécurité, pour la différenciation du produit ou pour l'implémentation d'ensembles de fonctionnalités uniques.

Présentation de Mighty Gecko

Pour optimiser la flexibilité et réduire les délais de conception et de développement, il est recommandé de choisir un contrôleur réseau sans fil qui prend en charge plusieurs normes. Cette flexibilité est offerte aux développeurs de quatre façons. Premièrement, cela repousse la décision concernant le choix d'une norme réseau à bien plus tard dans le cycle de conception, lorsque davantage de commentaires client ou d'informations sur le marché sont disponibles. Deuxièmement, cela permet aux développeurs de tester différentes normes réseau en laboratoire et de choisir la plus appropriée en fonction de preuves empiriques. Troisièmement, cela permet à une plateforme simple d'être déployée dans plusieurs produits au moyen de normes réseau différentes. Cela peut être particulièrement utile en cas de fourniture de services vers différents marchés géographiques dans le monde. Quatrièmement, cela permet de modifier, d'améliorer ou de mettre à niveau le dispositif ou la plateforme sur le terrain, peut-être même en modifiant le réseau pris en charge.

Pour fournir cette flexibilité aux concepteurs, Silicon Labs a développé la gamme de dispositifs SoC sans fil de réseau maillé Mighty Gecko (Figure 2). La gamme (appelée en interne EFR32MG) inclut plusieurs membres associés, qui sont tous basés sur le même cœur de processeur Arm® Cortex®-M4 32 bits, 40 MHz.

Schéma de la gamme de SoC Mighty Gecko de Silicon Labs (cliquez pour agrandir)

Figure 2 : Basée sur un processeur Arm Cortex-M4, la gamme de SoC Mighty Gecko possède presque tout ce qu'il faut pour un contrôleur réseau maillé sans fil. (Source de l'image : Silicon Labs)

Les options disponibles incluent la taille de la mémoire Flash sur puce (256, 512 ou 1024 Ko), la taille de la mémoire SRAM interne (32, 64, 128 ou 256 Ko), le type de boîtier et la plage de températures. Tous les SoC Mighty Gecko sont spécifiés pour une plage de températures industrielles (-40°C à +85°C), certains étant qualifiés pour une plage de températures étendues/automobiles (-40°C à +125°C).

En tant que SoC, le Mighty Gecko possède presque tout ce qu'il faut pour un contrôleur réseau sans fil. La section radio en haut à gauche du schéma fonctionnel montre deux sections RF distinctes : une section pour la bande de 2,4 GHz avec jusqu'à 19 dBm de puissance de transmission utilisée pour Thread, Zigbee et BLE, et une section radio sub-GHz distincte avec jusqu'à 20 dBm de puissance pour l'implémentation de réseaux propriétaires.

La puce possède également une gestion de l'alimentation sur puce étendue, une plage de tensions de fonctionnement de 1,8 V à 3,8 V, un convertisseur CC/CC intégré et la capacité « Wake on Radio » qui permet à la puce complète de passer en mode veille basse consommation jusqu'à ce qu'elle reçoive un paquet radio. En outre, des fonctions intégrées de détection de la force de signal, de détection de synchroniseur initial, de détection de trame et de délai d'attente permettent à la puce de s'activer uniquement en cas de transmissions radio qui lui sont pertinentes, mais pas nécessairement pour tout le trafic radio.

Plutôt que de concevoir une carte basée sur Mighty Gecko à partir de zéro, il est plus facile de commencer avec un kit d'évaluation et de développement prêt à l'emploi. Le kit de démarrage pour réseau maillé SLWSTK6000B inclut l'ensemble du matériel et des logiciels requis pour configurer et tester un petit réseau maillé.

Le kit inclut trois ensembles de cartes identiques, qui sont constitués chacun d'une carte principale et de plusieurs choix de cartes radio plug-in (Figure 3). Un seul ensemble peut être utile au début d'une évaluation ou d'un développement logiciel. Cependant, au moins deux sont nécessaires pour tester le réseau, et au moins trois pour tester les fonctionnalités du maillage. Cela explique le fait que tous les éléments qui accompagnent le kit SLWSTK6000B vont par trois.

Image du kit de démarrage SLWSTK6000B de Silicon Labs

Figure 3 : Un kit de démarrage SLWSTK6000B inclut trois ensembles identiques de cartes principales et de cartes radio permettant de créer un petit réseau maillé. (Source de l'image : Silicon Labs)

Ce qui semble être un grand circuit intégré au milieu de la carte principale est en réalité un affichage LCD (Figure 4). L'affichage monochrome 128 × 128 pixels ne nécessite que très peu d'énergie et stocke les données de pixels en interne, ce qui fait qu'il n'a pas besoin d'être actualisé. La puce du microcontrôleur Mighty Gecko se trouve sur la carte radio plug-in de plus petite taille.

Image de la paire carte principale/carte radio du kit de démarrage pour réseau maillé SLWSTK6000B de Silicon Labs

Figure 4 : Une paire carte principale/carte radio du kit de démarrage pour réseau maillé SLWSTK6000B. Le grand dispositif au centre est un affichage LCD adressable par points. (Source de l'image : Silicon Labs)

Les cartes radio plug-in sont amovibles et remplaçables sur chaque carte principale, et chaque kit est livré avec deux types différents pour chaque carte principale (un total de six cartes radio). Les cartes du kit prennent toutes en charge Zigbee et Thread dans la bande de 2,4 GHz. Cependant, d'autres cartes avec d'autres caractéristiques RF et fréquences sont également disponibles, y compris certaines qui prennent en charge des fréquences sub-GHz pour des réseaux propriétaires.

Il est recommandé d'assembler le matériel et de le mettre sous tension avant d'installer et d'exécuter l'environnement de développement intégré (IDE) du logiciel, mais cela n'est pas obligatoire. Choisissez simplement une carte radio et insérez-la soigneusement sur les embases correspondantes sur la carte principale. Il existe différents moyens de fournir l'alimentation : batterie, adaptateur CA ou USB. Cependant, le moyen le plus simple est un câble USB, qui fournit également quelques avantages supplémentaires. La connexion USB se trouve à l'extrémité gauche de la carte principale, à l'opposé de la carte radio.

Une fois que la carte est sous tension, une LED bleue près du connecteur USB s'allume et le LCD carré au milieu s'illumine. Après une courte pause, une LED verte clignotante s'allume également.

Pour les prochaines étapes, il est recommandé de maintenir le matériel connecté au système de développement au moyen du câble USB. Il est également recommandé de mettre le petit commutateur d'alimentation à trois positions (près du coin inférieur gauche de la carte principale) à la position la plus à droite : « AEM ».

Installation du logiciel

Simplicity Studio est l'environnement de développement intégré (IDE) tout-en-un de Silicon Labs pour Mighty Gecko, ainsi que pour de nombreux autres microcontrôleurs de la société. Pour télécharger le logiciel gratuit, consultez la page de téléchargement de Simplicity Studio de la société. Installez et exécutez Simplicity Studio avant de continuer.

Lancez Simplicity Studio et suivez les invites pour réaliser quelques étapes de configuration supplémentaires spécifiques au matériel du kit de développement et au logiciel souhaité. Le processus est simple, mais nécessite quelques décisions et probablement une étape supplémentaire pour l'enregistrement du matériel.

Si la carte principale est encore connectée au PC de développement conformément à la recommandation ci-dessus, Simplicity Studio détecte l'interface USB du matériel pendant son installation, et télécharge et configure automatiquement quelques fonctionnalités spécifiques au matériel.

L'étape suivante consiste à télécharger le logiciel spécifique au matériel pour ce kit de développement. Simplicity Studio offre deux options : « Install by Device » (Installer par dispositif) ou « Install by Product Group » (Installer par groupe de produits) (Figure 5). L'une ou l'autre option génère au final le même résultat, mais il est plus facile de sélectionner la première option. Il est alors recommandé de cliquer sur le gros bouton vert « Install by Device » (Installer par dispositif).

Image du logiciel Simplicity Studio

Figure 5 : Simplicity Studio offre deux options pour le chargement de support logiciel spécifique au projet ; Install by Device (Installer par dispositif) ou Install by Product Group (Installer par groupe de produits). (Source de l'image : DigiKey Electronics)

Simplicity Studio devrait automatiquement détecter la carte de développement. Si ce n'est pas le cas, il est facile de localiser manuellement le pack logiciel requis. Saisissez simplement « SLWSTK6000B » dans la zone de recherche, tel qu'illustré dans la Figure 6. Double-cliquez sur le pack de support logiciel suggéré dans le résultat de recherche, puis cliquez sur Next (Suivant).

Image de la zone de recherche de Simplicity Studio

Figure 6 : Saisie de SLWSTK6000B dans la zone de recherche pour localiser rapidement le logiciel requis. (Source de l'image : DigiKey Electronics)

Ensuite, Simplicity Studio met en évidence le support logiciel supplémentaire disponible pour cette configuration matérielle. Certaines parties de ce logiciel sont limitées aux utilisateurs qui se sont enregistrés auprès de Silicon Labs ou qui ont enregistré le matériel. De ce fait, certaines options peuvent être grisées et être temporairement indisponibles, comme dans la Figure 7.

Image de l'accès aux options du logiciel Simplicity Studio

Figure 7 : L'accès à certaines parties du logiciel est accordé sous réserve de la fourniture de la preuve d'achat du matériel. (Source de l'image : DigiKey Electronics)

Les piles logicielles pour Thread, Zigbee et d'autres protocoles sont subordonnées à la fourniture de la preuve d'achat du matériel compatible avec la technologie de maillage, tel que le kit de développement SLWSTK6000B. Il est ainsi important de terminer les étapes d'enregistrement suivantes avant de continuer.

Commencez par localiser le code hexadécimal à 10 chiffres sur l'extérieur de la boîte du kit de démarrage Mighty Gecko. (Pour obtenir de l'aide pour trouver la clé à 10 chiffres, reportez-vous à l'article de la base de connaissances Zigbee et Thread « Access to Silicon Labs Wireless Mesh Stacks » de Silicon Labs.) Cliquez ensuite sur le lien « Register Kit » (Enregistrer le kit) sur les options Thread ou EmberZNet (Zigbee), comme dans l'illustration ci-dessus. Cela finalise le processus d'enregistrement du matériel et déverrouille les piles de protocole de réseau maillé. Cliquez sur Next (Suivant) pour continuer.

Enfin, Simplicity Studio présente un long manifeste de toutes les options du logiciel dont l'installation est recommandée, y compris un ou plusieurs compilateurs C, des systèmes d'exploitation temps réel facultatifs, des outils de profilage et de nombreuses autres options (Figure 8). Certaines options peuvent être activées ou désactivées manuellement, au besoin. Cependant, il est généralement recommandé d'accepter le chargement de logiciel suggéré. Lorsque vous êtes prêt, cliquez sur Next (Suivant).

Image du manifeste du logiciel final pour Simplicity Studio

Figure 8 : Le manifeste du logiciel final pour Simplicity Studio montre toutes les options du logiciel qu'il est recommandé d'installer, y compris un ou plusieurs compilateurs C, des systèmes d'exploitation temps réel facultatifs et des outils de profilage. (Source de l'image : DigiKey Electronics)

En dernier lieu, Simplicity Studio affiche son contrat de licence logicielle principal qui couvre tous les composants du logiciel qui sont sur le point d'être installés. Lisez et acceptez la licence, puis cliquez sur Next (Suivant) une dernière fois.

L'installation du logiciel prend quelques minutes. Une fois l'installation terminée, fermez et redémarrez Simplicity Studio. Tout est prêt pour commencer à créer des applications de réseau maillé au moyen de Thread, Zigbee, Bluetooth ou d'un protocole propriétaire personnalisé. Simplicity Studio inclut quelques programmes de démonstration préconfigurés simples, ainsi qu'un code d'exemple qui peut être modifié, le tout afin de permettre aux développeurs de partir du bon pied.

Conclusion

La création de dispositifs à connexion sans fil utilisant un réseau maillé est devenue plus simple grâce à un kit préconfiguré de matériel compatible et de logiciel pré-testé. La flexibilité du matériel permet d'effectuer une évaluation empirique rapide des différents protocoles réseau, tels que Zigbee, Thread et BLE, tout en permettant d'effectuer des changements ultérieurs d'un protocole à l'autre. Ces changements peuvent être effectués pendant les phases de conception et de développement, ou bien après le déploiement du produit final.

 
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 Jim Turley

Jim Turley

Jim Turley was a hardware engineer before he became a technology analyst and writer with a focus on microprocessors, semiconductor technology, and embedded systems. From 2001 until 2018 he ran the analyst firm Silicon Insider. Before that, he was the president and CEO of a small, publicly traded microprocessor IP (intellectual property) company, after serving as the Senior Vice President of Marketing for yet another microprocessor-licensing company. He’s the author of seven books, served as Editor-in-Chief of Microprocessor Report as well as Embedded Systems Design, and served as conference chair for the Embedded Systems Conference (ESC).

À propos de l'éditeur

Rédacteurs nord-américains de DigiKey