Hallo, eine RS485-Datenleitung soll als Kreis mit mehreren Busteilnehmern aufgebaut werden. Wo müssen dabei die sonst üblichen Abschlußwiderstände angebracht werden? Viele Grüße Transpluto
> eine RS485-Datenleitung soll als Kreis mit mehreren Busteilnehmern > aufgebaut werden. Bitte ein Bild. Willst du wirklich einen Ring machen? Das kann heftige Reflexionen geben...
Den Kreis nicht schließen und an der Trennstelle an beiden Enden die Abschlußwiderstände anbringen.
> Willst du wirklich einen Ring machen? Ja. > Den Kreis nicht schließen und an der Trennstelle an beiden Enden die > Abschlußwiderstände anbringen. Das geht leider nicht: der Kreis muß geschlossen sein, da sich wirklich an allen (!) Stellen im Kreis Teilnehmer befinden können.
Wenn das wirklich ein physikalisch geschlossener Ring mit durchgehendem Kupfer werden soll, dann wirst du wohl nicht drum herum kommen, den Ring mit derart langsamen Flanken zu betreiben, dass die Lust auf Reflektionen garnicht erst aufkommt. Warum der Ring aber geschlossen sein muss erschliesst sich mir immer noch nicht. Eine ringförmige Anordnung mit eine wenige Millimeter breiten Lücke für die beiderseitigen Abschlüsse schränkt die Anschlussmöglichkeiten in keiner Weise ein. Die Abschlüsse sind ja nicht Bestandteil einer Node, sondern Teil der Verkabelung.
@ A. K. Nun ja, die Datenübertragungsrate liegt bei 115,2 kBaud. Leider geht auch aus technischen Gründen eine wenige Millimeter breite Lücke nicht, obwohl ich sie auch gerne hätte.
Ist nicht grad der übliche Anwendungsfall für RS485. Soll heissen: Probier aus ob damit irgendwas geht und schreib es hier rein, damit andere auch davon profitieren. Logischerweise ist es bei so einer Topologie völlig wurscht wo Abschlüsse sitzen und wahrscheinlich ist man mit verteiltem Abschluss (also pro Node) besser dran als zentral. Warum da keine Lücke sein kann würde mich schon mal interessieren, ich kann mir auf Anhieb nichts vorstellen. Willst du die häusliche Warmwasserleitung nebenbei als RS485-Bus verwenden?
Transpluto schrieb:
> Nun ja, die Datenübertragungsrate liegt bei 115,2 kBaud.
Was bei 10m Ring sicherlich kein Problem ist. Von der Länge war ja
bisher nicht die Rede.
>Das geht leider nicht: der Kreis muß geschlossen sein, da sich wirklich >an allen (!) Stellen im Kreis Teilnehmer befinden können. Erschließt sich mir nicht, warum du da keinen Gap machen kannst. Eines ist auf jeden Fall sicher, du wirst Probleme ohne Ende bekommen! Der Ring wirkt wie eine Induktionsschleife, der jedes Magnetfeld in eine Störspannung verwandelt. Ich spreche hier nicht mal von Blitzen oder Endladungen, sondern so simple Sachen wie ein Staubsauger, den du einschaltest, oder der Kühlschrank... Transpluto, ein Ring ist ein absolutes No no! Wenn du dich darauf einläßt, ist das nicht professionell. Kai
Hallo bei der firma Hedintex http://www.hedintex.de/ eine spezialfirma für rs485 giebt es auch Leitungstreiber mit den du einen rs584 rinstrucktur herstellen kannst. kostet aber etwas geld,funktioniert dafür in industie qualität.
Wenn ich den Laden richtig interpretiere, dann kriegt er damit zwar seinen physikalischen und topologischen Ring, aber kein durchgehendes Kupfer. Also statt einer einzigen Unterbrechung kriegt er nun für jene Node eine Art Unterbrechung. Und das in Glasfaser - das ist jedenfalls dort der einzige gezeigte Ring.
Ich habe einmal nur zum Spass eine 25m lange RS485 Leitung als Ring geschlossen und die Abschlusswiderstände entfernt. Es ging Problemlos allerdings mit 39Kbaud Die Abschlusswiderstände sind nur dazu da Reflexionen am Leitungsende zu vermeiden. Wenn Du ein richtiges 120 Ohm Twin Kabel hast, kannst Du ohne weiters den Ring schliessen.
> Transpluto, ein Ring ist ein absolutes No no! Wenn du dich darauf > einläßt, ist das nicht professionell. Ich stimme zu, daß alle bisher genannten Einwände ihre Berechtigung haben. Trotzdem muß die Anlage im professionellen Bereich unter den geschilderten Bedingungen funktionieren. Eine Unterbrechung des Kreises würde einen sehr großen technischen Zusatzaufwand bedeuten, der vom Aufwand her kaum zu vertreten ist und die Gesamtfunktion des Systems einschränkt.
Schneid das Kabel an einer Stelle durch und klemm deine Widerstäden an! Wo ist denn da bitte schön der Aufwand? Und du hast damit keinen Einfluss auf die Gesamtfunktion des RS485 Systems.
@ Stefan_KM Und was macht dann der arme Busteilnehmer, der genau in der Lücke der Ringleitung seine Daten abgreifen möchte?
Dieser Teilnehmer ist der letzte (oder der erste) am Bus und 0,1mm daneben hört das Kabel auf. Leg das Kabel so, dass ist optisch einen Ring bildet. An einer Stelle treffen sich die beiden Enden sind aber nicht verbunden. Wenn du diese Diskusion nicht weiter führe möchtest, solltest du sagen wieso es denn nicht geht. Ich glaube dann hätte jeder Verständnis für das Problem!!! :-)
Transpluto schrieb: > @ Stefan_KM > > Und was macht dann der arme Busteilnehmer, der genau in der Lücke der > Ringleitung seine Daten abgreifen möchte? Wer ist so schlau und positioniert einen Teilnehmer in einer 1mm Lücke auf 10m?
Transpluto schrieb: > @ Stefan_KM > > Und was macht dann der arme Busteilnehmer, der genau in der Lücke der > Ringleitung seine Daten abgreifen möchte? Dieser hat dann die frei Wahl, ob er den rechten oder den linken Leitungsstrang benutzen möchte. An dieser Stelle liegen dann ja physisch beide Leitungsenden von dem Ring.
@ Stefan_KM Was ist, wenn sich jetzt der arme Busteilnehmer auch noch bewegt und über die Kabellücke fahren möchte? Damit trifft er mit seinen Kontakten immer exakt die Lücke. Oder er schließt beide Kabelenden kurz, womit der Kreis dann wieder geschlossen ist.
Ah ha.... Jetzt kommen wir der Sache näher. Du hast also Schleifkontakte (oder so was ähnliches) auf deinem BUS und die Teilnehmer bewegen sich am Ring entlang. In diesem Falle ist natürlich eine Lücke tödlich. Dann bleibt nix anderes übrig, als es entweder mit 115kBaud zu versuchen oder deine Baudrate runter zusetzen. Sinnvoll wäre es dann sicherlich, wenn alle Teilnehmer intern einen Terminierungswiderstand bekämen. Wenn das geht!?
Mal abgesehen davon, dass der Wellenwiderstand so einer Verbindung wohl unbekannt sein dürfte. Nützlich wäre es dabei, wenn die Flankensteilheit der Transmitter der Kabellänge angepasst wird. Asynchrone Übertragung ist zwar nicht sehr empfindlich gegenüber Reflexionen, aber die üblichen High-Speed Transceiver für RS485 funken sonst Störungen in die Landschaft. Welche RS485 Transceiver das können habe ich nicht parat, bei CAN-Transceivern ist diese Möglichkeit üblicherweise enthalten.
Machs dir doch einfach und nimm 2 RS485 Receiver auf dem Fahrzeug So kannst du eine Luecke haben aber trotzdem steht immer ein Kontakt auf dem Leiter und sicher die Kommumikation. Ist zwar ein bisschen aufwendiger aber dafuer hast du das Problem mit dem Abschluss nicht. ------------GAP------------ ^ ^ | | RS485_1 RS485_2 | | Uart1 Uart2 | | +----+-----+ | Fahrzeug Controller Gruss Helmi
@ Helmut Lenzen So einfach ist das mit den zwei UARTs nicht. In dem Moment, in dem ein Kontakt die Lücke trifft, erhalte ich zwei verschiedene Signale. Welcher UART glaube ich dann? Auch muß ich mich entscheiden, über welche UART ich gerade senden soll. Der technische Aufwand, diese Probleme zu lösen ist nicht gerade klein.
Transpluto schrieb: > So einfach ist das mit den zwei UARTs nicht. In dem Moment, in dem ein > Kontakt die Lücke trifft, erhalte ich zwei verschiedene Signale. Welcher > UART glaube ich dann? Der mit dem korrekten Frame. CRC-Check sollte ja wohl obligatorisch sein. > Auch muß ich mich entscheiden, über welche UART > ich gerade senden soll. Beide, würde ich mal annehmen. Wäre dabei evtl. sinnvoll, beide Transmitter mit dem gleichen Signal zu beschicken, also nur einen UART-Tx zu verwenden. Allerdings sollte die Bitrate der Laufzeit angepasst sein.
Wenn du ein Master Slave System hast (es spricht immer nur einer auf dem BUS und immer nur der Teilnehemer der gefragt ist. Können nicht zwei Sender gleichzeitig sprechen auch wenn das Signal das Gleiche ist und es auch nich Zeitgleich abgestrahlt wird. Sowas muss unbedingt vermiden werden. Ist viel zu riskant. Bei 10m wird doch eigentlich gar keine Terminierung gebraucht!? Die Leitungen sind noch kurz, oder nicht.
> Der mit dem korrekten Frame. CRC-Check sollte ja wohl obligatorisch > sein. Damit verliere ich aber nicht nur ein Byte, sondern sofort eine ganze Sendung. Auch sind vom Mikrocontroller zwei statt einer UART zu verwalten, was in einem zeitkritischen System auch nicht gerade ein Vorteil ist. > Wäre dabei evtl. sinnvoll, beide Transmitter mit dem gleichen Signal zu > beschicken Das halte ich auch für eine spannende Sache, zumal beide Transmitter nicht absolut gleich arbeiten werden. Zusätzliche Störimpule im ns-Bereich könnten durchaus erzeugt werden. Ich glaube, beide Vorschläge machen das System nicht unbedingt stabiler.
> Die Leitungen sind noch kurz, oder nicht.
Leider nein.
Stefan_KM schrieb: > Wenn du ein Master Slave System hast (es spricht immer nur einer auf dem > BUS und immer nur der Teilnehemer der gefragt ist. Können nicht zwei > Sender gleichzeitig sprechen auch wenn das Signal das Gleiche ist und es > auch nich Zeitgleich abgestrahlt wird. Sowas muss unbedingt vermiden > werden. Ist viel zu riskant. Nicht wenn man an Stelle des RS485 Transceivers einen CAN Transceiver nimmt. Da kann man dann auch gleich die Flanken passend einstellen. > Bei 10m wird doch eigentlich gar keine Terminierung gebraucht!? Die > Leitungen sind noch kurz, oder nicht. Obacht. 10m war eine irgendwann von mir wild aus der Luft gegriffene Zahl, um den TE endlich dazu zu bringen, mal eine eigene Zahl in den Ring zu werfen. Was er aber nach wie vor standhaft verweigert - scheint jemand zu sein den man nur mit vorgehaltener Waffe zu Auskünften kriegt.
> ... scheint jemand zu sein den man nur mit vorgehaltener Waffe zu > Auskünften kriegt. ... und der einige Wettbewerber kennt, die solch ein System auch gerne hätten. Deshalb muß er sich mit konkreten Angaben etwas zurückhalten. Zumindest so lange, bis das Projekt realisiert ist und mit vielen bunten Bildern im Internet dargestellt wird.
garantiert die welt eifert um deinen ringförmigen rs485 bus will dich wirklich nicht auf den boden der realität zurückholen, aber danach was hier im forum dazu gebracht wird kräht kein hahn. du machst es dir selbst und allen anderen die dir helfen wollen nur unnötig schwer. aber was solls :)
>Auch sind vom Mikrocontroller zwei statt einer UART zu >verwalten, was in einem zeitkritischen System auch nicht gerade ein >Vorteil ist. Fuer das bisschen langweilllt sich der Prozessor. 115KBaud sind doch Heutzutage fuer eine CPU keine belastung. > Auch muß ich mich entscheiden, über welche UART > ich gerade senden soll. Uber den der denn letzten korrekten Frame empfangen hat.
@ morph1 So, so ... Es gibt aber Firmen, die treiben in dieser Richtung doch einen ganz schönen Aufwand: http://www.vahle.de/
@ Helmut Lenzen Du unterschätzt etwas die Geschwindigkeit, mit der innerhalb der Applikation gearbeitet wird. Der Mikrocontroller hat auch etwas mehr zu tun, als nur seine Schnittstellen abzufragen.
Man kann etwas, über das kaum irgendwelche dafür hilfreiche Information vorliegt, schon rein prinzipiell nicht gut einschätzen. Wie man in den Wald reinruft, so schallt es zurück. Auch bekannt als "Schrott rein Schrott raus".
@ A. K. ??? Bisherige Definition: - RS485 - 115,2 kBaud - geschlossener Ring - Leitung länger, als daß es ohne Abschluß funktioniert - mehrere Teilnehmer - auf jeder Position muß es funktionieren Was fehlt Dir denn?
Im Kontext deiner Antwort auf Helmut: Die Information, dass der einzelne Controller schon ohne Kommunikation beinahe überlastet ist.
> Im Kontext deiner Antwort auf Helmut: Die Information, dass der einzelne > Controller schon ohne Kommunikation beihnahe überlastet ist. Das hat nichts damit zu tun, ob es grundsätzlich funktioniert oder nicht. Auch ohne Timingprobleme muß es mir mindestens gelingen, ab und zu mal eine korrekte Sendung zu übertragen. Ohne Abschlüsse ist das bei 115,2 kBaud leider garnicht möglich. Damit spielen die Fähigkeiten des Mikrocontrollers eine absolut untergeordnete Rolle.
>Du unterschätzt etwas die Geschwindigkeit, mit der innerhalb der >Applikation gearbeitet wird. Der Mikrocontroller hat auch etwas mehr zu >tun, als nur seine Schnittstellen abzufragen. Dann bau einen 2. ein. Die Dinger kosten doch nichts mehr. Und abfragen brauchst du die Schnittstellen auch nicht. Sowas macht man im Interrupt. Ich programmiere hier selber Applikation wo der Prozessor in 1 Sek. 256 KByte an Daten uebertraegt. Frage welche CPU setzt du den ein oder ist das geheim ?
@ Helmut Lenzen Obwohl es für das eigentliche Problem keine Relevanz hat: wie setzen verschiedene PIC18F-Mikrocontroller ein. Das Problem ist aber nicht die Verarbeitungsgeschwindigkeit, sondern die notwendige Datenübertragungsrate. Wir können nicht unter 115,2 kBaud gehen, da sonst unsere Applikation nicht mehr läuft. Mit 115,2 kBaud haben wir aber beim Kreis massive Probleme, die gelöst werden müssen. Die Probleme hätten wir auch mit jedem anderen Mikrocontroller, der die gesendeten Daten dringend braucht.
Nur mal so eine Idee: Der Sender trennt den Ring an seiner Position per Relais auf und terminiert die beiden Enden. Wenn das nicht erlaubt ist, dann kannst du eigentlich nur noch am jeweiligen Sender automatisch terminieren. Da die Empfänger an beliebiger Stelle sitzen können ist eine automatische Terminierung dort unmöglich.
Deine erste Antwort sagt da aber noch was anderes aus. Da war die Rede davon das der Prozessor sonst fuer nichts anderes mehr Zeit hat. Meinste du wirklich das ist eine gute Idee die Daten ueber Schleifkontakte abzugreifen ? Auch ist so eine offene Leitung auch eine Ideale Antenne fuer Stoerungen. Waere nicht Funk eine Alternative ?
er hat schleifringe, die er in seiner zusammenfassung immernoch nicht eingefügt hat. auch die mechanischen eigenheiten eines systems sind erwähnenswert...
Kleiner Tip, so wie wir das machen: an 4 oder 8 äquidistanten Stellen im Ring jeweils 240 oder 470 Ohm und gut isses. Servus, Helmut.
> Waere nicht Funk eine Alternative ? Leider nein. > auch die mechanischen eigenheiten eines systems sind erwähnenswert... Die Probleme bei linienförmiger Topologie sind in Verbindung mit den mechanischen Eigenheiten gelöst. Es geht wirklich nur um eine ringförmig aufgebaute RS485-Datenleitung!
@ Helmut -dc3yc Gibt es Erfahrungswerte, wie groß bei dieser Vorgehensweise die Ringe werden dürfen?
Zum Thema Ringstruktur RS485. Selbstverstaendlich kann man den RS485 Bus physikalisch als Ring verdrahten. Vorteil - man braucht keine Terminierungswiderstaende und kann damit sehr flexibel das Bussystem erweitern. Dieses Prinzip wird uebrigens schon seit fast 20 Jahren im Industrie Standard Feldbus P-NET umgesetzt! -> http://www.proces-data.com/P-NET_Installguide.html
@ Transpluto: kommt auf die zu übertragende Baudrate an... Bei kleineren Durchmessern (2m) sind bis 250kbit gar keine Abschlüsse nötig, wenn Zu- und Ableitungskabel abgeschlossen sind. Kommt auch drauf an, ob ein Gehäuse drum rum ist (EMV) oder nicht. Ansonsten kann ich CAN-Transceiver empfehlen, bei denen man die Flankensteilheit einstellen kann.
Hallo Josef, >Selbstverstaendlich kann man den RS485 Bus physikalisch als Ring >verdrahten. Vorteil - man braucht keine Terminierungswiderstaende und >kann damit sehr flexibel das Bussystem erweitern. Bei allem Respekt, du solltest nicht so einen Mist schreiben. Hier geht es darum, ob eine einzige RS485-Leitung zu einem Ring geformt werden darf. Und was soll der Quatsch, daß keine Terminierungswiderstände gebraucht werden??? In dem folgenden Link steht, daß es keine gute Idee ist einen RS485-Bus zu einem Ring zu formen http://www.national.com/an/AN/AN-979.pdf Siehe auch im Anhang. Wem das noch nicht reicht, der frage mal einen EMC-Experten üder die Idee mit dem Ring... Kai Klaas
So habe das ganze mal LTSPICE simuliert. Das ganze besteht aus 4 Transmissionlines. T1 und T3 mit 1500nS Delay T2 und T4 mit 500nS Delay. Der Generator liefert 4.9MHz. Die Impedanz der Leitungen betraegt 50Ohm. Da das ganze vom Generator aus gesehen jetzt 25 Ohm hat betraegt der Abschlusswiderstand von Generator und Last 25 Ohm. Die Messung erfolgt zwischen T3 und T4. Hier scheint sich das ganze sauber einzuschwingen.
So hier das ganze jetzt falsch Terminiert. Wieder am gleichen Punkt zwischen T3 und T4 gemessen. Hier sieht man jetzt die Stufen die duerch die falschen Abschlusswiderstaende (jetzt 50 Ohm) verursacht werden. Gruss Helmi
Hallo Helmut, sehr interessant deine Simulation! Daß bei gleich langen, parallel gehängten 50 Ohm Leitungen sich die Terminierungswiderstände halbieren, ist natürlich kein große Überraschung. Interessant wird es, wenn die Terminierungswiderstände unsymmetrisch auf dem Ring verteilt sind, wenn also die beiden 50 Ohm Leitungen zwischen den Terminierungswiderständen ungleich lang sind, so wie es im praktischen Anwendungsfall immer irgendwie der Fall sein wird. Dann gibt es nämlich wieder störende Reflexionen, auch mit den 25 Ohm Terminierungsiwderständen. Das haben jedenfalls meine Messungen ergeben, die ich gerade durchgeführt habe. Man bedenke, daß man immer noch eine 50 Ohm Leitung hat! Bei unsymmetrisch angeordneten Terminierungswiderständen, sieht das 50 Ohm Kabel mit der 25 Ohm Terminierung eine krasse Fehlanpassung (-> Teilreflektionen). Es ist übrigens nicht damit getan, die beiden Terminierungswiderstände symmetrisch am Ring zu plazieren. Hängen mehrere Sender am Ring verteilt, haben immer noch fast alle einen unterschiedlichen Abstand zu den beiden Terminierungswiderständen haben. Also wird es immer störende Refelexionen geben... Kai Klaas
Yep, wenn das Signal nicht am Abschluss eingespeist wird sieht das Ergebnis nicht wirklich schön aus.
Und jetzt mal mit gebremsten Flanken (1µs statt 10ns).
Hallo A.K. genau so was habe ich gemessen! Egal wie man die Terminierungswiderstände anpaßt, nie bekommt man die Stufen aus den Flanken ganz heraus, vor allem nicht für alle Empfänger am Ring auf einmal. Es gibt noch einen anderen Grund, warum das Ganze nicht wirklich funktioniert. Bei den nur noch halb so großen Terminierungswiderständen wird der RS485-Sender knalle heiß! Mein LT1785 hat bei Dauerbetrieb jedenfalls gekocht. Vielen Dank für die Simulation! Kai Klaas
Der exakte Wert der Terminierung ist abhängig von der Leitungsimpendanz. Mit Schleifkontakt wird das sicherlich keine 50 Ohm Leitung sein - 50 Ohm ist einfach nur der Standardwert vom LTspice. Wenn man dabei 200 Ohm aufwärts zustande bringt, dann ist man bei den Transceivern in halbwegs normalem Fahrwasser. Bischen klingeln sollte bei asynchroner Übertragung und präzisem Baudratentakt übertragungstechnisch kein Beinbruch sein, solange dadurch hervorgerufene Fehler sich auf den Zeitraum direkt nach der Flanke beschränken und das mittlere Drittel einigermassen stabil ist. In der Version mit verteiltem Abschluss ist man wohl nicht ganz chancenlos. Ob das aber auch EMV-mässig akzeptabel ist, oder ob dann sämtliche Kurz- oder Mittelwellenradios der Umgebung Krawall schlagen, das ist eine andere Frage.
>Mit Schleifkontakt wird das sicherlich keine 50 Ohm Leitung sein - 50 >Ohm ist einfach nur der Standardwert vom LTspice. Ich hatte die 50 Ohm auch nur direkt von LTSpice uebernommen. Die RS485 Bausteine sind auch normalerweise fuer 120 Ohm Systeme ausgelegt. Wieviel Ohm das System hatte wissen wir ja nicht und sollte durch eine Messung herauszubekommen sein. Auch ist die Frage ob die Impedanz ueberall gleichmaessig ist. @ A. K. (prx) Mann sollte mal eine Simulation durchfuehren wo der RS485 Treiber nicht als Spannungquelle mit Innenwiderstand sondern als Stromquelle definiert ist und die Terminierungswiderstaende an feste Positionen bleiben. Das mit der EMV hatte ich bereits erwaehnt. Gruss Helmi
Hmm - aber welcher Strom wäre bei einer Stromquelle richtig? Da hört's bei mir auf, und was ich grad durchprobiert habe führt zu ziemlich erbärmlichem Ergebnissen. Interessant ist eine andere Variante: Wenn man den Innenwiderstand der Spannungsquelle in der Version mit kontrollierter Flankensteilheit deutlich reduziert, also bewusst fehlanpasst, dann kriegt man zwar an manchen Stellen heftige Overshoots, aber die an anderen Messpunkten noch deutlichen Untershoots danach werden weitgehend kompensiert. Ich habe das mal zwei der 500ns Strecken zweite Teile getrennt, damit Einspeisung und Messung auch zwischendrin möglich ist. Ändert nichts, nur die vorher erkennbare Überlagerung der 6 Messpunkte auf 4 Kurven entfällt dabei.
>Hmm - aber welcher Strom wäre bei einer Stromquelle richtig?
Der Strom muesste in der Groessenordnung liegen das er am
Gesammtabschlusswiderstand eine Spannung groesser als die Hysterese der
Empfaenger erzeugt.
Nicht zu empfehlen. Ergibt ungefähr das Gegenteil der fehlangepassten Spannungsquelle vorher. Katastophaler Untershoot an der Einspeisestelle (gelb oder hellgrün) und klingelt bis zur nächsten Flanke. Stromquelle +/- 25mA, ohne Flankenbegrenzung. Ist aber unabhängig vom Strom immer gleich mies, es ändert sich nur die Spannung,
Dann kann man sagen das das mit der Ringleitung so nicht sauber funktioniert was vorher ja schon theoretisch erörtert wurde. @A. K. (prx) Schön das du weiter simuliert hast Gruss Helmi
Helmut Lenzen schrieb: > Dann kann man sagen das das mit der Ringleitung so nicht sauber > funktioniert was vorher ja schon theoretisch erörtert wurde. Würde ich so nicht sagen. Der Trick könnte darin bestehen, einen Ring verteilt so abzuschliessen, dass Undershoots von gleichzeitigen Overshoots weitgehend kompensiert werden. Mit kumulierenden Overshoots kann ein RS485-Receiver hingegen leben. Ob das bei jedem Ring geht ist mir nicht klar, es könnte auch eine individuelle Anpassung erfordern. Aber liebe Leutchen, wozu habt ihr alle E-Technik statt BWL studiert? Müsste man doch analytisch angehen können statt zu raten. Für irgendwas muss die ganze Theorie doch gut sein. ;-)
>Aber liebe Leutchen, wozu habt ihr alle E-Technik statt BWL studiert? >Müsste man doch analytisch angehen können statt zu raten. Für irgendwas >muss die ganze Theorie doch gut sein. ;-) Also, ich habe weder E-Technik noch BWL studiert, aber vielleicht kann ich das mal aus meiner Sicht schildern: Die RS485-Datenübertragung verwendet zum Übertragen ihrer Signale das Prinzip der Transmissionline. Hierbei handelt es sich um eine Anordnung, die aus zwei Leitern besteht, die dicht nebeneinander verlegt werden. Die Leiteranordnung (Kabel) besitzt eine gewisse Induktivität und Kapazität, die den Wellenwiderstand des Kabels bestimmen. Wird nun an irgendeiner Stelle eine "Störung" in das Kabel eingekoppelt, breitet sich nach beiden Richtungen eine elektromagnetische Welle aus, in Gestalt einer Wellenfront. Diese Wellenfront rast mit fast Lichtgeschwindigkeit in beide Richtungen und wird beim Erreichen des jeweiligen Endes des Kabels (zumindest teilweise) zurück reflektiert, es sei denn, am Ende des Kabels wird die Leitung mit einer Impedanz abgeschlossen, die gleich dem Wellenwiderstand des Kabels ist. Mit diesem Terminierungswiderstand wird der Wellenfront vorgegaukelt, daß das Kabel unendlich weiter läuft. Wird das Kabel an den beiden Enden nicht mit dem Wellenwiderstand abgeschlossen, wird die Wellenfront an den Enden immer wieder zurück reflektiert und man muß unzählige Laufzeiten warten, bis sich die Situation an den Kabelenden stabilisiert hat. Am schnellsten geschieht dies, wenn das Kabel an beiden Enden mit dem Wellenwiderstand abgeschlossen wird, wenn also gar keine Reflektionen auftreten. Um eine RS485-Datenübertragung mit maximaler Datenübertragungsgeschwindigkeit durchführen zu können, muß das RS485-Kabel an beiden Enden daher mit dem Wellenwiderstand abgeschlossen werden. Diese Terminierungen dürfen nicht irgendwo dazwischen angeordnet werden, da jede Terminierung wirkt, wie ein zusätzlich angschlossenes Kabel mit einer Impedanz dieser Terminierung. Montiert man also irgendwo an ein weiterlaufendes 100 Ohm Kabel einen 100 Ohm Widerstand, dann verhält sich diese Stelle wie ein Knoten in den ein 100 Ohm Kabel mündet und zwei 100 Ohm Kabel abzweigen. Diese Inhomogenität wird wieder mit störenden Reflektionen quittiert. Der Sinn der Terminierungen ist aber immer, der Wellenfront bei Erreichen des jeweiligen Endes des Kabels vorzugaukeln, daß es unendlich weiter läuft. Deswegen dürfen Terminierungswiderstände immer nur an den Kabelenden angebracht werden. Bei einem RS485-Kabel, das zu einem Ring geformt wird, läuft das Kabel unendlich weiter, also wird dort eigentlich überhaupt keine Terminierung benötigt, da der Wellenfront ja nichts vorgegaukelt zu werden braucht. Dummerweise hat die Ringform jedoch zur Folge, daß jetzt zwei Wellenfronten in unterschiedlicher Richtung durch den Ring flitzen und sich dabei überlagern. Ein beliebiger Punkt am Ring wird also von zwei Wellenfronten erreicht, die gewöhnlich unterschiedlich lang für ihre jeweiligen Wegstrecken unterwegs sind. Der Widerspruch beim zum Ring geformten RS485-Kabel besteht also darin, daß die beiden Wellenfronten nur durch eine Terminierung (wie an einem Kabelende) daran gehindert werden könnten sich gegenseitig den Weg zu kreuzen, daß eine Terminierung aber nicht zulässig ist, da das Kabel ja durch die Ringform unendlich weiterläuft. Kai Klaas
Exakt so weit komme ich auch. Dass man Reflexionen kriegt ist nicht zu vermeiden. Die interessante Frage ist halt, ob und wenn ja wie man bei verteilt angebrachten und nur in Summe stimmigen Abschlüssen sowas wie eine konstruktive Überlagerung der Over/Undershoots finden kann, die an jeder Position des Ringes zu einem zwar nicht schönen aber praktisch brauchbaren Signal führt. Analytisch, d.h. ohne alle Varianten durchzuprobieren. Denn zumindest in den von mir simulierten Szenario ergab sich, dass sich bei sehr "hartem" Treiber und verteilten Abschlüssen zwar ein paar Overshoots stapelten, was den Receiver m.E. nicht stört, aber die Undershoots weitgehend kompensiert wurden. Ein Szenario mit dem man möglicherweise leben könnte.
Hallo A.K., >Ein Szenario mit dem man möglicherweise leben könnte. Ein CE-Tester hat mir einmal erzählt, daß solche RS485-Kabel, die nicht korrekt terminiert sind, in denen also Reflektionen stattfinden, erheblich abstrahlen können und ein solches System oft nicht mehr die CE-Tests besteht. >Analytisch, d.h. ohne alle Varianten durchzuprobieren. Also der gemeine Theoretiker verbietet schlichtweg die Fehlanpassung. Er macht sich nicht viel Gedanken über eine möglichst optimale Fehlanpassung. Er sagt: "Hochwertiges Kabel verwenden, an beiden Enden mit Wellenwiderstand abschließen, fertig. Wer Fehlanpassungen macht, soll sich nicht wundern, wenn es nicht funktioniert." Aber jetzt mal Hand aufs Herz: Ist es nicht viel einfacher den Ring irgendwo aufzutrennen und die beiden Trennstellen mit dem Wellenwiderstand abzuschließen, als eine kunstvolle Fehlanpassung vorzunehmen, die exakt über den Ring verteilt durchgeführt werden müßte?? Kai Klaas
Der offene Ring ist sicherlich viel einfacher, wie ich selber schon anfangs vermerkte. Wenn da nicht die Forderung des Fragestellers wäre, dass der Ring, weil per Schleifkontakt oder sowas in der Art aufgebaut, an absolut jeder Stelle Kontakt haben soll. Könnte man freilich versuchen, einen Schleifkontakt zu entwickeln, der über eine Art Bügel immer auf einer Seite Kontakt hat und an der Stelle mit dem "Loch" auf die andere Seite umkippt (weiss nicht wie man das nennt, so einen Art Schmitt-Trigger mit Hysterese, nur mechanisch). Gibt nur eine zeitlich kurze Unterbrechung während er grad umkippt.
>Der offene Ring ist sicherlich viel einfacher, wie ich selber schon >anfangs vermerkte. Wenn da nicht die Forderung des Fragestellers wäre, >dass der Ring, weil per Schleifkontakt oder sowas in der Art aufgebaut, >an absolut jeder Stelle Kontakt haben soll. Ja, das stimmt. Hast du mal simuliert, was passiert, wenn die Terminierungswiderstände ganz wegfallen? Also, wenn man mal das ganze CE-Zeugs außer Acht läßt, dann ist in jedem Fall mal der UART, der das Signal verarbeiten muß, zufrieden zu stellen. Beim 8051 beginnt er mit dem Empfang, wenn er eine 1-0 Flanke feststellt. Dann will er bei 7/16, 8/16 und 9/16 der Bitzeit mindestens zwei mal das richtige Signal lesen. Wenn mal also nur die Datenübertragungsrate genügend langsam wählt, daß das ganze Reflektionsgeschlabber vorbei ist, wenn das jeweilige Bit gelesen wird, sollte es eigentlich keine Probleme geben. Das hast du ja auch schon gesagt. Bei der allerersten Flanke kann durch die Stufigkeit des Signals ein Synchronisierungsfehler stattfinden, der ebenfalls berücksichtigt werden muß. Kai Klaas
Kai Klaas schrieb: > Hast du mal simuliert, was passiert, wenn die Terminierungswiderstände > ganz wegfallen? Ja. Grauenhaft.
>Ein CE-Tester hat mir einmal erzählt, daß solche RS485-Kabel, die nicht >korrekt terminiert sind, in denen also Reflektionen stattfinden, >erheblich abstrahlen können und ein solches System oft nicht mehr die >CE-Tests besteht. Wobei man noch bedenken muss das Kabel hat eine Abschirmung das offene Schleifsystem nicht. Auch weiss man den Wellenwiderstand nicht exakt von dem System. Vor allen gibts Probleme mit der Terminierung wenn das ganze System nur ein fliegender Aufbau ist. Ob die Monteure die das ganze mechanische Aufbauen auch das ganze elektrisch einmessen moechte ich bezweifeln. Anstelle des Kippsystems was A.K. beschrieben hatte waere es vielleicht doch besser den Ring aufzuteilen und mit 2 Abnehmern und 2 Uarts zu arbeiten und halt ueber den Uart zu senden der das letzte gueltige Telegramm empfangen hat. Aber das will der TO ja nicht. Gruss Helmi
Hallo Transpluto, der Thread ist zwar schon etwas älter, aber es würde mich mal interessieren, was aus dem Projekt "RS485 als Ring" geworden ist. Gruß, T.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.