Aus Raspberry Pi Geek 12/2019

Serielle Kommunikation über RS-232/RS-485 (Teil 1) (Seite 4)

RS-485 unterstützt Datenraten von bis zu 10 Mbit/s über bis zu 12 Meter Entfernung, bei geringeren Datenraten sogar bis zu 1,2 Kilometer. Als Faustregel gilt: Die Geschwindigkeit in Bit/s mal die Länge in Metern sollte 108 nicht überschreiten. Ein 50 Meter langes Kabel kann man also mit maximal 2 Mbit/s betreiben. Der Standard sieht bis zu 32 Teilnehmer auf der Leitung vor, bei Einsatz spezieller Transceiver-Bausteine dürfen es auch mehr werden.

Auch RS-485 benutzt UARTs als Eingang für RS-485-Treiber, die das UART-Signal in RS-485-konforme differenzielle Signale umsetzen. Dabei gilt der binäre Zustand der Leitung als Eins oder MARK, wenn die Leitung A (auch: TX-/RX-/D-) im Hinblick auf die Leitung B (auch: TX+/RX+/D+) negativ ist. Umgekehrt liegt eine Null oder SPACE an, wenn B im Hinblick auf A negativ ist. Der RS-485-Empfänger wandelt das Eingangssignal entsprechend wieder um.

Abbildung 8 zeigt die Zustände der Leitungen für asynchrone Kommunikation mithilfe zweier UARTs, an denen auf beiden Seiten RS-485-Transceiver angeschlossen sind. Aus dem Idle Modus (Mark) wird die Leitung, wie beim UART diskutiert, auf den Space-Zustand gezogen (eine Null): das Startbit. Anschließend erfolgt die Übertragung von in diesem Fall 8 Bits sowie das Stoppbit (auch als Mark – der Zustand der logischen Eins, wie beim UART). Danach befindet sich die Leitung wieder im Ruhezustand. Mindestens ein Übergang pro gesendetem Frame stellt sicher, dass der Empfänger-UART nicht mit dem Zählen der empfangenen gleichen Bits durcheinanderkommt und “verrutscht”.

Abbildung 8: Zustände auf einer zweipoligen Leitung für asynchrone Kommunikation nach RS-485. (Bild: Wikipedia, CC-BY-SA)

Abbildung 8: Zustände auf einer zweipoligen Leitung für asynchrone Kommunikation nach RS-485. (Bild: Wikipedia, CC-BY-SA)

Da man die Treiber bei RS-485 gezielt auf die gemeinsame Leitung aufschalten kann (beispielsweise Pin Driver Enable beim Texas Instruments SN65HVD1782), gelingt bidirektionale Kommunikation auch über nur ein Leitungspaar (bei RS-485 im Halbduplex-Modus). Um Störungen zu minimieren, sind dabei üblicherweise die zwei Leitungen als Twisted Pair miteinander verdrillt. Es gibt auch Implementationen, die zwei Leitungspaare verwenden und dabei eine Master-Slave-Architektur (ein Master, mehrere Slaves) aufbauen.

RS-485 spezifiziert nur den physikalischen Layer. Der Standard gibt weder ein Kommunikationsprotokoll noch bestimmte Stecker vor, nur ein elektrisches Interface. Einige andere Protokolle, beispielsweise Modbus oder Profibus, basieren auf RS-485 und definieren Stecker und Datenübertragungsformate. Auch die DMX-Schnittstelle, die in der Bühnen- und Veranstaltungstechnik zum Steuern von Lichttechnik zum Einsatz kommt, basiert auf RS-485.

Ein wichtiger Punkt ist die Topologie des Bussystems. Der Anschluss der einzelnen Teilnehmer an den Hauptbus erfolgt über kurze Stichleitungen. Zur Vermeidung von Reflexionen sollte der Bus an beiden Seiten Abschlusswiderstände aufweisen. Nur bei sehr kurzen Leitungen, zum Beispiel für Tests auf dem Breadboard, oder sehr geringen Datenraten darf man den Abschlusswiderstand weglassen, da die Reflexionen die Datenübertragung in diesen Fällen weniger stark beeinträchtigen.

Ausblick

Damit sind die trockenen Grundlagen der seriellen Kommunikation erklärt. Ein zweiter Artikel dieser Reihe zeigt in der nächsten Ausgabe, wie man das Ganze praktisch anwendet – UART zu UART und RS-485 als Schnittstelle zwischen zwei Raspberry-Pi-Rechnern. 

Glossar

UART

Das Kürzel UART steht für Universal Asynchronous Receiver Transmitter.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben