RS-485
Einleitung
Der RS485-Standard ist eine physikalische Spezifikation einer Reihe bidirektionaler Verbindungen über ein differentielles Leitungspaar, die von mehreren Protokollen benutzt wird. RS485 erlaubt grundsätzlich Point-2-Point-Verbindungen wie auch Multi-Point-Verbindungen mit mehreren Mastern und Slaves. Einsatzgebiete sind Umgebungen, bei denen es auf Störfestigkeit ankommt. Der Großteil sind industrielle und militärische Anwendungen, aber auch im Konsumerbereich ist RS485 zu finden, wenn sehr lange Leitungen verwendet werden, bei z.B. bei DMX.
Aufbau und Verwendung
Die Leitung wird idealerweise als twisted Pair mit 120Ω Wellenwiderstand ausgeführt. Der Aufbau erfolgt dabei immer als eine Linie und niemals als Stern mit etwaigen Stichleitungen. Die Leitung ist idealerweise an beiden Enden terminiert, was für höhere Übertragungsgeschwindigkeiten sowie größere Distanzen zwingend erforderlich ist. Bei sehr kurzen Leitungen oder niedrigen Ü-Geschwindigkeiten ist dies nicht unbedingt der Fall, siehe Artikel Wellenwiderstand. Das physikalische Interface in Mikrocontrollern und CHIP-basierten Anwendungen ist meistens ein vollständiger RS485 Transceiver, der einen Sender sowie einen Empfaenger beinhaltet und das logische Protokoll realisiert. Bei FPGAs und schnellen Microcontrollern reicht ein RS-485 Buffer.
Da nicht mehrere Sender gleichzeitig auf die Leitung aufgeschaltet sein dürfen, muss der jeweilige Sender nach Bedarf eingeschaltet werden (Halbduplex). Dies wird auf Protokollebene definiert. Der Sender steuert das differentielle Leitungspaar voll aus, d.h. geht unbelastet auf 0V/Vcc, wobei es 3.3V, sowie 5V Bausteine gibt. Unter Last nimmt die Amplitude dann ab. Der Empfänger braucht minimal 70mV Differenzspannung in einem Gleichtaktbereich von -7...+12V. Es gibt auch Bausteine mit höheren Gleichtaktspannungen.
Während der Standard von bis zu 32 Bausteinen pro Leitung ausgeht, sind Viertel- und Achtelpower-Bausteine erhältlich, wovon dann 128 bzw. 256 Stück an eine Leitung angeschlossen werden können. Die Geschwindigkeit und die Reichweite sind nicht im Standard definiert.
Bisher sind alle Transceiver pinkompatibel.
Übersicht RS485 / RS422 Bausteine
Bezeich- nung |
Package | Hersteller | Vcc [V] | Datarate [Mbit/s] |
Slewrate limited |
Max. Tranceiver |
Lieferant |
---|---|---|---|---|---|---|---|
LTC1480 | SO-8 | Linear | 3,3 | 2,5 | ? | 32 | R |
MAX481 | SO-8 | Maxim | 5 | 2,5 | nein | 32 | R |
MAX485 | SO-8 | Maxim | 5 | 2,5 | nein | 32 | R |
MAX3485 | SO-8 | Maxim | 3,3 | ja | 32 | R | |
SP3485 | SO-8 | Exar | 3,3 | 10 | nein | 32 | R |
Meist genutzte RS485-Bausteine
- SN75176, günstig und leicht zu beschaffen, aber ein Stromfresser (28-50mA!)
- LTC485
- MAX485 Moderne CMOS-Variante mit weniger als 1mA Eigenverbrauch
- ADM485
- ADM483 von Analog Devics, 250kBit, supply 350uA plus load, SO8, 1.14$@100
- SN65HVD11D von Texas, für 3V3 Schaltungen, recht billig (der SN65HVD75D arbeitet auch mit 3V3, hat zusätzlich ESD Protection und kostet derzeit bei Farnell nur 2,15€ also etwa einen Euro billiger als der SN65HVD11D)
- ISL83483 von Intersil, 3,3 V, recht günstig, inkl. Failsafewiderständen
Speziellere Ausführungen
- SN65HVD23D von TI
- extended common mode -20 to +25V
- 25MBit @160m
- 64 nodes
- Supply 7mA plus load
- SO8 Gehäuse
- 4.05$@1
- SN65HVD24D von TI
- extended common mode -20 to +25V
- 3MBit @500m
- 256 nodes
- Supply 10mA plus load
- SO8 Gehäuse
- 4.05$ @1
Beispielprotokolle
- DMX : +/- 5V, 250 kb/s.
- ProfiBus : ab +/-3V, bis 10Mb/s
Weitere Hinweise
- Failsafe - was passiert auf dem Bus, wenn kein Sender aktiv ist? Dann muss man mittels Pull-Up- und Pull-Down-Widerstand für definierte Pegel sorgen. Das ist vor allem dann nötig, wenn man mittels UART Daten überträgt, was bei 90% der RS485 Anwendungen der Fall ist. Arbeitet man mit Terminierung, so werden typischerweise die Werte im nebenstehenden Bild verwendet. Ohne Terminierung entfällt R2 und R1=R3=1kΩ. Diese Terminierung darf nur einmal am Bus exisiteren - nicht an jedem Teilnehmer!
- Verlustleistung - die Terminierung (100..120Ω) verbraucht einiges an Strom, den man mit einem 0,1µF in Serie reduzieren kann ( AC-Terminierung).
- Speziell bei ausgedehnten Systemen im industriellen Umfeld können die -7...+12V Gleichtaktbereich ungenügend sein. Dann sollte man eine galvanische Trennung einführen.
- Die Masse sollte man immer als Referenz im Kabel mitführen, auch wenn es oft auch ohne funktioniert.
- Forumsbeitrag: GND-Erdung wegen fehlender Masse an RS485 Gegenstelle
- Forumsbeitrag: Kein GND auf RS485
- Forumsbeitrag: Datenübertragung über >100m
- The RS-485 Design Guide, von TI
Weblinks
- RS485 Monitor
- RS485 auf Wikipedia
- Slla036b (TI) Interface Circuits for TIA/EIA-485 (RS-485)
- Slla70c (TI) 422 and 485 Standards Overview and System Configurations
- Slla169 (TI) Use receiver equalization to extend RS485 data communication
- Ten Ways to Bulletproof RS-485 Interfaces, AN-1057 (National)
- RS-485: Passive failsafe for an idle bus, Application Note slyt324 von TI
- Methods for Trimming the Power Required in RS-485 Systems, Application Note 1090 von Maxim