Forum: Mikrocontroller und Digitale Elektronik Verkabelung 1-Wire Netzwerk


von Ralf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte im Haus ein 1-Wire Netzwerk mit ca. 20 Sensoren aufbauen. 
Grundsätzlich versuche ich eine lineare Anbindung umzusetzen.

Für die Anbindung der einzelnen Stups gibt es die Empfehlung eine 
Leitungslänge von 3m nicht zu überschreiten. Damit wird wohl 
auftretenden Reflexionen in der Leitung vorgebeugt.


Da ich nicht so dicht an die Sensoren herankomme, lässt sich diese 
Anforderung bei mir nicht erfüllen. Daher denke ich darüber nach die 
Anbindeleitung zu verkürzen, in dem ich auf einer Teilstrecke die 
Datenleitung wieder zurückführe und so "quasi" für eine lineare Struktur 
sorge.


Negativ dabei ist sicherlich, dass ich so die Gesamtlänge des Bus erhöhe 
und zudem die Hin und Rückleiter in einem gemeinsamen Kabel führen muss. 
Verwenden würde ich vermutlich Cat5 Kabel. Vielleicht kann ich letztes 
damit wieder gut machen, dass ich beide Datenleitungen jeweils verdrillt 
mit GND führe? Ein Bild wie ich mir die Verkabelung vorstelle habe ich 
mal angehängt.

Es stellt sich mir die Frage, ob man besser damit fährt, die Stups 
entgegen der Empfehlung länger anzubinden, oder eher Maßnahmen wie 
beschrieben ergreift.

Vielen Dank

Ralf

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

Ralf schrieb:

> Grundsätzlich versuche ich eine lineare Anbindung umzusetzen.

Das ist nicht zwingend nötig.

> Für die Anbindung der einzelnen Stups gibt es die Empfehlung eine
> Leitungslänge von 3m nicht zu überschreiten. Damit wird wohl
> auftretenden Reflexionen in der Leitung vorgebeugt.

Das ist Unsinn. OneWire arbeitet als Open Drain Signal NICHT im bereich 
elektrisch langer Leitungen. Das Thema Wellenwiderstand greift hier 
nicht, da die Schaltzeiten eher gemächlich sind, wenn man es nicht mit 
ultraschnellen Ausgangstreibern oder sonstigen Murks versaut.

> Da ich nicht so dicht an die Sensoren herankomme, lässt sich diese
> Anforderung bei mir nicht erfüllen. Daher denke ich darüber nach die
> Anbindeleitung zu verkürzen, in dem ich auf einer Teilstrecke die
> Datenleitung wieder zurückführe und so "quasi" für eine lineare Struktur
> sorge.

Unsinn. Mach einfach Stichleitungen und gut. Die dürfen auch 5m und 
länger sein!

> Negativ dabei ist sicherlich, dass ich so die Gesamtlänge des Bus erhöhe
> und zudem die Hin und Rückleiter in einem gemeinsamen Kabel führen muss.

Alles unsinnig.

> Verwenden würde ich vermutlich Cat5 Kabel.

Kann man machen, ist ja preiswert verfügbar. Es reicht aber im 
allgemeinen einfache Steuerleitung, die muss nicht mal abgeschirmt sein, 
wenn gleich das in bestimmte Fällen mit hohem Störpegel in der Umgebung 
von Vorteil sein kann. Dann aber den Schirm aber beiden Seiten mit GND 
der Schaltung verbinden.

> Vielleicht kann ich letztes
> damit wieder gut machen, dass ich beide Datenleitungen jeweils verdrillt
> mit GND führe?

Es gibt nur eine Datenleitung.

> Es stellt sich mir die Frage, ob man besser damit fährt, die Stups
> entgegen der Empfehlung länger anzubinden,

Mach die Stichleitungen so lang, wie es deine bauliche Situation 
erfordert und dir rein mechanisch Vorteile bringt. Wenn man es richtig 
macht, läuft Onwwire mit bis zu 200m (zweihundert Meter) Kabel. Und da 
dürfen auch laaaange Stichleitungen dran hängen.

Beitrag "Re: Onewire + DS18x20 Library"

Da OneWire oft mit einfachen CMOS-Ausgängen von Mikrocontrollern 
getrieben wird, welche schon ziemlich schnell schalten, kann man das ein 
wenig durch einen gut gewählten Reihenwiderstand entschärfen. Der wirkt 
NICHT als Serienterminierung, sondern als RC-Tiefpass mit der 
Kabelkapazität. Bei min. 1,2kOhm Pull Up würde ich mal mit 47-100Ohm ins 
Rennen gehen. Dann sind Stichleitungen kein Problem. Siehe Anhang.

