RS422 / RS485 Treibermodule
Der RS422 und RS485 Standard
Die RS422 ist eine differentielle Schnittstelle mit Signalpegeln bis zu +/-5V. Jedes Signal wird dabei auf 2 Leitungen mit komplementären Pegeln übertragen. Der logische Zustand wird am Empfänger aus der Differenz zwischen den beiden Leitungen A und B bestimmt.
RS485 unterscheidet sich von RS422 im wesentlichen nur durch die Möglichkeit, die Ausgangstreiber in einen hochohmigen Zustand zu schalten. Dadurch kann man mehrere Transmitter an einem gemeinsamen Bus betreiben.
Die RS422/RS485 ist gegen Gleichtaktstörungen unempfindlich. Störspannungen bis zu ca. +/-5V werden toleriert. Damit ist z.B. auch eine Verkabelung zwischen Räumen mit differierendem Erdpotential möglich. Bei korrekter Anwendung ist die RS422/RS485 erheblich störsicherer als die RS232.
Terminierung
Die RS422 funktioniert bei geringer Kabellänge und kleinen Datenraten ohne Terminierung durch eine Abschlussimpedanz. Für lange Kabel (ab ca. 50cm) oder hohe Datenraten (mehr als 19200Baud) wird eine Terminierung durch einen Lastwiderstand wichtig. Die Widerstände R1 und R2 können dafür eingesetzt werden.
Um die Stromaufnahme im Ruhezustand zu minimieren und illegale Pegel bei der RS485 im hochohmigen Zustand 1 zu verhindern, ist eine symmetrische Terminierung mit zwei Widerständen jeweils nach GND und nach VCC alternativ zum Lastwiderstand vorgesehen. Die vier dafür notwendigen Widerstände sind im RN1 enthalten. Das Netzwerk hat 8 Pins und enthält 4 getrennte Widerstände.
Der Wert der Widerstände hängt vom verwendeten Kabel ab. Die Impedanz der Terminatorwiderstände auf Transmitter- und Receiverseite muss möglichst genau der Impedanz des verwendeten Kabels entsprechen. In der Praxis liegt die Untergrenze bei ca. 70Ohm. Typische Impedanzen von Flachkabeln liegen bei 100Ohm bis 150Ohm. Abgeschirmte Kabel liegen meist bei ca. 75Ohm. Die Impedanz des Terminatornetzwerks ergibt sich aus der Parallelschaltung der drei Widerstände.
Beim Betrieb des IF485OC in einem der Partyline Modes muss eine symmetrische Terminierung verwendet werden.
Default Terminatoren
Auf den ausgelieferten Modulen ist ein Terminatornetzwerk mit typisch 560Ohm gesteckt. Der 100Ohm Terminator zwischen den differentiellen Signalleitungen ist nicht bestückt. Diese Terminierung ist auf mässige Stromaufnahme mit relativ kurzen Kabeln im Bereich um einige Meter optimiert. Längere Kabel und bessere Anpassung an das verwendete Kabel erfordert eine Optimierung der Terminatorimpedanz.
Konfiguration
Das IF485LC Modul erlaubt nur die Auswahl von Half- und Fullduplexbetrieb. Werksseitig ist Fullduplex selektiert. Die Konfiguration wird mit einer Kurzschlussbrücke auf J1 selektiert. Dabei sind folgende Modes möglich:
Mode Einstellung Funktion Halfduplex J1:2 mit J1:3 gebrückt Halfduplexbetrieb Fullduplex J1:1 mit J1:2 gebrückt Fullduplexbetrieb Beim IF485OC Modul wird der Betriebsmode mit drei Kurzschlussbrücken auf drei 3pol. Pfostensteckern (J2... 4) selektiert. Werksseitig ist der Mode 0 selektiert.
Mode J4 J3 J2 Funktion 0 1-2 1-2 1-2 Fullduplex Punkt zu Punkt 1 1-2 1-2 2-3 Fullduplex Partyline 2 1-2 2-3 1-2 Fullduplex (DTR* = 1 gibt TxD frei) 2 3 1-2 2-3 2-3 Fullduplex (DTR* = 0 gibt TxD frei) 4 2-3 1-2 1-2 reserviert 5 2-3 1-2 2-3 Halfduplex Partyline 6 2-3 2-3 1-2 Halfduplex (DTR* = 1 gibt TxD frei) 3 7 2-3 2-3 2-3 Halfduplex (DTR* = 0 gibt TxD frei) Die Partyline Modes erlauben die kurzschlussfreie Verbindung von Sendern an einer Leitung. Ein explites Freigeben des Senders mit DTR* entfällt. Davon abgesehen ist der Partyline Betrieb äquivalent zu den Modi mit DTR* Steuerung.
Transmitter Enable
Der Transmitter wird mit dem Signal DTR* in den hochohmigen Zustand geschaltet. Dabei haben High- und Lowpegel folgende Bedeutung:
Modul Mode Pegel Aktiv Funktion IF485LC - Low aktiv Sender abgeschaltet IF485LC - High inaktiv Senden möglich IF485OC 2/6 Low aktiv Sender abgeschaltet IF485OC 2/6 High inaktiv Senden möglich IF485OC 3/7 High inaktiv Sender abgeschaltet IF485OC 3/7 Low aktiv Senden möglich Die Modes 2/6 und die Modes 3/7 beim IF485OC unterscheiden sich nur durch das inverse Aktivpotential von DTR*. Neben dem vollen An- und Abschalten über DTR* kann auch mit den Modes 1 und 5 ein Partyline Betrieb selektiert werden. Eine Partyline funktioniert etwa wie ein Open Collector Bus, wobei der Low Pegel auf den Datenleitungen aktiv getrieben wird.
Konfigurationen
Punkt zu Punkt Verbindung im Fullduplexbetrieb:
![]()
Diese Betriebsart erlaubt die Verbindung von 2 Partnern im Fullduplexbetrieb ähnlich einer RS232.
Beim IF485LC muss der Fullduplexmode selektiert werden. Der Transmitter muß immer freigeschaltet sein. Dazu muß DTR* inaktiv sein.
Beim IF485OC wird der Mode 0 selektiert. Der Pegel an DTR* ist irrelevant.
Halfduplex Bussystem:
![]()
Die Teilnehmergeräte sind alle gleichberechtigt. Je nach verwendetem Protokoll mögliche Kollisionen können über das Rücklesen der gerade gesendeten Daten erkannt und aufgelöst werden. Der Receiver ist immer aktiv, d.h. alle Daten auf dem Bus werden immer empfangen - auch wenn der Rechner selbst sendet.
Der jeweils aktive Teilnehmer kann nach Deaktivieren von DTR* senden. Alle anderen Teilnehmer sind empfangsbereit und signalisieren dies dem Treibermodul über DTR* aktiv. Beim IF485OC kann auch der Mode 5 (Half Duplex Partyline) verwendet werden. Die explizite Sendekontrolle per DTR* entfällt dann.
Beim IF485LC muß der Halfduplex Mode selektiert werden. Beim IF485OC wird der Mode 5, 6 oder 7 selektiert.
Master/Slave Bussystem:
![]()
Der Master ist immer sendeberechtigt - alle Slaves empfangen nur die vom Master gesendeten Daten. Es darf immer nur ein Slave zu einem bestimmten Zeitpunkt senden. Die Freischaltung zum Senden in den Slaves und im Master erfolgt ebenfalls über das Deaktivieren von DTR*. Beim IF485OC kann durch Verwendung des Mode 1 (Fullduplex Partyline) auf eine explizite Sendekontrolle verzichtet werden.
Die Konfiguration dieses Modes erfolgt wie beim Fullduplexbetrieb beschrieben.
Nullmodem für Fullduplexbetrieb
Ein Nullmodemkabel zwischen zwei IF485LC Modulen kann entsprechend folgenden Regeln gebaut werden:
Es wird immer A mit A und B mit B vom Transmitter zum Receiver verbunden. Verdrehen von A und B invertiert das Signal und führt beim Abschalten des Transmitters aufgrund der Terminierung zu unbestimmten Pegeln.
Es ist eine Masseleitung erforderlich. Die Schutzerde liefert gerade bei der RS422/RS485 eine meist hinreichende aber nicht besonders gute Masse.
Bei Verbindungen zwischen Rechnern mit differierendem Erdpotential können durch die Masseverbindung der RS422/RS485 Ausgleichsströme fließen. Dadurch entstehen u.U. Störungen in Analogbaugruppen bis hin zur Zerstörung von Bauteilen. Bei geringen Unterschieden im Erdpotential (<< 3V) kann ein 50Ohm Widerstand in der Masseleitung Abhilfe schaffen. In extremen Fällen muss die galvanisch getrennte Version des IF485 (IF485OC) benutzt werden.
Die im Bild vorgeschlagenen Farben dienen nur der Orientierung. Es ist ein minimal 5pol. Kabel nötig. Eine Abschirmung erhöht die Sicherheit gegen Störeinstreuungen und kann z.B. mit Pin 2 verbunden werden. Erdschleifen sind normalerweise vollkommen harmlos, solange nicht durch grosse Verbraucher starke Potentialdifferenzen auftreten.
![]()
Belegung des RS485 Steckverbinders
9pol. Sub-D Stecker:
Pin Name Name Pin 1 nc nc 6 2 GND GND 7 3 TxDB TxDA 8 4 RxDB RxDA 9 5 GND
nc: No Connection - unbenutzt GND: Referenz TxDA: Transceiver Data A - nicht invertierend TxDB: Transceiver Data B - invertierend RxDA: Receiver Data A - nicht invertierend RxDB: Receiver Data B - invertierend IF485OC GAL-Gleichungen
PLD16V8 ; IF485OC Mode Selector V0.01 CLK ENABLE RECEIVE NC4 REC1 REC2 M0 M1 M2 GND /OE NC12 TRA2 ENA2 TRA1 ENA1 TRANSMIT NC18 NC19 VCC TRANSMIT.OE = VCC TRANSMIT = M2*REC1+/M2*REC2 TRA1.OE = VCC TRA1 = M1*RECEIVE+/M0*RECEIVE ENA1.OE = VCC ENA1 = /M2*/M1*/M0 +/M1* M0* RECEIVE + M1*/M0* ENABLE + M1* M0*/ENABLE TRA2.OE = VCC TRA2 = GND ENA2.OE = VCC ENA2 = GND DESCRIPTION M[2..0] # Function ------- - -------------------------------------- 0 0 0 0 Full Duplex point to point (default) 0 0 1 1 Full Duplex DTR=X open coll. partyline 0 1 0 2 Full Duplex DTR=1 enables transmitter 0 1 1 3 Full Duplex DTR=0 enables transmitter 1 0 0 4 rsvd 1 0 1 5 Half Duplex DTR=X open coll. partyline 1 1 0 6 Half Duplex DTR=1 enables transmitter 1 1 1 7 Half Duplex DTR=0 enables transmitter
1 Wenn bei Halfduplexbetrieb oder bei Buskonfigurationen kein Gerät den Transmitter aktiviert hat, wird durch einen einfachen Abschlußwiderstand die Differenzspannung 0V erzeugt. Dieser Pegel ist illegal (weder 0 noch 1) und tendiert dazu, die Receiver zu Oszillationen und Rauschen zu animieren.
www.mct.de
2 Dieser Mode des IF485OC entspricht dem Fullduplexbetrieb des IF485LC
3 Dieser Mode des IF485OC entspricht dem Halfduplexbetrieb des IF485LC