DCC-BiDi (RailCom ®) für Lokomotiven
Achtung - diese Infos sind veraltet!
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 also 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. Diese dienen als
Quittung des vorangegangenen Befehls. Hier gibt es eine Definition auf der NMRA-Seite:
- Lokdekoder:
Flags für Lokdekoder Bit Erläuterung 5, 4 Identifier: 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 Bit Erläuterung 5, 4 Identifier: 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, 0 Zustand des Ausgangs
00: Fehlerhafter Zustand, keine Spule leitet 01: Ausgang 1 aktiv 10: Ausgang 2 aktiv 11: Weiche im Umlauf
Code | NMRA (alt) | Erläuterung |
---|---|---|
0x0F=00001111 | ACK-1 | Kommando empfangen |
0x17=10000111 | ACK-2 | Kommando empfangen, wird jedoch nicht unterstützt |
0xC3=11000011 | ACK-3 | Kommando empfangen und der Zustand des Decoder stimmt überein. |
0xF0=11110000 | ACK-4 | Kommando empfangen und der Zustand des Decoder stimmt nicht überein. |
0x3C=00111100 | ACK-5 | Kommando empfangen und angefragte Wert ist größer als der aktuelle. |
0xE1=11100001 | ACK-6 | Kommando empfangen, kann nicht ausgeführt werden |
Diese Definition wurde 2011 durch eine Definition des VHDM abgelöst. Dabei haben sich die Bedeutungen wie folgt geändert:
Code | Name | Erläuterung |
---|---|---|
0xF0=11110000 | ACK | Kommando empfangen und bearbeitet. |
0x0F=00001111 | NOTACK | Kommando empfangen und nicht bearbeitbar (im Dekoder unbekannt). |
0xC3=11000011 | Reserved_1 | (to be defined) |
0x3C=00111100 | Reserved_2 | (to be defined) |
0x17=10000111 | Reserved_3 | (to be defined) |
0xE1=11100001 | Reserved_4 | (to be defined) |
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.
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.
- 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.
ID | Bedeutung |
---|---|
0001 | Adresse, 1. Byte |
0010 | Adresse, 2. Byte |
0101 | Routing Number |
1. Byte | 2. Byte | Bedeutung |
---|---|---|
0,0,0,0,0,0,0,0 | 0,a6,a5,a4,a3,a2,a1,a0 | kurze Adresse, a6...a0 ist die Adresse (CV1) |
1,0,a13,a12,a11,a10,a9,a8 | a7,a6,a5,a4,a3,a2,a1,a0 | lange Adresse, a13...a0 ist die Adresse (CV17, CV18) |
0,1,0,0,0,0,0,0,0 | a7,a6,a5,a4,a3,a2,a1,a0 | Consist, a17...a0 ist die Adresse (CV19) |
Programmierrückmeldungen
- Programmierbefehle werden per BiDi bestätigt.
ID | Bedeutung |
---|---|
0000 | Wert der zuletzt geschriebenen / gelesenen CV |
Geschwindigkeitsmeldungen
- Der Decoder meldet die aktuelle Geschwindigkeit und auch die aktuelle Last zurück.
ID | Bedeutung | ||||
---|---|---|---|---|---|
0011 |
|
ID | Bedeutung | ||||||
---|---|---|---|---|---|---|---|
0011 | Geschwindigkeitswert in km/h
|
Dekoderzustand
- Der Decoder meldet die aktuelle Temperatur sowie Zustandsflags zurück. Hierfür gibt es zwei IDs.
ID | Bedeutung | ||||
---|---|---|---|---|---|
0100 | Flags, 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. | ||||
1000 | Temperatur
|
Dekoderanmeldung
- Der Dekoder meldet seine Unique-ID. Diese Nachricht soll nach dem Empfang einer UniqueID-Nachricht einer Zentrale
abgesendet werden. Da hier eine sinnvolle Größe für die UniqueID bei 40 Bit liegt (8 Bit für Hersteller und weitere
32 Bit für die herstellerinterne Seriennummer), reicht weder Ch1 noch Ch2. Es wird also eine Kombinachricht für
beide Cutouts gesendet.
ID | Bedeutung |
---|---|
0101 | ?? Antwort auf eine Suchfrage, wird nur gesendet, wenn die Dekoder-ID größer oder gleich der angefragten ID ist. |
0111 | ?? Anmeldung (Ch2), es folgen 32 Bit, diese kodieren: Decoder UniqueID (32 Bit). |
10aa | Block-CV-Antwort (Ch2): es folgen 32 Bit mit den Inhalten der angefragten CVs, die niedrigere CV kommt zuerst. aa bezeichnet eine Sequenznummer, diese muß zur Sequenzkennung der Anfrage passen. (Hinweis: das kommt als Ch2 Nachricht, ist aber bei einfachen UART-basierten BiDi-Detektoren nicht von einer Ch1 Nachricht zu unterscheiden.) |
1110 | Anmeldung (Ch2) für Lok-Decoder, es folgen 32 Bit mit der Seriennummer. Diese ergibt zusammen mit der Herstellerkennung eine UniqueID des Dekoders. |
1111 | Anmeldung (Ch1) für Lok-Decoder, es folgen 8 Bit mit der Herstellerkennung. |
1111 | Anmeldung (Ch2) für Lok-Decoder, es folgen 32 Bit mit der Seriennummer. Diese ergibt zusammen mit der Herstellerkennung eine UniqueID des Dekoders. Diese Antwort wird gesendet, wenn der Dekoder die neue Adresse nach einem Assign erhalten hat. |