Da ich weiß, dass ich meine RS485-Schaltung verfeinern muss, habe ich gelesen. Ich habe eine Reihe spezifischer Fragen und hoffe, dass Sie mir nachsichtig sind, wenn ich beschreibe, wie ich versucht habe, eine Bewerbungsnotiz durchzugehen.
Hier sind einige Grundlagen des seriellen Kommunikationssystems:
Angenommen, das von mir verwendete Kabel ist Belden 3106A , da es gut spezifiziert ist:
Meine Terminierungsschaltung hat einige Iterationen durchlaufen:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Es funktioniert, ist aber aus mindestens zwei Gründen nicht ideal: Es gibt immer noch viel DC-Last; und die Masterseite ist nicht impedanzangepasst/terminiert.
Als bessere Alternative betrachte ich TI AN-903 "A Comparison of Differential Termination Techniques". Basierend auf Abschnitt 2 "Unterbrochen",
Niedrige Geschwindigkeit ist im Allgemeinen dadurch gekennzeichnet, dass entweder Signalisierungsraten unter 200 kbit/s vorliegen oder wenn die Kabelverzögerung (die Zeit, die ein elektrisches Signal benötigt, um das Kabel zu durchqueren) wesentlich kürzer ist als die Bitbreite (Einheitsintervall) oder wenn die Signalanstiegszeit ist mehr als das Vierfache der Ausbreitungsverzögerung in einer Richtung des Kabels (d. h. keine Übertragungsleitung).
Da 115,2kBaud < 200kBaud 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
Auch dieses Kriterium ist also problemlos erfüllt. 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 trotzdem eine Abschlussschaltung entwickeln:
Die Leitung sollte an beiden Enden in ihrem Wellenwiderstand RT = ZO abgeschlossen werden. Stichlängen abseits der Hauptleitung sollten so kurz wie möglich gehalten werden.
Ich möchte eine modifizierte Version von Abschnitt 5, AC-Terminierung, verfolgen. Angesichts meiner Systemparameter ist RT = 120 Ohm. Für CT heißt es in der App-Note:
Andererseits wird CT so ausgewählt, dass es gleich der Umlaufverzögerung des Kabels dividiert durch die ZO des Kabels ist. CT ≤ (Kabelumlaufzeitverzögerung) / ZO
Round-Trip-Kabelverzögerung = 2 * 342 ns = 684 ns
CT ≤ 684 ns / 120 Ohm
CT ≤ 5,7 nF
Wählen Sie CT = 5,6 nF, die nächste Kapazität in der Reihe E24 (5 %).
Der App-Hinweis sagt auch:
Ferner sollte die resultierende RC-Zeitkonstante kleiner oder gleich 10 % des Einheitsintervalls (TUI) sein.
(120 Ohm) (5,6 nF) ≤ 0,1 * 8,68 μs
672 ns ≤ 868 ns
Dieser Kondensator sieht also in Ordnung aus. Ich sehe jedoch ein (großes?) Problem, das in der App-Note 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 eine Serieninduktivität 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 präziseren Induktivität viel näher an Null gebracht werden.
Wenn ich eine Übertragungsleitung mit denselben Eigenschaften wie Belden und bidirektionalem RC-AC-Abschluss simuliere , scheint sie recht gut zu funktionieren. Wenn ich jedoch den Induktor hinzufüge, um die kapazitive Reaktanz aufzuheben, gibt es ein schreckliches Klingeln.
Angesichts all der oben genannten Punkte lauten meine Fragen:
Dies ist eine interessante Frage :-) Daumen hoch, dass Sie gründlich darüber nachgedacht haben - ich sehe, dass viele Leute immer noch RS485 verwenden, aber kaum jemand 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? Super, das macht auch kaum jemand.
Ich habe neulich selbst eine Übung zur RS485-Terminierung gemacht ... Ich habe die AC-Terminierung nicht berücksichtigt (nicht im üblichen differenziellen Sinne), aber ich habe mich auf die Rolle der Bezugserde, Vorspannung ("ausfallsicher") und Gemeinsamkeit 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 so viel einfacher zu handhaben.
Wenn ich mir Ihren Nur-R-Terminator mit Failsafe in dem von Ihnen geposteten Schaltplan ansehe, finde ich seine Asymmetrie faszinierend und bizarr. Ich schätze, dass der Nettodifferenzwiderstand 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 (ausfallsicheren) Vorspannungswiderständen zu suchen. Die Knoten sollten beim Hören ein hohes Z haben, die Ausfallsicherheit (und Terminierung!) sollte eine Funktion des Busses sein und nicht ein einzelner Transceiver. Um zu erreichen, dass die A/B-Eingänge an jedem einzelnen Knoten immer "innerhalb des Ballparks" liegen, sollten Sie eine Referenzerde verwenden - mit einem 100-Ohm-Widerstand an jedem Knoten, wie manche sagen würden, oder direkt angeschlossen. Wenn das lokale Bodenwobbeln zu groß ist, verwenden Sie eine Isolierung. Das Vorspannen an jedem Knoten bringt Sie nicht weiter. Sofern Ihre Referenzmasse nicht isoliert (schwebend) ist, sind alle Vorspannungswiderstände einfach zu schwach, um harte Erdschleifen zu überwinden. Und wenn die Abschirmung des Signalpaars individuell und eng ist, dh die Übertragungsleitung eher einem Twinax ähnelt,eine geeignete Bezugsmasse! da die Abschirmung effektiv ein dritter Leiter im Sinne der HF-Energieübertragung ist. Jeder Leiter, den Sie nur an einem Ende erden, wird bei seiner eigenen Wellenlänge zu einer Antenne.
Ich habe zuvor eine AC-Terminierung (RC) mit Koaxialleitungen (für IRIG) ausprobiert. Sie sollten sich mit einem Oszilloskop ansehen, 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 Kondensatorauswahl scheinen richtig zu sein, Sie argumentieren in die richtige Richtung. Und ich bin der Meinung, dass zumindest die RC-Terminierung (AC-fokussiert) selbst bei "zu kurzen und zu langsamen" Leitungen angemessen ist, da die UARTs mehrere Abtastpunkte innerhalb einer einzigen Bitlänge haben können oder wenn es nur eine einzige Abtastung gibt Punkt, man kann nicht genau wissen, wo es ist ...
Abgesehen davon ist mein allgemeines Gefühl: Sie sollten sich nicht so sehr um die DC-Last kümmern. Die Sender (Transceiver-ICs und ihre Netzteile) sind grundsätzlich so ausgelegt, dass sie rund um die Uhr 60 Ohm Gleichstrom an ihrem Ausgang verarbeiten können. Und ein gerader DC-Abschluss an beiden Enden der Übertragungsleitung ist die beste Wahl.
Wenn Ihr TX / RX-Muster Vollduplex ist und der Sender immer eingeschaltet ist, hat Ihr Anliegen möglicherweise etwas Anerkennung - wenn OTOH das Kommunikationsmuster "spärlich" ist, dh die Transceiver die meiste Zeit in High Z verbringen, ist dies nicht der Fall Es macht nicht viel Sinn, von DC-Lasten besessen zu sein.
Und in einer Übertragungsleitung sollte auch der Sender impedanzangepasst sein! In verschiedenen HF-Systemen erfolgt dies normalerweise durch Reihenabschluss am Sender. Ich bin mir bei RS485 nicht genau sicher (FETs schalten schwer auf die Stromschienen), insbesondere wenn Ihr Sender immer eingeschaltet ist. Überprüfen Sie dies möglicherweise mit einem Oszilloskop mit und ohne Terminierung "am Senderende" (ob Ihr "always on master" wirklich ist an einem TML-Ende), aber wie ich bereits sagte, machen Sie sich keine allzu großen Sorgen über die Belastung durch den zweiten Abschlusswiderstand. Als Hausaufgabe sollte ich wahrscheinlich ein Zielfernrohr nehmen und einen 485-Sender an einem Ende der Leitung beobachten, der vom aktiven Zustand in den hohen Z wechselt :-)
Übrigens, Sie haben sich mit einem USB/485-Dongle (Ihrem Master-Knoten) verbunden, aber das ist eine komplette Schaltung in einer undurchsichtigen Plastikbox, wir kennen die Details seiner inneren Verkabelung nicht. Ich würde wetten, dass Sie darin einen SN75176 oder ein moderneres Arbeitsgerät finden. Und es wird wahrscheinlich zu High Z zurückkehren, wenn der FIFO und das "Sender-Halteregister" jemals leer werden.
===BEARBEITEN===
Für eine perfekte HF-TML-Impedanzanpassung am Sender müsste der TX-Chip die Stromschienen über einen lokalen Widerstand von 60 Ohm Differenz auf die TML schalten, oder in der realen Welt 30 Ohm, die in Reihe mit jedem Pin (A/B ). Dies ist auch als Kurzschlussschutz (Strombegrenzung) sinnvoll. Beim Blick in das Datenblatt des SN75176 kann ich keinen expliziten Serienabschluss erkennen, weder in Reihe mit den Line-Ausgängen noch mit einzelnen Totem-Schaltern - aber ich erinnere mich, dass die Signalamplitude etwas abnimmt, wenn Sie den ersten und den zweiten Abschluss anbringen. Das Datenblatt erwähnt eine Strombegrenzung von 60 mA während des Sendens an den A / B-Anschlüssen - wiederum unter Berücksichtigung des internen Schemas müsste dies eine inhärente zerstörungsfreie Grenze der Totemschalter sein (oder vielleicht sind sie tatsächlich Stromquellen). Beachten Sie, dass alle Aktivitäten, die in den Ausgangstotems des Chips stattfinden, durch die 0/+5-V-Stromschienen begrenzt sind. Volle 5V an 120 Ohm würden 83 mA bedeuten. Bei 60 mA beträgt die Diff-Ausgangsamplitude an einer ordnungsgemäß abgeschlossenen Leitung 60 Ohm * 60 mA = 3,6 VIe. In diesem Szenario beträgt die effektive Differenzimpedanz des Chips 23 Ohm (1,4 V links bis +5 V, /60 mA).
Ich glaube, du hast komplizierte Dinge überstanden. Warum nicht einen Abschlusswiderstand 120 Ohm an beiden Enden verwenden, es ist einfach und am zuverlässigsten.
Wie Sie sagten, haben Sie keine Stichleitungen, die gesamte Übertragungsleitung ist in Reihe geschaltet, das Kabel hat die angegebene charakteristische Impedanz, dann ist es am besten, an beiden Enden einen 120-Ohm-Widerstand zu verwenden.
Das Schlaue 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 arbeiten damit, dass A hochgezogen und B niedrig gezogen wird, und einige A niedrig gezogen und B hochgezogen. Überprüfen Sie dies.
EDIT: Meine Empfehlung. Verwenden Sie den Schirm nicht als 3. Leiter. Der Schirm muss an jedem Knoten geerdet werden, jedoch nur an einem Ende. Insgesamt wird jeder Teil des Schirms nur an einem Punkt geerdet. Es besteht keine direkte Verbindung vom Master zum Endknoten über den Schirm.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Was Sie tun möchten, ist, den minimalen Hysteresewert für ein Differenzsignal zu finden und genügend Strom durch den Leitungsabschlusswiderstand für mindestens das Doppelte der minimalen Vrh-Spannung (Empfänger-Hysteresespannung) an so vielen Lasten zu leiten, wie Sie haben werden. Der Lastwiderstand ist ein weiterer Datenblattwert und der 120er Leitungsimpedanzwiderstand wird parallel dazu hinzugefügt.
Beim MAX485 beträgt beispielsweise Vrh (Hysterese des Empfängers) 70 mV und Rrl (Lastwiderstand des Empfängers) 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 dividiert durch unseren berechneten Laststrom, was uns 2,050 K ergibt. Teilen durch 2 und unsere idealen Ausfallsicherheitswiderstände sind 1K. Davon benötigen Sie nur einen an den Abschlusswiderständen. 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 Wette unter 115K und entweder Simplex oder Vollduplex ist Single-Ended-Terminierung, da ein Nur-Sende-Chip-Ausgang keine Terminierung benötigt. Bei Halbduplex hilft es, beide Enden abzuschließen.
DreiPhasenEel
Reinderien