# Digital Command Control

Digital Command Control (DCC) is een genormeerd systeem voor modelbaanbesturing.
Via slechts twee draden wordt zowel de energie als de besturing geleverd. Met DCC kunnen veel treinen (locomotieven) in één elektrisch circuit (dus op dezelfde rails) onafhankelijk van elkaar bestuurd worden. (Digitaal dus)Het gaat daarbij niet alleen om het rijden van de trein maar ook om andere functies: lampen blijven branden als de trein stilstaat en kunnen op afstand bediend worden, een locomotief kan op afstand worden ontkoppeld, stroomafnemers kunnen omhoog en omlaag worden bewogen, een luidsprekertje zorgt voor het fluiten en andere geluiden. Ook vast opgestelde apparaten, zoals wissels, seinen, bruggen en kranen, kunnen op het spoor worden aangesloten en met DCC bediend worden, zodat hiervoor geen bedrading nodig is.
Het DCC-protocol is gedefinieerd en wordt onderhouden (met uitbreidingen e.d.) door de National Model Railroad Association (NMRA). NMRA heeft DCC gedeponeerd als handelsmerk.

## Werking

Een DCC-commandostation zet een digitale elektrische spanning op de rails, waarvan de polariteit steeds wisselt. Een locomotief of ander op de rails aangesloten apparaat gebruikt een DCC-decoder om de adres- en commandocodes in deze spanning te herkennen. De geregelde of geschakelde spanning wordt in een locomotief gebruikt om de motor te laten draaien, de verlichting te laten werken, geluiden te maken, te ontkoppelen, enzovoorts. Een ander apparaat aangesloten op een DCC-decoder kan het bijbehorende gewenste gedrag vertonen, bijvoorbeeld: een wissel kan omgaan, een sein kan oplichten, een overweg kan open- of dichtgaan.
Er staat dus constant spanning op de rails, maar een locomotief of ander apparaat werkt pas als een commando is ontvangen.
Het DCC-commandostation zet een wisselspanning op de rails, of eigenlijk een blokgolf. Het spanningsverschil tussen de twee rails is (bijvoorbeeld) 15 volt. Deze spanning kan gebruikt worden om energie van het DCC-commandostation naar de DCC-decoder te voeren, vanwaar de motor, lampen enz, worden bediend. Opdrachten worden gegeven doordat de tijdsduur van de positieve en negatieve fasen verschilt, zoals in de DCC-norm is vastgelegd (ook de toelaatbare afwijkingen in tijd zijn precies beschreven).

### Protocol

Norm S-9.2 beschrijft welke betekenis aan de enen en nullen moeten worden toegekend. In grote lijnen komt het hier op neer dat er een synchronisatiemethode is gedefinieerd (waar de eerste commandopakketten beginnen na een start of herstart) en pakketten met een startbit, een adresbyte en een of meer commandobytes gevolgd door een eindebit. De betekenis van de commandobytes kan gevarieerd en uitgebreid worden en dat gebeurt ook. Er is een minimale set met basiscommando´s die alle DCC-decoders moeten herkennen (anders mogen ze de naam DCC niet dragen). Voor de meer geavanceerde commando's zijn er aanbevelingen (Recommended Practices). Desondanks is er enige wildgroei: sommige fabrikanten proberen klanten te lokken en binden met merkspecifieke uitbreidingen.
Nullen en enen worden niet, zoals bij de Baudotcode, verstuurd met een respectievelijk positieve en negatieve spanning maar met een spanning die snel respectievelijk langzaam verandert. Een puls van 58 μs positief en 58 μs negatief is een logische 1 en een puls van minstens 100 μs en 100 μs is een logische 0. Een DCC-commandostation heeft dus circa 116 μs nodig om een 1 te versturen en minstens 200 μs voor een 0. Een opdracht duurt, afhankelijk van het aantal bytes en het aantal nullen versus enen, circa 2,5 ms.
Een opdracht wordt voorafgegaan door een preambule van minstens 14 enen. In baudotterminologie betekent dat dat er 14 stopbits zijn. In de ruststand is het aan te bevelen reeds gegeven opdrachten te herhalen. Een opdracht heeft de volgende vorm. Er is één adresbyte, het aantal databytes kan verschillen. Na het laatste databyte komt een checksum van acht bits, de xor van adres- en databytes.
| Preambule minstens 14 enen | startbit | adresbyte 8 bits | scheiding | databyte 8 bits | scheiding | databyte 8 bits | scheiding | checksum 8 bits | stopbit |
| 11 1111 1111 1111 | 0 | 0001 0100 | 0 | 0100 0110 | 0 | 0011 0011 | 0 | 0110 0001 | 1 |
Met DCC kunnen locomotieven en treinen worden bediend, maar ook stationaire objecten zoals wissels en seinen. Deze objecten worden dan direct met het spoor verbonden, er is geen extra bedrading nodig.

## Bediening op een bepaalde plaats van het spoor

Een locomotief luistert altijd naar DCC, ongeacht waar hij zich bevindt. Het kan echter gewenst zijn een locomotief op een bepaalde plaats stil te zetten, bijvoorbeeld bij een sein of in een station. De eenvoudigste oplossing daarvoor is een sectie van het spoor stroomloos te maken, maar dan zijn ook andere opdrachten onmogelijk en dooft de verlichting in de trein.
Dankzij een uitbreiding is er een oplossing voor dit probleem. De sectie waar de trein moet stoppen wordt van de rest van het spoor geïsoleerd en via een diode aangesloten, zodat alleen de positieve helft van de DCC-opdrachten de locomotief bereikt. De locomotief – mits daarvoor geschikt – reageert daarop door de snelheid te verminderen tot de trein stilstaat. Andere functies, zoals verlichting en geluiden, blijven actief.

## Geschiedenis

Het DCC-systeem werd oorspronkelijk ontwikkeld door Lenz Elektronik GmbH in de jaren tachtig voor twee fabrikanten, Märklin en Arnold. Het eerste systeem dat door Lenz werd geproduceerd, verscheen op de markt in het voorjaar van 1989 voor Arnold (N) en midden 1990 voor Märklin (Z, H0 en 1). Märklin en Arnold zegden de overeenkomst op wegens problemen met de octrooien, maar Lenz ging verder met ontwikkelen. In 1992 onderzocht Stan Ames het systeem als een mogelijke kandidaat voor een NMRA-norm. Na rijp beraad besloot een commissie het systeem van Lenz in licentie te nemen en uit te breiden. Later werd de naam DCC erop geplakt. Het voorstel voor een norm werd gepubliceerd in het tijdschrift Model Railroader van oktober 1993.
In 2006 begon Lenz, samen met Kühn, Zimo en Tams, te werken aan een uitbreiding van het DCC-protocol om communicatie mogelijk te maken van de decoders naar het commandostation. Dit terugvoerkanaal, dat gebruikt kan worden voor bezetmeldingen of de werkelijke snelheid van een trein, heeft de naam Railcom en werd genormeerd in 2007 als NMRA RP 9.3.1.