RS485 RS422 RS232

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Das RS in der Bezeichnung steht für Recommended Standard.

Die aktuelle amerikanische Version heißt offiziell (ANSI EIA/) TIA-232-F (1997) und ist aber immer noch eine beliebte serielle Kommunikationsschnittstelle. Oft wird nur die "Basisverkabelung" ohne Steuerleitungen (Hardwarehandshake) mit 3 Adern (RX TX GND) benutzt. Ich wuerde behaupten, dass bei Mikrocontrollern (ohne USB-Interface) die serielle Kommunikation ueber TX und RX die am meist genutzte ist. Um die in der Norm zu erfuellenden Bedingungen (Physikal Layer ISO/OSI) sind Schnittstellen-Schaltkreise, allen voran der MAX232 notwendig.

Hier eine weitere hilfreiche Zusammenstellung.

Oft werden die 3 Kommunikationsschnittstellen in einem Atemzug genannt, es gibt aber (kleine) Unterschiede.

Ein wenig zur Norm[1].

USB Anbindung RS 232

TODO

USB Anbindung RS422/RS485

DSD Tech

SH-U11F

DSD TECH SH-U11F 1.jpg

DSD TECH SH-U11F 2.jpg

Auf den Kontaktbeschreibungen findet man fuer den RS485-Betrieb (2-Leitung/3-Leitung) bei dem TXD+ Anschluss auch die Bezeichnung A+ und bei dem TXD- Anschluss auch die Bezeichnung B-.

SH-U11L

DSD TECH SH-U10L 1.jpg
DSD TECH SH-U10L 2.jpg
DSD TECH SH-U10L 3.jpg


Die wesentlichen Unterscheidungsmerkmale ergeben sich aus der Modellbezeichnung: 10 weist auf einen CP2102 und 11 auf einen FT232RL Chip hin. Das angehaengte L meint die Kabelvariante. Was man aber schon so erkennen kann, sind die unterschiedlichen Anschlussbelegungen. Im Gegensatz zu SH-U11F (6 Kontakte) hat der SH-U11L nur 5 Kontaktstellen.



SH-U11L.jpg

Was jetzt erst mal verwirrend ist, dass die TXD-Anschluesse genutzt werden, obwohl ja eine bidirektionale Kommunikation moeglich sein soll. Also gehe ich mal von einer Halbduplex-Verbindung und nicht von einer Simplex-Verbindung aus.

Dummerweise kommt noch eine weitere Verwirrung dadurch zustande, dass die Bezeichnungen der Anschluesse A und B munter durcheinandergehen.

Laut dieser Seite:

Die Definition sagt:
A = „-“ = T x D- / R x D - = invertiertes Signal
B = „+“ = T x D + / R x D + = nicht-invertiertes Signal
Es wird zudem eine dritte Leitung „C“ = „Common“ angegeben. Diese Leitung ist für den Referenz-Ground.

Texas Instruments, Maxim, Analog Devices, u.a. hielten sich scheinbar nicht an diese Abmachung und vertauschten A und B.

MAXIM Datenblatt MAX485:
A Noninverting Receiver Input and Noninverting Driver Output  -> also A+
B Inverting Receiver Input and Inverting Driver Output -> also B-

Wenn man sich aber nur darauf konzentriert, dass + das nicht-invertierte und - das invertierte Signal ist, dann passt es.

Die Bezeichnung bei den DSD TECH-Produkten ist vertauscht.

Irgendwann hat man wohl die Verwirrung komplett machen wollen und D+ und D- eingefuehrt. Wie an dem PCB-Aufdruck vom YF-D1 (gruene Platine) zu erkennen ist wurde D+ TXD+ und D- TXD- zugeordnet.

diymore

Diymore RS485422.jpg

USBtoRS485

Modellbezeichnung: 003 (rote Platine)

Driver: CH340/341

Diymore RS485422 redPCB.jpg

USBtoRS485/422

Modelbezeichnung: YF-D1 (gruene Platine)

Driver: CH340G

Diymore RS485422 greenPCB.jpg

QinHeng Electronics

QinHeng Electronics CH340 RS485.JPG

Das CH340-IC hat keinen Aufdruck und meldet sich in der Konsole wie folgt.

>dmesg
[122901.377343] usb 3-14: new full-speed USB device number 27 using xhci_hcd
[122901.525844] usb 3-14: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
[122901.525850] usb 3-14: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[122901.525853] usb 3-14: Product: USB2.0-Ser!
[122901.580419] usbcore: registered new interface driver usbserial_generic
[122901.580434] usbserial: USB Serial support registered for generic
[122901.582067] usbcore: registered new interface driver ch341
[122901.582081] usbserial: USB Serial support registered for ch341-uart
[122901.582098] ch341 3-14:1.0: ch341-uart converter detected
[122901.582471] ch341-uart ttyUSB0: break control not supported, using simulated break
[122901.582585] usb 3-14: ch341-uart converter now attached to ttyUSB0

>lsusb -t
Bus 03
|__ Port 14: Dev 27, If 0, Class=Vendor Specific Class, Driver=ch341, 12M

>lsusb
Bus 003 Device 027: ID 1a86:7523 QinHeng Electronics CH340 serial converter

ETHernet Anbindung RS485

eletechsup ET69C02

Eletechsup ET69C02 DINRAIL.JPG

