Support für BiDiB

BiDiBus-Logger

Zum Test einer BiDiBus-Implementierung ist beim Arbeitskreis BiDiB ein Datenlogger vorhanden, welcher gezielt Nachrichten an einzelne oder mehrere Knoten mitloggen kann und diese auf einem PC ausgibt. Dabei werden die Adresse, die Nachrichtenlänge, die Sequenznummer und der Nachrichtentyp in Klartext ausgegeben.


00:04:0100#17|?MAGIC

Dieses Beispiel zeigt eine Nachricht vom Knoten 0, die Länge ist 4, es ist an Knoten 01 00 adressiert, es ist die 23. Nachricht (0x17 = 23), und es wird die SYS_MAGIC angefragt.

Der Logger (Analysewerkzeug) wird passiv in den BiDiBus eingesteckt und hört dort die Nachrichten mit, dekodiert sie und gibt sie am PC aus. Filterfunktionen erlauben das gezielte Aufspüren von Kommunikationsproblemen:

Filtern nach Nachrichtenquelle:
Kommando: TT [Node_Addr]
Mit dieser Funktion lassen sich Nachrichten hinsichtlich der lokalen Knotenadresse (=Token) filtern. Der Logger zeigt nur die Nachrichten an, die nach einem aktivierten Token gesendet werden.
Beispiel: TT 0<cr> TT 3<cr> TT 15<cr>
Damit werden nur die Nachrichten angezeigt, welche von Knoten 0 (Interface), 3 und 15 gesendet werden.
Filtern nach Nachrichtenziel:
Kommando: TD [Node_Addr]
Mit dieser Funktion lassen sich Nachrichten des Interfaces hinsichtlich der lokalen Zieladresse filtern. Damit kann man z. B. nur die Nachrichten anzeigen, die von Knoten 0 (Interface) an einen bestimmten Knoten gesendet werden.
Anzeigen der Nachrichten-Sequenznummer:
Kommando: TM [0|1]
Mit dieser Funktion wird festgelegt, ob die jeweilige Sequenznummer mit ausgegeben werden soll. In der Ausgabe wird eine Sequenznummer mit einem vorangestelltem '#'-Zeichen gekennzeichnet.
Anzeigen der Nachrichten-Länge:
Kommando: TLE [0|1]
Mit dieser Funktion wird festgelegt, ob die jeweilige Länge mit ausgegeben werden soll.
Anzeigen des Logon-Prozesses:
Kommando: TLO [0|1]
Hierbei der Logon-Prozess angezeigt. Neben der Dekodierung der Logon-Nachrichten wird für jeden unbeantworteten Logon-Prompt ein '.' ausgegeben. Dekodierte Logon-Nachrichten werden mit FF als Knotenadresse dargestellt.
Anzeigen unbeantworteter Tokens:
Kommando: TUT [0|1]
Tokens, nach denen keine Antwort des Knotens erfolgt, werden angezeigt.
Anzeige in Hex:
Kommando: TH [0|1]
Die Nachricht wird zusätzlich in Hex dargestellt.
Anzeige in Text (verbose):
Kommando: TV [0|1]
Die Nachricht wird dekodiert, wobei mit Rücksicht auf die Ausgabebandbreite Abkürzungen verwendet werden.
Triggermarke für Node
Kommando: TN [node]
Es wird eine Triggermarke ausgegeben, wenn Knoten node Sendeerlaubnis hat.

Filterfunktionen lassen sich kombinieren, so sorgt z. B. die Aktivierung von TT0 und TT2 zusammen mit TD2 für die (alleinige) Anzeige aller Nachrichten, welche zum/vom Knoten 2 gesendet werden.

Neben dem Logging kann der BiDiBus-Logger auch Triggermarken zum Triggern eines Oszilloskops erzeugen. Damit kann man auf bestimmte Buszustände oder auch gezielt auf Nachrichten triggern und so Fehler einkreisen.

AusgangTrigger
PORTK.0BiDiBus Logonaufforderung
PORTK.1BiDiBus Tokenbestätigung, PONG
PORTK.2BiDiBus CRC-Fehler (ungültiges Paket am Bus)
PORTK.3BiDiBus Längenfehler (ungültiges Paket am Bus)
PORTK.6BiDiBus Tokenmarke (wenn der mit TN ausgewählte Knoten senden darf)
PORTK.7BiDiBus Busfehler, ungültiges Byte (mit 9.Bit = high)

BiDiBus-Spy

Ergänzend zum Logger ist auch ein Spy-Mode verfügbar. Hierbei wird die Knotenstruktur erfaßt sowie ausgewählte Nachrichten ausgewertet und deren Bezug zueinander dargestellt. Dabei werden auch verschachtelte Strukturen erfaßt.

Einschalten Spy:
Kommando: S [0|1]
An-/ Abschalten des Spymodes
Anzeige Knotenliste:
Kommando: SN
Auflistung aller erkannten Knoten mit ihrer lokalen Busadresse und (sofern vorhanden) den Username der Baugruppe
Anzeige Antwortverhalten MSG_PING/MSG_PONG:
Kommando: SP [0|1]
Eine Nachricht MSG_PING an einen Knoten wird mit Zeitstempel aufgezeichnet. Bei der zugehörigen MSG_PONG wird dann die Zeitdifferenz zum vorherigen Ping mit ausgegeben.
Anzeige Antwortverhalten MSG_CS_STATE:
Kommando: SS [0|1]
Eine Nachricht MSG_CS_STATE an einen Knoten wird mit Zeitstempel aufgezeichnet. Bei der zugehörigen Quittung wird dann die Zeitdifferenz zum vorherigen State mit ausgegeben. Hiermit kann die Regelmäßigkeit von Watchdog-Ansteuerungen kontrolliert werden.
Anzeige Knotenliste:
Kommando: SD [0|1]
Eine Nachricht MSG_CS_DRIVE an einen Knoten wird mit Zeitstempel aufgezeichnet. Bei der zugehörigen Quittung wird dann die Zeitdifferenz zum vorherigen Befehl mit ausgegeben.