PiBridge – die Kommunikationsschnittstelle der Revolution Pi Module

In unseren früheren Blogbeiträgen wurde sie immer wieder erwähnt: Die PiBridge. Aber was genau verbirgt sich hinter diesem Backplane-Bus?

  • Buskopplung der Erweiterungsmodule durch einen 20-poligen Systemstecker
  • Bis zu 10 Erweiterungsmodule können mit dem RevPi Core verbunden werden
  • Bis zu 2 Gateways (RevPi Gate Module) können verbaut werden
  • 4 digitale Signalleitungen zur Steuerung der initialen Modul- und Positionserkennung
  • 2 Signalleitungen für einen schnellen RS485-Datenkanal
  • 8 Signalleitungen für jeweils einen eigenständigen bidirektionalen 100 Mbps Ethernet-Datenkanal rechts und links des RevPi Core
  • Die Zykluszeit bei Kommunikation über beide Ethernet-Kanäle zu RevPi Gate Modulen mit jeweils 512 Byte Daten in Schreibrichtung und 512 Byte Daten in Leserichtung beträgt in der Standardeinstellung 5 ms
  • Die Zykluszeit der RS485-Kommunikation mit 3 digitalen Modulen (RevPi DIO, also 3 x 14 Inputs und 3 x 14 Outputs plus Statusdaten pro Kanal) beträgt maximal 10 ms

Startphase

Beim Starten des Systems (oder einem Neustart der PiBridge) befinden sich alle angeschlossenen Module in einem „Erkennungsstatus“. Nur das unmittelbar rechts neben dem RevPi Core installierte Modul wird für die RS485-Kommunikation freigeschaltet und tauscht mit dem PiControl Treiber Statusdaten aus. Der Treiber erkennt den Modul-Typ und vergleicht ihn mit dem in einer Konfigurationsdatei vorliegenden Modul-Typ (die Datei musst Du zuvor mit PiCtory, dem grafischen Konfigurationstool erstellen – PiCtory wird in einem zukünftigen Newsletter näher erläutert). Bei Übereinstimmung bekommt das Erweiterungsmodul seine spezifischen Konfigurationsdaten, darunter auch eine Moduladresse im System. Ist ein Modul fertig erkannt und konfiguriert, so schaltet es über die Steuerleitungen das nächstgelegene Nachbarmodul auf seiner Seite durch. Sind so alle Module der rechten Seite konfiguriert, fährt RevPi Core mit der Freischaltung, Erkennung und Konfiguration der linken Seite fort bis alle Module erkannt und konfiguriert sind. Danach wird der Busabschluss auf den jeweils letzten Modulen zugeschaltet und die zyklische RS485 Kommunikation mit hoher Übertragungsrate gestartet. Parallel dazu wird die zyklische Kommunikation über die Ethernet-Kanäle gestartet.

Wenn die vorgefundene Konfiguration von der Konfigurationsdatei abweicht, läuft PiControl in einen Fehlerstatus, was durch LED-Anzeigen signalisiert wird.

PiBridge Pinbelegung Abbildung

Zyklische Übertragung auf den Ethernet-Kanälen

Die Ethernet-Kanäle der PiBridge werden aktuell ausschließlich für die RevPi Gate Module verwendet, um pro Zyklus bis zu 512 Byte Daten jeweils in Ein- und Ausgaberichtung zwischen RevPi Core und RevPi Gate zu übertragen. Unsere IO-Module sind nicht an diesen Kommunikationskanal angeschlossen, sondern leiten den Kanal einfach zum nächsten Modul über den PiBridge Stecker weiter. Da für die Module rechts und links neben dem RevPi Core jeweils unabhängige Ethernet-Kanäle existieren, kann auf jeder Seite des RevPi Core jeweils ein Gateway angeschlossen werden.
Zukünftige Erweiterungsmodule, die die Ethernet-Kanäle für große Datenmengen nutzen sollen, können über einen integrierten Ethernet Switch jeweils einen Kanal anzapfen und somit mehr als ein Modul mit Ethernet-Anbindung pro Seite ermöglichen.
Da die RevPi Gate Module keine integrierte Switchfunktionen besitzen und ihr Abschlusswiderstand auf dem RS485-Kanal immer zugeschaltet ist, müssen sie immer am äußeren Steckplatz des Revolution Pi Systems platziert werden.

Zyklische Übertragung auf den RS485-Kanälen

Auf dem RS485-Kanal werden während der Startphase des Systems Status- und Konfigurationsdaten übertragen. Da zu diesem Zeitpunkt noch nicht bekannt ist, welche Module jeweils am Ende der RS485-Leitung montiert sind, ist der Busabschluss offen und die Übertragungsrate reduziert. Nach Abschluss der Startphase sind die jeweils letzten Geräte am Bus bekannt und bekommen das Kommando zur Einschaltung des Abschlusswiderstands (Ausnahme sind hier die RevPi Gate Module, die diesen Busabschluss immer eingeschaltet haben). Danach schalten alle Busteilnehmer die Datenübertragungsrate auf den maximalen Wert von 115,2 kbit/s und tauschen zyklisch die Ein- und Ausgangsdaten aus. Dieser Datenaustausch verwendet ein für diesen Zweck definiertes eigenes (proprietäres) Protokoll, das für kleine Datenmengen von wenigen Bytes pro Telegramm optimiert wurde. Für die Experten: Wir haben das Verhältnis von Payload zu Gesamtlänge durch minimalen Protokoll Overhead verbessert.