von Ralf (Gast)


Lesenswert?

Hallo Falk,

vielen Dank für deine Einschätzung. Zusammengefasst scheinst du den 
Hinweisen in den einschlägigen Application Notes von Maxim nicht soviel 
Bedeutung zuzusprechen. Greifst du auf Erfahrungswerte zurück?

Falk B. schrieb:
>> Vielleicht kann ich letztes
>> damit wieder gut machen, dass ich beide Datenleitungen jeweils verdrillt
>> mit GND führe?
>
> Es gibt nur eine Datenleitung.

Meine Aussage bezog sich auf die Teilstrecke in der ich die Datenleitung 
bis hin zum Stup und auch wieder zurückführen würde. Auf dieser Länge 
würde ich eben zwei Datenleitungen im Kabel führen.

Falk B. schrieb:
> Da OneWire oft mit einfachen CMOS-Ausgängen von Mikrocontrollern
> getrieben wird, welche schon ziemlich schnell schalten, kann man das ein
> wenig durch einen gut gewählten Reihenwiderstand entschärfen. Der wirkt
> NICHT als Serienterminierung, sondern als RC-Tiefpass mit der
> Kabelkapazität. Bei min. 1,2kOhm Pull Up würde ich mal mit 47-100Ohm ins
> Rennen gehen. Dann sind Stichleitungen kein Problem. Siehe Anhang.

Ich verwende ein fertiges Interface, basierend auf dem DS2480B. Das 
Interface ist mit einem schaltbaren RC Tiefpass bestückt.

von Falk B. (falk)


Lesenswert?

Ralf schrieb:
> Hallo Falk,
>
> vielen Dank für deine Einschätzung. Zusammengefasst scheinst du den
> Hinweisen in den einschlägigen Application Notes von Maxim nicht soviel
> Bedeutung zuzusprechen. Greifst du auf Erfahrungswerte zurück?

Jain. Ich habe keinen Hausbus, wohl aber meinen Testaufbau. Siehe meinen 
Link. Das kann man in Kabelkapazität umrechnen. Und last but not least 
hab ich mein Wissen und Erfahrung als Hardwareentwickler ;-)
Welche Application Note von Maxim gibt denn die Hinweise?

> Ich verwende ein fertiges Interface, basierend auf dem DS2480B. Das
> Interface ist mit einem schaltbaren RC Tiefpass bestückt.

Dann sollte das passen, wenn der Tiefpass richtig dimensioniert ist. 
Hast du einen Schaltplan von deinem Adapter? Mach doch einfach einen 
Test VOR der Installation. Bau eine möglichst "schlechte" Verkabelung 
mit LANGEN Stichleitung auf und teste. Im Idealfall mißt du sogar mit 
einem Oszilloskop.

von (prx) A. K. (prx)


Lesenswert?

Ralf schrieb:
> Greifst du auf Erfahrungswerte zurück?

Mit 200m kann ich nicht dienen, mit einigen zig Metern im Stern hingegen 
schon. Mit den von Falk beschriebenen 100 Ohm Serienwiderstand. Teils 
Antennenkabel als Aussenleitung, überwiegend aber simple 
Drillings-Steuerleitung mit GND beiderseits des Signals. Grund: Beides 
hatte ich ausreichend rumliegen.

Perfekt ist es nicht, es gibt gelegentlich CRC-Fehler und extrem selten 
auch mal einen Fehler, der nicht vom CRC-Check erfasst wird. Es kann 
also sinnvoll sein, Werte auf Sinnhaftigkeit und Abweichung vom 
Vorgängerwert prüfen. Gewitter haben in ~15 Jahren 2x den Sensor am 
längsten Strang erlegt.

von Ralf (Gast)


Lesenswert?

Falk B. schrieb:
> Welche Application Note von Maxim gibt denn die Hinweise?

https://pdfserv.maximintegrated.com/en/an/AN148.pdf

"Linear topology. The 1-Wire bus is a single pair, starting from the
master and extending to the farthest slave device. Other slaves
are attached to the 1-Wire bus with insignificant (< 3m) branches
or "stubs.""

Falk B. schrieb:
> Mach doch einfach einen
> Test VOR der Installation. Bau eine möglichst "schlechte" Verkabelung
> mit LANGEN Stichleitung auf und teste. Im Idealfall mißt du sogar mit
> einem Oszilloskop.

ja, wenn ich dazu die Zeit finden würde...befinde mich mitten im Hausbau 
und es wäre super entlastend, wenn die Verkabelung direkt funktionieren 
würde. :-)

