Digital Command Control Protokoll

Aus Digital Modellbahn

DCC-Protokoll

Darstellung des DCC Signal.

Das Digital Command Control (DCC-) Protokoll wurde von der NMRA (National Model Railroad Association) als standardisiertes Datenübertragungsprotokoll speziell für digitale Modelleisenbahnen entwickelt. Es wird unter anderem für die Steuerung von Lokomotiven, Signalen, Weichen und Beleuchtung verwendet. Andere bekannte Protokolle für die Datenübertragung sind das Märklin Motorola Protokoll, das Selectrix- Protokoll, das FMZ-Protokoll von Fleischmann und das mfx/Systems von Märklin. Die Digitalisierung ermöglicht es Steuerungssignale über eine 2-Leiter-Schienentechnik, ähnlich wie bei einem Bussystem zu übertragen. Über zwei Bahnschienen des Gleises wird die Versorgungsspannung für Lokomotiven und Wagenbeleuchtung eingespeist. In die Versorgungsspannung werden zugleich digitalen Daten eingekoppelt, indem sie auf die Versorgungsspannung aufmoduliert werden. Im Lokdekoder werden Versorgungsspannung und die Daten wieder getrennt. Der Dekoder generiert nach der Demodulation eine konstante Versorgungsspannung für den Mikrocontroller und alle anderen Komponenten. Alle am Dekoder angeschlossenen Komponenten werden über die ankommenden Datenbefehle angesteuert.

Die Datenübertragung für das Digitale Steuersignal DCC ist im NMRA-Standard S9 vom Juli 2004 festgelegt. In der aktuellen Norm (Ausgabe 2007) der Normen Europäischer Modellbahnen wird in den NEM-Normen 670 und 671 der Standard detailliert beschrieben. Die Beschreibung des Telegramms und der Befehle beziehen sich auf diese festgelegten Standards.

Die Datenübertragung erfolgt gemäß der 2-Leiter-Technik seriell. Dabei wird immer eine bestimmte Anzahl von Bits übertragen, die einen Befehl darstellen. Diese Bits werden zusammen mit der Gleisspannung übertragen. Zur Abbildung der Bits besteht die Gleisspannung aus zwei Spannungsniveaus die einen positiven und negativen Pegel besitzen. Bei einem Wechsel des Spannungsniveaus findet ein Nulldurchgang statt (siehe Abbildung 2.1). Über diese Nulldurchgänge ist es möglich, die zeitliche Länge eines Impulses zu bestimmen. So trennen zwei hintereinander folgende Nulldurchgänge mit gleicher Richtung die jeweiligen Bits voneinander. Jeder Nulldurchgang teilt ein Bit in einen ersten und einen zweiten Teil auf. Ob ein Eins-Bit oder ein Null-Bit gesendet wurde, wird nur durch den zeitlichen Abstand der Nulldurchgänge bestimmt.

Telegrammaufbau

Aufbau eines DCC-Signals.

Zur Datenübertragung eines Bit, wechselt das Signal von einem negativen zu einem positiven Impuls. Jedes Bit besteht dabei aus zwei Teilen, einem negativen Impuls und einem positiven Impuls. Diese werden jeweils einen Nulldurchgang getrennt. Dabei hat jeder Impuls stets die gleiche Zeitdauer. Eine Ausnahme gibt es dabei nur bei einem Null-Bit. In der Abbildung 2.1 ist ein Teilausschnitt des DCC-Signals dargestellt. Ein Null- und ein Eins-Bit ist besonders gekennzeichnet und vergrößert.

Erkennung eines Eins-Bit

Bei einem Eins-Bit beträgt die Dauer des positiven Impulses, wie auch des negativen Impulses jeweils 58 Mikrosekunden. Somit ergibt sich für ein komplettes Eins- Bit eine Dauer von 116 Mikrosekunden. Durch Verbraucher oder äußere Störeinflüsse können bei der Übertragung Impulslängenschwankungen auf dem Gleis auftreten. Dabei beträgt die zugelassene Toleranz eines positiven beziehungsweise negativen Impulses beim Senden plus minus drei Mikrosekunden. Die Dauer eines von der Digitalzentrale gesendeten Eins-Bit darf somit nicht unter 55 und über 61 Mikrosekunden liegen.

