RS485-Terminierung: AC + ausfallsicher + parallel + bidirektional


8

Da ich wusste, dass ich meine RS485-Schaltung verfeinern muss, habe ich gelesen. Ich habe eine Reihe spezifischer Fragen und hoffe, dass Sie mich verwöhnen, wenn ich beschreibe, wie ich versucht habe, eine Bewerbungsnotiz durchzuarbeiten.

Hier sind einige Grundlagen des seriellen Kommunikationssystems:

  • RS485
  • 115,2 kBaud, hauptsächlich durch die Mikrocontroller begrenzt
  • Halbduplex (1 Differentialpaar plus Masse)
  • Worst-Case-Kabel von Anfang bis Ende von ~ 80 m
  • Worst-Case-Stichlänge von vielleicht 2 cm aufgrund der Leiterplattenspuren; keine Kabelstummel
  • Daisy-Chained
  • Anzahl der Mehrpunktgeräte von normalerweise 8, wahrscheinlich nicht mehr als 20
  • Einige, aber nicht viel BER-Toleranz aufgrund der Prüfsumme im Signalisierungsprotokoll
  • Alle Slave-Geräte sind SN65176 ; Der Master ist ein USPTL4 .

Angenommen, das von mir verwendete Kabel ist Belden 3106A , da es genau spezifiziert ist:

  • Charakteristische Impedanz Zo = 120 Ohm
  • Ausbreitungsgeschwindigkeit VP = 78%

Mein Abschlusskreis hat einige Iterationen durchlaufen:

  1. Einfache bidirektionale parallele Terminierung. Funktioniert überhaupt nicht, da der ausfallsichere Betrieb unterbrochen und falsche Startbits erzeugt werden.
  2. Bidirektionaler Abschluss, wobei die Masterseite einen einfachen parallelen Abschluss aufweist und der letzte Slave eine Schaltung aufweist, wie in AN-903 "Leistungsabschluss" beschrieben. Funktioniert immer noch überhaupt nicht: Die parallele Terminierung am Master stellt eine zu starke Gleichstromlast für den Master dar und unterbricht den ausfallsicheren Betrieb.
  3. Unbeendigter Master, letzter Slave mit "Power Termination" beendet. Es sieht aus wie das:

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Es funktioniert, ist aber aus mindestens zwei Gründen nicht ideal: Es gibt immer noch viel Gleichstromlast; und die Masterseite ist nicht impedanzangepasst / terminiert.

Für eine bessere Alternative halte ich TI AN-903 für "einen Vergleich der Differentialterminierungstechniken". Basierend auf Abschnitt 2 "Unbeendet",

Eine niedrige Geschwindigkeit ist im Allgemeinen entweder als Signalisierungsrate unter 200 kbit / s oder als wesentlich kürzer als die Bitbreite (Einheitsintervall) oder wenn die Signalanstiegszeit wesentlich kürzer als die Bitbreite (Einheitsintervall) ist ist mehr als das Vierfache der Einweg-Ausbreitungsverzögerung des Kabels (dh keine Übertragungsleitung).

Da 115,2 kBaud <200 kBaud ist, ist das erste Kriterium erfüllt. Für das zweite Kriterium zur Berechnung der Kabelverzögerung:

(80 m) / 0,78 c = 342 ns

Im Vergleich zur Bitbreite:

1 / 115,2 kBaud = 8,68 μs

Somit ist dieses Kriterium auch leicht zu erfüllen. Dies bedeutet, dass ich das Kabel möglicherweise als keine Übertragungsleitung behandeln könnte und keine Impedanzanpassung / -terminierung benötige. Ich möchte jedoch aus folgenden Gründen unabhängig davon eine Abschlussschaltung entwickeln:

  • Es kann billig gemacht werden
  • Es ist eine Lernmöglichkeit
  • Es erhöht die Übertragungsqualität, auch wenn es nicht viel ist
  • Falls die Kabelstrecke jemals stark verlängert werden muss, überlebt das System
  • Das TI-Datenblatt empfiehlt es unbedingt:

Die Leitung sollte an beiden Enden in ihrer charakteristischen Impedanz RT = ZO abgeschlossen sein. Stichlängen außerhalb der Hauptleitung sollten so kurz wie möglich gehalten werden.

Ich möchte eine modifizierte Version von Abschnitt 5, AC-Kündigung, verfolgen. Bei meinen Systemparametern ist RT = 120 Ohm. Für CT heißt es in der App-Notiz:

