# Digital Command Control

Digital Command Control (DCC) ist ein Standard zur digitalen Zug-, Signal- und Weichensteuerung von Modelleisenbahnen. Der Standard basiert auf der Entwicklung der deutschen Firma Lenz Elektronik für Märklin. Die ältesten Digitaldecoder nach DCC sind somit im Wesentlichen die in den 1980er Jahren ausgelieferten Lokdecoder von Arnold (Spur N) und Märklin (Digital Gleichstrom für H0-Hamo und Spur 1).
Bereits nach kurzer Zeit hatte sich Märklin von Lenz Elektronik und dem damals Digital Gleichstrom genannten System getrennt; Lenz entwickelte das System weiter und bemühte sich um eine Anerkennung als Empfehlung durch die National Model Railroad Association, kurz NMRA, in der RP-9.

## Technische Grundlagen

Seit etwa Ende der 1990er-Jahre ist das System DCC im 2-Schienen-2-Leiter-Bereich das am weitesten verbreitete Digitalsystem, lediglich im 3-Schienen-2-Leiter-Bereich (Märklin H0) ist das Märklin-Motorola Digitalsystem vorherrschend, obwohl 2004 ein neues System auf den Markt gebracht wurde: Märklin Systems (mfx). Ein weiteres, ebenfalls schon lange bestehendes Digitalsystem ist SelecTRIX (vorwiegend bei Spur N).
Bei DCC werden über das Gleis sowohl die zum Betrieb der Züge notwendige Spannung als auch Steuerungsinformationen von einer Digitalzentrale an die Decoder übertragen. Auch Weichen und Signale (Magnetartikel) können über DCC-Signale gesteuert werden. Normungsgegenstand ist allein das Protokoll (der Datenverkehr auf den Gleisen), nicht jedoch die Kommunikation zwischen der Zentrale und weiteren Eingabegeräten, Boostern (=Stromverstärkern) etc. In Europa von Bedeutung sind für die Eingabeseite XpressNet (ursprünglich X-Bus von Lenz) plus und LocoNet (entwickelt von Digitrax). LocoNet integriert Eingabe, (stationäre) Rückmeldung und Boosteransteuerung in einem „Bus“, wogegen bei X-Bus/XpressNet dafür zwei weitere Signalbusse hinzukommen.
Der DCC-Standard wurde im Lauf der Zeit weiterentwickelt. Anfangs gab es nur 14 Fahrstufen, 99 Lok- und 256 Magnetartikeladressen, der aktuelle Standard sieht 14, 27, 28 und 128 Fahrstufen sowie 10.239 Lokadressen vor; die meisten Fahrgeräte und einige Decoder sind jedoch auf 9.999 Lokadressen begrenzt. Trotz der Weiterentwicklung des Systems sind die aktuellen Steuergeräte und Decoder abwärtskompatibel, so dass immer die schwächste Komponente die Gesamtmöglichkeiten bestimmt.
Der DCC-Standard ist mittlerweile um einen Mechanismus zur Rückmeldung von Informationen aus den Lokdecodern zur Zentrale über das Gleis erweitert worden (Railcom).
Zum einfachen Einbau von Lokdecodern auch durch Nichtfachleute wurden die Schnittstellenstecker standardisiert. Der sechspolige Stecker nach NEM 651 ist für beengte Platzverhältnisse vorgesehen; der achtpolige Stecker nach NEM 652 bietet einen optionalen gemeinsamen Rückleiter für Beleuchtung und andere Funktionen sowie einen freien Pin für eine weitere Zusatzfunktion.

## Details
### Paketformat

Die Datenrate im Gleis beträgt ca. 8000 Bit pro Sekunde. Jedes DCC-Paket beginnt mit einer 10–14 Bit langen Präambel, die der Synchronisierung des Decoders dient. In einem Standardpaket folgen dann ein Adressbyte, ein Befehlsbyte und ein Prüfbyte, die jeweils durch ein Startbit eingeleitet werden. Das Gesamtpaket wird durch ein Stopbit abgeschlossen. Das Prüfbyte errechnet sich als XOR-Verknüpfung über das Adress- und Befehlsbyte.
Dieses Standardpaket ist jedoch heute nicht mehr der Regelfall, da es sich nur zur Steuerung von Lokomotiven mit den genannten Beschränkungen eignet. Für Weichen- und sonstige Funktionsdecoder sowie moderne Lokdecoder wurde ein erweitertes Paketformat definiert, das zwischen drei und sechs Datenbytes enthalten kann.

