RS-485: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== Worum geht's ==
== Einleitung ==
RS485 ist die physikalische Spezifikation einer bidirektionalen Verbindung ueber ein Differentialpaar. Die Leitung ist idealerweise ein twisted Pair mit 100 Ohm.
 
Es koennen zwei oder mehrere Teilnehmer angeschlossen sein. Der Leitungsaufbau ist immer eine Linie, kein Stern, keine Stichleitung. Die Leitung ist idealerweise an beiden Enden terminiert. Idealerweise bedeutet hier fuer hoehere Geschwindigkeiten und Distanzen zwingend, bei kurzen Leitungen und niedrigen Geschwindigkeiten nicht. D.h. fuer 9600 Baud ueber 2m genuegt ein Flachbandkabel ohne Abschluss. Das Interface ist ein RS485 Transceiver, der beinhaltet einen Sender und einen Empfaenger. <br>
RS485 ist die physikalische Spezifikation einer bidirektionalen Verbindung ueber ein differentiales Leitungspaar. Die Leitung ist idealerweise ein twisted Pair mit 120 Ohm [[Wellenwiderstand]]. Es können zwei oder mehrere Teilnehmer angeschlossen sein. Der Leitungsaufbau ist immer eine Linie, kein Stern und ohne Stichleitungen. Die Leitung ist idealerweise an beiden Enden terminiert. Idealerweise bedeutet hier für höhere Geschwindigkeiten und Distanzen zwingend, bei kurzen Leitungen und niedrigen Geschwindigkeiten nicht, siehe Artikel [[Wellenwiderstand]]. Das Interface ist ein RS485 Transceiver, der beinhaltet einen Sender und einen Empfaenger. <br>
[[Datei:RS485.png | Transceiver ]]<br>
[[Datei:RS485.png | Transceiver ]]<br>
Links ist TTL/HCMOS, rechts die RS485 Leitung.<br><br>
Links ist CMOS/TTL Logik, rechts die RS485 Leitung.<br><br>
Da nicht mehrere Sender gleichzeitig auf die Leitung aufgeschaltet sein duerfen, muss der jeweilige Sender nach Bedarf eingeschaltet werden. Dies wird auf Protokollebene definiert. Der Sender steuert das Paar voll aus, d.h. geht unbelastet auf 0V/Vcc, wobei es 3.3V, sowie 5V Bausteine gibt. Unter Last nimmt die Differential-Amplitude dann ab. Der Empfaenger braucht minimal 70mV Differenzspannung in einem Bereich  -5V...+12V. Es gibt auch Bausteine mit hoeheren Gleichtaktspannungen. Waehrend der Standard von bis zu 64 Bausteinen pro Leitung ausgeht, sind Viertelpower Bausteine erhaeltlich, wovon dann 256 auf eine Leitung gehen koennen. Die Geschwindigkeit und die Reichweite sind nicht im Standard definiert. <b>Bisher sind alle Transceiver pinkomptibel.</b>
Da nicht mehrere Sender gleichzeitig auf die Leitung aufgeschaltet sein dürfen, muss der jeweilige Sender nach Bedarf eingeschaltet werden ([http://de.wikipedia.org/wiki/Duplex_%28Nachrichtentechnik%29 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 Empfaenger 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. <b>Bisher sind alle Transceiver pinkomptibel.</b>


== Meist genutzte RS485-Bausteine ==
== Meist genutzte RS485-Bausteine ==
* SN75176, günstig und leicht zu beschaffen, aber ein Stromfresser
* SN75176, günstig und leicht zu beschaffen, aber ein Stromfresser (28-50mA!)
* LTC485
* LTC485
* MAX485
* MAX485 Moderne CMOS-Variante mit weniger als 1mA Eigenverbrauch
* ADM485  
* ADM485  
* ADM483 von AD, 250kBit, supply 350uA plus load, SO8, 1.14$@100
* ADM483 von Analog Devics, 250kBit, supply 350uA plus load, SO8, 1.14$@100
 
== Speziellere Ausführungen ==


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


== weitergehende Ueberlegungen ==
== Weitergehende Überlegungen ==
 
* Failsafe - was sieht ein Empfaenger, wenn kein Sender auf dem Bus ist. Man kann einen Leiter mit 12k gegen GND ziehen, den anderen Leiter mit 12k gegen Vcc. Beachte die Wortwahl: Leiter, nicht Pin.
* Failsafe - was sieht ein Empfaenger, wenn kein Sender auf dem Bus ist. Man kann einen Leiter mit 12k gegen GND ziehen, den anderen Leiter mit 12k gegen Vcc. Beachte die Wortwahl: Leiter, nicht Pin.
* Verlustleistung - die Terminierung (100..120 Ohm) verbraucht einiges an Strom, den man mit einem 1uF in Serie unterdruecken kann.
* Verlustleistung - die Terminierung (100..120 Ohm) verbraucht einiges an Strom, den man mit einem 1uF in Serie unterdrücken kann (AC-Terminierung, siehe Artikel [[Wellenwiderstand]]).
* Galvanische Trennung - speziell bei ausgedehnten Systemen koennen die -5...+12V Gleichtaktbereich nicht genuegen, speziell in einem industriellen Umfeld nicht. Dann sollte man eine galvanische Trennung einfuehren und den GND als Referenz im Kabel mitfuehren.
* [[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 und die Masse als Referenz im Kabel mitführen.
 
== Weblinks ==


== weitere Literatur ==
* [http://de.wikipedia.org/wiki/RS485 RS485 auf Wikipedia]
Die Application Notes des Herstellers Texas Instruments sind sehr gut. Ich empfehle hier
* Slla036b (TI) Interface Circuits for TIA/EIA-485 (RS-485)
* Slla036b (TI) Interface Circuits for TIA/EIA-485 (RS-485)
* Slla70c (TI) 422 and 485 Standards Overview and System Configurations
* Slla70c (TI) 422 and 485 Standards Overview and System Configurations

Version vom 9. Januar 2010, 15:34 Uhr

Einleitung

RS485 ist die physikalische Spezifikation einer bidirektionalen Verbindung ueber ein differentiales Leitungspaar. Die Leitung ist idealerweise ein twisted Pair mit 120 Ohm Wellenwiderstand. Es können zwei oder mehrere Teilnehmer angeschlossen sein. Der Leitungsaufbau ist immer eine Linie, kein Stern und ohne Stichleitungen. Die Leitung ist idealerweise an beiden Enden terminiert. Idealerweise bedeutet hier für höhere Geschwindigkeiten und Distanzen zwingend, bei kurzen Leitungen und niedrigen Geschwindigkeiten nicht, siehe Artikel Wellenwiderstand. Das Interface ist ein RS485 Transceiver, der beinhaltet einen Sender und einen Empfaenger.
Transceiver
Links ist CMOS/TTL Logik, rechts die RS485 Leitung.

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 Empfaenger 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 pinkomptibel.

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

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

Weitergehende Überlegungen

  • Failsafe - was sieht ein Empfaenger, wenn kein Sender auf dem Bus ist. Man kann einen Leiter mit 12k gegen GND ziehen, den anderen Leiter mit 12k gegen Vcc. Beachte die Wortwahl: Leiter, nicht Pin.
  • Verlustleistung - die Terminierung (100..120 Ohm) verbraucht einiges an Strom, den man mit einem 1uF 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 und die Masse als Referenz im Kabel mitführen.

Weblinks

  • 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
  • AN-1057 (National) Ten Ways to Bulletproof RS-485 Interfaces