1-Wire

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

1-Wire bzw. One-Wire oder Eindraht-Bus beschreibt eine serielle Schnittstelle der Firma Dallas Semiconductor Corp., die mit einer Datenader (DQ) auskommt, die sowohl als Stromversorgung als auch als Sende- und Empfangsleitung genutzt wird. Der Begriff 1-Wire ist irreführend, weil zudem noch eine Masse-Verbindung (GND) erforderlich ist. Diese Masseverbindung wird bei Knopf-förmigen Anordnungen über eine gegenseitige Isolation der Gehäusehälften erreicht. Tatsächlich werden immer zwei physikalische Leiterverbindungen benutzt (GND, DQ).

Verfügbar sind integrierte Bausteine zur Temperaturmessung, Akkuüberwachung, Echtzeituhr, kleine Speicher etc. Die Technik wurde zur Kommunikation zwischen den Komponenten eines Gerätes entwickelt, z. B. zur Erfassung des Akkuzustandes in einem mobilen Datenerfassungsgerät (PDA).

Die Knopf-förmigen Anordnungen sind verbreitet als mechanisch besonders einfache auf die Trägerperson bezogene Authentisierungsfaktoren vor allem an Kassenterminals.

Übersicht[Bearbeiten]

One-Wire-Schnittstelle in der Anwendung eines elektronischen Schlosses an einer Tür
  • 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[Bearbeiten]

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 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 verbundene Spannungsversorgung aus der Gegenstation. 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 aufrechterhalten 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 und 2,2 kΩ liegt, auf High-Pegel gezogen. Die Größe sollte je nach Anzahl der Geräte und Leitungslänge entsprechend angepasst werden. Um Störungen und Probleme zu vermeiden, sind die Werte der Pullupwiderstände unbedingt in den Datenblättern nachzulesen.

Timing[Bearbeiten]

Da der 1-Wire-Bus im Gegensatz zu vielen anderen Bussystemen keine separate Leitung für das Taktsignal besitzt, muss ein vorgegebenes Timing eingehalten werden. Die Synchronisation erfolgt bei jedem Bit mit der vom Master erzeugten fallenden Flanke. Um eine logische 1 zu schreiben, wird der Bus vom Master für 1 bis 15 μs auf Low-Pegel gezogen, bei einer logischen 0 für 60 bis 120 μs. Zum Lesen zieht der Master wie beim "Write 1" Signal den Bus für 1 bis 15 μs auf Low-Pegel und der Slave hält für die Übertragung einer logischen 0 den Bus darüber hinaus auf Low. Für einen Reset sendet der Master ein Low-Pegel mit einer Dauer von 480 μs. Ein Slave zeigt seine Anwesenheit an, indem er innerhalb von 60 μs danach den Bus für mindestens 60 μs auf Low zieht
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[Bearbeiten]

Die Verkabelung kann über ein einfaches Kabel bzw. eine einzelne Leitung auf einer Platine erfolgen. 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. Die Qualität der Masseverbindung als Rückleitung über das allgemeine Erdpotential muss unter Betriebsbedingungen geprüft werden.

Beispiel einer 1-Wire-Kommunikation[Bearbeiten]

Die Signale im folgenden Diagramm wurden von einem FPGA als Master und einem DS2432 (EEPROM) als Slave erzeugt und mit einem Logikanalysator gemessen. Das Signal 1-wire output stellt das isolierte Ausgangssignal des Masters dar; 1-wire input ist das gemessene 1-Wire-Bussignal; bei einem High des Signals input sample time findet die Messung des 1-Wire-Bussignals durch den Master statt.

1 Wire Reset-, Schreib- und Lese-Beispiel mit DS2432-EPROM

Weitere Standards[Bearbeiten]

iButton®: Der registrierte Standard basiert auf der gleichen Technik. Er beschreibt die Kommunikation zu Geräten in Knopfzellengröße.

Weblinks[Bearbeiten]

Beispiele für 1-Wire-Chips[Bearbeiten]

  • DS1820 : Digital Thermometer mit 3 Anschlüssen
  • DS2408 : 8-Bit I/O-Baustein mit 12 Anschlüssen im 16-Pin-Gehäuse
  • DS2417 : RTC mit 6 Anschlüssen
  • DS2438 : Smart Battery Monitor mit Temperatur-/Spannung-/Strom-/Ladungsmessung, Zeitmesseinheit und 40 Byte EEPROM mit 6 Anschlüssen im 8-Pin-Gehäuse
  • DS2756 : Smart Battery Monitor mit Temperatur-/Spannung-/Strom-/Ladungsmessung, Zeitmesseinheit, IO-Port/Interruptausgang und 96 Byte EEPROM+8 Byte RAM mit 8 Anschlüssen
  • DS28EC20: 20480-Bit EEPROM Speicher mit 3 Anschlüssen

Einzelnachweise[Bearbeiten]

  1. Datenblatt DS18S20 (REV: 042208), S. 5