Tandis que les fonctions de mise en réseau et de sécurité de l’IoT continuent de progresser à un rythme rapide, il en va de même pour la technologie utilisée pour la connexion, l’alimentation et la sécurité. Dans cet article d’Analog Devices, apprenez à choisir le bon bus maître 1-Wire pour les applications où l’interconnexion doit être réduite au minimum.
Introduction
Le bus 1-Wire est un schéma de signalisation simple qui réalise des communications bidirectionnelles semi-duplex entre un contrôleur maître et un ou plusieurs esclaves partageant une ligne de données commune. L’alimentation électrique et la communication de données s’effectuent sur cette seule ligne, ce qui rend les dispositifs 1-Wire inégalés dans leur capacité à fournir des fonctions clés aux systèmes où l’interconnexion doit être minimisée. Les produits 1-Wire offrent des combinaisons de fonctions de mémoire, de signaux mixtes et d’authentification sécurisée via une interface série à contact unique. Les applications typiques des dispositifs 1-Wire sont l’identification des cartouches d’impression ou des consommables médicaux, l’étalonnage et le contrôle des cartes à rack, l’identification et l’authentification des cartes de circuits imprimés (PCB), des accessoires et des périphériques, la protection de la propriété intellectuelle, la prévention des clones et le contrôle sécurisé des fonctionnalités.
Pour tirer parti de la technologie 1-Wire, il faut un maître 1-Wire qui génère les formes d’onde nécessaires pour identifier les appareils sur le bus et communiquer avec eux. Il existe de nombreuses façons de mettre en œuvre un maître 1-Wire. Cette note d’application présente une variété d’implémentations de maîtres 1-Wire qui aident les concepteurs à choisir la bonne solution pour leur application embarquée. Elle se concentre principalement sur l’extrémité maître d’un circuit 1-Wire.
Les maîtres 1-Wire présentés dans cette note d’application varient en termes de tension de fonctionnement, allant de 1,8 V à 5 V. Si la tension de fonctionnement d’un maître 1-Wire ne correspond pas à celle des dispositifs esclaves cibles (par exemple, un maître 3,3 V communiquant avec des esclaves 1,8 V), il est recommandé d’utiliser un décalage de niveau de tension.
Glossaire 1-Wire
Il existe plusieurs termes que l’on retrouve fréquemment dans les documents portant sur la technologie 1-Wire et qui doivent être expliqués dès le départ.
Tension de fonctionnement
En général, les dispositifs 1-Wire fonctionnent dans les plages de tension suivantes :
- 1,71 V (min) à 1,89 V (max)
- 2,97 V (min) à 3,63 V (max)
- 2,8 V (min) à 5,25 V (max)
La plupart des dispositifs 1-Wire ne comportent pas de broche pour l’alimentation. Ces dispositifs sont alimentés de manière parasite par la ligne de communication 1-Wire. Par conséquent, la tension de fonctionnement et la résistance de tirage 1-Wire sont pratiquement synonymes. Plus la tension de fonctionnement (tirage) est élevée, plus la puissance débitée aux dispositifs 1-Wire est importante.
Tirage puissant
Un tirage puissant désigne un moyen de fournir une puissance supplémentaire au réseau 1-Wire entre les tranches de temps. Une puissance supplémentaire est nécessaire pour plusieurs fonctions des dispositifs de mémoire morte programmable effaçable électriquement (EEPROM), par exemple lors de la copie de données d’un tampon vers des cellules EEPROM, pour les mémoires sécurisées lorsque le moteur cryptographique fonctionne, ou pour les capteurs de température 1-Wire lors d’une conversion de température. Lorsque de tels dispositifs 1-Wire sont utilisés dans un environnement 1,8 V ou 3 V, un tirage puissant est nécessaire ; dans un environnement 5 V avec les mêmes esclaves 1-Wire, le tirage puissant peut être optionnel.
Minutage 1-Wire
Il s’agit d’une expression générale de la forme des créneaux temporels 1-Wire et de la séquence de réinitialisation/détection de présence, ainsi que des moyens de générer ces formes d’onde. On peut utiliser du matériel spécial (par exemple, des puces avec leur propre générateur de rythme) ou simplement générer les formes d’onde par le biais d’un logiciel. La méthode matérielle est plus simple pour le développeur de logiciels mais nécessite une autre puce. La méthode logicielle permet d’économiser sur le coût du matériel mais augmente probablement le coût du développement et des tests du logiciel.
Prise en charge de la vitesse surmultipliée
La plupart des esclaves 1-Wire peuvent communiquer à deux vitesses : vitesse standard et vitesse surmultipliée. Avec la vitesse surmultipliée, le rythme est environ huit fois plus rapide qu’en vitesse normale.
Tirage actif
Le bus ou le réseau 1-Wire est un environnement à drain ouvert, le 0 V (0 logique) étant l’état actif. Lorsqu’il est inactif, le bus est tiré vers le haut à la tension de tirage, via une résistance (tirage résistif). Les fronts descendants sont donc nets ; les fronts montants, en raison de la résistance et de l’alimentation parasite, peuvent être assez lents. Le tirage actif fait référence à une méthode qui teste les fronts montants et, si un seuil spécifique a été franchi, contourne la résistance de tirage pendant un temps limité avec un chemin à faible impédance. Le tirage actif n’est généralement pas nécessaire dans les réseaux courts ou avec un seul dispositif esclave. S’il est disponible, le tirage actif recharge la ligne 1-Wire plus rapidement que le tirage résistif et, par conséquent, prend en charge plusieurs esclaves 1-Wire dans le réseau sans avoir à prolonger le temps de récupération entre les tranches de temps. Les maîtres 1-Wire diffèrent par la force (impédance) du contournement et la méthode qui contrôle la durée de tirage actif.
Circuits maître 1-Wire
Cette section présente en détail les différents circuits maîtres. Les circuits sont regroupés en deux catégories :
- Broche de port du microprocesseur
- Dispositifs maîtres 1-Wire de Maxim
Chaque catégorie présente un ou plusieurs circuits. Elle illustre le schéma, énumère les conditions préalables, évalue les avantages et les inconvénients, donne des conseils sur ce les éléments à surveiller, et recommande des lectures supplémentaires et des URL vers des logiciels annexes.
Catégorie 1. Création d’un maître à l’aide d’une broche de port de microprocesseur
La figure 1 montre l’implémentation la plus basique d’un maître 1-Wire.
Figure 1. Broches de port unidirectionnel avec circuit optionnel pour tirage puissant (lignes pointillées).
Comme seule condition préalable, ce circuit nécessite un port bidirectionnel de réserve et un peu d’espace libre dans la mémoire du programme. L’avantage de ce circuit est son faible coût matériel. En revanche, le timing 1-Wire est généré par logiciel, ce qui peut augmenter le temps et le coût du développement logiciel initial.
En fonction des esclaves 1-Wire de l’application et de la tension de tirage 1-Wire, une broche de port supplémentaire peut être nécessaire pour mettre en œuvre un tirage puissant. La tension de fonctionnement maximale sur le bus 1-Wire est déterminée par les caractéristiques du port bidirectionnel. Avec plus d’un esclave sur le bus 1-Wire, la valeur de RPUP doit être diminuée. Dans ce cas, il faut vérifier si le VOLMAX résultant est compatible avec les esclaves 1-Wire et avec les caractéristiques d’entrée du port du microprocesseur.
La communication à la vitesse surmultipliée nécessite un microcontrôleur avec une fréquence d’horloge élevée et/ou un faible nombre de cycles d’horloge par cycle d’instruction.
La figure 2 illustre un autre circuit de base similaire à la figure 1.
Figure 2. Broche de port bidirectionnel avec circuit optionnel pour tirage puissant (lignes pointillées).
Comme condition préalable, ce circuit nécessite deux ports unidirectionnels, une résistance de rappel et de l’espace libre dans la mémoire du programme. L’avantage de ce circuit est qu’il n’a pas besoin d’un port bidirectionnel. En revanche, le timing 1-Wire est généré par logiciel, ce qui peut augmenter le temps et le coût du développement logiciel initial.
En fonction des esclaves 1-Wire de l’application et de la tension de tirage 1-Wire, une broche de port supplémentaire peut être nécessaire pour mettre en œuvre un tirage puissant. La tension de fonctionnement maximale sur le bus 1-Wire est déterminée par les caractéristiques du port d’entrée. Avec plus d’un esclave sur le bus 1-Wire, la valeur de RPUP doit être diminuée. Dans ce cas, il faut vérifier si le VOLMAX résultant est compatible avec les esclaves 1-Wire et avec les caractéristiques d’entrée du port du microprocesseur.
La communication à la vitesse surmultipliée nécessite un microcontrôleur avec une fréquence d’horloge élevée et/ou un faible nombre de cycles d’horloge par cycle d’instruction.
Catégorie 2. Dispositifs maîtres 1-Wire de Maxim
Maxim produit une large gamme de produits matériels maîtres 1-Wire qui peuvent également être utilisés pour piloter de manière fiable un réseau de dispositifs esclaves 1-Wire. Ces maîtres sont le plus souvent appelés dispositifs de « pontage 1-Wire » et, comme leur nom l’indique, ils sont utilisés pour créer un « pont » dans l’interface, entre le processeur hôte d’un système (par exemple, microcontrôleur, FPGA, PC, etc.) et un esclave 1-Wire. En intégrant un dispositif de pontage entre un processeur hôte et un esclave 1-Wire, le processeur hôte ne s’interface plus directement avec l’esclave 1-Wire pour le faire fonctionner. Le processeur hôte, au contraire, s’interface avec le dispositif de pontage via un protocole de communication spécifique tel que I2C et lui commande de relayer les données 1-Wire à l’esclave 1-Wire. L’avantage est que la communication 1-Wire est déchargée du processeur hôte sur le dispositif de pont 1-Wire, ce qui évite au processeur hôte de générer des formes d’onde 1-Wire critiques en termes de temps. Par conséquent, l’ensemble de l’application logicielle peut être développé en langage de haut niveau, et le temps et le coût de développement initial du logiciel sont considérablement réduits.
Outre la génération d’un protocole 1-Wire fondamental, un dispositif de pontage 1-Wire comprend des fonctions supplémentaires qui peuvent aider à piloter une ligne 1-Wire plus efficacement. Par exemple, chaque dispositif de pontage 1-Wire comprend un tirage passif interne (c’est-à-dire RPUP) pour aider à réduire le nombre de composants matériels externes nécessaires. Les produits présentés ci-dessous sont quelques-uns des meilleurs dispositifs de pontage 1-Wire de Maxim qui présentent des caractéristiques exceptionnelles, afin d’aider les concepteurs à choisir le bon dispositif pour leur application. Un circuit d’application typique pour chaque appareil est fourni à titre de référence pour la configuration.
DS2480B
Le maître DS2480B 1-Wire simplifie la conception d’un port COM RS-232 universel et peu coûteux vers l’interface 1-Wire. Ce dispositif comprend :
- Une traction active interne (APU) qui est automatiquement utilisée après le franchissement d’un seuil sur les fronts montants de la ligne 1-Wire, pour piloter sans effort plusieurs dispositifs sur le bus 1-Wire.
- Un tirage puissant interne (SPU) qui peut être activé en fonction des besoins en énergie d’un dispositif esclave 1-Wire.
- Un accélérateur de recherche 4 bits intégré, qui rend la séquence de recherche de la mémoire morte (ROM) 1-Wire plus facile à mettre en œuvre dans le logiciel.
- La possibilité de programmer des dispositifs de mémoire morte programmable effaçable (EPROM) 1-Wire en utilisant une alimentation externe de 12 V.
- Caractéristiques programmables du timing et du pilote 1-Wire pour s’adapter à une vaste gamme de configurations de dispositifs esclaves à vitesse standard.
- Une plage de tension de fonctionnement supérieure à 5 V +/-10 %.
La DS2480B s’interface directement avec le récepteur-émetteur asynchrone universel (UART) et les systèmes RS232 5 V et peut communiquer à une vitesse allant jusqu’à 115,2 kbps. Le circuit illustré dans la figure 3 montre comment intégrer la DS2480B dans un système compatible.
Figure 3. DS2480B connecté au port UART d’un microcontrôleur hôte.
DS2484
La DS2484 est un maître I2C vers 1-Wire d’entrée de gamme qui comprend :
- Un traducteur de niveau de tension intégré qui permet à la DS2484 de fonctionner à différents niveaux de tension côté 1-Wire, allant de 1,8 V -5 % à 5 V +5 %, indépendamment de la tension de fonctionnement I2C.
- Un tirage actif interne (APU) et des valeurs de tirage passif sélectionnables (RPUP) pour un fonctionnement efficace à longue distance des dispositifs 1-Wire.
- Un tirage puissant interne (SPU) qui peut être activé en fonction des besoins en énergie d’un dispositif esclave 1-Wire.
- Une commande intégrée de triplet 1-Wire pour faciliter la mise en œuvre de la séquence de recherche ROM 1-Wire dans le logiciel.
- Contrôle de l’alimentation sur le port 1-Wire pour mettre hors tension les dispositifs sur le bus via le logiciel.
- Broche de mode basse consommation (SLPZ) pour conserver la consommation d’énergie lorsque la DS2484 n’est pas utilisée.
- Paramètres de synchronisation 1-Wire réglables pour prendre en charge une large gamme d’esclaves 1-Wire.
La DS2484 s’interface directement avec un maître I2C et peut communiquer à des vitesses allant jusqu’à 400 kHz. Le circuit illustré dans la figure 4 montre comment intégrer la DS2484 dans un système compatible.
Figure 4. DS2484 connecté au port I2C d’un microcontrôleur hôte.
DS2485
La DS2485 est un maître 1-Wire complet, optimisé pour un débit plus élevé et offrant un contrôle total sur son jeu de fonctions étendu. Ce dispositif comprend :
- Capacité de script pour l’exécution de séquences personnalisées de commandes primitives 1-Wire.
- Algorithme de recherche 1-Wire intégré pour découvrir et récupérer facilement les ID ROM des périphériques sur le bus 1-Wire sur commande.
- Grand tampon de bloc 1-Wire d’une taille de 126 octets pour un débit de données élevé.
- Paramètres de synchronisation 1-Wire réglables pour les vitesses standard et accélérée afin de prendre en charge une large gamme d’esclaves 1-Wire.
- Trois pages de 32 octets d’EEPROM pour les données utilisateur.
- Un tirage actif interne (APU) et des valeurs de tirage passif sélectionnables (RPUP) pour un fonctionnement efficace à longue distance des dispositifs 1-Wire.
- Un tirage puissant interne (SPU) qui peut être activé en fonction des besoins en énergie d’un dispositif esclave 1-Wire.
- Contrôle de l’alimentation sur le port 1-Wire pour mettre hors tension les dispositifs sur le bus via le logiciel.
- Une broche GPIO pour les fonctions de contrôle spécifiques à l’application.
- Une plage de tension de fonctionnement supérieure à 3,3 V ±10 %.
La DS2485 s’interface directement avec un maître I2C et peut communiquer à une vitesse allant jusqu’à 1 MHz. Le circuit illustré dans la figure 5 montre comment intégrer correctement la DS2485 dans un système compatible.
Figure 5. DS2485 connecté au port I2C d’un microcontrôleur hôte.
DS2465
La DS2465 est un maître 1-Wire et un coprocesseur SHA-256 conçu pour fonctionner avec des authentificateurs sécurisés 1-Wire SHA-256. Ce dispositif comprend :
- Un ensemble de base d’outils cryptographiques comprenant :
- Un moteur SHA-256 intégré pour l’authentification cryptographique des dispositifs esclaves 1-Wire SHA-256.
- Deux pages de 32 octets d’EEPROM pour les données utilisateur.
- Un tirage actif interne (APU) et des valeurs de tirage passif sélectionnables (RPUP) pour un fonctionnement efficace à longue distance des dispositifs 1-Wire.
- Un tirage puissant interne (SPU) qui peut être activé en fonction des besoins en énergie d’un dispositif esclave 1-Wire.
- Broche de mode basse consommation (SLPZ) pour conserver la consommation d’énergie lorsque la DS2465 n’est pas utilisée.
- Une commande intégrée de triplet 1-Wire pour faciliter la mise en œuvre de la séquence de recherche ROM 1-Wire dans le logiciel.
- Contrôle de l’alimentation sur le port 1-Wire pour mettre hors tension les dispositifs sur le bus via le logiciel.
- Paramètres de synchronisation 1-Wire réglables pour les vitesses standard et accélérée afin de prendre en charge une large gamme d’esclaves 1-Wire.
- Une plage de tension de fonctionnement supérieure à 3,3 V ±10 %.
La DS2465 s’interface directement avec un maître I2C et peut communiquer à des vitesses allant jusqu’à 400 kHz. Le circuit illustré dans la figure 6 montre comment intégrer correctement la DS2465 dans un système compatible.
Figure 6. Maître DS2465 1-Wire connecté à plusieurs dispositifs 1-Wire SHA-256.
DS2477
La DS2477 est un maître 1-Wire et un coprocesseur SHA-3 conçu pour fonctionner avec des authentificateurs sécurisés 1-Wire SHA3-256. Ce dispositif comprend :
- Un ensemble de base d’outils cryptographiques comprenant :
- Un moteur SHA-3 intégré pour l’authentification cryptographique des dispositifs esclaves 1-Wire SHA-3.
- ChipDNA™ avec technologie PUF (physical unclonable function) pour protéger les données du dispositif contre les attaques de sécurité.
- 2 Ko d’EEPROM pour le stockage des données utilisateur et des clés.
- Un générateur aléatoire réel (TRNG) conforme à la norme Federal Information Processing Standard (FIPS)/National Institute of Standards and Technology (NIST).
- Un numéro d’identification unique et inaltérable de 64 bits programmé en usine (ID ROM).
- Un tirage actif interne (APU) et des valeurs de tirage passif sélectionnables (RPUP) pour un fonctionnement efficace à longue distance des dispositifs 1-Wire.
- Un tirage puissant interne (SPU) qui peut être activé en fonction des besoins en énergie d’un dispositif esclave 1-Wire.
- Contrôle de l’alimentation sur le port 1-Wire pour mettre hors tension les dispositifs sur le bus via le logiciel.
- Paramètres de synchronisation 1-Wire réglables pour prendre en charge une large gamme d’esclaves 1-Wire.
- Grand tampon de bloc 1-Wire d’une taille de 126 octets pour un débit de données élevé.
- Une broche GPIO pour les fonctions de contrôle spécifiques à l’application.
- Une plage de tension de fonctionnement supérieure à 3,3 V ±10 %.
Lors de tests en laboratoire, la DS2477 a pu piloter avec succès 50 dispositifs esclaves DS1990 1-Wire sur plus de 1 000 pieds (300 m) en utilisant un réglage de résistance de tirage de 333Ω. La DS2477 s’interface directement avec un maître I2C et peut communiquer à une vitesse allant jusqu’à 1 MHz. Le circuit illustré dans la figure 7 montre un exemple d’application de la DS2477 pilotant plusieurs dispositifs esclaves 1-Wire SHA-3, tels que la DS28E50.
Figure 7. DS2477 connecté au port I2C d’un microcontrôleur hôte avec des esclaves DS28E50.
Adaptateurs et kits d’évaluation pour PC
Comme ils ne nécessitent aucun développement logiciel de la part de l’utilisateur, les adaptateurs PC qui fonctionnent comme des maîtres 1-Wire et les kits d’évaluation spécifiques aux appareils (kits EV) sont très pratiques pour évaluer les appareils 1-Wire et pour le prototypage.
Pour la solution basée sur PC, en plus de l’adaptateur, des dispositifs 1-Wire à explorer et d’un câblage standard, tout ce dont l’utilisateur a besoin est le logiciel d’évaluation, tel que le OneWireViewer basé sur Java® qui peut être téléchargé gratuitement.
Les kits EV sont plus pratiques à utiliser qu’un adaptateur autonome car ils contiennent tout ce qui est nécessaire pour réaliser le prototypage et l’exploration. Les kits d’évaluation comprennent également un adaptateur USB-to-I2C ou USB-to-I2C/1-Wire.
En plus du logiciel d’évaluation gratuit inclus dans les kits EV, des exemples de codes de démonstration gratuits basés sur le langage C sont également disponibles sur demande auprès de Maxim. La table 1 montre les détails de certaines plateformes d’évaluation disponibles.
Table 1. Adaptateurs basés sur PC et kits EV
Conclusion
Le bon maître 1-Wire pour une application embarquée est celui qui répond aux exigences électriques du ou des dispositifs 1-Wire (c.-à-d., tension de fonctionnement, tirage puissant si nécessaire) à un coût raisonnable tout en offrant la meilleure fonctionnalité globale. Le choix final dépend des ressources disponibles (non utilisées) dans l’application, qui peuvent être des broches de port, un bus UART ou I2C, et de l’espace dans la mémoire du programme. Actuellement, les maîtres matériels 1-Wire fournis par Maxim (catégorie 2) sont les options les plus polyvalentes disponibles sur le marché à un coût très raisonnable. Ils sont riches en fonctionnalités et programmables pour prendre en charge tous les systèmes 1-Wire, y compris ceux qui ont des exigences de sécurité élevées.