CT wird andererseits so gewählt, dass es gleich der Umlaufverzögerung des Kabels geteilt durch den ZO des Kabels ist. CT ≤ (Kabelumlaufverzögerung) / ZO

Umlaufkabelverzögerung = 2 * 342 ns = 684 ns

CT ≤ 684 ns / 120 Ohm

CT ≤ 5,7 nF

Wählen Sie CT = 5,6 nF, die nächstgelegene Kapazität in der E24-Serie (5%).

Der App-Hinweis lautet außerdem:

Ferner sollte die resultierende RC-Zeitkonstante kleiner oder gleich 10% des Einheitsintervalls (TUI) sein.

(120 Ohm) (5,6 nF) ≤ 0,1 · 8,68 us

672 ns ≤ 868 ns

Dieser Kondensator sieht also in Ordnung aus. Ich sehe jedoch ein (großes?) Problem, das im App-Hinweis nicht erwähnt wird. Der Kondensator in Reihe mit dem Anpassungswiderstand macht die Impedanz des Anpassungsnetzwerks sehr ungleich der charakteristischen Impedanz des Kabels.

f = 115,2 kBaud / 2 = 57,6 kHz

120 Ohm + 1 / 2πj / 57,6 kHz / 5,6 nF = 120 + 493 j Ohm

Sollte ich nicht auch einen Serieninduktor hinzufügen, um diese Reaktanz aufzuheben?

493 Ohm / 2π / 57,6 kHz = 1,36 mH

Verwenden Sie den E24-Wert 1,3 mH. Dann:

120 Ohm + 1 / 2πj / 57,6 kHz / 5,6 nF + 2πj * 57,6 kHz * 1,3 mH = 120 - 22,9 Ohm

Diese Reaktanz kann mit einer genaueren Induktivität viel näher an Null gebracht werden.

Wenn ich eine Übertragungsleitung mit den gleichen Eigenschaften wie Belden und einer bidirektionalen RC-AC-Terminierung simuliere , scheint dies recht gut zu funktionieren. Wenn ich jedoch den Induktor hinzufüge, um die kapazitive Reaktanz aufzuheben, klingelt es schrecklich.

In Anbetracht all dieser Punkte sind meine Fragen:

  • Ist meine Mathematik und meine Interpretation des Anwendungshinweises korrekt?
  • Warum zeigt der AN keine bidirektionale AC-Terminierung an? Ist es gültig, an beiden Enden einer Mehrpunktleitung einen Wechselstromabschluss zu haben?
  • Warum berücksichtigt der AN bei der Beschreibung der AC-Terminierung nicht die kapazitive Reaktanz?
  • Der PC-seitige RS-485-Transceiver verfügt über einen nicht entfernbaren 4,7-k-Pullup in Leitung A und einen 4,7-k-Pulldown in Leitung B für einen ausfallsicheren Betrieb. Wäre dies mit der AC-Terminierung direkt daneben kompatibel?

Warum die alten 176 Teile? Ich würde selbst etwas mit besseren integrierten
Failafes verwenden

@ThreePhaseEel Weil sie billig waren. Ich würde gerne in Betracht ziehen, Teile zu wechseln, wenn der Fall stark genug ist.
Reinderien

Antworten:


4

Dies ist eine interessante Frage :-) Daumen hoch für gründliche Überlegungen - ich sehe viele Leute, die immer noch RS485 verwenden, aber kaum jemanden, der versucht, die Terminierung zu verstehen (eigentlich kennt kaum jemand die grundlegenden Lehrbuchregeln). Verstehe ich auch richtig, dass Sie versucht haben, die Linie mit einem Zielfernrohr zu beobachten? Ausgezeichnet, das macht kaum jemand.

Ich habe neulich selbst eine Übung zur RS485-Terminierung durchgeführt ... Ich habe die AC-Terminierung nicht in Betracht gezogen (nicht im üblichen differenziellen Sinne), aber ich habe mich auf die Rolle von Referenzgrund, Vorspannung ("ausfallsicher") und allgemein konzentriert Modusbeendigung - da dies einen Unterschied zu machen schien.

Der einzige klassische Mangel von RS485 ist die Tatsache, dass die Knoten per Definition nicht garantiert erdisoliert sind. Twisted-Pair-Ethernet ist aus diesem einen Grund viel einfacher zu handhaben.

