RS-485

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

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.

Transceiver ADM483E: Links ist CMOS/TTL-Logik, rechts die RS485-Leitung.

Ü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

Rs485 term.png
  • 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.

Weblinks