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
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.
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.
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.
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.
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. :-)
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.
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.
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
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.
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. :-)
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.
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.
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.
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)
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.
> 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
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.