DCC-BiDi (RailCom ®) für Lokomotiven

Datagramme

    Die Rückübertragung bei Railcom erfolgt als serielle Nachricht zu 2, 4, oder 6 Bytes. Diese werden einer Redundanzkodierung (4-8-Coding) unterworfen, so dass nach dem Dekodieren eines Bytes 70 mögliche Code-Zustände übertragen werden. von diesen 70 Codes werden 6 für eine direkte Übermittlung von Systeminformation verwendet (sog. Acknowledgement Messages), die anderen 64 Zustände werden paarweise zu sogenannte Datagrammen zusammengefaßt. Diese Datagramme können dann 12, 24 oder 36 Bit lang sein.

    Im Kanal 1 werden immer 2 Byte übertragen, es sind als nur ACK's oder Datagramme mit 12 Bit vorhanden, der Kanal 2 kann alle Arten von Datagrammen enthalten.

Acknowledgement Messages

    Acknowledgement Messages bestehen aus 2 Bytes, sind also kurze Datagramme. Im ersten Byte wird eine Quittung des vorangegangenen Befehls übertragen.
    CodeBinErläuterung
    ACK-100001111Kommando empfangen
    ACK-210000111Kommando empfangen, wird jedoch nicht unterstützt
    ACK-311000011Kommando empfangen und der Zustand des Decoder stimmt überein.
    ACK-411110000Kommando empfangen und der Zustand des Decoder stimmt nicht überein.
    ACK-500111100Kommando empfangen und angefragte Wert ist größer als der aktuelle.
    ACK-611100001Kommando empfangen, kann nicht ausgeführt werden

    Zusätzlich zu dieser Quittung können im 2. Byte 6 Flags übertragen werden, diese sind normal gemaß 4-8-Coding kodiert. Diese Flags sind für Lokdekoder und Zubehördekoder (Accessory) unterschiedlich.
  • Lokdekoder:
    Flags für Lokdekoder
    BitErläuterung
    5, 4Identifier: immer 0,0 bei Lokdekoder
    3
    0:keine weiteren Daten
    1:weitere Daten, vorhanden, Zentrale soll nochmal nachfragen
    2
    0:kein Fehler
    1:Dekoder hat einen Fehlerzustand
    1
    0:kein Consist
    1:Decoder hat eine aktive Consist
    0
    0:Lok bewegt sich vorwärts
    1:Lok bewegt sich rückwärts
  • Zubehördekoder:
    Flags für Zubehördekoder
    BitErläuterung
    5, 4Identifier: immer 1, 0 bei Zubehördekoder
    3
    0:keine weiteren Daten
    1:weitere Daten, vorhanden, Zentrale soll nochmal nachfragen
    2
    0:kein Fehler
    1:Dekoder hat einen Fehlerzustand
    1, 0Zustand des Ausgangs
    00:Fehlerhafter Zustand, keine Spule leitet
    01:Ausgang 1 aktiv
    10:Ausgang 2 aktiv
    11:Weiche im Umlauf

Adresse Senden

    Um die leichtere Identifikation einer Lok zu ermöglichen, wurde ein spontaner Address-Broadcast eingeführt. Diese Nachricht darf eine Lok im Kanal 1 ungefragt senden. Sie schreit also quasi ihre eigene Adresse aufs Gleis. Neben der Adresse ist auch das Übertragen der 'Routing Number' (=Inhalt CV874) möglich, damit kann die Lok ihren Wunsch nach einem bestimmten Fahrweg kundtun - z.B. als Güterzuglok.
    IDBedeutung
    0001Adresse, 1. Byte
    0010Adresse, 2. Byte
    0101Routing Number
    Die Adressbytes enthalten neben der Adresse auch noch die Adressierungsart der Lok, also ob die Lok mit kurzer oder langer Adresse oder mit der Consist angesprochen wird. Dies ist wie folgt kodiert:
    1. Byte 2. ByteBedeutung
    0,0,0,0,0,0,0,0 0,a6,a5,a4,a3,a2,a1,a0kurze Adresse, a6...a0 ist die Adresse (CV1)
    1,0,a13,a12,a11,a10,a9,a8a7,a6,a5,a4,a3,a2,a1,a0lange Adresse, a13...a0 ist die Adresse (CV17, CV18)
    0,1,0,0,0,0,0,0,0 a7,a6,a5,a4,a3,a2,a1,a0Consist, a17...a0 ist die Adresse (CV19)
    Dieses ungefragte Senden darf nach jedem Lokbefehl erfolgen, jedoch mit folgenden Ausnahmen:
  • Nicht nach Broadcast - also Adresse 0
  • Nicht nach Programmierbefehlen
  • Wenn der Decoder mit der eigenen Adresse angesprochen wird, soll er ein ACK schicken (anstelle des Gebrülls)
  • Diese ungefragte Übermittlung der Lokadresse hilft natürlich beim ersten Einsetzen der Lok, die Kakophonie bei mehreren Loks parallel auf dem Gleis verhindert hingegen eine sinnvolle Kommunikation. Deshalb kann dieses spontane Adresse-Senden mit Bit 0 in CV28 abgeschaltet werden.

Programmierrückmeldungen

    Programmierbefehle werden per BiDi bestätigt. Dies ist eine 12-Bit Nachricht, die Bits 7 bis 0 geben den CV-Inhalt an. Diese Nachricht kann in Kanal 1 oder 2 gesendet werden.
    IDBedeutung
    0000Wert der zuletzt geschriebenen / gelesenen CV

Geschwindigkeitsmeldungen

    Der Decoder meldet die aktuelle Geschwindigkeit und auch die aktuelle Last zurück.
    IDBedeutung
    0011
    0LLLLLLLLLLLLLL = Last gemäß Susi-Spec.
    1SSSSSSSSSSSSSS = Speed, normiert auf 128 Geschwindigkeitsstufen
    Es gibt Gerüchte, das diese Meldung durch Ist-Geschwindigkeit in km/h ersetzt wird, das könnte dann wie folgt aussehen:
    IDBedeutung
    0011Geschwindigkeitswert in km/h
    0 – 63speed = value / 2; dies ergibt die Werte 0; 0.5; 1; 1.5; 2 ... 31.5 km/h
    64 – 127speed = value - 32; dies ergibt die Werte 32; 33; 34 ... 95 km/h
    128 – 255speed = value - 32; dies ergibt die Werte 0; 4; 8; 12 ... 508 km/h

Dekoderzustand

    Der Decoder meldet die aktuelle Temperatur sowie Zustandsflags zurück. Hierfür gibt es zwei IDs.
    IDBedeutung
    0100Flags, siehe hierzu die Bits 3..0 bei den ACK Nachrichten. Bits 5,4 sind hier auf 7,6 zugeordnet, die zwischenliegenden Bits (5 und 4) sind als undefined reserviert.
    1000Temperatur
    0TTTTTTTTTTTTTT = Temperatur des Decoder in °C (CV880)
    1???????reserved

Links