von LOL (Gast)


Lesenswert?

Hallo,

also wenn man die Doku von Dallas/Maxim liest raten die schon von 
Stichleitungen ab und treiben ziemlichen Aufwand.

Mir war das damals zu viel Risiko - ich habe alles mit Cat.5 UTP (AWG24) 
aufgebaut, weil a) extrem billig (<30€/100m) b) hinreichend dünn und c) 
mit Standardverbindern ausgestattet. Man kann dann halt entweder normale 
Ethernet-Patchfelder und RJ-45 nehmen oder LSA+ Telefonverteiler (meine 
Variante).

Um die Stichleitungen zu vermeiden habe ich zu jedem Sensor eine Ader 
hin und eine Ader zurück geführt (jeweils für GND, D+, VCC) und damit 
die Buslänge verdoppelt.

Bis 200m "virtueller" Buslänge war das überhaupt gar kein Problem, im 
Moment habe ich knapp 300m + Didodenkapazitäten mit 35 Sensoren an einem 
einzelnen DS9490R Busmaster, musste aber die Timings leicht anpassen. 
Das läuft jetzt seit 7 Jahren so, ohne Ausfälle bei den Sensoren.

Wichtig ist bei großen Buslängen aber etwas gegen ESD und Störungen zu 
machen. Ich habe BAT40 Dioden in den Verteilungen so platziert, dass sie 
dagegen wirken. Die Dioden selbst haben aber immer noch so viel 
Kapazität, dass sie den Bus erheblich verlängern.
Da bei der Beschriebenen Topologie der Bus in jeder Verteilung sowohl 
anfängt als auch endet, ist auch das sehr einfach "zentral" zu machen.
1
Vorteile der Variante:
2
- in der Verteilung kann man einfach alle Sensoren hintereinander tackern 
3
  (Eingang Sensor A -> Sensor A -> Ausgang Sensor A -> Eingang Sensor B)
4
- das Gesamtkunstwerk sieht wie ein Stern aus, obwohl es ein Bus ist.
5
- man kann an jeder Stelle des Busses einfach auftrennen und einen weiteren 
6
  Busmaster einfügen, um die Buslänge zu mindern

TL;DR:
Mach nen Bus, wenn du bei einfacher Länge <100m bleibst (Buslänge dann 
200m) und du die Adern im Kabel sowieso drin hast. Ein guter Busmaster 
ist IMHO wichtiger als die Buslänge (und Topologie), weil man dann bei 
Problemen die Timings anpassen kann.

von (prx) A. K. (prx)


Lesenswert?

Ein Bus an Stelle von Einzelverkabelung mit Multiplexer oder so hat den 
Nachteil, dass ein defekter Sensor den kompletten Bus lahmlegt. Je nach 
Anwendung kann das unpraktisch sein.

Man sollte aus diesem Grund den Bus so verbauen, dass man die Sensoren 
problemlos einzeln abtrennen kann, um den Fehler zu finden.

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Ralf schrieb:
> befinde mich mitten im Hausbau
> und es wäre super entlastend, wenn die Verkabelung direkt funktionieren
> würde. :-)

Wie wäre es mit Leerrohren?

Vermutlich hält dein Haus länger als die 1Wire-Technologie.

Georg

von Falk B. (falk)


Lesenswert?

Ralf schrieb:
> Falk B. schrieb:
>> Welche Application Note von Maxim gibt denn die Hinweise?
>
> https://pdfserv.maximintegrated.com/en/an/AN148.pdf

Naja. Solche Sachen sind logischerweise immer etwas vorsichtig 
formuliert, damit nicht Dutzende von Schlaumeiern und Jammerlappen 
angerannt kommen und sich beschweren, daß ihr Aufbau nicht funktioniert.

"The weight of a network is the total amount of connected wire in
the network. It is also measured in meters."

?? Gewicht in Metern messen? Warum zum Teufel schreiben die nicht 
einfach kapazitive Buslast in nF? Und dann immer wieder die Rede von 
"weight". Was für ein Unsinn! Kann es sein, daß die Autoren, mutmaßliche 
Amerikaner, mutmaßlich ein Problem mit ihrer eigenen Fettleibigkeit auf 
das Dokument projeziert haben?

> "Linear topology. The 1-Wire bus is a single pair, starting from the
> master and extending to the farthest slave device. Other slaves
> are attached to the 1-Wire bus with insignificant (< 3m) branches
> or "stubs.""

Das ist nur eine Darstellung einer möglichen Verkabelung. Und sie 
schreiben  ja auch, daß man das auch wild mischen kann, wenn gleich dann 
die Abschätzung der Grenzen schwieriger wird.

"Testing has shown that unswitched star-type network topologies (i.e.,
those with several branches diverging at the master) are the most
difficult to make reliable. The junction of various branches presents
highly mismatched impedances; reflections from the end of one branch
can travel distances equal to nearly the weight of the network (rather
than the radius) and cause data errors. For this reason, the unswitched
star topology is not recommended, and no guarantees can be made
about its performance."

Und genau HIER ist es UNSINN!!! Onewire mit Open Drain, welcher 
mindestens 1,2kOhm bei 5V beträgt (max. 4mA Strom bei LOW), hat bedingt 
durch den eher schwachen Pull Up Widerstand und die Buskapazität SEHR 
langsame, ansteigende Flanken. Bei 1nF Buslast (~20m) sind das schon mal 
1,2us Zeitkonstante mit ~3us Anstiegszeit (01-90%). Das entspricht gemäß 
Artikel Wellenwiderstand einer Kabellänge von ~550m. Kritische 
Reflektionen treten ab ca. 550/6 = 92m auf. Unser Kabel hat aber nur 
20m. Ergo, Reflektionen spielen bei so hochohmiger Ansteuerung KEINE 
Rolle.
Ja, da ist noch die HIGH-LOW Flanke, welche aktiv von den Open Drain 
Ausgängen geschaltet wird. Ist die zu schnell, kann es Probleme geben. 
Darum sollte man dort einen absichtlich LANGSAM schaltenen 
Treiber/Transistor nutzen oder zumindest mit einem kleinen 
Reihenwiderstand ausbremsen.

> ja, wenn ich dazu die Zeit finden würde...befinde mich mitten im Hausbau
> und es wäre super entlastend, wenn die Verkabelung direkt funktionieren
> würde. :-)

Diese Ganrantie kann ICH dir nicht geben. Maxim auch nicht. Aber ehe ich 
diverse Verrenkungen mit der Kabelführung mache, würde ich lieber mal 
testen und messen. Das dauert 1 Tag.

Alternativ macht man eine Sternverkabelung mit nur kurzen (<3m) 
Stichleitungen an den Armen). Die Arme führt man an eine zentrale Stelle 
und schließt sie an einzelne IOs an. Das ist dann das "switched network" 
aus dem Dokument, damit gibt es keine Schwierigkeiten wegen langer 
Stichleitungen. Damit hat man auch deutlich bessere Chance im Falle 
einer Fehlfunktion den Ort des Fehlers einzugrenzen.

von Falk B. (falk)


Lesenswert?

Georg schrieb:
> Vermutlich hält dein Haus länger als die 1Wire-Technologie.

Länger als 200m? Zieht er nach Prora? ;-)

https://de.wikipedia.org/wiki/Prora

von Ralf (Gast)


Lesenswert?

Georg schrieb:
> Wie wäre es mit Leerrohren?

...macht heute kein Mensch mehr, ich habe WiFi. Natürlich habe ich alles 
in Leerrohr gepackt und trotzdem würde ich gerne direkt so verkabeln, 
dass der Bus direkt fehlerfrei läuft.

Wenn ich aber die Antworten hier zusammenfasse, gibt es aber keine 
eindeutige Wahrheit...ist wohl doch ziemlich analog, dieser digitale 
1-Wire Bus. :-)

von Falk B. (falk)


Lesenswert?

Ralf schrieb:
> Wenn ich aber die Antworten hier zusammenfasse, gibt es aber keine
> eindeutige Wahrheit...ist wohl doch ziemlich analog, dieser digitale
> 1-Wire Bus. :-)

Blödsinn^3! Das mit dem sinnerfassenden Lesen über wir dann noch mal.

von Ralf (Gast)


Lesenswert?

Falk B. schrieb:
> Alternativ macht man eine Sternverkabelung mit nur kurzen (<3m)
> Stichleitungen an den Armen). Die Arme führt man an eine zentrale Stelle
> und schließt sie an einzelne IOs an. Das ist dann das "switched network"
> aus dem Dokument, damit gibt es keine Schwierigkeiten wegen langer
> Stichleitungen. Damit hat man auch deutlich bessere Chance im Falle
> einer Fehlfunktion den Ort des Fehlers einzugrenzen.

aber genau da liegt ja wieder mein eingangs beschriebenes Problem, dass 
ich nicht bis auf <3m an die IOs herankomme. Was ich aber eben 
alternativ machen könnte, wäre die Datenleitung in einer gemeinsamen 
Leitung hin- und zurückzuführen. Dann hätte ich aber keinen Schirm 
zwischen Hin und Rückleiter.

