Aus Raspberry Pi Geek 02/2020

Serielle Kommunikation über RS-485 mit dem Raspberry Pi (Seite 3)

Nun gilt es, jeweils einen der Transceiver-Chips mit jeweils einem der Mini-Rechner zu verbinden. Auf dem Chip markiert eine kleine Kuhle Pin 1 (Abbildung 6). Beim Aufbau müssen Sie nicht unbedingt die Jumper in einer Linie direkt am Chip platzieren. Es genügt, sie nach hinten hin zu verteilen, sodass ausreichend Platz für die Verkabelung bleibt (Abbildung 7).

Abbildung 6: Ein kleiner Punkt markiert auf dem TI SN65HVD1782 den Pin 1. (Bild: Texas Instruments)

Abbildung 6: Ein kleiner Punkt markiert auf dem TI SN65HVD1782 den Pin 1. (Bild: Texas Instruments)

Abbildung 7: Der Testaufbau für RS-485 auf dem Breadboard zwischen zwei Raspberry Pi.

Abbildung 7: Der Testaufbau für RS-485 auf dem Breadboard zwischen zwei Raspberry Pi.

Im Beispiel bleibt der Receiver immer aktiv, sodass der RasPi sich auch selbst beim Senden hört. Um die Verbindung zu starten, melden Sie sich nun an beiden Systemen an, entweder lokal oder über SSH. Achten Sie beim Aufbau der Verbindung auch wieder darauf, dass die auf beiden Systemen aufgerufenen Kommandos exakt übereinstimmen (Listing 3).

Eingaben bei pitwo werden verworfen, da wir ihn nicht auf dem RS-485-Bus aktiviert haben. Der UART schreibt daher ins Leere, es erscheint nichts im Terminalfenster. Eingaben auf pione sollten hingegen sowohl dort (Abbildung 8) als auch auf pitwo auftauchen. Die Kommunikation über RS-485 steht damit.

Abbildung 8: Das Picocom-Terminal auf <code>pione</code>. Eingaben erscheinen sowohl lokal als auch auf dem via RS-485 angebundenen <code>pitwo</code>.

Abbildung 8: Das Picocom-Terminal auf pione. Eingaben erscheinen sowohl lokal als auch auf dem via RS-485 angebundenen pitwo.

Fazit

Wie Sie gesehen haben, ist RS-485 auf dem Raspberry Pi kein Hexenwerk. Der einfache Aufbau ließe sich nun weiter ausbauen und mit etwas Finesse ausstatten. Sie könnten beispielsweise einen GPIO jedes RasPi dazu verwenden, um den Pin Driver Enable zu schalten (high, um auf den Bus zu schreiben; low, um die Ausgabe auf den RS-485-Bus zu deaktivieren). Dazu sollten sich die zwei Mini-Rechner unter Ihrer Regie auf ein Protokoll einigen, das regelt, wann welcher RasPi schreiben darf, um Kollisionen zu vermeiden.

Denkbar wäre etwa eine Master/Slave-Architektur. Ein Master auf dem Bus übernimmt die Kontrolle über die Kommunikation. Er adressiert einen der Slaves und gibt ihm dann einen definierten Zeitraum zum Antworten. Der Master lauscht anschließend auf dem Bus. Antwortet der Slave innerhalb der vorgegebenen Zeitspanne nicht, indem er das erste Byte sendet, hat er das Rederecht verwirkt, und der Master ist wieder am Zug. 

Infos

  1. Serielle Kommunikation (1): Maximilian Batz, “Serientäter”, RPG 11-12/2019, S. 18, https://www.raspi-geek.de/42954
  2. Datenblatt zum TI SN65HVD1782: http://www.ti.com/product/SN65HVD1782?dcmp=dsproject&hqs=pf
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 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