Der "Server" besteht im Wesentlichen aus einem Modul NT-B1 von EBYTE (s.u.)

Screenshot 2024-04-10 at 19-35-37 EbyteNetConfig.png

NT1-B

Hersteller: EBYTE Chengdu Ebyte Electronic Technology Co.,Ltd

EBYTE NT1B PCB front.jpg EBYTE NT1B PCB back.jpg

NT1-B_UserManual_EN_V1.1.pdf Im Kapitel 3.3 Interface Description findet man das Pinout und die Beschreibung der Pin-Funktionen. [2]

Waveshare

Waveshare RS485toETH(B).JPG

Waveshare ETH RS485 PCB front.jpg Waveshare ETH RS485 PCB back.jpg

USR-TCP232-304

USR-TCP232-304 front.JPG

USR-TCP232-304 back.JPG

USR-TCP232-304 PCB top.JPG

USR-TCP232-304 PCB bottom.JPG

Anschluss am Beispiel des Stromzaehlers EM24 (IS) von Carlo Cavazzi

Die Einstellmoeglichkeiten des EM24 sind so umfangreich, dass ich hier EM24_Carlo_Gavazzi eine eigene Seite dafuer angelegt habe.

RS485 EM24 zu SH-U11F Bild 1.jpg

RS485 EM24 zu SH-U11F Bild 2.jpg


Anschlussbelegungen EM24 Klemmverbindungen IS Variante (3 Digital Inputs + RS485)
Pin Bezeichnung
31 INPUT 1
32 INPUT 2
33 INPUT 3
41 A-
42 B+
43 GND (RS485 und INPUTs)

Einbindung eines EM24 in eine Victron Energy Anlage rev 05 - 08/2023

Anschluss an einen ET340/ET112

Der Anschluss eines RS485-Interfaces ist über die Klemmverbindungen am einfachsten. Aber auch über die RJ45-Buchsen und ueber den optischen Kommunikationsport (ueber OptoProg) ist eine Anbindung (nur eine der 3 zeitgleich) moeglich.

Anschlussbelegung ET340 Klemmverbindungen
Pin Bezeichnung
7 Terminierung (nur beim letzten Teilnehmer mit A- (9) verbinden
8 B+
9 A-
10 GND
11 Tarifschalter ->12 (Auswahl Tarifmodell 0 programmieren)
12 Tarifschalter ->11 (Auswahl Tarifmodell 0 programmieren)

Anschlussbelegung Sub-D

Anschlussbelegung Sub-D
Pin RS232 RS422 RS485
1 RXD- B
2 RXD
3 TXD
4 TXD+ A
5 GND GND GND
6 RXD+ A
7 RTS
8 CTS
9 TXD- B

Anschlussbelegung RJ45 (8P8C)

Dummerweise gibt es eine Vielzahl von Anschlussvarianten. Da denkt sich jeder scheinbar seine eigene aus. Die nachfolgenden Tabellen erheben daher (vorerst) keinen Anspruch auf "Standard". Unlogisch erscheint mir die Variante, da hier das Differenzsignal nicht ueber ein verdrilltes Paar laeuft, wenn man eine Ethernetkabel (U/UTP) benutzt. D.h. +/- sind uber Pin1/2, Pin3/6, Pin4/5 oder Pin7/8 zu fuehren!

Anschlussbelegung RJ45
Pin RS-232 RS-422 RS-485 (full-duplex) RS-485 (half-duplex)
1 RTS TXD+ TXD+ TXD/RXD+ (A)
2 DTR NC NC NC
3 GND NC GND NC
4 TXD TXD- TXD- TXD/RXD- (B)
5 RXD RXD- RXD- NC
6 DCD NC NC NC
7 DSR NC NC NC
8 CTS RXD+ RXD+ NC

Noch eine "falsche" Variante:

Screenshot 20220916 185418.png


Die Variante des ET340:

Anschlussbelegung RJ45-Buchsen
Pin RS-485 (half-duplex)
1 NC (?)
2 NC (?)
3 T (nicht bestaetigt)
4 B+
5 A-
6 NC (?)
7 NC (?)
8 GND

Die beiden Buchsen sind auf der Vorderseite angebracht. Laut Datenblatt sind die Kontakte von links nach rechts mit 1 bis 8 durchnummeriert. Die Rastnase befinden sich dabei unten. Die beiden Buchsen dienen zum Durchschleifen des Busses (Daisy Chain). Wenn der ET340/112 das letzte Geraet in der Kette ist, ist ein Abschlusswiderstand einzustecken, oder die Klemmen A- (5) und T (3) zu verbinden. Die im Datenblatt angegebene Verbindung T (3) kann ich nicht bestaetigen.

Hier ist die Belegung vorteilhaft. Die Kontakte 4 und 5 laufen in einem "normalen" Netzwerkkabel sowohl bei T-568A also auch B ueber das verdrillte blaue Adernpaar. GND ist mit der braunen Ader verbunden.

Sniffing

   A - B < -0,3V = MARK = OFF = Logisch 1

A - B > +0,3V = SPACE = ON = Logisch 0

  A–B < 0,25 V = Logisch 1
  A–B > 0,25 V = Logisch 0
A = „-“ = T x D- / R x D - = invertiertes Signal
B = „+“ = T x D + / R x D + = nicht-invertiertes Signal

OpenModScan