1-Wire

Le 1-Wire est un bus conçu pour permettre de connecter (en série, parallèle ou en étoile) des composants avec seulement deux fils (un fil de données et un fil de masse). Il est possible d’injecter une alimentation de 5V pour augmenter la portée du réseau.

Il est généralement utilisé en domotique pour des mesures de température avec des sondes DS1820 de part son faible coût et sa facilité de mis en oeuvre. Il suffit d’un simple Dongle USB ou Série pour lire les données sur son PC.

 

Protocole

Ce paragraphe est très technique et ne concerne que les personnes souhaitant avoir des informations avancées sur le bus 1-wire

Si vous souhaitez juste utiliser cette technologie, vous pouvez passer directement à la présentation des composants DS18B20 et DS2405.

La communication sur le bus 1-wire est caractérisée par un ensemble de pulse « changement d’état du bus ».

Sachant que l’état par défaut de la ligne data est +5V, ce qui permet d’alimenter les différents composants à partir de la ligne data en mode parasite.

Avant toute communication, le maître met le bus à 0 pendant 480us pour faire un reset des composants connectés.

Le maître reçoit alors la liste des esclaves connectés sur le bus. Il pourra utiliser une commande particulière pour sélectionner l’esclave avec lequel il souhaite communiquer (commande ROM)

Pour émettre un bit sur le bus le maître force le bus à « 0? pendant 1 à 15us, pour indiquer qu’il souhaite envoyer un bit de données, puis il doit positionner le bus suivant le bit qui doit être émis (0 ou 1) l’esclave « actif » va lire le bus entre 15us et 45us après la détection du front descendant initial.

La durée total d’un bit est donc de 60us, ce qui donne une vitesse de communication maxi d 16kbits/s.

Après la réception d’une commande du maître, l’esclave peut renvoyer des données.

Pour lire les données de l’esclave, le maître force le bus à 0 pendant 1us, et il lit ensuite l’état du bus entre 5 et 15us après ce front descendant.

Si l’esclave souhaite émettre un bit « 1?, il laisse le bus à « 1?, sinon il tire le bus à « 0? pendant 15us.

Ceci est une description assez sommaire du protocole 1-wire. Il faut ensuite se reporter à la datasheet de chaque composant 1-wire pour connaître les fonctions qui sont supportées et les zones de données qui peuvent être lues pour obtenir les températures, niveaux de tensions…

 

Plusieurs solutions logicielle existent pour enregistrer ou visualiser vos données.

OneWireViewer

 

LogTemp

 

Ultra1Wire (Plug-in pour HomeSeer)