Wenn ich Ihren R-only-Terminator mit ausfallsicherem Schaltplan in dem von Ihnen veröffentlichten Schaltplan betrachte, finde ich seine Asymmetrie faszinierend und bizarr. Ich weiß, dass der Nettodifferentialwiderstand 100 Ohm beträgt, aber ich bin nicht damit einverstanden, dass die B-Leitung nur mit 24 Ohm an GND gebunden ist ... wie sind Sie zu diesem asymmetrischen Aufbau gekommen? Ich glaube, dass die RX- und TX-Pins in den 485-Transceivern ziemlich gleichwertig sind. Ich würde die Vorspannung symmetrisch halten.

Im Gegensatz zu anderen Postern hier würde ich nicht versuchen, nach Transceivern mit integrierten Vorspannungswiderständen (ausfallsicheren Widerständen) zu suchen. Die Knoten sollten beim Abhören ein hohes Z haben, die Ausfallsicherheit (und Terminierung!) Sollte eine Funktion des Busses sein und nicht ein einzelner Transceiver. Um zu erreichen, dass sich die A / B-Eingänge an jedem einzelnen Knoten immer "innerhalb des Ballparks" befinden, sollten Sie eine Referenzmasse verwenden - mit einem 100-Ohm-Widerstand an jedem Knoten, wie manche sagen würden, oder gerade angeschlossen. Wenn das lokale Bodenwackeln zu stark ist, verwenden Sie die Isolierung. Das Vorspannen an jedem Knoten bringt Sie nicht weiter. Sofern Ihre Referenzgründe nicht isoliert (schwebend) sind, sind Vorspannungswiderstände einfach zu schwach, um harte Erdschleifen zu überwinden. Und wenn die Signalpaarabschirmung individuell und dicht ist, dh die Übertragungsleitung eher einem Twinax ähnelt,ein geeigneter Bezugspunkt! da die Abschirmung effektiv ein dritter Leiter im Sinne der HF-Energieübertragung ist. Jeder Leiter, den Sie nur an einem Ende erden, wird zu einer Antenne mit einer eigenen Wellenlänge.

Ich habe zuvor versucht, eine AC-Terminierung (RC) mit Koaxialleitungen (für IRIG) durchzuführen. Sie sollten einen Blick mit einem Bereich werfen, was das tatsächliche Ergebnis ist - am Terminator und an allen Transceiver-Knoten auf halber Strecke. Versuchen Sie, mit zu viel und zu wenig Kapazität zu experimentieren.

Ihre allgemeinen Formeln für die Wahl des Kondensators scheinen korrekt zu sein. Sie argumentieren in die richtige Richtung. Und ich bin der Meinung, dass zumindest eine RC-Terminierung (AC-fokussiert) angemessen ist, selbst bei Leitungen, die "zu kurz und zu langsam" sind, da die UARTs mehrere Abtastpunkte innerhalb einer einzelnen Bitlänge haben können oder wenn es nur eine einzige Abtastung gibt Punkt, Sie können nicht genau wissen, wo es ist ...

Das heißt, mein allgemeines Gefühl ist: Sie sollten sich nicht so sehr um die Gleichstromlast kümmern. Die Sender (Transceiver-ICs und ihre Stromversorgungen) sind hauptsächlich für die Verarbeitung von 60 Ohm Gleichstrom an ihrem Ausgang rund um die Uhr ausgelegt. Ein gerader Gleichstromabschluss an beiden Enden der Übertragungsleitung ist die beste Wahl.

Wenn Ihr TX / RX-Muster Vollduplex ist und der Sender immer eingeschaltet ist, kann Ihr Anliegen eine gewisse Anerkennung haben. Wenn OTOH das Kommunikationsmuster "spärlich" ist, dh die Transceiver verbringen die meiste Zeit in hohem Z, ist dies nicht der Fall. Es macht wenig Sinn, von Gleichstromlast besessen zu sein.