Im Gegensatz dazu sind die Toleranzen bei der Dekodierung eines gültigen Eins-Bit im Empfänger bei bis zu sechs Mikrosekunden pro Impuls. Die Abweichungen für die beiden Signalabschnitte vor und hinter dem Nulldurchgang eines Eins-Bit müssen dabei gleich gewichtet sein.

Erkennung eines Null-Bit

Für ein korrektes Null-Bit gilt eine Dauer für beide Impulse von größer oder gleich 100 Mikrosekunden. Dabei bleiben die beiden Impulse normalerweise gleich zueinander. Die Länge der beiden Signalabschnitte lässt sich für bestimmte Zwecke, wie zum Beispiel für eine Datenpause bis zur Toleranzgrenze von maximal 9900 Mikrosekunden erweitern. Abweichungen sind hierbei bis zu einer minimalen Impulsdauer von 95 Mikrosekunden möglich. Die Gestamtdauer der jeweiligen Impulse darf dabei 12000 Mikrosekunden nicht überschreiten.

Für die Dekodierung gilt die Erkennung eines Impuls mit der Dauer von 90 bis 10000 Mikrosekunden als gültiges Null-Bit. Meist wird für ein Null-Bit jedoch eine Zeit von 116 Mikrosekunden verwendet. Das ist die doppelte Länge eines Eins-Bit mit 58 Mikrosekunden. Bei der Verwendung eines speziellen verlängerten Null-Bit, sind Pausen im Sendevorgang oder die Realisierung einer Rückmeldung vom Dekoder zur Zentrale möglich.

Datenpaketformat

Laut Standard muss ein Dekoder wenigstens 95% der an ihn adressierten Datenframes als gültig erkennen. Um die Gleisspannung, die auch als Energieversorgung der Dekoder dient, aufrecht zu erhalten müssen kontinuierlich Daten übertragen werden. Mittels Brückengleichrichter wird im Dekoder aus dem Datenstrom eine Gleichspannung erzeugt. Um immer ein Datensignal auf dem Gleis zu haben, werden zum Beispiel bestimmte Datenframes wiederholt oder Leerlaufframes gesendet. Mit sich wiederholenden Befehlen wird sichergestellt, dass bei einer fehlerhaften Datenübertragung die Daten noch einmal gesendet werden. Für bestimmte Datenframes gelten standardisierte Wiederholungszeiten nach NEM671.

Datenpakete des DCC-Standard

Aufbau eines DCC-Basis-Datenpakets mit drei Daten-Bytes. Übertragen wurde hier ein Befehl für die Adresse 55, mit der Fahrstufe elf als Vorwärtsfahrt.

Das Datenpaket besteht aus sechs Teilen. Diese sind: Synchronisation, Start-Bit, Adress- Byte, Daten-Byte, Prüf-Byte und Stop-Bit. In der Abbildung ist ein DCC-Basis- Datenpaket mit drei Daten-Bytes (Adress-Byte, Befehls-Byte und Prüf-Byte) dargestellt. Um dem Dekoder zu signalisieren, dass Daten gesendet werden, wird eine Folge von mindestens zehn Eins-Bit als Synchronisation gesendet. Danach folgt das Start- Bit. Es kennzeichnet als Null-Bit das Ende der Synchronisationsphase. Das Adress-Byte wird als dritter Teil des DCC-Basis-Datenpakets gesendet und besteht normalerweise aus 8 Bit. Dann schließt sich das Daten-Byte-Startbit an, gefolgt von dem Daten-Byte mit 8 Bit Daten. Dieser Teil kann mehrmals, wenn mehr Daten vorhanden sind, gesendet werden. Vor dem Stop-Bit, welches das Ende des Datenpakets mit einem Eins-Bit kennzeichnet, enthält das letzte Byte eine CRC (Cyclic Redundancy Check)-Prüfsumme, um Fehler bei der Übertragung zu erkennen. Sie wird durch ein Bitweises XOR aus Adress-Byte und den vorhandenen Daten-Bytes gebildet.


Service Mode

dazu mehr unter: