Wie wähle ich einen Optokoppler für die serielle Kommunikation (19200 Baud) zwischen Arduino und RS422-Transceiver aus?

Ich möchte Daten von einem Fronius Solarwechselrichter über die Option Fronius RS-422 Com Card (Art.-Nr. 4.240.001) auslesen.

1000 Meter Kabellänge

Die Fronius-Kommunikation verwendet eine 5-adrige RS 422-Schnittstelle (`RX-`, `RX+`, `TX-`, `TX+`, `GND`). Es basiert auf Punkt-zu-Punkt-Verbindungen, die einen **Ring** bilden müssen. Es hat eine wählbare Baudrate von 2400, 4800, 9600, 14400 oder 19200. Die Fronius-Dokumentation gibt an, dass die Gesamtkabellänge 1000 Meter nicht überschreiten sollte, wenn Terminierungsstecker verwendet werden (`RX+` an `TX+` und `RX-` an `TX-). `) oder 1000 Meter zwischen jedem Gerät, wenn eine Ringformation ohne Abschlussstecker erstellt wird.

Fronius RS-422 Verkabelung, T568B

Empfehlung zur galvanischen Trennung

Fronius empfiehlt außerdem , die RS 422-Schnittstelle des Wechselrichters galvanisch von externen Schnittstellen zu trennen . Dies erhöht die Sicherheit des Gesamtsystems . Deshalb rätsel ich über die Wahl eines Optokopplers.

SP490 Leitungstreiber

Als Leitungstreiber wähle ich den SP490. Der Treiberpin hat einen spezifizierten maximalen "Eingangsstrom" von ±10 µA. Der IC verfügt über eine maximale Datenrate von 10 Mbps (was für 19200 Baud übertrieben sein könnte).

Datenblätter

Ich weiß, dass Optokoppler-Datenblätter oft versuchen, nicht so sachkundige Leser zu täuschen, indem sie RlWerte von 100 Ohm liefern, die in realen Designs nie verwendet werden. Ich weiß auch, dass der Ausgang bei niedrigeren Eingangsströmen (viel) langsamer reagiert.

Bit-Timing

Ich weiß, dass am Beginn und Ende der Bitzeit eine Signalanstiegs- und -abfallzeit beteiligt ist. Die EIA RS-422-Spezifikation schreibt, dass die Anstiegszeit des Treiberausgangs maximal 10 % der Bitbreite betragen sollte (unter der Bedingung Rt = 100 Ω). Ich weiß auch, dass die Bitzeit berechnet werden kann, indem 1 Sekunde durch die Baudrate geteilt wird:

  • .... Baud ... Bitzeit ... maximale Anstiegszeit
  • 1 ÷ 2400 = 416 µs ⟶ 41,6 µs
  • 1 ÷ 4800 = 208 µs ⟶ 20,8 µs
  • 1 ÷ 9600 = 104 µs ⟶ 10,4 µs
  • 1 ÷ 14400 = 69 µs ⟶ 6,9 µs
  • 1 ÷ 19200 = 52 µs ⟶ 5,2 µs

Auswahltabelle für analoge Hochgeschwindigkeits-Optokoppler
Quelle: http://www.vishay.com/docs/49444/sg2129.pdf , Seite #2.

Ich habe auch über kapazitive Effekte in der Verkabelung gelesen, die die Anstiegs- und Abfallzeiten der Übertragung beeinflussen. Aber welcher Prozentsatz der Signalzeit ist als Abfallzeit akzeptabel und/oder welche Zeit ist das Maximum für die gesamte Anstiegs- und Abfallzeit ?

Ausgangsstrom des Optokopplers

Ich weiß auch, dass Optokoppler in Bezug darauf, welche Strommenge auf der Ausgangsseite fließt, nicht gleich sind. Das Verhältnis von Eingangs- zu Ausgangsstrom scheint vom Gerät (CTR), Eingangsstrom, Spannung, Temperatur und Alter abhängig zu sein.

