Optokoppelte RS-232-Empfangsschaltung

7

Ich prüfe die Implementierung einer kostengünstigen optokoppelten RS-232/422-Empfangsschaltung. Ziel ist der Überspannungsschutz und die Toleranz gegenüber DC-Offsets.

Die Herausforderung besteht darin, dass die Eingänge vollständig schwebend sein und über einen weiten Temperaturbereich von beispielsweise -40 ° C bis 85 ° C arbeiten sollten. Geschwindigkeit bis zu 4800 Baud. Logik-Null-Eingang 1,6 V - 25 V.

Ich habe überlegt, einfach 5 kOhm mit dem Diodeneingang zu verketten, aber der resultierende Durchlassstrom ist zu klein, um mit kostengünstigen Optokopplern ein nützliches Stromübertragungsverhältnis zu erzeugen. (Besonders bei hohen Temperaturen.)

Wie sieht diese Lösung für alle aus? Übersehe ich etwas?

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Mein Verständnis ist, dass dies bei (Vin1-Vin2) = Vf des Optokopplers mit einer Anstiegs- und Abfallzeit von etwa 10 us abrupt einschneiden und gegenüber CTS-Verschlechterung und Spannungsspitzen auf der Vin-Seite ziemlich tolerant sein sollte. - Ist das richtig?

Ist es wahrscheinlich ein Problem, dass die Eingangsimpedanz bei hohen Eingangsspannungen 10 kOhm beträgt und nicht die Standard-5 kOhm?


Bearbeiten 1

schematisch

simulieren Sie diese Schaltung

ARF
quelle
Können Sie genau klären, wie bombensicher dies sein muss? Es gibt einige ziemlich robuste RS485 / 422/232-Transceiver-ICs, da RS485 und 422 in der Industrie, in der Transienten und Streuspannungen (und Blitzeinschläge) häufig vorkommen, häufig eingesetzt werden.
John U
@ JohnU Um ehrlich zu sein, weiß ich nicht genau, welche Schutzgrenze erforderlich ist. Ich muss eine Weile darüber nachdenken. Ich dachte, ich könnte dies vermeiden, indem ich mich nur für die optische Isolation entscheide, aber selbst bei 4800 Baud scheint dies nicht trivial zu sein ...
ARF
Wenn Sie keinen sehr funky / extremen Anwendungsfall haben, würde ich Geld dafür investieren, Standard-Treiber-ICs zu finden, die in Ordnung sind. Opto-isolierende Kommunikationen wie diese können durchgeführt werden (mein Chef hat ein Board entworfen, das genau das für 485 + analoge Videos tut ), aber es ist nicht trivial und man muss es wirklich tun müssen. TBH Wenn Sie dies tun müssen, gibt es wahrscheinlich größere Probleme, die Sie verstehen müssen. Oder wenn Sie nicht weiterkommen, könnten Sie wahrscheinlich das Design lizenzieren, das mein Chef gemacht hat;)
John U

Antworten:

4

Eine Baudrate von 4800 Baud ist mit dieser Schaltung wahrscheinlich nicht erreichbar - der Tf beträgt typischerweise 100 usec und der Toff nähert sich 200 usec.

http://www.chaoyi1688.com/UploadFiles/FCK/20110921140322_fgdgdt.pdf

Vielleicht, wenn Sie es an einen Widerstand von einigen hundert Ohm anschließen und einen Komparator verwenden.

Spehro Pefhany
quelle
Ich dachte, dass mit R_L = R3 = 500 Ohm die Schaltgeschwindigkeit in der Größenordnung von 1 us liegt, was ungefähr 1/10 der Länge der 4800-Baud-Periode entspricht.
ARF
In Bezug auf den Vorschlag eines Komparators: Wird dies meine Anforderung eines schwebenden Eingangs erfüllen? Was passiert, wenn der DC-Offset der Eingänge Vcc des Komparators überschreitet?
ARF
In meinem ersten Kommentar wollte ich "Schaltgeschwindigkeit von 10µs" eingeben. Entschuldigung für die Ansammlung von Kommentaren.
ARF
Ich denke, Sie werden feststellen, dass die Schaltgeschwindigkeit ähnlich ist wie bei einer 10K-Last.
Spehro Pefhany
2

Unabhängig von Geschwindigkeitsüberlegungen funktioniert die Schaltung für RS422 nicht. RS422-Eingangspegel können bis zu +/- 200 mV betragen, was Ihren Optokoppler nicht einmal kitzelt.

Für RS232 beträgt der minimal zulässige Eingangsspannungsbereich +/- 3V. Bei 3 Volt Eingang beträgt der Diodenstrom unter der Annahme eines Optokopplers Vf von 1,2 Volt 120 uA. Dies liegt weit außerhalb vernünftiger Extrapolationen des Datenblattes, aber solch niedrige Strompegel führen mit ziemlicher Sicherheit zu einem sehr langsamen Betrieb. Dies stellt einen Worst-Case-Betrieb bei -55 ° C dar. Bei höheren Temperaturen nimmt der Vf ab und der Eingangsstrom steigt an, aber eine typische 25C-Kurve ergibt einen Vf von 1 Volt mit einem Strom von 200 uA, was kein Spiel ist - Verbesserung ändern.

Bei diesen niedrigen Strömen ist die Klickrate sehr niedrig und liegt im Bereich von 10% im schlimmsten Fall, obwohl dies, wie ich bereits sagte, eine Extrapolation außerhalb der Charts ist.

