Hallo,
ich komme aus der Informatik-Branche und habe nur sehr grundlegendes
Elektronikwissen. Ich habe mir für ein kleines Home-Automation-Projekt
ein paar Schaltmodule, die über den RS485-Standard kommunizieren,
gebaut, die auf meinem Schreibtisch so weit funktionieren.
Jetzt gilt es, das zu installieren.
Um mir sehr viel Aufwand und Kabel zu ersparen, würde ich sehr viele
Stichleitungen, also schon fast eine Sterntopologie in Kauf nehmen. Die
maximale Teilstrecke ist ca. 80 Meter. Betrieben wird der Bus mit 9600
Baud, die Geschwindigkeit kann ich aber noch um einiges verringern,
sollte das einen Unterschied machen.
Kann ich hier 4-adriges Telefonkabel verwenden (A,B,GND,V+)? Muss ich
diese Stichleitungen zwingend mit einem Abschlusswiderstand terminieren?
("Ruhige" Umgebung und niedrige Bitrate/Länge; s. o.) Falls ja, wie
berechne ich diesen Abschlusswiderstand?
Eine weitere Frage: Auf den Schaltmodulen befindet sich der folgende 5V
Spannungsregler:
http://www.reichelt.de/ICs-KA-LF-/LF-50-CV/index.html?;ACTION=3;LA=444;GROUP=A214;GROUPID=2911;ARTICLE=39420;START=0;SORT=artnr;OFFSET=16;SID=10ToHnYH8AAAIAADFPqjo6a6e8892a6e16b44897517de5ad47994
Welche Spannung würdet ihr auf die Busleitung legen, damit die 5V
überall gewährleistet sind, aber die Spannungsregler nicht überlasten/zu
heiß werden?
Vielen Dank im Voraus!
Patrick
Ach ja, mein Protokoll ist mit Prüfsumme und erneuter Übertragung im
Fehlerfall gesichert, das heißt, ich kann eine gewisse Bitfehlerrate in
Kauf nehmen.
Stichleitungen werden dir bei mehreren Metern Länge wahrscheinlich
Probleme bereiten, da solltest du dir ernsthaft über eine andere Lösung
Gedanken machen.
Zu deiner Frage mit der Spannung kann man dir keine Antwort geben, da
wesentliche Angaben fehlen. Drop-Out-Spannung ist im Datenblatt doch
gegeben und den Spannungsbfall über die Leitung kannst du leicht selbst
rechnen, wo ist das Problem?
Auf jeden Fall mal "slew rate limited" Treiber verwenden, wie
beispielsweise den LT1785, o.ä. Dieser ist zwar extrem teuer, hilft dir
aber auch gegen ESD und gestattet den Einsatz von einfachen
Surge-Filtern.
Gut als Kabel geeignet ist Cat-5-Kabel. Nimm ein Paar für A/B und ein
anderes für +Vcc/0V.
Vermeide in jedem Fall Brummschleifen über der 0V Leitung. Im Schirm,
sofern du einen verwendest, stört Brumm dagegen kaum. Den Schirm kannst
du an jedem Kabelende direkt erden, die 0V solltest du dagegen mit einem
10nF/1kV weich erden, auch an jedem Kabelende. So machen das die
PROFIBUS-Leute mit Erfolg.
Wenn durch falsche Kabelverlegung, also zu lange Stichleitungen,
störenden Reflektionen auftreten, hilft nur Herunterfahren der
Übertragungsrate.
OK, danke. Heißt das, dass meine Konfiguration mit einer Hauptleitung
von 80 Metern und Stichleitungen von in Summe etwa 150 Metern bei
einer Baudrate von 9600 mit Telefonkabel funktionieren sollte? Ich weiß
leider nicht, wie man mit den Leitungskapazitäten hier rechnet und
welche sonstigen Unterschiede zwischen dem "PROFIBUS Kabel Typ A" und
einem gewöhnlichen Telefonkabel hier Einfluss haben.
Reflektionen sind nur schwer aufzuspüren, wenn du nur nach den
Übertragungsfehlern gehst. Dewswegen solltest du dein RS485-System mit
zunächst sehr niedrigen Datenraten antesten, die du dann in KLEINEN
Schritten vergrößerst. Sobald Übertragungsfehler auftreten, verringerst
du die Übertragungsrate wieder.
Hallo
Ich arbeite schon einige Jahre mit RS485, deshalb kann ich aus eigener
Erfahrung berichten.
Zuerst einmal:
Du solltest auf keinen Fall Telefonkabel verwenden!
Nimm abgeschirmtes Netzwerk Kabel (LAN) stattdessen!
Wenn du mal ein Netzwerk Kabel aufgemacht hast, weißt du dass darin 4
verdrillte Paare sind. (englisch twisted pair)
Ich nehme mal an du hast dich mit dem Thema befasst und weißt, was der
Voreil von Twisted Pair ist, wenn nicht -> Wikipedia!
Du mußt unbedingt darauf achten, dass du von diesen 8 Adern nicht IRGEND
welche nimmst, sondern 2 die miteinander verdrillt sind. Die Farbe ist
egal, aber sie müssen ein Paar sein.
Sternnetze sind möglich, wenn du dadurch lange Leitungen sparst.
Besser wäre eine lange Leitung wo die Geräte in der Mitte dranhängen und
die beiden Enden der langen Leitung einen Abschluß haben.
Wenn die Geräte bereits einen Abschlußwiderstand eingebaut haben (meist
ist das so) brauchst du natürlich keinen extra mehr.
Bei einem Sternnetz sollte jeder Endpunkt einen Abschlusswiderstand
haben.
Mit 9600 Baud dürftest du kaum Probleme haben, da dies noch sehr langsam
ist.
> Welche Spannung würdet ihr auf die Busleitung legen, damit die 5V
überall gewährleistet sind
Hast du mal Datenblätter gelesen von ICs, die TTL Pegel umsetzen auf
RS485? Der Sender sendet immer 5 Volt oder 0 Volt.
Der Empfänger ist aber so empfindlich dass er eine Differenz von 0,2
Volt zwischen den beiden Leitungen bereits erkennt.
Da wirst du selbst nach einem Kilometer Leitung noch weit drüber liegen.
Such mal nach "Datasheet DS3695" oder "DataSheet Max488"
Deine Frage ist also falsch: Du mußt gar keine 5 Volt beim Empfänger
haben!
Als Abschlußwiderstand wird üblicherweise 120 Ohm genommen, aber wie
gesagt, die meisten Geräte haben den bereits eingebaut.
Elmü
>Bei einem Sternnetz sollte jeder Endpunkt einen Abschlusswiderstand>haben.
Ähem, Räusper, dann wird der RS485-Treiber aber praktisch
kurzgeschlossen und der Stromverbrauch steigt ins Uferlose...
Hallo
Du weißt was ein Kurzschluss ist ?
Du hast natürlich Recht, dss jeder Abschlusswiederstand den Sender
belastet.
Wenn man also 100 Geräte anschliessen will geht das natürlich nicht
mehr.
Wenn man aber z.B. nur 5 Geräte anschließt ist das überhaupt kein
Problem.
Meist wird ja auch nur ein kleines Datenpakt geschickt und dann schaltet
der Sender sich wieder ab und erhitzt sich also gar nicht erst.
Wenn aber die Alternative zum Sternnetz ein endlos langes Kabel ist, das
Tausend Schleifen durchs Gebäude macht, ist das auf jeden Fall weniger
optimal als ein Sternnetz.
Es ist also völlig unmöglich hier allgemeingültige Aussagen zu machen
ohne Details zu kennen.
Reflektionen kann man übrigens auf dem Oszilloskop sehen.
Wenn beim Empfänger ein sauberes Rechteck Signal ankommt ist alles im
grünen Bereich.
Elmü
>Wenn man aber z.B. nur 5 Geräte anschließt ist das überhaupt kein>Problem.
Also 20R und rund 2,2V Signalspannung, wenn man einen LT1785 zu Grunde
legt. Macht 110mA! Mit 50R und rund 2,7V sind es dagegen nur 54mA.
Patrick hat aber geschrieben:
>Um mir sehr viel Aufwand und Kabel zu ersparen, würde ich sehr viele>Stichleitungen, also schon fast eine Sterntopologie in Kauf nehmen.
Das klingt nach mehr als nur 5 Geräten...
>Reflektionen kann man übrigens auf dem Oszilloskop sehen.
Patrick schreibt, daß er nur "ein sehr grundlegendes Elektronikwissen"
hat. Damit dürfte die Option mit dem Oszilloskop ausfallen.
9k6 sind für rs485 schnarchlangsam. 150m auch kein problem. Neben der
Terminierung solltest du auch einen Pullup und einen Pulldown einbauen.
Also 5V -> R -> D+ -> Rterm -> D- -> R -> Masse
Leg die Geschichte so fest daß du ~500mV Common Mode Spannung im
Ruhezustand bekommst. Wenn du Adern frei hast kannst du auch die Masse
mitführen.
Hallo
> 9k6 sind für rs485 schnarchlangsam
Stimmt.
Und Reflektionen sind ein Thema im Megahertz Bereich.
Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände
einwandfrei funktionieren.
Elmü
@ Elmü Meister (elmue)
>> 9k6 sind für rs485 schnarchlangsam
Jain.
>Und Reflektionen sind ein Thema im Megahertz Bereich.
Jain.
>Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände>einwandfrei funktionieren.
Nur dann, wenn die ANSTIEGSZEIT begrenzt wird. Siehe
Wellenwiderstand.
Dazu nimmt man die erwähnten "Slew rate limited driver".
MfG
Falk
>Wahrscheinlich wird das ganze sogar ganz ohne Anschlußwiderstände>einwandfrei funktionieren.
Zuerst wolltest du an jeder Stichleitung einen Abschlußwiderstand
hinmachen und jetzt soll es auch ganz ohne Abschlußwiderstände gehen??
Eine einfach Simulation zeigt, daß gänzlich ohne
Terminierungswiderstände die Übertragung sehr leicht floppen kann,
selbst dann, wenn "slew rate limited" Treiber eingesetzt werden. Die
einzige Möglichkeit, die Reflektionen dann einigermaßen in den Griff zu
bekommen, ist, Kabel mit hohen ohmschen Verlusten zu verwenden. Sonst
gibt das eine kräftige Bauchlandung...
Auf jeden Fall sollte am Treiber eine korrekte Terminierung sitzen. Bei
einem 100R Kabel (Cat-5) also 100R. Dann noch eine korrekte Terminierung
an dem Punkt, der am weitesten vom Treiber entfernt ist. Die
Stichleitungen kann man unterminiert lassen, wenn sie kurz sind. Bei
längeren Stichleitungen kann man mit Terminierungen zwischen 100R und 1k
experimentieren, wobei die zusätzliche Gesamtlast der Stichleitungen
nicht unter 100R liegen sollte, damit das RS485-Signal nicht zu stark
zusammenbricht.
Hallo
> Nur dann, wenn die ANSTIEGSZEIT begrenzt wird
Sagen wir mal der Sender hätte ein extrem hohe Flankensteilheit.
Was würde passieren ?
Das Kabel mit seinen Kapazitäten und Induktivitäten würde ein paar
Überschwinger an jeder Flanke produzieren. Das heißt eine hochfrequente
Sinusschwingung die schnell ausklingt.
Das verursacht aber absolut kein Problem wenn das Signal nur 9600 Baud
hat.
Warum ?
Weil der Empfänger eines asynchronen seriellen Datenstromes in der Mitte
des regenerierten Taktes die Daten Sampels liest. (Der Takt wird von
einem Quartz abgeleitet.) Und zu der Zeit sind die Überschwinger
läääääängst vorbei.
Die Anstiegsszeit spielt also überhaupt keinerlei Rolle bei dieser
Niederfrequenz.
Bei hochfrequenten Signalen ist dies anders.
Da mischen sich die Überschwinger der Flanken mit dem Nutzsignal und
können dies unlesbar machen.
P.S:
Ich habe den Eindruck Patrick hat sich bereits aus der Diskussion
zurückgezoen und dieser Thread driftet in Fachsimpelei ab. Ich melde
mich daher auch ab...
Elmü
>Das Kabel mit seinen Kapazitäten und Induktivitäten würde ein paar>Überschwinger an jeder Flanke produzieren.
Das sind nicht "ein paar" Überschwinger, wenn keinerlei relevante
ohmsche Dämpfung vorhanden ist. Das Geschlabber kann weit länger als
eine Bit-Zeit dauern. Ohne die beiden Terminierungswiderstände am
Treiber und am weit entferntesten Ort kannst du die Übertragung völlig
vergessen.
>Sagen wir mal der Sender hätte ein extrem hohe Flankensteilheit.>Was würde passieren ?
Ohne irgendwelche Terminierungswiderstände verursacht "extrem hohe
Flankensteilheit" extreme Abstrahlung der Leitung. Der CE-Test wäre dann
mit Sicherheit nicht bestanden.
>Warum ?>Weil der Empfänger eines asynchronen seriellen Datenstromes in der Mitte>des regenerierten Taktes die Daten Sampels liest. (Der Takt wird von>einem Quartz abgeleitet.) Und zu der Zeit sind die Überschwinger>läääääängst vorbei.
Die Überschwinger sind nicht das Problem, sondern die Flanken. Und wenn
da eine Treppenkurve ist, wo der UART eigentlich eine Flanke braucht, um
das Startbit richtig erkennen zu können, dann werden die Reflektionen
schon zum Problem.
Au Mann, sind wir alle dämlich!
Es gibt das perfekte RS485 Sternnetz!
Es ist soooo einfach!
Warum ist keiner von uns bisher darauf gekommen?
Wie so oft kommen einem die besten Ideen auf dem Klo.
Wir hätten uns das ganze Gefachsimple sparen können, wenn mir diese Idee
eher gekommen wäre.
Patrick, (falls du noch da bist) mach es so wie im angehängten Bild und
vergiss die ganze Diskussion hier in diesem Thread!
Den Abschlußwiderstand habe ich mit Absicht in den Sternpunkt gelegt.
So sind eventuelle zukünftige Erweiterugen (zusäztliche Geräte) einfach
zu realisieren und du weißt immer wo er ist.
Elmü
>Es ist soooo einfach!>Warum ist keiner von uns bisher darauf gekommen?
Deine Topology stimmt überein mit der in Figure 3f von diesem Link
http://www.national.com/an/AN/AN-1057.pdf
den schon spess53 in die Runde geworfen hat.
@ Elmü Meister (elmue)
> RS485-Stern-Netz.gif>Au Mann, sind wir alle dämlich!
Bitte mal nicht von dir auf andere schließen.
>Es gibt das perfekte RS485 Sternnetz!
Das ist kein Jim Beam, ähh Sternnetz, sondern einfach linear. Die
örtliche Verteilung ist da egal.
MfG
Falk