bidib BusAufgleisrichtungBoosterGBMFeaturesRailcomMobaLiStXpressNetDebugLizenz
Pfad: mknetz/Eisenbahn/Digital/bidib
Impressum
Autor: Klaus Merkert
Letzte Änderung dieser Seite: 06.12.2018 09:50:55 1846
Bus

Bemerkungen zum Bus

Terminierungs-Jumper richtig setzen.

Der bidiBus (Belegung) überträgt auch das DCC-Signal.

Loggen des Datenverkehrs zwischen Host und Interface

Unter Linux kann man mit Hilfe von interceptty den Datenverkehr mitschneiden.

  1. sudo interceptty -s 'ispeed 115200 ospeed 115200' /dev/ttyUSB0 /dev/rocrail
  2. im Verzeichnis /tty habe ich rocrail --> /dev/pts/1 gefunden
  3. in Rocrail/Eigenschaften habe ich beim bidib-Interface als Gerät /dev/pts/1 eingetragen und Rocrail neu gestartet

Typischer Protokollstart

Die Ausgabe von interceptty nach dem Start von Rocrail sah folgendermaßen aus. '<' gibt anscheinend die Richtung zum Interface, '>' die Richtung zu Rocrail an.

< 0xfe
< 0x07
< 0x00
< 0x00
< 0x18
< 0x2e (.)
< 0x8a
< 0x40 (@)
< 0xc1
< 0xf0
< 0xfe
< 0xfe
< 0x03
< 0x00
< 0x00
< 0x01
< 0xd6
< 0xfe
> 	0xfe
> 	0x05
> 	0x00
> 	0x00
> 	0x81
> 	0xfd
> 	0xde
> 	0xaf
> 	0x89
> 	0xfe
< 0xfe
< 0x03
< 0x00
< 0x00
< 0x09
< 0x14
< 0xfe
< 0xfe
< 0x07
< 0x00
< 0x00
< 0x18
...

In der Protokollbeschreibung wird der grundsätzliche Aufbau einer 'MESSAGE' beschrieben. Wird über die serielle Schnittstelle übertragen, so findet man unter BiDiB, Übertragung über serielle Schnittstelle die genaue Beschreibung. Serielle Pakete werden durch [MAGIC]=0xFE begrenzt.

Der erste Rahmen

fe 07 00 00 18 2e 8a 40 c1 f0 fe

besteht aus 7 (07) Bytes (ohne CRC, ohne MSG_Length), der Adress-Stack ist leer (00), MSG_NUM = 0 bedeutet Broadcast, die Nachricht ist vom Typ MSG_SYS_CLOCK (18), TCODE0 2e gibt die Minute 46 (2x16+14), TCODE1 8a gibt die Stunde 10 (0x16+10), TCODE2 40 gibt den Wochentag Montag (0), TCODE3 c1 gibt den Beschleunigsfaktor 1 (0x16+1) an, CRC-8/MAXIM über 070000182e8a40c1 berechnet ergibt f0.

Der zweite Downlink-Rahmen

fe 03 00 00 01 d6 fe

enthält die Broadcast-Nachricht MSG_SYS_GET_MAGIC. Wer will kann mit obigem Link den CRC-Wert d6 nachrechnen.

Der Knoten soll mit SYS_MAGIC (aus bidib_messages.h: BIDIB_SYS_MAGIC 0xAFFE) antworten.

fe 05 00 00 81 fd de af 89 fe

Zunächst fällt auf, dass die CRC-Prüfung scheinbar misslingt. Das liegt am Byte-Stuffing. Ersetzt man fd de durch fe, ist der CRC-Wert in Ordnung. Die eigentliche Nachricht ist also ohne frame-Begrenzer:

05 00 00 81 fe af 89

In bidib_messages.h findet man MSG_SYS_MAGIC = 81 gefolgt von fe af.

Weiter geht's mit

fe 03 00 00 09 14 fe

Die Nachricht ist MSG_SYS_RESET. Das entspricht der Beschreibung eines typischen Protokollstarts.

Es folgen

fe 07 00 00 18 2e 8a 40 c1 f0 fe

MSG_SYS_CLOCK mit Parametern