Und in einer Übertragungsleitung sollte der Sender auch impedanzangepasst sein! In verschiedenen HF-Systemen erfolgt dies normalerweise durch Serienabschluss am Sender. Sie sind sich nicht sicher, ob RS485 (der FET schaltet hart auf die Stromschienen um), insbesondere wenn Ihr Sender immer eingeschaltet ist. Überprüfen Sie dies möglicherweise mit einem Oszilloskop mit und ohne Terminierung "am Senderende" (wenn Ihr "immer am Master" wirklich eingeschaltet ist an einem TML-Ende), aber wie ich bereits sagte, seien Sie nicht übermäßig besorgt über die vom zweiten Terminator bereitgestellte Last. Als Hausaufgabe sollte ich mir wahrscheinlich ein Zielfernrohr nehmen und einen 485-Sender an einem Ende der Leitung beobachten, der vom aktiven Zustand in den hohen Z-Wert wechselt :-)

Übrigens, Sie haben eine Verbindung zu einem USB / 485-Dongle (Ihrem Master-Knoten) hergestellt, aber das ist eine vollständige Schaltung in einer undurchsichtigen Plastikbox. Wir kennen die Details der inneren Verkabelung nicht. Ich würde wetten, dass Sie darin einen SN75176 oder einen moderneren Arbeitsplatz finden. Und es wird wahrscheinlich auf hoch Z zurückkehren, wenn der FIFO und das "Senderhalteregister" jemals leer werden.

=== EDIT ===

Für eine perfekte HF-TML-Impedanzanpassung am Sender müsste der TX-Chip die Stromschienen über einen lokalen Widerstand von 60 Ohm Differential auf die TML umschalten oder in der realen Welt 30 Ohm in Reihe mit jedem Pin (A / B) ). Dies ist auch als Kurzschlussschutz (Strombegrenzung) sinnvoll. Wenn ich in das Datenblatt SN75176 schaue, sehe ich keine explizite Serienbeendigung, weder in Reihe mit den Leitungsausgängen noch mit einzelnen Totemschaltern - aber ich erinnere mich, dass die Signalamplitude etwas abnimmt, wenn Sie den ersten und den zweiten Abschlusswiderstand anbringen. Das Datenblatt erwähnt eine Strombegrenzung von 60 mA während des Sendens an den A / B-Klemmen - wiederum unter Berücksichtigung des internen Schaltplans müsste dies eine inhärente zerstörungsfreie Grenze der Totemschalter sein (oder es handelt sich möglicherweise tatsächlich um Stromquellen). Beachten Sie, dass jede Aktivität in den Ausgangstotems des Chips durch die 0 / + 5V-Stromschienen begrenzt wird. Volle 5 V bei 120 Ohm würden 83 mA bedeuten. Bei 60 mA beträgt die Diff-Ausgangsamplitude auf einer ordnungsgemäß abgeschlossenen Leitung in diesem Szenario 60 Ohm * 60 mA = 3,6 VIe. Die effektive Differenzimpedanz des Chips beträgt 23 Ohm (1,4 V bis + 5 V / 60 mA).


"Wie bist du zu diesem asymmetrischen Setup gekommen?" - um zu versuchen, die Spannungspegel anzupassen, die ich vom Master-Gerät gesehen habe und die ebenfalls asymmetrisch waren.
Reinderien

"Wenn Ihr TX / RX-Muster Vollduplex ist" - ist es nicht; Es ist immer Halbduplex
Reinderien

Asymmetrische Wellenformen? Das ist neugierig. Ich empfehle Ihnen, sich nicht um eine leichte Asymmetrie zu kümmern. Das habe ich auch schon gesehen. Transceiver von verschiedenen Anbietern können anscheinend um einige Prozent in diese oder jene Richtung "gekippt" werden. Und wenn Ihre lokale Bezugsmasse von einem Netzrücklauf abgeleitet ist, kann das "Wackeln" der Masse in einem Oszilloskopwert angezeigt werden, wenn die beiden Knoten ihre Ausgänge "DC" gegeneinander verschoben haben (oder besser "Sinuswelle fahren"): -) Es hat keinen Sinn, Pin A oder B durch einen zu kleinen Widerstand mit dem ref.GND kurzzuschließen.
vom

Die Asymmetrie war nicht gering, sie war signifikant. Der Meister löschte Markierungen und Leerzeichen sowohl über dem Boden als auch Markierungen leicht über dem Boden und Leerzeichen auf halber Höhe von 5 V (
ich

1
Ich habe einige Oszillogramme von gesunden Transceivern (und verschiedenen Arten von Busabschlüssen) auf meiner oben genannten Webseite. Wenn Sie einige Oszillogramme von dem haben, was Sie als fehlerhafte Ausgabe betrachten, posten Sie sie vielleicht hier :-)
vom

0

