DCC - Digital Command Control

Grundlegende Informationen zum DCC-System - in einfachen Sätzen, ohne technisch zu stark ins Detail zu gehen.

Allgemeines zu DCC

Das DCC-System beruht auf dem von Lenz anfang der 90iger Jahre vorgestellten Digital-Plus-System (beruhend auf dem
ebenfalls von Lenz entwickelten M ärklin = / Arndold - Digitalsystem). Mitte der 90iger Jahre wurde das System mit einigen
Erweiterungen von der NMRA übernommen und damit standardisiert. Die NMRA-DCC-Standards werden laut Abkommen
von der NEM übernommen - die Grundlagen sind in der NEM 670 und NEM 671 zu finden - ansonsten gelten die
sogenannten RP´s (Recommended Practice) der NMRA. Jeder Hersteller darf lizenzfrei Produkte für das DCC-System
herstellen und vertreiben - dies gilt jedoch nicht für die verschiedenen Bussysteme, die die einzelnen Geräte zum Steuern,
Rückmelden etc. mit der Zentrale verbinden. Es gibt zahlreiche Hersteller von DCC-Komponenten und mehrere komplette
Systemanbieter (Zentrale, Decoder, Schaltmodule, Rückmelder etc).

Eckdaten von DCC

Derzeit umfasst das DCC-Systen 10239 Lokadressen und 2048 mögliche Schaltadressen. Dies bedeutet jedoch nicht,
dass alle Adressen gleichzeitig in Verwendung sein können - dabei wäre sowohl die Digitalzentrale überfordert als auch
das Protokoll selbst, da das gleichzeitige Ansprechen aller Adressen eine zu große Zeit in Anspruch nehmen würde.
Jeder Lokdecoder kann mit bis zu 128 Fahrstufen und mit, zur Zeit, maximal 12 Sonderfunktionen plus Lichtfunktion
angesteuert werden.

Funktionsweise von DCC, Gleissignal

Beim DCC-Signal werden nicht die einzelnen Zustände bzw. die Flankenpolarität ausgewertet, sondern nur die Flanken
in Abhängigkeit der Zeit - dadurch ist das System Polaritätsunabhängig. Eine logische "1" dauert typischerweise zwei mal
58 µs, also 116 µs (entspricht 8,62 kHz - eine Zentrale muss eine logische "1" mit 55 bis 61 µs senden und ein Decoder
muss Signale zwischen 52 und 64 µs als logische "1" erkennen), wohingegen eine logische "0" mindestens zwei mal
mindestens 100 µs, also mindestens 200 µs dauern muss (eine Zentrale darf ein "0"-Teilbit mit 95 bis 9.900 µs senden,
wobei das "0"-Bit gesamt nicht länger als 12.000 µs dauern darf und ein Decoder "0"-Teilbits mit einer Dauer zwischen
90 und 10.000 µs erkennen muss). Durch verschieden lange "0"-Teilbits können dem Gleissignal Gleichstromanteile
eingespeist werden, mit denen analoge Lokomotiven angesteuert werden.

Das DCC-Signal besteht aus mindestens drei Byte und maximal fünf Bytes (ausgenommen Service-Mode): der Adressierung,
dem Befehl (oder mehreren Befehlbytes) und einem anschließendem Prüfbyte. Jedes Byte wird anschließend durch ein Null-Bit
getrennt und nach dem Prüfbyte kommt ein Einer-Bit. Eingeleitet wird das Signal von einer Einleitung (Präambel) aus
mindestens 14 logischen Einer-Bits, von denen der Decoder mindestens 12 empfangen muss, um auf die nachfolgenden
Informationen zu reagieren. Jeder Informationsblock darf jedoch auch aus mehr als nur 3 Bytes bestehen und die
Adressierung darf über das erste Byte hinausgehen - dadurch steht ein größerer Adressraum und auch die Möglichkeit von
mehreren Informationsbytes zur Verfügung. Die Abarbeitung der zu sendenden Informationen ist keinem striktem Schema
unterworfen und kann daher aktionsbedingt von der Zentrale erfolgen.

Die Zeit, die zur Übertragung einer Informationseinheit benötigt wird, ist abhängig vom Inhalt der Bytes (eine "0" braucht
mehr Zeit zur Übertragung als eine "1") als auch von der Anzahl der Informations-Bytes. Die Übertragung einer
Informationseinheit mit drei Byte kann mit etwa 5 - 8 ms bemessen werden. Als Durchschnittswert der einfachsten
Protokollvariante (3 Byte) kann mit etwa 6 ms angegeben werden, ein komplettes Datentelegramm für 128 Fahrstufen, Licht
und 12 Sonderfunktionen mit rund 30 ms. Allerdings sind die Sonderfunktionen von den Fahrinformationen entkoppelt und
können auch für sich alleine gesandt werden. Dadurch können, bei intelligenter Abarbeitung durch die Zentrale,
die Wiederholraten optimiert werden.

Der Vorteil dieser offenen Protokollstruktur ist, dass man offen für Erweiterungen ist. Da nur verwendete Informationen
übermittelt werden, kann die Zeit pro angesprochener Informationseinheit kurz gehalten werden - je mehr Deocder jedoch
aktiv angesprochen werden, umso stärker sinkt die Wiederholrate. Die Wiederholrate ist insofern wichtig, da der
Rad/Schiene-Übertragungsweg störungsanfällig ist und es daher nicht gewährleistet ist, dass die Information bereits
beim ersten Senden vollständig beim Decoder ankommt.

Wieviele Fahrstufen?

Das DCC-System kennt drei standardisierte Fahrstufen-Betriebsarten: 14, 28 und 128 Fahrstufen. Die Anzahl der
gesendeten Fahrstufen von der Zentrale und die eingestellten Fahrstufen des Decoders müssen übereinstimmen. Stimmen
sie nicht überein, so kann es zu "eigenartigen" Benehmen der Lokomotiven kommen (z.B. Licht geht bei jeder zweiten
Geschwindigkeitsstufe automatisch an und aus - lässt sich aber nicht schalten) oder der Decoder reagiert überhaupt nicht.
Die meisten Hersteller von Lokdecodern liefern ihre Decoder mit der Voreinstellung für 28/128 Fahrstufen aus. Die Lokdecoder
selbst unterscheiden nur zwischen 14 und 28 Fahrstufen, wobei die Einstellung "28" auch für den Betrieb mit 128 Fahrstufen
zutrifft. Die Einstellung der Fahrstufen ist in CV 29 Bit 1 abgespeichert.

Ein Sonderfall ist der Betrieb mit 27 Fahrstufen. Dieses System wurde der Firma Lenz vor der Einführung von 28 und 128
Fahrstufen entwickelt. Dabei werden vom Protokoll nur 14 Fahrstufen gesendet. Allerdings werden Zwischenfahrstufen
durch das abwechselnde Senden einer Fahrstufeninformation von x und x+1. Decoder, die den Betrieb mit 27 Fahrstufen
unterstützen, werten eine solche abwechselnde Fahrstufeninformation als Zwischenfahrstufen aus.

Lange Adressen

DCC-Decoder verstehen zumeist auch sogenannte "lange Adressen" - dies sind die Adresssen zwischen 128 und 10240
(Lenz-Zentralen senden auch Adressen über 99 als "Lange Adressen"). Wird eine lange Adresse verwendet, so muss in
CV 29 das Bit 5 gesetzt sein, wodurch die kurze Adresse (bleibt weiterhin in CV 1 abgespeichert) nicht mehr gültig ist. Das
bedeutet aber auch, dass das Auslesen von CV 1 zur sicheren Adressbestimmung nicht ausreichend ist - es muss auch
kontrolliert werden, ob Bit 5 in CV 29 gesetzt ist.

Hinweis zur Intellibox/TwinCenter (IB/TC): Im Programmiermodus unter "Lange Adresse / Auslesen" wurde lange
automatisch CV 29 Bit 5 gesetzt, auch wenn es zuvor nicht gesetzt war. Darauf wurde zwar in der Bedienungsanleitung
hingewiesen, führte aber immer wieder zu Problemen. Diese Zwangsprogrammierung wurde erst mit der Softwareversion
mit der Unterstützung von Lissy (IB) bzw. Train Navigation (TC) behoben.
Bei der Programmierung einer langen Adresse mit der IB/TC wird automatisch CV 29 Bit 5 gesetzt - allerdings nur durch die
sogenannte bitweise Programmierung. Leider unterstützen nicht alle Decoder diese Programmierungsart (obwohl sie ein
DCC-Standard ist). Sollte ein Decoder auf seine lange Adresse nach erfolgter Programmierung nicht reagieren, so muss
unbedingt CV 29 kontrolliert werden und eventuell Bit 5 durch byteweises Programmieren gesetzt werden.