fe 03 00 00 0b a8 fe

MSG_NODETAB_GETALL

Das Interface antwortet

04 00 00 88 00 46 fe

MSG_NODETAB_COUNT 0. Es fällt auf, dass am Anfang der Frame-Flag fe fehlt.

Rocrail insistiert

fe 03 00 00 0b a8 fe

MSG_NODETAB_GETALL

Das Interface antwortet

04 00 01 88 01 b3 fe

MSG_NODETAB_COUNT 1 Seltsam, warum nicht gleich? MSG_NUM beginnt zu zählen

rocrail:

fe 03 00 00 0c 2b fe

MSG_NODETAB_GETNEXT

Interface:

0c 00 02 89 01 00 da 00 0d 68 00 97 ee 5d fe

MSG_NODETAB, version 01, local num 00, Class-ID: 1101 1010, Class-ID-Erw. 0, Vendor-ID: od (Public Domain & Do-It-Yourself Decoders), Produktkennung: 68 00 97 ee, MSG_NUM = 2

rocrail:

fe 03 00 00 06 55 fe

MSG_SYS_GET_SW_VERSION

fe 0c 00 00 64 00 00 00 00 00 00 00 00 00 49 fe

MSG_CS_DRIVE , Fahrbefehl siehe Downlink: Nachrichten für Gleisausgabe

fe 04 00 01 12 65 93 fe

MSG_FEATURE_GET 65, MSG_NUM = 1

fe 04 00 02 62 ff ae fe

MSG_CS_SET_STATE BIDIB_CS_STATE_QUERY (ff), MSG_NUM = 2

fe 03 00 03 32 df fe

MSG_BOOST_QUERY, MSG_NUM = 3

fe 05 00 04 19 00 00 21 fe

MSG_STRING_GET 00 00, MSG_NUM = 4

fe 05 00 05 19 00 01 f0 fe

MSG_STRING_GET 00 01, MSG_NUM = 5

fe 04 00 06 12 fe d8 fe Byte-Stuffing!

MSG_FEATURE_GET fe, MSG_NUM = 6

fe 03 00 07 03 04 fe

MSG_SYS_ENABLE , MSG_NUM = 7

fe 03 00 08 0c 5d fe

MSG_NODETAB_GETNEXT, MSG_NUM = 8

Interface:

06 00 03 85 03 04 02 fb fe

MSG_SYS_SW_VERSION 03 04 02, MSG_NUM = 3

06 00 04 e2 00 00 01 81 fe

MSG_CS_DRIVE_ACK 00 00 01, Befehl mit Adresse 0 (broadcast?) wird demnächst an Gleis gelegt, MSG_NUM = 4

05 00 05 90 65 00 e7 fe

MSG_FEATURE 65 00, MSG_NUM = 5

....

Folgender Ausschnitt zeigt, dass sich (Vollduplex!) up- und downstream-Pakete überlagern können.

> 	0xfe
> 	0x09
> 	0x00
> 	0x08
> 	0xb2
> 	0x00
< 0xfe
< 0x03
< 0x00
< 0x09
< 0x11
< 0xf9
< 0xfe
> 	0x1b
> 	0x01
> 	0xa7
> 	0x02
> 	0x17
> 	0xbb
> 	0xfe

Ausgabe des Skripts bidibmsg.py

Aufruf: sudo interceptty -s 'ispeed 115200 ospeed 115200' /dev/ttyUSB0 /dev/rr | ./bidibmsg.py

Dabei wurden die Nachrichten MSG_BM_SPEED, MSG_CS_STATE, MSG_CS_SET_STATE, MSG_BM_DYN_STATE mit einer Nummer aus msgex = {0xa6,0xe1,0x62,0xaa} ausgefiltert.