### Motoransteuerung

Ein Lokdecoder wandelt für den Motor die im Gleis anliegende, annähernd rechteckförmige Wechselspannung mit Hilfe eines Brückengleichrichters in Gleichspannung (siehe Zwischenkreis). Der Motor wird über getaktete Transistoren mit dieser Gleichspannung beaufschlagt. Anders als im Analogbetrieb bestimmt nicht die Zwischenkreisspannung, sondern das Tastverhältnis die Motordrehzahl (Pulsweitenmodulation). Schaltungstechnisch handelt es sich um einen Umrichter.

### Auslesen von Decodern

Decoder speichern konfigurationsrelevante Daten in acht Bit breiten Registern (Configuration Variable, CV). Es gibt bis zu 1024 CVs. Der DCC-Standard schreibt als Pflicht-CVs die CV1 (Basisadresse), CV7 (Decoderversion), CV8 (Herstellerkennung) und CV29 (Decoderbasiskonfiguration) vor. Die Bedeutung einiger weiterer CVs ist ebenfalls standardisiert, andere sind herstellerspezifisch belegbar.
DCC war ursprünglich der Einfachheit halber als unidirektionales Protokoll ausgelegt. Die einzige Möglichkeit zur Rückübertragung von Informationen zur Zentrale war der sogenannte Acknowledgement-Puls (ACK). Dabei erhöht der Decoder für 6 ms seinen Stromverbrauch um 60 mA, indem er seinen Motor oder einen anderen Verbraucher einschaltet. Dieser erhöhte Stromverbrauch wird von der Zentrale erkannt und als Bestätigung für den letzten Programmierbefehl interpretiert. Dadurch ist es auch möglich, den Wert einer bestimmten CV auszulesen. Bei älteren Decodern ist diese Abfrage nur byteweise möglich, so dass im Extremfall bis zu 256 mögliche Werte eines Bytes einer CV abgefragt werden müssen, bis irgendwann ein ACK vom Decoder kommt. Neuere Decoder können bitweise abgefragt werden, so dass sich die Zahl der maximal notwendigen Abfragen pro CV auf acht reduziert. Dabei muss jeweils nur eine Abfrage für jedes der 8 Bits durchgeführt werden.

### Railcom

Von der Firma Lenz und einer „Arbeitsgruppe Railcom“ mit weiteren Herstellern von DCC-Komponenten wurde eine Erweiterung des DCC-Protokolls erarbeitet, die den Decodern im laufenden Betrieb das Senden von Daten über das Gleis ermöglicht. Railcom wurde im Jahr 2007 von der NMRA als S-9.3.1 standardisiert. Um Platz für die Railcom-Übertragungen zu schaffen, werden Pausen in das von der Zentrale ausgehende DCC-Signal geschnitten. In einer Pause sind bis zu 8 Byte übertragbar. Die Auswertung der Railcom-Datenströme kann entweder lokal (das heißt meist auf Ebene abgetrennter Gleisstromkreise) oder global (meist auf Ebene der DCC-Zentrale) erfolgen. Klassischer Anwendungsfall eines lokalen Detektors ist die Fahrzeugerkennung im Rahmen der Gleisbesetztmeldung. Ein globaler Detektor kann einen sendenden Decoder nicht mehr örtlich zuordnen, denkbar sind allerdings Anwendungen wie das Anmelden einer Lok bei der Zentrale.

## Mischbetrieb

Da es grundsätzlich möglich ist, Märklin-Motorola Digitalsystem und DCC Signale zugleich (genau genommen im Millisekundenbereich abwechselnd) auf einem Gleis zu senden, nutzen insbesondere viele 3-Schienen-2-Leiter (Märklin H0) Anlagen beide Systeme gleichzeitig. Fast alle am Markt befindlichen Digitalsteuergeräte (Zentralen) sind in der Lage, DCC und Märklin-Motorola Signale zu erzeugen. Auch Märklins eigene aktuelle Zentrale, die Central Station 3, kann neben Märklin-Motorola und mfx auch DCC Signale erzeugen und somit Loks und Weichen mit DCC Dekodern steuern.