Mehrfachtraktionen

Es gibt unter DCC die Möglichkeit, Doppel- und Mehrfachtraktionen von Lokomotiven über eine sogenannte Consist-Adresse
zu steuern (CV 19) - dieser Betriebsmodus muss jedoch sowohl von der Zentrale als auch von den Lokdecodern unterstützt
werden. Wird eine Consist-Adresse gesetzt (Wert zwischen 1 und 127; In der Regel über Programming on the Main), so
werden Fahrstufeninformatione über die "normale" Lokadresse (CV1 bzw. die lange Adresse über CV 17/18) ignoriert.
Sonderfunktionen können in der Regel weiter über die normale Adresse geschalten werden.

Viele Zentralen bieten auch das softwaremäßige Bilden von Mehrfachtraktionen an. Dabei übergibt die Zentrale für alle in die
Traktion eingebundenen Decoder die gleichen Fahrstufen-Werte.

Bei Mehrfachtraktionen ist darauf zu achten, dass die Fahrstufen der einzelnen Decoder übereinstimmen und auch die
Geschwindigkeit pro Fahrstufe bei den einzelnen Loks in etwa gleich ist, um die Lokomotiven nicht übermäßig zu
beanspruchen.

Automatischer Lokhalt

Ein automatischer Lokhalt kann im DCC-Betrieb mittels sogenannter Bremsgeneratoren erreicht werden. Diese senden
einen sogenannten Broadcoast-Befehl, der alle Decodereinstellungen zu Fahrstufe und Funktionstasten auf 0 setzt -
dadurch bedingt schaltet sich auch das Licht der Lok aus und ein Sounddecoder verstummt.

Von Roco gibt es einen sogenannten "intelligenten Bremsgenerator", der das Gleissignal "abhorcht" und als eigene
Zentrale alle aktiven Decoderadressen mit der Fahrstufe 0 sendet. Daduch bleiben Licht / Sound etc. auch beim
Signalhalt bestehen.

Beide zuvor genannten Möglichkeiten sind jedoch benutzerunfreundlich: Ein mit einem Bremsgenerator gespeister
Bereich darf nicht mit dem normalen Gleissignal kurzgeschlossen werden - auch nicht durch eine Lokomotive beim
Überfahren der Schienenisoloation. Daher muss sich der gesamte Zug in einem isolierten Streckenbereich befinden
(z.B. durch Einsatz von Rückmeldern) und erst dann darf der gesamte Streckenbereich auf den Bremsgenerator
umgeschalten werden. Da hierfür sehr viel Platz gebraucht wird, kommen solche Schaltungen maximal auf längeren
Blockabschnitten in Frage - im Bahnhofsbereich ist der Einsatz mehr oder weniger unmöglich.

Halt durch Einspeisung einer Gleichspannung (Bremsdiode):

Im DCC-Betrieb ist der Halt durch die Einspeisung einer entgegengerichteten Gleichspannung definiert. Durch das Setzen
einer Diode in der Zuleitung wird das Gleissignal zu einer Gleichspannung. In der Praxis wird dieses System jedoch selten
angewandt, da das System nicht von allen Decodern uneingeschränkt unterstützt wird.

Halt mit ZIMO:

Bei Zimo (modifiziertes DCC-Signal) gibt es ein einfach einzusetzendes und sehr betriebstaugliches Bremssystem,
das jedoch nicht DCC-konform ist und nur von den Zimo-Zentralen und einigen Decoderherstellern unterstützt wird:
Mittels einem Zimo-eigenen Bremsmodul am Gleis kann der Decoder angehalten werden oder auch zu einer
decoderspezifischen Langsamfahrgeschwindigkeit gezwungen werden.

ABC-System Lenz (assymetrische Bremsemthode):

Hierbei wird im Gleissignal eine Unsymmetrie mittels Dioden hergestellt und vom Decoder fahrtrichtungsabhängig
ausgewertet. Zudem bietet dieses System auch eine Langsamfahrstrecke an.

Diese Idee ist zwar einfach umzusetzen aber auch nicht ohne Probleme: Eine einfache Zugbeleuchtung mit einer
vorgeschaltenen Diode kann am Gleis bereits eine Unsymmetrie auslösen und den Decoder zum Halten zwingen. Da
die IB und das TC kein 100%iges NMRA-konformes Digitalsignal liefern (leichte Unsysmmetrie im Gleissignal) können
die sogenannten Gold-Decoder mit eingeschalteter ABC-Erkennung nicht betrieben werden.