Wenn Sie versuchen möchten, dieses Ding zum Laufen zu bringen, müssen Sie zuerst R2 loswerden und D1 durch eine einfache Signaldiode wie eine 1N4148 ersetzen. Der Vorwärtsabfall der Fotodiode klemmt die Eingangsspannung auf eine viel niedrigere Spannung als den Zenerpegel. Selbst ein 25-Volt-Eingang verbraucht nur 5 mA, was weniger als 1/10 dessen ist, was der Optokoppler problemlos verarbeiten kann, und ungefähr 0,5% der 1-usec-Impulsgrenze. Wenn Sie dies tun, wird Ihr Eingangsstrom im ungünstigsten Fall auf etwa 360 uA erhöht, und er erreicht immer noch nicht die gewünschte Geschwindigkeit. Beachten Sie, dass die Zeitkurve in Spehros Antwort bei 10 mA arbeitet, sodass alles, was Sie mit den Pegeln tun, die Ihre Schaltung betreiben wird, viel langsamer ist.

Ich schlage vor, Sie prüfen eine Kaskodenkonfiguration. Angesichts des Fehlens von Transistorspezifikationen im Datenblatt kann ich nicht einmal versuchen, Schaltungswerte oder geschätzte Antwortzeiten vorzuschlagen.

WhatRoughBeast
quelle
Danke für die Erklärung. Ich habe mir die Kaskodenkonfiguration angesehen, sehe aber nicht ganz, wie dies helfen wird. Unter der Annahme eines Eingangssignals mit einem unbekannten, möglicherweise "großen" Gleichstromversatz, z. B. zwischen 12 V und 15 V (oder auch -12 V bis -15 V) und einem Zielausgangssignal zwischen 0 V und 5 V, sehe ich keine Implementierung einer Kaskodenkonfiguration Dies funktioniert, ohne den DC-Offset zur Entwurfszeit zu kennen.
ARF
RS232 kümmert sich nicht um den Versatz, sondern nur um den Nulldurchgang. Ich vermute, dass der Offset, von dem Sie sprechen, eine Gleichtaktspannung ist und die durch die Eingangsisolation des Optokopplers behandelt (dh ignoriert) wird. Wenn der Offset in Bezug auf den Optokoppler v2 wirklich auf dem Signal liegt, haben Sie eine pathologische Situation und etwas stimmt wirklich nicht. In diesem pathologischen Fall möchten Sie einen Kondensator an den Eingang anschließen und den Gleichstrom herausfiltern.
WhatRoughBeast
Ok, ich war wirklich verwirrt. Ich wusste nicht, dass der Optokoppler noch auf dem Bild ist. Haben Sie an so etwas wie den Schaltplan in meiner bearbeiteten Frage gedacht? Ich sehe immer noch nicht, wie das im Prinzip helfen könnte (Zahlen für den Moment ignorieren ...).
ARF
Wenn Sie sich den bearbeiteten Schaltplan ansehen, funktioniert er nicht. In dieser Konfiguration ist der Kollektorstrom im wesentlichen gleich dem Emitterstrom, in diesem Fall weniger als 1 mA. Die Änderung der Ausgangsspannung beträgt also weniger als 0,5 Volt.
WhatRoughBeast
2

Sie machen das zu kompliziert. Die richtigen RS-232-Logikpegel liegen zwischen -5 V für Leerzeichen und über +5 V für Markierungen. Da der Leerlaufpegel Leerzeichen ist, möchten Sie den Markierungszustand durch Einschalten eines Optokopplers erkennen.

Ihre maximale Baudrate beträgt 4800, also 208 µs pro Bit. Dies ermöglicht die Verwendung von relativ "langsamen" Optokopplern bis zu etwa 20 us, was bei 1/10 der Bitzeit akzeptabel ist. Der Vorteil langsamer Optokoppler besteht darin, dass sie im Allgemeinen mit hohen Stromübertragungsverhältnissen (CTR) erhältlich sind. Der billige und verfügbare FOD817D mit einer garantierten minimalen Klickrate von 3 und einer maximalen Verzögerung von 18 µs fällt mir ein.

Angenommen, der Ausgang des Optos muss im eingeschalteten Zustand mindestens 1 mA betragen. Das heißt, Sie müssen dem Eingang mindestens 350 µA geben. Die maximale Eingangsspannung eines FOD817 beträgt 1,4 V. Damit verbleiben 3,6 V an einem Widerstand mit 5 V an der RS-232-Leitung. (3,6 V) / (350 uA) = 10,3 kΩ. Ein 10 kΩ 1% Widerstand sollte daher funktionieren.

Jetzt haben Sie einen Schalter, der ausgeschaltet ist, wenn sich die RS-232-Leitung im Leerlauf befindet (im "Leerzeichen"), und der im Zustand "Markieren" bis zu 1 mA unterstützen kann. Da solche seriellen Signale mit Logikpegel im Leerlauf normalerweise hoch sind, benötigen Sie lediglich einen Pullup-Widerstand in Reihe mit diesem Schalter. Da Sie anscheinend eine 5-V-Logik verwenden, benötigen Sie einen Widerstand von (5 V) / (1 mA) = 5 kΩ. Der Standardwert von 5,1 kΩ sollte gut funktionieren.

Also hier ist die letzte Schaltung:

Aufgrund der geringen Baudrate können Sie mit etwas so Einfachem davonkommen. Diese Schaltung funktioniert nicht mit viel höheren Baudraten.

Olin Lathrop
quelle