Comment se connecter efficacement aux capteurs des points d'extrémité IoT via des communications 1-Wire
Avec la contribution de Rédacteurs nord-américains de DigiKey
2021-06-17
S'il est fréquent que les points d'extrémité Internet des objets (IoT) et Internet industriel des objets (IIoT) aient des zones de contrôle localisées, certains doivent se connecter à de simples capteurs situés à plus d'un mètre de l'emplacement du microcontrôleur hôte. Traditionnellement, les interfaces série SPI ou I²C sont utilisées pour communiquer facilement avec ces capteurs. Cependant, à mesure que les algorithmes de contrôle se complexifient et qu'il faut déployer plus de capteurs, le microcontrôleur doit utiliser davantage de lignes SPI et I²C pour atteindre ces capteurs. Cela accroît la complexité du câblage, ce qui augmente les coûts de configuration et de maintenance, en particulier lorsque les distances augmentent.
Cet article montre aux développeurs comment utiliser le protocole 1-Wire de Maxim Integrated pour se connecter de manière efficace et rentable aux capteurs IoT en utilisant un seul fil plus la terre. Il aborde les avantages du protocole 1-Wire, notamment l'extension significative de la portée des capteurs et la distribution d'alimentation et de données sur les mêmes fils. Il présente ensuite un dispositif de pont qui convertit les signaux 1-Wire en signaux SPI ou I²C, et un kit de développement avec un logiciel pour aider les concepteurs à démarrer.
Utilisation croissante des capteurs IoT et IIoT
L'expansion des réseaux IoT et IIoT vise à rendre les systèmes et les processus de fabrication plus efficaces tout en étendant les fonctionnalités. Cela implique de collecter des données à l'aide de capteurs. Alors qu'une maison peut avoir un thermostat dans une pièce qui contient un capteur de température, un bâtiment automatisé ou un réseau IIoT peut placer de nombreux capteurs de température et d'humidité dans une pièce et dans tout le bâtiment ou l'installation. Par exemple, des capteurs supplémentaires peuvent être placés dans les conduits de chauffage, de ventilation et de climatisation (CVC) en plus des capteurs de pression. Les systèmes de sécurité peuvent également utiliser différents types de capteurs, et ils peuvent également être placés à plusieurs endroits.
Les capteurs sont également de plus en plus utilisés dans les systèmes de fabrication et de bandes transporteuses pour la surveillance des processus et l'enregistrement des données afin d'analyser comment, par exemple, économiser de l'énergie en rendant les systèmes plus efficaces, tout en améliorant la sécurité.
Les capteurs les plus courants pour ces applications sont les capteurs environnementaux, notamment les capteurs de température, d'humidité et de pression ; les capteurs visuels, notamment les capteurs de lumière et les capteurs de proximité capacitifs ; et les capteurs de position, notamment les capteurs de vibrations, les accéléromètres MEMS et les gyroscopes MEMS. Grâce à la miniaturisation et aux avancées des technologies MEMS, les capteurs sont disponibles dans des boîtiers miniatures, qui ne consomment que quelques centaines de milliampères (mA). La plupart de ces capteurs sont facilement accessibles via des interfaces de communications SPI ou I²C, disponibles sur presque tous les microcontrôleurs. Lors de l'interfaçage avec ces capteurs simples, il peut s'avérer peu pratique de construire un nœud enfant ou un point d'extrémité IoT ou IIoT complet pour simplement échantillonner la température. Il est donc souvent plus simple et plus rapide de seulement faire passer les lignes de communication SPI ou I²C.
Dans certains cas, des capteurs analogiques sont encore utilisés, tels que des thermocouples haute température et certains capteurs de pression. Dans ces situations, le microcontrôleur interface avec un convertisseur analogique-numérique (CAN) SPI ou I²C à l'emplacement du capteur qui échantillonne le capteur analogique localement. Cela évite les chutes de tension sur les lignes des capteurs analogiques et améliore ainsi la précision.
Interfaçage avec des capteurs SPI et I²C à distance
Un microcontrôleur communique avec ces capteurs en étendant la portée des lignes de données SPI et I²C. Cependant, l'interface I²C est limitée à une portée d'un mètre ou moins, et SPI a des limites similaires. De plus, l'interface SPI en duplex intégral requiert quatre broches, y compris une sélection périphérique individuelle pour chacune d'elles. Par conséquent, pour atteindre quatre périphériques SPI sur un bus, il faut sept broches, plus l'alimentation et la terre, soit un total de neuf broches. L'interface I²C en semi-duplex requiert deux broches, plus l'alimentation et la terre, vers le périphérique, pour un total de quatre lignes. En même temps, les nombreux signaux haute vitesse augmentent les interférences électromagnétiques (EMI) qui peuvent générer de la diaphonie, ce qui réduit l'intégrité des signaux et la fiabilité du système.
Il faut donc une solution qui minimise le câblage d'alimentation et de données et simplifie le fonctionnement tout en maintenant la compatibilité avec les capteurs I²C et SPI existants.
Pour résoudre le problème de connexion à des capteurs distants sur de plus longues distances tout en réduisant le nombre de fils, Maxim Integrated a développé un protocole 1-Wire qui se connecte à la plupart des capteurs SPI ou I²C en utilisant un seul fil, plus la terre. Le protocole réduit les six fils SPI et les quatre fils I²C à seulement deux fils qui transportent à la fois les données et l'alimentation jusqu'à 100 mètres (m).
Application 1-Wire
Avec 1-Wire, le capteur à distance dispose d'un pont de communications 1-Wire qui convertit le protocole 1-Wire en signaux compatibles SPI ou I²C interfaçant avec le capteur. Le pont 1-Wire et le capteur sont alimentés de manière parasite par le seul signal 1-Wire plus une ligne de terre. Cela permet d'acheminer les signaux 1-Wire dans de petites zones et de réduire les coûts en utilisant moins de fils.
Alors que SPI et I²C utilisent un signal d'horloge dédié, 1-Wire intègre l'horloge au signal de données. SPI adresse un périphérique particulier à l'aide d'un signal de sélection distinct pour chaque périphérique, tandis qu'I²C utilise une adresse de bus 7 bits transmise sur la ligne de données ; en comparaison, 1-Wire utilise une adresse 56 bits qui est câblée dans chaque pont de communications individuel. Cette plage d'adressage plus large permet non seulement d'augmenter le nombre de périphériques uniques sur un bus, mais également de renforcer la sécurité en rendant plus difficile pour un attaquant de deviner l'adresse d'un périphérique sur le bus 1-Wire.
La taille des mots sur un bus périphérique 1-Wire est de 8 bits. Un hôte de bus 1-Wire de microcontrôleur peut effectuer le bit-banging du protocole 1-Wire, mais il est également pris en charge par un simple pilote UART. Cela permet même à un microcontrôleur 8 bits d'être un hôte de bus 1 bit. Un bus de 1 bit peut contenir des périphériques SPI ou I²C, mais pas les deux. Cette cohérence évite les conflits et les collisions sur le bus et simplifie la programmation avec le protocole.
Solutions 1-Wire en pratique
Pour les concepteurs qui cherchent à interfacer avec un périphérique SPI ou I²C sur un bus 1-Wire, Maxim Integrated propose le pont 1-Wire vers I²C/SPI DS28E18Q+T avec séquenceur de commandes (Figure 1).
Figure 1 : Le pont 1-Wire vers I²C/SPI DS28E18Q+T avec séquenceur de commandes interface avec les broches GND et les E/S de bus 1-Wire. (Source de l'image : Maxim Integrated)
En se référant à la Figure 1, l'alimentation parasite est extraite du bus lorsque l'E/S est à l'état haut et rendue disponible sur la broche SENS_VDD pour alimenter le périphérique. Le pont met en mémoire tampon et traduit les commandes 1-Wire en commandes I²C ou SPI appropriées.
La broche E/S et GND se connectent au bus 1-Wire et sont envoyées au circuit d'entrée avec sa machine à états. Chaque dispositif est identifié par un identifiant ROM de 56 bits, préfixé par un code de famille 1-Wire de 8 bits qui désigne la révision du DS28E18Q+T. Cela permet l'identification unique d'un DS28E18Q+T spécifique par le micrologiciel du microcontrôleur, lui permettant d'être suffisamment flexible pour répondre à tout changement dans la famille de dispositifs. Il existe un numéro de série unique de 48 bits pour le dispositif avec un code de contrôle par redondance cyclique (CRC) de 8 bits.
Le circuit d'entrée envoie les données traduites au séquenceur de commandes en utilisant un tampon de commande de 144 octets qui inclut 128 octets de données provenant du bus E/S et 16 octets pour usage interne. Le séquenceur de commandes traite les commandes et peut stocker jusqu'à 512 octets de commandes I²C ou SPI dans son tampon pour les envoyer ultérieurement au périphérique, au lieu de laisser le bus 1-Wire traiter les commandes une par une.
Ce tampon de 512 octets permet également au DS28E18Q+T de coordonner son propre comportement d'alimentation interne, afin que la synchronisation de la communication avec le périphérique permette de maintenir l'alimentation parasite. Le séquenceur de commandes maintient cette synchronisation lorsqu'il envoie des instructions au maître I²C/SPI et au contrôleur GPIO traitant les données pour se conformer aux normes I²C et SPI.
Un condensateur externe de 470 nanofarads (nF) est connecté à la broche CEXT qui agit en tant que réserve d'alimentation pour le DS28E18Q+T pendant le fonctionnement du bus 1-Wire. Une alimentation parasite est disponible pour le périphérique connecté à la broche SENS_VDD. Pour le fonctionnement SPI, les quatre broches SS#, MISO, MOSI et SCLK assurent la communication en duplex intégral avec le périphérique connecté. Le fonctionnement I²C n'utilise que deux broches à fonction alternée, SDA et SCL. Les broches SS# et MISO pour le fonctionnement SPI sont inutilisées pour le fonctionnement I²C et peuvent donc être utilisées comme E/S à usage général (GPIO) avec la fonction alternative GPIOA et GPIOB. Cela offre une plus grande flexibilité qui peut être utilisée pour des LED de diagnostic à l'emplacement du capteur ou pour gérer les broches de configuration sur un capteur ou un CAN afin de modifier le comportement du dispositif.
En utilisant le DS28E18Q+T de Maxim Integrated, un seul UART sur un microcontrôleur peut communiquer en utilisant seulement deux fils avec de nombreux capteurs sur le même bus 1-Wire plus la terre ; chaque capteur est connecté à un DS28E18Q+T qui peut se trouver jusqu'à 100 m de distance. Cela peut être particulièrement utile dans les systèmes CVC, où seuls deux fils peuvent être routés dans un conduit d'air pour surveiller la température et l'humidité sur toute sa longueur, au niveau de chaque évent. Cela améliore l'efficacité du système en surveillant les points chauds ou froids qui peuvent être causés par des obstructions.
Développement 1-Wire
Pour commencer le développement avec le protocole 1-Wire, Maxim Integrated propose le système d'évaluation DS28E18EVKIT#. Il se compose d'une carte de développement matériel (Figure 2) et d'un logiciel.
Figure 2 : La carte d'évaluation DS28E18EVKIT# de Maxim permet à un développeur de connecter facilement un périphérique SPI ou I²C au bus 1-Wire. Le logiciel inclus peut être utilisé pour programmer et surveiller le comportement du bus et des périphériques, ainsi que pour aider à générer les pilotes de périphériques du microcontrôleur. (Source de l'image : Maxim Integrated)
La carte d'évaluation permet à un développeur de programmer et de contrôler le DS28E18Q+T. À des fins de développement, la carte est fournie avec un adaptateur USB qui permet de la connecter au port USB d'un ordinateur Windows. Le développeur doit télécharger et exécuter le logiciel du kit d'évaluation DS28E18EVKIT# pour prendre en charge le développement. Comme illustré à la Figure 3, le logiciel d'évaluation permet de programmer et de surveiller le DS28E18Q+T et ses périphériques connectés.
Figure 3 : Le logiciel d'évaluation DS28E18EVKIT# permet à un développeur de configurer le DS28E18Q+T intégré à l'aide de l'adaptateur USB et de surveiller son comportement. Les données peuvent être placées dans la mémoire du séquenceur de commandes de 512 octets, puis envoyées au périphérique pour effectuer l'opération du capteur. (Source de l'image : Maxim Integrated)
Le logiciel peut envoyer des commandes à la carte d'évaluation DS28E18Q+T et la configurer pour le périphérique SPI ou I²C cible. Il peut sélectionner la plage d'adresses du périphérique et peupler la mémoire du séquenceur de commandes de 512 octets avec les commandes périphériques à exécuter. Le logiciel peut également aider à configurer les pilotes UART pour le microcontrôleur cible, ce qui évite d'avoir à apprendre tous les détails du protocole de communications 1-Wire. Un développeur peut également utiliser la carte d'évaluation dans sa propre application, réduisant ainsi le temps et les efforts requis pour créer et configurer un nœud de capteurs.
Conclusion
À mesure que les systèmes IoT et IIoT ajoutent des capteurs, le câblage vers ces derniers devient plus complexe et plus coûteux, en particulier lorsque les distances augmentent. L'alimentation des capteurs est également un autre problème qui peut compliquer le déploiement des réseaux de capteurs. Comme illustré, le protocole 1-Wire et le matériel associé de Maxim Integrated peuvent simplifier et améliorer la connexion au réseau de capteurs en fournissant des données et une alimentation via un seul fil, plus la terre.
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é.



