DCC

    Im folgenden sind zum besseren Verständnis ein paar Beispielkommandos bei DCC erläutert.
  • Beispiel 1: Fahrbefehl an Lok 5, Fahrstufe 4 (von 14 Stufen), vorwärts
    Es wird ein Befehl mit 3 Byte geschickt:
    Preamble Startbit  Adressbyte (=0AAAAAAA)
             Startbit  Datenbyte  (=01DCSSSS)
             Startbit  Prüfsumme
             Stopbit
    
    Dabei bedeutet im Adressbyte AAAAAAA [A6 .. A0] die Lokadresse und und im Datenbyte D [Direction=Richtung], C [Lichtfunktion], SSSS [Speed]. Das DCC-Telegramm wird wie folgt zusammengebaut:
        Adressbyte = (Lokadresse & 0x7F);
        Datenbyte = 0b01000000 | (speed & 0x0F) | (Richtungsbit << 5);
        Prüfsumme  = Adressbyte ^ Datenbyte;
    
    Das Richtungsbit ist 1 für vorwärts, Null für rückwärts.
    Preamble 0 Adressbyte 0 Datenbyte 0 Prüfsumme
    11111111111111 0 00000101 0 01100100 0 01100001
  • Beispiel 2: Weichenansteuerung per DCC
    Es wird ein Befehl mit 3 Byte geschickt:
    Preamble Startbit  Adressbyte 10AAAAAA
             Startbit  Datenbyte  1AAA1BBR
             Startbit  Prüfsumme
             Stopbit
    
    Dabei bedeutet im Adressbyte AAAAAA [A5 .. A0] und im Datenbyte AAA [A8 .. A6], wobei die Adressen A8 bis A6 invertiert übertragen werden. BB ist die lokale Adresse am Decoder (0,1,2,3), R ist das Outputbit, d.h. welche Spule aktiviert werden soll. In der Zentrale wird nun z.B. aus der von PC übermittelten Adressen wie folgt das DCC-Telegramm zusammengebaut:
       Adressbyte = 0x80 + (adresse & 0x3F);
       Datenbyte  = 0x80 + (adresse / 0x40) ^ 0x07) * 0x10;
       Prüfsumme  = Adressbyte ^ Datenbyte;
    
    Die Adresse 0 ist als Broadcast reserviert, so dass die erste Weichengruppe bei Adresse 1 liegt. Leider gibt es bei den PC-Protokollen der einzelen Zentralen kleine, aber störende Unterschiede im Adressbereich und in der Interpretation des Outputbits sowie des Activatebits (im obigen Beispiel die 1).

    Uhlenbrock (Intellibox) beschreibt wie folgt (und überträgt auch so):
    'r' (red = thrown) and ('r' may also be spec'd as '0')
    'g' (green = closed) and ('r' may also be spec'd as '1')
    Der Adressbereich in der PC Schnittstelle beginnt dagegen entgegen der Dokumentation bei 1. Das heißt, der erste Decoder liegt auf Adressen 1 ... 4; Die Intellibox sendet auch nie den Abschaltbefehl auf das Gleis, auch wenn dieser vom PC aus angefordert wird.

    Lenz beschreibt das Richtungsbit als D2 mit folgendem Text:
    D2: D2 = 0 bedeutet Ausgang 1 der Weiche gewählt.
         D2 = 1 bedeutet Ausgang 2 der Weiche gewählt.

    Allerdings läßt es sich nirgends rausfinden, was Ausgang 1 oder 2 bedeutet. An Hand eines Logfiles scheint rot und grün vertauscht zu sein. OpenDCC bildet diese Invertierung (abschaltbar) durch eine CV nach.
    Dafür beginnen die Weichenadressen bei Lenz bei der Adresse 0 und den Abschaltbefehl gibt es.