Das DCC Format ist in NMRA Normen beschrieben. Da das DCC Protokoll
ion den 80er Jahren
entsprechend vorausschauent ausgelegt wurde, konnten im laufe der Zeit eine Menge
Ergänzungen vorgenommen werden. So wurde z.B. die Verwendung von langen
Dekoder-Adressen ermöglicht, indem ein zusätzliches 2. Adress-Byte definiert
wurde. Auch die Anzahl der Fahrstufen wurde heraufgesetzt. Die letzte Änderung
betraf die Anzahl der Funktionen bei den Fahrzeugdekodern. Hier wurde ebenfalls
ein neues zusätzliches Byte definiert, woduch jetzt bis zu 20 Funktionen
bedient werden können.
Aufgrund dieser ganzen Erweiterungen macht das Protokoll heute ein bisschen den
Eindruck eines Gebäudes, an dem viele Anbauten vorgenommen wurden. Ein
DCC-Befehl kann heute zwischen 3 und 5 Bytes lang sein.
Eingeleitet wird ein Befehl immer über eine sog. Präambel. Diese besteht aus mindestens
10?? aufeinander folgenden 1en. Diese Bitfolge kann während eines normalen Befehls nicht
vorkommen, da dort die Bytes immer durch eine 0 voneinander getrennt werden.
Das letzte Byte ist ein Check-Byte. Dies kann die bereits empfangenen Bytes auf
Fehler prüfen. Hierfür werden die Adress- und Befehlsbytes miteinander EOR-Verknüpft
und ,üssen dann das Check-Byte ergeben. Ist das nicht der fall, so sollte der Befehl
vom Dekoder verworfen werden. Eine Korrektur des Fehlers ist nämlich nicht möglich
und auch nicht notwendig, denn Fahrzeugbefehle werden ja ständig wiederholt (und Fahrzeuge
sind besonders anfällig dafür, verfälschte Befehle zu empfangen) und auch
Befehle für Schaltdekoder werden in der Regel mehrfach wiederholt.
Das DCC-Format wird in den Normen der NMRA beschrieben. Es gibt hier folgende Dokumente,
die bezüglich DCC-Format von Interesse sind (englisch):
S 9.1 beschreibt den Aufbau der DCC-Signale (also die Kodierung von 1 und 0)
S 9.2 beschreibt den Aufbau der DCC-Befehle (also die Bedeutung der Nullen und Einsen)
RP 9.2.1 beschreibt die Bedeutung der DCC-Befehle (Adressbereiche usw.)
Kurze Lokadressen fangen immer mit einer "0" an (Bit #7 des Adress-Bytes).
Mit den kurzen Adressen (Verwendung eines Adress-Bytes) somit können theoretisch
27 = 128 Loks angesprochen werden. Die Adresse "00"
ist jedoch hierfür nicht zugelassen, also ergeben sich 127 adressierbare Loks:
Bei langen Adressen, also bei Adressen über 127, wird ein 2. Byte verwendet.
Das erste Adress-Byte beginnt mit "11" und kennzeichnet so,
dass ein 2. Adress-Byte folgt. Es
stehen somit jetzt 14 Bits zur Verfügung, d.h. es sind
214 = 16384 Adressen ansprechbar
(aber Adress-Byte 1 = "FF" ist nicht zulässig, daher nur 16128 Adressen möglich).
Von den meisten Zentralen wird die maximale Adresse sowieso auf 9999 beschränkt.
Das Prüfbyte ist hier die EXOR-Verknüpfung der beiden Adress-Bytes und des Befehls-Bytes:
Schalten der Funktionen (Instruction Part)
Die erweiterten Funktionen F13 bis F28 sind erst 2006 definiert worden. Um diese anzusprechen,
wurde ein weiteres Byte eingefügt. Das dieses Byte dem Befehlsbyte folgt und das es
diese Funktion hat, wird durch das Befehlsbyte "11011110" (F13 bis F20)
bzw. "11011111" (F21 bis F28) angekündigt: