RS-485: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
Zeile 13: Zeile 13:
{| {{Tabelle}} border="1" class="wikitable sortable" id="rs485ics"
{| {{Tabelle}} border="1" class="wikitable sortable" id="rs485ics"
|- style="background-color:#eeeeee"
|- style="background-color:#eeeeee"
! Bezeichnung
! style="width:6em" |Bezeich-<br>nung
! Package
! style="width:6em" |Package
! Hersteller
! style="width:8em" |Hersteller
! Vcc/V
! style="width:4em" |Vcc [V]
! Datarate/Mbps
! style="width:6em" |Datarate<br>[Mbit/s]
! Slewrate limited
! Slewrate<br>limited
! Max. trans. on bus
! Max.<br>Tranceiver
! Lieferant
! Lieferant
|-
|-

Version vom 16. Januar 2021, 10:41 Uhr

Einleitung

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

Der RS485-Standard ist eine physikalische Spezifikation einer Reihe bidirektionaler Verbindungen über ein differentielles Leitungspaar, die von mehreren Protokollen benutzt wird. Die Leitung wird idealerweise als twisted Pair mit 120Ω Wellenwiderstand ausgeführt. Es können zwei oder mehrere Teilnehmer angeschlossen sein. Der Leitungsaufbau erfolgt 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 Baustaine

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, 64nodes, supply 7mA plus load, SO8, 4.05$@1
  • SN65HVD24D von TI, extended common mode -20 to +25V, 3MBit @500m, 256 nodes, supply 10mA plus load, SO8, 4.05$ @1

Weitere Hinweise

RS485 Terminierung mit Pull-Up/Down Widerständen
  • 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 klassisch die Werte wie im nebenstehenden Bild verwendet. Ohne Terminierung entfällt R2 und R1=R3=1kΩ. Diese Terminierung gibt es nur einmal auf dem Bus, nicht an jedem Teilnehmer!
  • Verlustleistung - die Terminierung (100..120Ω) verbraucht einiges an Strom, den man mit einem 0,1µF in Serie unterdrücken kann (AC-Terminierung, siehe Artikel Wellenwiderstand).
  • Galvanische Trennung - speziell bei ausgedehnten Systemen können die -7...+12V Gleichtaktbereich nicht genügen, speziell in einem industriellen Umfeld nicht. Dann sollte man eine galvanische Trennung einführen.
  • Die Masse als Referenz sollte man IMMER im Kabel mitführen, auch wenn es scheinbar oft auch ohne funktioniert.

Weblinks