2018-12-05 19:51:09.410325 < 07000018339342c100  0x18 MSG_SYS_CLOCK 19:51, Mittwoch, 1
2018-12-05 19:51:09.430411 < 03000001d6  0x01 MSG_SYS_GET_MAGIC
2018-12-05 19:51:09.439490 >          05000081feaf89  0x81 MSG_SYS_MAGIC 1:0xFE 2:0xAF
2018-12-05 19:51:09.460807 < 0300000914  0x09 MSG_SYS_RESET
2018-12-05 19:51:10.461912 < 0300000ba8  0x0b MSG_NODETAB_GETALL
2018-12-05 19:51:10.479035 >          040000880046  0x88 NODETAB_COUNT 0
2018-12-05 19:51:10.593310 < 0300000ba8  0x0b MSG_NODETAB_GETALL
2018-12-05 19:51:10.606917 >          0400018801b3  0x88 NODETAB_COUNT 1
2018-12-05 19:51:10.633732 < 0300000c2b  0x0c MSG_NODETAB_GETNEXT
2018-12-05 19:51:10.638934 >          0c0002890100da000d680097ee5d  0x89 MSG_NODETAB version: 1 local: 0 class: 11011010 0 vid: 0d pid: 680097ee
2018-12-05 19:51:10.664029 < 0300000655  0x06 MSG_SYS_GET_SW_VERSION
2018-12-05 19:51:10.664153 < 0c00006400000000000000000049  0x64 MSG_CS_DRIVE 0, 14, 000000, rev, 0, 0 0000, 0000 0000, 0000 0000, 0000 0000
2018-12-05 19:51:10.664264 < 040001126593  0x12 MSG_FEATURE_GET FEATURE_GEN_WATCHDOG
2018-12-05 19:51:10.664352 < 03000332df  0x32 MSG_BOOST_QUERY
2018-12-05 19:51:10.664398 < 05000419000021  0x19 MSG_STRING_GET 0 0
2018-12-05 19:51:10.664449 < 050005190001f0  0x19 MSG_STRING_GET 0 1
2018-12-05 19:51:10.664497 < 04000612fed8  0x12 MSG_FEATURE_GET FEATURE_FW_UPDATE_MODE
2018-12-05 19:51:10.664543 < 0300070304  0x03 MSG_SYS_ENABLE
2018-12-05 19:51:10.664581 < 0300080c5d  0x0c MSG_NODETAB_GETNEXT
2018-12-05 19:51:10.685999 >          06000385030402fb  0x85 MSG_SYS_SW_VERSION 4.3.2
2018-12-05 19:51:10.686113 >          060004e200000181  e2 MSG_CS_DRIVE_ACK
2018-12-05 19:51:10.686168 >          0500059065141b  0x90 MSG_FEATURE FEATURE_GEN_WATCHDOG 20
2018-12-05 19:51:10.686252 >          040007b080eb  0xb0 MSG_BOOST_STAT 0x80 BIDIB_BST_STATE_ON
2018-12-05 19:51:10.686311 >          090008b2001e01a6021b61  0xb2 MSG_BOOST_DIAGNOSTIC 72mA 16.6V 27°C
2018-12-05 19:51:10.686435 >          1500099500000f47424d426f6f7374204d6173746572da  0x95 MSG_STRING 0 0 15 'GBMBoost Master'
2018-12-05 19:51:10.686508 >          06000a9500010097  0x95 MSG_STRING 0 1 0 ''
2018-12-05 19:51:10.686559 >          04000b91feb2  0x91 MSG_FEATURE_NA FEATURE_FW_UPDATE_MODE
2018-12-05 19:51:10.686603 >          04000c8bff9d  0x8b MSG_NODE_NA node: 255
2018-12-05 19:51:10.686647 >          04000da001bf  0xa0 MSG_BM_OCC 1
2018-12-05 19:51:10.686690 >          04000ea00786  0xa0 MSG_BM_OCC 7
2018-12-05 19:51:10.686737 >          06000fa9000000db  0xa9 MSG_BM_CONFIDENCE void: 0 freeze: 0 nosignal: 0
2018-12-05 19:51:10.704493 < 03000911f9  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.704527 < 04000a22017b  0x22 MSG_BM_MIRROR_OCC 1
2018-12-05 19:51:10.704541 < 04000b22070d  0x22 MSG_BM_MIRROR_OCC 7
2018-12-05 19:51:10.717801 >          05001090001066  0x90 MSG_FEATURE FEATURE_BM_SIZE 16
2018-12-05 19:51:10.734900 < 03000c0327  0x03 MSG_SYS_ENABLE
2018-12-05 19:51:10.755439 < 05000d2000107f  0x20 MSG_BM_GET_RANGE 0 16
2018-12-05 19:51:10.765676 < 05000e1302019f  0x13 MSG_FEATURE_SET FEATURE_BM_SECACK_AVAILABLE 1
2018-12-05 19:51:10.765786 < 05000f13031476  0x13 MSG_FEATURE_SET FEATURE_BM_SECACK_ON 20
2018-12-05 19:51:10.765872 >          070011a200108200f8  0xa2 MSG_BM_MULTIPLE start: 0 size: 16 10000010 00000000 
2018-12-05 19:51:10.775726 < 07001021001082004a  0x21 MSG_BM_MIRROR_MULTIPLE start: 0 size: 16 10000010 00000000 
2018-12-05 19:51:10.781868 >          05001290020133  0x90 MSG_FEATURE FEATURE_BM_SECACK_AVAILABLE 1
2018-12-05 19:51:10.781970 >          050013900314da  0x90 MSG_FEATURE FEATURE_BM_SECACK_ON 20
2018-12-05 19:51:10.795730 < 0300111163  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.797646 >          0500149001016f  0x90 MSG_FEATURE FEATURE_BM_ON 1
2018-12-05 19:51:10.816033 < 0300121136  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.829743 >          050015900201b5  0x90 MSG_FEATURE FEATURE_BM_SECACK_AVAILABLE 1
2018-12-05 19:51:10.846506 < 03001311f2  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.861755 >          0500169003145b  0x90 MSG_FEATURE FEATURE_BM_SECACK_ON 20
2018-12-05 19:51:10.876836 < 030014119c  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.893761 >          05001790080155  0x90 MSG_FEATURE FEATURE_BM_ADDR_DETECT_AVAILABLE 1
2018-12-05 19:51:10.907353 < 0300151158  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.909756 >          0500189009010b  0x90 MSG_FEATURE FEATURE_BM_ADDR_DETECT_ON 1
2018-12-05 19:51:10.927661 < 030016110d  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.941805 >          050019900a01d1  0x90 MSG_FEATURE FEATURE_BM_ADDR_AND_DIR 1
2018-12-05 19:51:10.957999 < 03001711c9  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:10.973790 >          05001a900d0137  0x90 MSG_FEATURE FEATURE_BM_CV_AVAILABLE 1
2018-12-05 19:51:10.988335 < 03001811d1  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.005777 >          05001b900e01ed  0x90 MSG_FEATURE FEATURE_BM_CV_ON 1
2018-12-05 19:51:11.018656 < 0300191115  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.021701 >          05001c900b0194  0x90 MSG_FEATURE FEATURE_BM_ISTSPEED_AVAILABLE 1
2018-12-05 19:51:11.038933 < 03001a1140  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.053676 >          05001d900c0a55  0x90 MSG_FEATURE FEATURE_BM_ISTSPEED_INTERVAL 10
2018-12-05 19:51:11.069203 < 03001b1184  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.085554 >          05001e90110198  0x90 MSG_FEATURE FEATURE_BST_CUTOUT_AVAIALABLE 1
2018-12-05 19:51:11.099654 < 03001c11ea  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.101629 >          05001f90120142  0x90 MSG_FEATURE FEATURE_BST_CUTOUT_ON 1
2018-12-05 19:51:11.119901 < 03001d112e  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.133702 >          050020901308c8  0x90 MSG_FEATURE FEATURE_BST_TURNOFF_TIME 8
2018-12-05 19:51:11.150298 < 03001e117b  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.165700 >          05002190141e69  0x90 MSG_FEATURE FEATURE_BST_INRUSH_TURNOFF_TIME 30
2018-12-05 19:51:11.180652 < 03001f11bf  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.197701 >          050022901501f9  0x90 MSG_FEATURE FEATURE_BST_AMPERE_ADJUSTABLE 1
2018-12-05 19:51:11.211044 < 030020118a  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.213634 >          0500239016aaac  0x90 MSG_FEATURE FEATURE_BST_AMPERE 170
2018-12-05 19:51:11.231172 < 030021114e  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.245568 >          0500249017003f  0x90 MSG_FEATURE FEATURE_BST_CURMEAS_INTERVAL 0
2018-12-05 19:51:11.261563 < 030022111b  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.277696 >          050025901a0039  0x90 MSG_FEATURE FEATURE_BST_INHIBIT_AUTOSTART 0
2018-12-05 19:51:11.292034 < 03002311df  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.293700 >          050026901b0075  0x90 MSG_FEATURE FEATURE_BST_INHIBIT_LOCAL_ONOFF 0
2018-12-05 19:51:11.302182 < 03002411b1  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.309642 >          050027906b0112  0x90 MSG_FEATURE FEATURE_GEN_DRIVE_BUS 1
2018-12-05 19:51:11.332559 < 0300251175  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.341661 >          050028906c01e6  0x90 MSG_FEATURE FEATURE_GEN_LOK_LOST_DETECT 1
2018-12-05 19:51:11.362880 < 0300261120  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.373585 >          050029906d0311  0x90 MSG_FEATURE FEATURE_GEN_NOTIFY_DRIVE_MANUAL 3
2018-12-05 19:51:11.393220 < 03002711e4  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.405595 >          05002a906514f1  0x90 MSG_FEATURE FEATURE_GEN_WATCHDOG 20
2018-12-05 19:51:11.433752 < 03002811fc  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.437522 >          05002b90fc18ac  0x90 MSG_FEATURE FEATURE_STRING_SIZE 24
2018-12-05 19:51:11.464036 < 0300291138  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.469551 >          05002c901c053f  0x90 MSG_FEATURE FEATURE_BM_DYN_STATE_INTERVAL 5
2018-12-05 19:51:11.484244 < 03002a116d  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.501634 >          05002d906a0371  0x90 MSG_FEATURE FEATURE_GEN_POM_REPEAT 3
2018-12-05 19:51:11.514604 < 03002b11a9  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.517484 >          05002e906e017e  0x90 MSG_FEATURE FEATURE_GEN_START_STATE 1
2018-12-05 19:51:11.535053 < 03002c11c7  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.549505 >          05002f906f006b  0x90 MSG_FEATURE FEATURE_GEN_RCPLUS_AVAILABLE 0
2018-12-05 19:51:11.565299 < 03002d1103  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.581495 >          050030901d00ee  0x90 MSG_FEATURE FEATURE_BM_RCPLUS_AVAILABLE 0
2018-12-05 19:51:11.595677 < 03002e1156  0x11 MSG_FEATURE_GETNEXT
2018-12-05 19:51:11.597452 >          04003191ff58  0x91 MSG_FEATURE_NA FEATURE_EXTENSION
2018-12-05 19:52:00.412085 < 07004d18349342c1b9  0x18 MSG_SYS_CLOCK 19:52, Mittwoch, 1
2018-12-05 19:52:52.895239 < 0c006f64d2040201000000000006  0x64 MSG_CS_DRIVE 1234, 28, 000001, rev, 0, 0 0000, 0000 0000, 0000 0000, 0000 0000
2018-12-05 19:52:52.898762 >          060071e2d2040153  e2 MSG_CS_DRIVE_ACK
2018-12-05 19:52:52.905358 < 0c007064d2040201000000000004  0x64 MSG_CS_DRIVE 1234, 28, 000001, rev, 0, 0 0000, 0000 0000, 0000 0000, 0000 0000
2018-12-05 19:52:52.905423 < 0c007164d204023e001000000020  0x64 MSG_CS_DRIVE 1234, 28, 111110, rev, 0, 1 0000, 0000 0000, 0000 0000, 0000 0000
2018-12-05 19:52:52.914820 >          060072e2d204011d  e2 MSG_CS_DRIVE_ACK
2018-12-05 19:52:52.914879 >          060073e2d20401d0  e2 MSG_CS_DRIVE_ACK
2018-12-05 19:52:52.931018 >          060075a301d2849f  0xa3 MSG_BM_ADDRESS 1 fwd 1234 
2018-12-05 19:53:00.429297 < 07007718359342c114  0x18 MSG_SYS_CLOCK 19:53, Mittwoch, 1
2018-12-05 19:53:41.475338 < 03009204bb  0x04 MSG_SYS_DISABLE

Links