1wire bezeichnet einen von Dallas Semiconductor erfundenen Bus und auch gleichzeitig das Protokoll.
Der Bus hat einen Master und im Rahmen des Adressraumes beliebig viele Slaves.
Die Slaves haben eindeutige und einmalige Identifikationsnummern, über die sie einzeln angesprochen werden können.
Das Protokoll bietet auch eine Überprüfung der Daten mittels CRC.
Hardware:
1wire kann die Signalleitung gleichzeitig zur Versorgung des Slave-Bausteins benutzen, z.B. für Sensoren.
Dazu hat der Slave-Baustein intern einen Kondensator, aus dem bei der Signalübertragung die Energie bezogen wird.
Im Ruhezustand wird der Signalpegel mit einem Widerstand auf Vcc gezogen.
Die Signalübertragung geschieht durch herunterziehen des Pegels auf GND.
Da Teilnehmer des Busses eine Open-Kollektor-Schaltung haben, gibt es elektrisch keine Probleme.
Übertragung:
Der Master startet das Protokoll mit einem Resetpuls von 480µs Länge.
Der Slave antwortet darauf mit einem ACK innerhalb 70µs.
Danach werden die Bits in einem Zeitraster von ca. 70µs übertragen
Der Master zieht dafür den Bus für eine Eins 6µs auf Low und wartet 64µs High.
Für eine Null zieht der Master den Bus 60µs auf Low und wartet weitere 10µs High.
Der Slave erkennt den Pulsbeginn und wartet 15µs. Der Pegel auf dem Bus entspricht dann dem aktuellen Bitwert.
In die umgekehrte Richtung, also dem Lesen vom Slave, sendet der Master nur kurze Pulse von 6µs Länge und der Slave zieht dann seinerseits den Pegel auf GND oder nicht, je nach Bitwert.
Ein Byte wird in ca. 0,6ms übertragen, das Übertragen der 10 Bytes eines Temperatursensors DS1820 dauert 7,5ms (gemessen)
bascomforum.de/index.php?attac…865e8659d0ec56d2a4cf03b89
Die Besonderheit des 1wire-Busses ist die gemeinsame Signal- und Versorgungsleitung.
Zusammen mit der GND-Leitung werden also nur 2 Pole benötigt.
Das macht die Verkabelung einfach oder auch besondere Anwendungen möglich, wie z.B. den iButton.
Beispiel für das Lesen eines DS1820 Temperatursensors:
DS1820 DS18S20 DS18B20 Temperatursensor 1Wire
Der Bus hat einen Master und im Rahmen des Adressraumes beliebig viele Slaves.
Die Slaves haben eindeutige und einmalige Identifikationsnummern, über die sie einzeln angesprochen werden können.
Das Protokoll bietet auch eine Überprüfung der Daten mittels CRC.
Hardware:
1wire kann die Signalleitung gleichzeitig zur Versorgung des Slave-Bausteins benutzen, z.B. für Sensoren.
Dazu hat der Slave-Baustein intern einen Kondensator, aus dem bei der Signalübertragung die Energie bezogen wird.
Im Ruhezustand wird der Signalpegel mit einem Widerstand auf Vcc gezogen.
Die Signalübertragung geschieht durch herunterziehen des Pegels auf GND.
Da Teilnehmer des Busses eine Open-Kollektor-Schaltung haben, gibt es elektrisch keine Probleme.
Übertragung:
Der Master startet das Protokoll mit einem Resetpuls von 480µs Länge.
Der Slave antwortet darauf mit einem ACK innerhalb 70µs.
Danach werden die Bits in einem Zeitraster von ca. 70µs übertragen
Der Master zieht dafür den Bus für eine Eins 6µs auf Low und wartet 64µs High.
Für eine Null zieht der Master den Bus 60µs auf Low und wartet weitere 10µs High.
Der Slave erkennt den Pulsbeginn und wartet 15µs. Der Pegel auf dem Bus entspricht dann dem aktuellen Bitwert.
In die umgekehrte Richtung, also dem Lesen vom Slave, sendet der Master nur kurze Pulse von 6µs Länge und der Slave zieht dann seinerseits den Pegel auf GND oder nicht, je nach Bitwert.
Ein Byte wird in ca. 0,6ms übertragen, das Übertragen der 10 Bytes eines Temperatursensors DS1820 dauert 7,5ms (gemessen)
bascomforum.de/index.php?attac…865e8659d0ec56d2a4cf03b89
Die Besonderheit des 1wire-Busses ist die gemeinsame Signal- und Versorgungsleitung.
Zusammen mit der GND-Leitung werden also nur 2 Pole benötigt.
Das macht die Verkabelung einfach oder auch besondere Anwendungen möglich, wie z.B. den iButton.
Beispiel für das Lesen eines DS1820 Temperatursensors:
DS1820 DS18S20 DS18B20 Temperatursensor 1Wire
7.048 mal gelesen