Table of Contents
Wired network
The wired network of the Winter Train is based on a simple master-slave bus. The bus is called Abus and consist of a half-duplex hardware bus using differential signaling according to RS485. One master is controlling all traffic at the bus. Several slaves can be connected to the bus, however only one slave at a time is selected by the master for transmission. Master and slaves are implemented as various types of Arduinos.
The master is further connected to a Raspberry PI providing web access to the Abus network.
Abus Node ID
Slaves are identified by a one byte identifier as follows:
ID | Node name | Description |
---|---|---|
70 | FEC1 | Field Element Controller and RBC communication module |
Abus Package specification
An Abus package consists of a total of 20 bytes:
Index | Type | Usage |
---|---|---|
0 | byte | Destination address |
1 | byte | Sender address |
2 | byte | Package type |
3 - 19 | Payload as per package type |
Modul RBC_COMM / FEC1
This module is equipped with a radio module and is used as communication link between the trains (OBU) and the RBC. Further it acts as FEC.
Type 1, Status poll
To slave:
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 1 |
From slave: Field element status
Index | Type | Content | Values |
---|---|---|---|
3 | byte | Status of Signals and LX | B0: Signal I, B1: Signal U, B2-3: Status of LX |
4 | byte | | |
Type 2, Command to Signal
To slave: Field element command
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 2 |
3 | byte | | |
From slave: Empty
Type 3, Command to Level Crossing
To slave: Field element command
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 3 |
3 | byte | |
From slave: Empty
Type 5, Command to Point Machines
To slave: Field element command
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 5 |
3 | byte | | |
From slave: Empty
Type 10, Position Report Poll
Request latest position report for train x
To slave:
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 10 |
3 | byte | |
From slave:
Index | Type | Content | Values |
---|---|---|---|
3..7 | byte[5] | Balise ID | |
8,9 | int | Actual distance from balise to front of train, with sign | |
10 | byte | Speed | |
11 | byte | Status | B0-2: operational mode, B3-4 driving direction, B5-6: Track polarity, B7: MAreceived |
12 | byte | Validity | B0: Position report valid |
13, 14 | int | |
Type 11, Movement Authority
MA to be transmitted to train.
To slave:
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 11 |
3 | byte | | |
4..8 | byte[5] | | |
9,10 | int | | |
11 | byte | |
From slave: Empty
Type 20, Get uptime
Request module uptime.
To slave:
Index | Type | Content | Values |
---|---|---|---|
2 | byte | Package type | 20 |
From slave: Uptime
Index | Type | Content | Value / Notes |
---|---|---|---|
3..6 | unsigned long | Uptime in mS since module boot | Index 6 is MSByte |