Bidirektionale Kommunikation (BiDi)

Seit einigen Jahren wird unter den einzelnen Mitgliedern der DCC-Working Group um eine Standardisierung der
bidirectional communication gerungen - bisher leider ohne einen gemeinsamen Nenner (= Norm) gefunden zu haben.
Unter bidirektionale Kommunikation versteht man, dass der Decoder über das Gleis auch verschiedenste Informationen
an die Zentrale zurücksenden kann. Dadurch kann z.B. der genaue Standpunkt eines Decoders auf der Anlage
zurückgemeldet werden, sofern die Anlage in mehreren rückmeldefähigen Abschnitten unterteilt ist. Aber auch die
Rückmeldung von aktuellen Statusinformationen im Decoder wären möglich.

BiDi mit ZIMO:

Bei Zimo gibt es schon seit jeher eine bidirektionale Kommunikation zwischen Decoder und Zentrale, die jedoch nicht
durch die NMRA standardisiert ist. Das System funktioniert bereits seit Jahren ohne Probleme.

RailCom (Lenz):

Die Firma Lenz ist mit ihrer Ankündigung des Rail-Com-Systems im Jahr 2004 der Normierung vorgeprescht. Ob die von
Lenz verwendete Art der Rückmeldung als NMRA-Standard definiert wird ist nach wie vor offen.

Programmieren von Lokdecodern (SERVICE MODE)

Programmierverfahren

Es gibt bei DCC vier Programmierverfahren:
Register
CV-Paged
CV-Byteweise
CV-Bitweise
Nicht jede Zentrale unterstützt jede Programmierungsvariante - manche Zentralen geben in ihren Betriebsanleitungen
keinerlei angaben, welche Variante sie verwenden.

Registerprogrammierung

Die Registerprogrammierung stammt noch aus den Anfangstagen von DCC und wird heute üblicherweise nicht mehr
verwendet. Sofern man im Besitz alter DCC-Decoder ist, so kann es durchaus vorkommen, dass er sich nur über
Register programmiern lässt. Im Registermodus gibt es bis zu 8 Register:
R1 = CV1: Adresse
R2 = CV2: Anfahrspannung
R3 = CV3: Anfahrverzögerung
R4 = CV4: Bremsverzögerung
R5 = CV29: Allgeimeine Konfiguration
R6 = Paging Register
R7 = CV7: Version
R8 = CV8: Hersteller-ID
Die Register sind 1 Byte groß und können daher Werte von 0 bis 255 annehmen - der tatsächlich angewandte Wertebereich
ist jedoch Herstellerabhängig. Bei Decodern aus den Anfangstagen von DCC kann es vorkommen, dass nicht alle
Register unterstützt werden.

CV-Paged-Programmierung

Die Paged-Programmierung von CV´s ist in Amerika weit verbreitet. Dabei wird in die jeweilige CV ein Wert von 0 bis 255
geschrieben (entspricht der vom Prinzip der Byteweisen-CV-Programmierung - ist jedoch technisch etwas anders gelöst).

CV-Bit- und Byteweise Progrommierung

In Europa üblich sind die beiden Varianten Byteweises- und Bitweises-Programmieren von CV´s. Hierbei werden die
sogenannten CV´s (Configuration Variable - Konfigurationsvariable - "veränderbarer Speicherplatz") entweder als
ganzes mit einem Wert von 0 bis max 255 (= Byteweise) oder lediglich ein einzelnes Bit einer CV mit dem Wert 0 oder 1
(= Bitweise) beschrieben.

Wo wird programmiert?

Die Programmierung selbst kann auf zwei verschiedenen Wegen erfolgen: Auf einem Programmiergleis oder auf dem
Hauptgleis während des Betriebes:

Programmierung am Programmiergleis:

Bei der Programmierung am Programmiergleis stehen alle vier Programmierverfahren zur Verfügung. Hierbei gibt es eine
bidirektionale Kommunikation: Der Decoder kann ausgelesen werden und sendet seine Werte an die Zentale zurück und
zusätzlich gibt der Decoder ein Bestätigungssignal nach erfolgreichen Programmiervorgang.
Da nicht alle Zentralen einen eigenen Programmiergleisausgang haben, wird bei Zentralen ohne Programmiergleisausgang
das Hauptgleis im Programmiermodus zum Programmiergleis umfunktioniert. Daher ist bei solchen Zentralen darauf zu achten,
dass während der Programmierung nur eine Lok auf den Gleisen steht, da ansonsten alle anderen Decoder den gleichen
Wert programmiert bekommen. Wer nicht bei jeder Programmierung seine ganzen restlichen Modelle von den Gleisen
entfernen will, kann mittels eines herkömmlichen Schalters das Gleissignal auf ein separates Stück Gleis umschalten
(unbedingt zweipolig).