Ich denke, Sie haben über komplizierte Dinge. Warum nicht einen Abschlusswiderstand von 120 Ohm an beiden Enden verwenden, ist einfach und am zuverlässigsten.

Wie Sie sagten, Sie haben keine Stichleitungen, die gesamte Übertragungsleitung ist verkettet, das Kabel hat die angegebenen Impedanzcharakteristiken. Am besten verwenden Sie an beiden Enden einen 120-Ohm-Widerstand.

Das Kluge bei der Verwendung eines PCs ist, einen isolierten RS485-Transceiver zu haben und diese Pullup / Pulldown-Funktion zu aktivieren. Nicht alle Geräte mögen die Klimmzüge. Einige von ihnen erwarten, dass A hoch und B niedrig gezogen wird, und einige A niedrig und B hoch gezogen. Überprüfen Sie dies.

EDIT: Meine Empfehlung. Verwenden Sie die Abschirmung nicht als 3. Leiter. Die Abschirmung muss an jedem Knoten mit der Erde verbunden sein, jedoch nur an einem Ende. Insgesamt ist jeder Teil des Schildes nur an einem Punkt verbunden. Es besteht keine direkte Verbindung vom Master zum Endknoten über die Abschirmung.

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab


Die bidirektionale parallele Terminierung ist zwar einfach, aber nicht zuverlässig, wenn sie überhaupt nicht funktioniert. Wie gesagt, wenn ich eine einfache parallele Terminierung verwende, ist die Leitung weit davon entfernt, ausfallsicher zu sein, und es werden immer falsche Startbits gesehen. Die Gleichstromlast des Treibers ist zu hoch, und der App-Hinweis warnt davor.
Reinderien

Das Pullup / Pulldown ist behoben und kann nicht aktiviert oder deaktiviert werden. Sie waren nicht das Problem; Tatsächlich sind sie zu schwach, um bei 120-Ohm-Terminierung einen ausfallsicheren Betrieb zu gewährleisten. Deshalb musste ich mein eigenes Stromterminierungsnetzwerk hinzufügen und möchte jetzt die AC-Terminierung fortsetzen.
Reinderien

In meiner Karriere habe ich Dutzende von RS485-, Profibus- und CAN-Netzwerken installiert. Eine 80 m lange Übertragungsleitung ist einfach, aber Sie müssen die richtige Hardware haben (ich war immer in der Industriebereichs-App). Oft gibt es Probleme mit schlechter Transceiver-Hardware, falscher Abschirmverbindung usw. Können Sie Messungen melden, um das eigentliche Problem zu finden?
Marko Buršič

@ Reinderien Kannst du die Hardware verbinden: Master und Slave?
Marko Buršič

Klar - der Sklave war schon verbunden. Ich habe einen Link zum Master hinzugefügt.
Reinderien

0

Was Sie tun möchten, ist, den minimalen Hysteresewert für ein Differenzsignal zu ermitteln und genügend Strom durch den Leitungsabschlusswiderstand zu leiten, um mindestens die doppelte minimale Vrh-Spannung (Empfänger-Hysteresespannung) an so vielen Lasten wie möglich zu erreichen. Der Lastwiderstand ist ein weiterer Datenblattwert, und parallel dazu wird der Impedanzwiderstand von 120 Leitungen hinzugefügt.

Für den MAX485 beträgt beispielsweise Vrh (Empfängerhysterese) 70 mV und Rrl (Empfängerlastwiderstand) 12 K. Mit nur 2 davon beträgt die Last an jedem Ende mit zwei 120-Ohm-Abschlusswiderständen 59 Ohm. Bei 140 mV und 59 Ohm benötigen wir 2,37 mA Strom. Das bedeutet VDC minus Vrh * 2 geteilt durch unseren berechneten Laststrom, was 2,050 K ergibt. Die Division durch 2 und unsere idealen ausfallsicheren Widerstände betragen 1K. Sie benötigen nur eine davon an den Positionen des Abschlusswiderstands. Die Werte, die Sie an anderer Stelle verwenden würden, würden nur 12,5 uA (12 K Rrl) benötigen, also zwei 180 K-Widerstände.

Ihre beste Wahl unter 115 KB und entweder Simplex oder Vollduplex ist die Single-Ended-Terminierung, da eine Nur-Sende-Chip-Ausgabe keine Terminierung benötigt. Bei Halbduplex hilft das Beenden beider Enden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.