Vorgeschlagene Schaltung

Ich möchte den Vollduplex-RS422-Transceiver-IC Exar SP490E verwenden (maximaler "Eingangsstrom" ±10 µA). Für die Mikrocontroller-Seite möchte ich das Signal an einem digitalen Ein-/Ausgang eines Arduino Uno ein-/ausgeben. Die Optokoppler dienen zum Schutz des Arduino, nicht des Transceivers. Daher befinden sich Optokoppler zwischen Arduino und dem SP490E, nicht zwischen dem Leitungstreiber und dem RS 422-Signal. Eine Seite der Optokoppler und der SP490E haben eine isolierte 5-V-Versorgung.

Frage

Auf welche Datenblattinformationen sollte man achten, um eine gute Wahl zu treffen und einen minimalen Stromfluss (niedrige Leistung) zu erreichen?


Fronius Datenlogger-Verkabelungsdokumentation von Drittanbietern

Bitte beachten Sie unbedingt die Hinweise in diesem Dokument zur Verkabelung von Fronius Wechselrichtern, wenn diese über eine RS 422 Schnittstelle an eine Fremdanlagenüberwachung angeschlossen werden in der Betriebsanleitung Fronius Interface 4204101564

Gesamtsystemempfehlung, RS 422-Schnittstelle des Wechselrichters galvanisch von externen Schnittstellen, z. B. einem Netzwerk, trennen.  Dies erhöht die Sicherheit des Gesamtsystems.

Antworten (1)

Fronius schlägt keinen Optokoppler zwischen dem µC und dem Transceiver vor, sondern zwischen dem µC und dem externen Netzwerk (das Sie nicht haben). Aber Sie könnten die beiden Komponenten Ihrer RS-422-Schnittstelle (µC und Transceiver) voneinander isolieren, wenn Sie das wirklich wollen.

Die Eingangsstromspezifikation des Leitungstreibers spielt keine Rolle.

Ein UART synchronisiert auf die fallende Flanke zu Beginn des Startbits; alle folgenden Bits werden dann in der Mitte ihrer Bitzeit abgetastet. Ihr Optokoppler muss also schnell genug sein, dass der Signalpegel in der Mitte eines Bits stabil ist, und steigende und fallende Flanken dürfen nicht zu stark um unterschiedliche Beträge verzögert werden (dies wird als Impulsbreitenverzerrung angegeben).

In der Praxis will man einen Sicherheitsfaktor, also sollte die spezifizierte Bitrate des Optokopplers mindestens das Zehnfache der tatsächlichen Baudrate betragen.

Kapazitive Effekte in der Verkabelung hängen von den tatsächlichen Kabeln ab; das musst du selbst messen.

Normalerweise sollten Sie Optokoppler mit dem Durchlassstrom ansteuern, für den sie ausgelegt sind (wofür der CTR spezifiziert ist). Die Varianten 6N135/6N136 sind für 16 mA ausgelegt, die Varianten 6N138/6N139 für 1,6 mA/0,5 mA.

Bitte beachten Sie, dass diese Tabelle typische Zeiten zeigt; die garantierten Zeiten können viel schlechter sein. Mit dem 6N138/6N138 können Sie die Anstiegszeit erheblich verbessern, indem Sie die Pins 5 und 7 mit einem Widerstand verbinden, aber dies verringert auch die CTR:

6N138 CTR vs. RBE

Die CTR des 6N138 ist jedoch so groß, dass dies für die meisten nützlichen RBE-Werte keine Rolle spielt; 10 kΩ sollten absolut sicher sein.

Wenn Sie sich nicht um den CTR kümmern möchten, verwenden Sie einen Optokoppler mit einem digitalen Ausgang, zB H11L1 oder 6N137. (Diese haben einen festen Schwellenstrom.)

Ich werde es mit dem 6N137 versuchen.