Ich glaube LOL hat das so angewendet, nur eben auf eine längere Distanz:

LOL schrieb:
> Um die Stichleitungen zu vermeiden habe ich zu jedem Sensor eine Ader
> hin und eine Ader zurück geführt (jeweils für GND, D+, VCC) und damit
> die Buslänge verdoppelt.
>
> Bis 200m "virtueller" Buslänge war das überhaupt gar kein Problem, im
> Moment habe ich knapp 300m + Didodenkapazitäten mit 35 Sensoren an einem
> einzelnen DS9490R Busmaster, musste aber die Timings leicht anpassen.
> Das läuft jetzt seit 7 Jahren so, ohne Ausfälle bei den Sensoren.

von Falk B. (falk)


Lesenswert?

Ralf schrieb:
> Falk B. schrieb:
>> Alternativ macht man eine Sternverkabelung mit nur kurzen (<3m)
>> Stichleitungen an den Armen). Die Arme führt man an eine zentrale Stelle
>> und schließt sie an einzelne IOs an. Das ist dann das "switched network"
>> aus dem Dokument, damit gibt es keine Schwierigkeiten wegen langer
>> Stichleitungen. Damit hat man auch deutlich bessere Chance im Falle
>> einer Fehlfunktion den Ort des Fehlers einzugrenzen.
>
> aber genau da liegt ja wieder mein eingangs beschriebenes Problem, dass
> ich nicht bis auf <3m an die IOs herankomme.

Du verstehst hier was falsch. Mit IOs meine ich die IOs der zentralen 
Datenverarbeitung, sprich, dein Onewire Master.

> Was ich aber eben
> alternativ machen könnte, wäre die Datenleitung in einer gemeinsamen
> Leitung hin- und zurückzuführen. Dann hätte ich aber keinen Schirm
> zwischen Hin und Rückleiter.

Unsinn!

Zeichne eine Skizze deines Netzwerkes, wie es rein durch die Geometrie 
deines Hauses vorgegeben ist. Also welche Punkte sollen mit Sensoren 
ausgestattet werden, wie groß ist der Abstand bzw. die Kabellänge dahin.
Dann kann man da was sinnvolles draus machen.
Hin-und Rückleitungen sind es hier eher nicht.

von Wolfgang (Gast)


Lesenswert?

Ralf schrieb:
> https://pdfserv.maximintegrated.com/en/an/AN148.pdf
>
> "Linear topology. The 1-Wire bus is a single pair, ... with
> insignificant (< 3m) branches or "stubs.""

Das ist ein Beispiel einer Netzwerktopologie.

Für Sterntopologie werden geschaltete Netzwerkabschnitte empfohlen (S.4f 
Switched Networks)

von (prx) A. K. (prx)


Lesenswert?

Wenn man von vorherein auf Nummer sicher gehen will, kann man natürlich 
auch auf einen Primär- und diverse Sekundärbusse setzen. Primär 
beispielsweise als vielfachem erprobtem RS485 Strang (oder CAN), und 
daran sekundäre 1-Wire Stränge, mit 8-Pin-Zwergen zwischendrin. Hat den 
Vorteil, dass da auch mehr geht als bloss 1-Wire.

von Pandur S. (jetztnicht)


Lesenswert?

> ja, wenn ich dazu die Zeit finden würde...befinde mich mitten im Hausbau
und es wäre super entlastend, wenn die Verkabelung direkt funktionieren
würde. :-)

Vergiss den Scheiss. Und wenn's nicht tut, das Haus neu ? Zieh was 
Gescheites ein. zB ein (RS485) oder zwei (RS422) Differentialpaare. Und 
dann jeweils einen Controller. Einen Controller, welcher nichts tun muss 
kann man mit beliebig wenig Strom laufen lassen.
Differntialtreiber, zB AD498 70uA, Mega32 10mA

: Bearbeitet durch User
von svensson (Gast)


Lesenswert?

Hallo,

wie bereits mehrfach geschrieben haben wir Messsysteme mit 64 Sensoren 
und garantiert 200m Kabellänge im Einsatz. Da sind auch "Verteiler" 
dabei die rein passiv arbeiten.
Kabel ist 6poliges Flachkabel mit RJ12, teilweise fertig gekauft, 
teilweise selbst von der Rolle konfektioniert. Jeweils 2 Adern pro 
Signal als Redundanz.

Das alles funktioniert in übelster Umgebung (Feuchträume usw.) sehr 
zuverlässig.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.