- One-Wire
-
1-Wire bzw. One-Wire oder Eindraht-Bus beschreibt eine serielle Schnittstelle, die mit einer Datenader auskommt, die sowohl als Stromversorgung als auch als Sende- und Empfangsleitung genutzt wird.
Integrierte Bausteine zur Temperaturmessung, Akkuüberwachung, Echtzeituhr, kleiner Speicher etc. öffnen dem Geräteherstellern eine einfache Integration über eine Ader. Diese Technik kommt daher sehr häufig zur Kommunikation zwischen mehreren Geräten vor, z. B. zwischen einem mobilem Datenerfassungsgerät (PDA) und dessen Akku.
Inhaltsverzeichnis
Übersicht
- Die Datenübertragung erfolgt in Blöcken à 64 Bit.
- Die Verbindung arbeitet seriell und bidirektional, d. h. mit einer Datenleitung für Senden und Empfangen.
- Die Datenübertragung erfolgt asynchron, d. h. es wird kein Taktsignal übertragen.
- Übertragen wird im Halbduplexverfahren, d. h. entweder wird ein Block gesendet, oder es wird ein Block empfangen, jedoch nicht beides zugleich.
- Die Übertragung erfolgt nach dem One-Master/Multi-Slave Prinzip, d. h. es können pro Bus nur ein Master (Steuereinheit), aber bis zu 100 Slaves (Sensoren, Speicher etc.) eingesetzt werden.
- Jeder Slave wird durch eine 64-Bit-ROM-ID adressiert. Diese besteht aus einem 8-Bit-Family-Code, einer 48-Bit-Seriennummer (Unique-Device-ID) sowie einer 8 Bit CRC Checksumme.
- Die Slaves versorgen sich über einen internen Kondensator, der über die Datenleitung aufgeladen wird. Eine externe Spannungsversorgung ist nicht notwendig.
- 1-Wire ist eine Spannungsschnittstelle. Die Spannung ist geräteabhängig zwischen 2,8 und 6 Volt.
Elektrische Eigenschaften
Viele 1-Wire-Geräte arbeiten mit einer Betriebsspannung, die zwischen 2,8 V und 5,5 V liegen darf. Bei einigen Geräten sind hingegen nur 3,0 V bis 3,7 V zugelassen, daher sollte unbedingt vorher das Datenblatt beachtet werden. Die Stromaufnahme der 1-Wire-Geräte liegt je nach Baustein zwischen 2 μA und einigen mA.
Eine Besonderheit von 1-Wire-Geräten ist die parasitäre Stromversorgung. Hierbei geschieht die Versorgung der Slaves über die Datenleitung: Bei inaktiver Kommunikation (Idle-State) liegt die Datenleitung auf +5 V High-Pegel und lädt einen Speicherkondensator, welcher in jedem 1-Wire-Slave integriert ist. Während der Kommunikation wird der Bus durch die Geräte (Devices) auf Low gepulst. Während der Low-Pulse wird der Slave aus seinem Kondensator gespeist. Je nach Ladezustand kann der Kondensator Low-Zeiten bis ca. 960 μs überbrücken. Diese Zeit reicht aus, um mit einem kommerziell erhältlichen DS18S20-Temperatursensor Temperaturen bis ca. 100 °C zu messen. Bei höheren Temperaturen steigen die internen Leckströme an, wodurch die Energieversorgung vom eingebauten Kondensator nicht mehr aufrecht erhalten werden kann. Um den vollen Messbereich bis +125 °C auszuschöpfen, ist die permanente Versorgung des Sensors über den separaten Versorgungsanschluss notwendig.[1]
Der 1-Wire-Bus wird über einen Pull-up-Widerstand, der in der Regel zwischen 1,5 und 5 kΩ liegt, auf High-Pegel gezogen. Die Größe sollte je nach Anzahl der Geräte und Leitungslänge entsprechend angepasst werden.
Timing
Da der 1-Wire-Bus im Gegensatz zu vielen anderen Bussystemen keine separate Leitung für das Taktsignal besitzt, spielt das Timing eine besondere Rolle. Um eine logische 1 zu erzeugen, wird der Bus für 5 μs auf Low-Pegel gezogen, eine logische 0 entspricht 59 μs. Für einen Reset ist ein Low-Pegel mit einer Dauer von 480 μs erforderlich.
Die 1-Wire-Geräte besitzen zusätzlich noch einen Overdrive-Modus, der es ermöglicht, weitaus höhere Übertragungsraten zu erzielen. Um im Overdrive-Modus eine logische 1 zu erzeugen, muss nur noch lediglich für 1–2 μs ein Low-Pegel anliegen, für eine logische 0 sind im Overdrive-Modus schon 6μs ausreichend. Um einen Reset zu erzeugen reichen schon 48 μs aus. Ist das Reset-Signal länger als 80 μs, so gehen die 1-Wire-Geräte in den regulären Betriebsmodus, ansonsten bleiben sie im Overdrive-Modus.Im regulären Betriebsmodus sind durch die oben aufgeführten Timingbedingungen Datenraten von bis zu 16,3 KBit/s möglich. Der Overdrive-Modus beschleunigt dies auf bis zu 142 KBit/s.
Leitungsanforderungen
Die Verkabelung kann über ein einfaches Kabel bzw. eine einzelne Leitung auf einer Platine erfolgen. Idealerweise sollte ein Twisted-Pair-Kabel der Kategorie 5 verwendet werden. Mit einem passiven Pull-up-Widerstand sind so Leitungslängen von bis zu 100 m mit 150 1-Wire-Geräten möglich. Durch die Kontrolle der Slew Rate und durch einen aktiven Pull-up-Widerstand ist es sogar möglich, Leitungslängen von bis zu 300 m mit 500 1-Wire-Geräten zu realisieren.
Weitere Standards
iButton®: Der registrierte Standard basiert auf der gleichen Technik. Er beschreibt die Kommunikation zu Geräten in Knopfzellengröße.
Weblinks
- 1-Wire Communication Through Software
- One-Wire-File-System-Projekt
- Richtlinien für 1-Wire® Netzwerke
Referenzen
Wikimedia Foundation.