Hinweis für Lokmaus-Benutzer: Die Lokmaus2 und 3 unterstützen zwar prinzipiell das Auslesen von Decodern, allerdings
wird es vom Leistungsverstärker nicht unterstützt. Daher wird, ungeachtet des programmierten Wertes im Display je
nach CV der Wert "03" bzw. "00" angezeigt bzw. beim Programmieren vorgeschlagen.

Programmierung am Hauptgleis:

Neuere Lokdecoder und Zentralen unterstützen in der Regel auch die "programing on the main (PoM)" oder "on the fly",
wo auf dem Hauptgleis während des normalen Betriebes unter Angabe von Lokadresse und CV ein entsprechender
Wert Byteweise programmiert wird. Da bei DCC derzeit noch keine bidirektionale Kommunikation standardisiert ist,
gibt es für die Programmierung keine Bestätigung und ein Auslesen von Decoderwerten ist auch nicht möglich.

CV´s und deren Werte

Moderne Decoder lassen sich über ihre CV´s (Configuration Variable - Konfigurationsvariable) anpassen. Dazu gibt es
von seiten der NMRA eine Reihe von genormten CV´s, deren Nutzung per Definition festgelegt ist - z.B. CV 1 für die
kurze Lokadresse, CV 2 für die Anfahrspannung usw. Daneben gibt es auch freie CV-Blöcke, die jeder Hersteller frei
belegen darf. Waren anfangs alle CV´s noch im zweistelligen Bereich, so verwenden moderne Decoder oftmals schon
dreistellige CV´s - der CV-Block für SUSI-Decoder beginnt überhaupt erst bei 896.

Nicht genormt ist, welche Werte die CV´s annehmen dürfen - bei verschiedenen CV´s wie die der Adresse oder anderen
ergibt sie sich automatisch. Bei der Frage, in wie vielen Stufen die Anfahrspannung, Höchstgeschwindigkeit etc. anpassbar
ist, hat ein jeder Hersteller seine eigene Philosophie. So sind es bei einem Hersteller Werte von 0 bis 80, so können es
beim Nächsten für die gleiche CV die Werte 1 bis 255 sein. Hier hilft nur das Lesen der dazugehörigen Betriebsanleitungen.

Obwohl diese Variablen mittlerweile in dreistellige Bereiche vordringen und auch die Werte dreistellig sein können, gibt es
leider mehrere Zentralen, die nur zweistellige Variable und Werte programmieren können (z.B. Roco Lokmaus2 und Lenz
Compact). Dies bedeutet daher, dass man unter Umständen nicht alle Variablen, bzw. nicht im vollen Umfang programmieren
kann. Einige Decoderhersteller kommen diesen Zentralen entgegen, indem sie über eine mehrstufige Programmierung von
zweistelligen Werten auch dreistellige Werte programmieren können - Informationen dazu gibt es in den jeweiligen
Bedienungsanleitungen.

Zählweise von Bits

In der Digitaltechnik außerhalb der Modellbahn werden Bytes in Bits von 0 bis 7 bezeichnet. Diese Kennzeichnung wurde
auch von der NMRA übernommen, wobei Bit 0 das niederwertigste Bit (LSB - least significant bit) und das Bit 7 das
höchstwertigste Bit ist (MSB - most significant bit).

Die meisten Hersteller von Digitalsystem und Decodern haben diese Zählweise übernommen - auch die Bitangaben
(z.B. CV 29 Bit 5) auf den Seiten von 1zu160 folgen diesem Schema. Die Firma Lenz macht hier jedoch eine Ausnahme
und zählt die Bits von 1 bis 8. Dieser Umstand muss - zumindest bei der Bitweisen Programmierung -unbedingt beachtet
werden, wenn nur eine Komponente (Zentrale oder Decoder) von Lenz stammt.

Weitere interessante Informationen zu DCC

- www.nmra.org/standards/DCC/ - die offzielle NMRA-DCC-Seite mit allen Standards (englisch)