widget compteur de visites gratuit widget compteur de visite  
Centrale DCC V3.4
Le PROTOCOLE DCC pour LOCOMOTIVE
(Digital Command Control)







Le PROTOCOLE DCC
Le standard DCC permet d'envoyer plusieurs catégories de messages :
• Message destiné aux décodeurs des locomotives,
• Message spécialisé (Remise à zéro, Trame d'urgence, Trame vide),
• Message destiné aux décodeurs d'accessoire,
• Message de service (lire ou écrire dans les variables de configuration des décodeurs).

Pour commander les différents décodeurs, le DCC utilise un protocole. C'est cette connaissance du protocole qui permet de générer ces messages.

Format du paquet de données DCC de base.

Synchronisation   Octet de données 1   Octet de données 2   Octet de données 3  
1111111111111111 0 0 A A A A A A A 0 0 1 D C V V V V 0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8)
Paquet DCC de base

DÉTAILS du PROTOCOLE DCC
Pour l'instant nous ne détaillerons que le protocole pour la commande des locomotives.

Les possibilités offertes par le protocole DCC sont nombreuses et parfois complexes, j'ai essayé d'être aussi exhaustif et clair que possible.
Pour la commande des locomotives 4 possibilités sont offertes. Je les détaille toutes, vous prendrez celle qui vous convient le mieux.
Pour ma part, dans un premier temps, j'ai choisi le plus "simple" qui offre déjà pas mal de possibilités : Trame courte, commande de 127 locomotives, sur 28 pas de vitesse.

Le protocole DCC a prévu plusieurs possibilités concernant la commande des locomotives :
     • Pour la commande de 127 décodeurs,
     • Pour un réglage de la vitesse sur 14 ou 28 pas.

     • Pour la commande de 10239 décodeurs,
     • Pour un réglage de la vitesse sur 14 ou 28 pas.

     • Pour la commande de 127 décodeurs,
     • Pour un réglage de la vitesse sur 128 pas.

     • Pour la commande de 10239 décodeurs,
     • Pour un réglage de la vitesse sur 128 pas.

Lors de la programmation des décodeurs de locomotives il faut toujours se reporter à la notice du décodeur.

En effet lors de la programmation :
• Si on utilise une trame 3 octets les adresses utilisables vont de 1 à 127 mais certains décodeurs n'acceptent au plus que l'adresse 99.
• Si on utilise une trame 4 ou 5 octets les adresses utilisables vont jusqu'à 10239, mais certains décodeurs n'acceptent au plus que l'adresse 9999.

• D'autres particularités peuvent aussi être imposées par le décodeur.

La TRAME 3 OCTETS
127 Décodeurs et 14 ou 28 pas de vitesse

Préambule   Octet 1   Octet 2   Octet 3  
1111111111111111 0 0 A A A A A A A 0 0 1 D C V3 V2 V1 V0  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8)
Trame 127 Décodeurs et 14 ou 28 pas de vitesse

Explication de la Trame DCC :
1) Préambule
La trame commence par l'envoi du Préambule (16 bits à "1").

2) Séparation par un bit "START" à "0".

3) Envoi de l'octet 1 d'adresse : (L'adresse est codée sur 7 bits).
L'octet commence par le bit 7 à "0", qui indique que l'on utilise une adresse courte.
• Les 7 bits suivants contiennent l'adresse de la locomotive à commander en binaire. 
 Nota

4) 
Séparation par un bit "START" à "0".

5) Envoi de l'octet 2 de commande ou données :
• L'octet commence par les deux bits 7 et 6 à "0 et 1"qui indiquent un codage de vitesse sur 14 ou 28 pas,
• Le bit 5 "D" indique la direction de la locomotive :
   • "0" donne la marche arrière,
   • "1" donne la marche avant,
• Le bit 4 "C" indique un codage de vitesse à 14 ou 28 pas :
   • "0" vitesse codée sur 14 pas,
   • "1" vitesse codée sur 28 pas,
• Les bits 3, 2, 1, 0, "V3, V2, V1, V0" indique la valeur de la 
vitesse.

Tableau des vitesses : 14 pas

tableau des vitesses 14 pas
Tableau des vitesses : 14 pas

Tableau des vitesses : 28 pas

tableau des vitesses 28 pas
Tableau des vitesses : 28 pas


6) 
Séparation par un bit "START" à "0".

7) Envoi de l'octet 3 de contrôle :
• La valeur des bits de l'octet de contrôle dépend de l'octet 1 et de l'octet 2,
• L'octet de contrôle est calculé par la centrale DCC en effectuant un "OU EXCLUSIF" ou "XOR",
• Les bits de l'octet 1 et de l'octet 2 sont additionnés bit à bit en utilisant la fonction "OU EXCLUSIF".

Table "OU EXCLUSIF" ou "XOR"
table de vérite ou exclusif
Table de vérité : OU EXCLUSIF

Exemple 1 :                                                                                                                                          
Octet 1 = 00100000 (Adresse courte, Adresse 32),
Octet 2 = 01111100 (Locomotive, sens avant, pas de vitesse 28, vitesse 22),
Octet 3 = 01011100 (Résultat de l'octet de contrôle, addition bit à bit suivant la table "XOR".

Préambule   Octet 1   Octet 2   Octet 3  
1111111111111111 0 0 0 1 0 0 0 0 0  0 0 1 1 1 1 1 0 0  0 0 1 0 1 1 1 0 0 
1
1) 2) 3) 4) 5) 6) 7) 8)
    Exemple 1
       
Exemple 2 :
Octet 1 = 00111111 (Adresse courte, Adresse 63),
Octet 2 = 01010110 (Locomotive, sens arrière, pas de vitesse 28, vitesse 26),
Octet 3 = 01101001 (Résultat de l'octet de contrôle, addition bit à bit suivant la table "XOR".

Préambule   Octet 1   Octet 2   Octet 3  
1111111111111111 0 0 0 1 1 1 1 1 1  0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 0 1 
1
1) 2) 3) 4) 5) 6) 7) 8)
    Exemple 2
       
Nota :
L'octet de contrôle calculé est inséré dans la trame DCC qui est ensuite envoyée sur la voie.
Le décodeur concerné par l'adresse envoyée, calcule de son côté l'octet de contrôle. (Des mauvais contacts ou parasites peuvent altérer le contenu du signal envoyé par la centrale).
Le décodeur compare ensuite l'octet de contrôle envoyé par la centrale DCC et celui qu'il a calculé. Si les deux concordes la trame est acceptée et exécutée dans le cas contraire la trame est refusée.

8) 
Bit "STOP" à "1".
Fin de transmission du paquet.

La TRAME 4 OCTETS
10239 Décodeurs et 14 ou 28 pas de vitesse

Préambule   Octet 1   Octet 2   Octet 3   Octet 4  
1111111111111111 0 1 A A A A A A 0 A A A A A A A A 0 0 1 D V0 V4 V3 V2 V1  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
Trame 10239 Décodeurs et 14 ou 28 pas de vitesse

Explication de la Trame DCC :
1) Préambule
La trame commence par l'envoi du Préambule (16 bits à "1").

2) Séparation par un bit "START" à "0".

3) Envoi de l'octet 1 d'adresse : (L'adresse est codée sur 14 bits 2 octets sont nécessaires).
L'octet commence par les bits 7 et 6 à "1", qui indiquent que l'on utilise une adresse longue,
• Les 6 bits suivants contiennent l'adresse de la locomotive à commander en binaire en combinaison avec l'octet suivant. 
 Nota

4) 
Séparation par un bit "START" à "0".

5) Envoi de l'octet 2 d'adresse :
• Les 8 bits de l'octet sont réservés à la vitesse en combinaison avec l'octet précédent.

Dans le protocole DCC le premier bit d'adresse est le bit de poids fort (MSB) qui est transmis en premier.
Exemple :

Préambule   Octet 1   Octet 2   Octet 3   Octet 4  
1111111111111111 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1  0 0 1 D V0 V4 V3 V2 V1  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
Adresse : 10239 

Préambule   Octet 1   Octet 2   Octet 3   Octet 4  
1111111111111111 0 1 0 0 0 0 0 0  0 0 0 0 0 0 0 1 1  0 0 1 D C V4 V3 V2 V1  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
Adresse : 3


6) 
Séparation par un bit "START" à "0".

7) Envoi de l'octet 3 de commande ou données :
L'octet commence par les deux bits 7 et 6 à "0 et 1", qui indiquent un codage de vitesse sur 14 ou 28 pas,
• Le bit 5 "D" indique la direction de la locomotive :
   • "0" donne la marche arrière,
   • "1" donne la marche avant,
• Le bit 4 "C" indique un codage de vitesse à 14 ou 28 pas :
   • "0" vitesse codée sur 14 pas,
   • "1" vitesse codée sur 28 pas,
• Les bits 3, 2, 1, 0, "V3, V2, V1, V0" indique la valeur de la 
vitesse.

8) Séparation par un bit "START" à "0".

9) Envoi de l'octet 4 de contrôle :
• La valeur des bits de l'octet de contrôle dépend de l'octet 1 de l'octet 2 et de l'octet 3,
• L'octet de contrôle est calculé par la centrale DCC en effectuant un "OU EXCLUSIF" ou "XOR",
• Les bits de l'octet 1 et de l'octet 2 sont additionnés bit à bit en utilisant la fonction "OU EXCLUSIF", le résultat de cette opération est ensuite utilisé pour être additionné à l'octet 3 pour obtenir le résultat final.
Exemple 1 : Trame de 10239 décodeurs et 14 ou 28 pas de vitesse. (Adresse = 3)
Octet 1 = 11000000 (Adresse sur 14 bits),
Octet 2 = 00000011 (Adresse sur 14 bits), 
Résultat Octet 1 + octet 2 = 11000011 auquel on ajoute l'octet 3.

Octet 3 = 01111010 (Locomotive, sens avant, pas de vitesse 28, vitesse 18).
Résultat Octet 4 = 10111001 (Résultat de l'octet de contrôle, addition bit à bit suivant la table "XOR".


Préambule   Octet 1   Octet 2   Octet 3   Octet 4  
1111111111111111 0 1 1 0 0 0 0 0 0  0 0 0 0 0 0 0 1 1  0 0 1 1 1 1 0 1 0  0 1 0 1 1 1 0 0 1 
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
    Exemple 1              
Adresse = 3, sens avant, 28 pas de vitesse, vitesse = 18 

Exemple 2 : (Adresse = 10239)
Octet 1 = 11100111 (Adresse sur 14 bits),
Octet 2 = 11111111 (Adresse sur 14 bits), 
Résultat Octet 1 + octet 2 = 00011000 auquel on ajoute l'octet 3.

Octet 3 = 01111111 (Locomotive, sens avant, pas de vitesse 128, vitesse 28).

Résultat Octet 4 = 01100010 (Résultat de l'octet de contrôle, addition bit à bit suivant la table "XOR".

Préambule   Octet 1   Octet 2   Octet 3   Octet 4  
1111111111111111 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1  0 0 1 1 1 1 1 1 1  0  0 1 1 0 0 0 1 0 
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
    Exemple 2              
Adresse = 10239, sens avant, 128 pas de vitesse, vitesse = 28 
Nota :
L'octet de contrôle calculé est inséré dans la trame DCC qui est ensuite envoyée sur la voie.
Le décodeur concerné par l'adresse envoyée, calcule de son côté l'octet de contrôle. (Des mauvais contacts ou parasites peuvent altérer le contenu du signal envoyé par la centrale).
Le décodeur compare ensuite l'octet de contrôle envoyé par la centrale DCC et celui qu'il a calculé. Si les deux concordes la trame est acceptée et exécutée dans le cas contraire la trame est refusée.

10) 
Bit "STOP" à "1".
Fin de transmission du paquet.
La TRAME 4 OCTETS
127 décodeurs et 128 pas de vitesse

Préambule   Octet 1   Octet 2   Octet 3   Octet 4  
1111111111111111 0 0 A A A A A A A 0 0 0 1 1 1 1 1 1 0 D V6 V5 V4 V3 V2 V1 V0  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
Trame 127 décodeurs et 128 pas de vitesse

Explication de la Trame DCC : 
1) Préambule 

• La trame commence par l'envoi du Préambule (16 bits à "1").

2) Séparation par un bit "START" à "0".

3) Envoi de l'octet 1 d'adresse (L'adresse est codée sur 7 bits).
• L'octet commence par le bit 7 à "0", qui indique que l'on utilise une adresse courte,
• Les 7 bits suivants contiennent l'adresse de la locomotive à commander en binaire.
 Nota

4)
Séparation par un bit "START" à "0".

5) Envoi de l'octet 2 : 
• L'octet commence avec les bits  7 à "0", 6 à "0" et 5 à "1", qui indiquent que l'octet suivant est entièrement dédié à la vitesse, (001 : fonctions avancées du décodeur).
• Les bits suivants à "1" indique que l'on est sur 128 pas de vitesse.

6)
Séparation par un bit "START" à "0".

7) Envoi de l'octet 3 : 
 • Le bit 7 "D" indique la direction de la locomotive : 
"0" donne la marche arrière, 
"1" donne la marche avant,
• Les bits suivant "V6 V5 V4 V3 V2 V1 V0", indique la valeur de la vitesse sur 128 pas : 
    • "0" donne un ordre d'arrêt d'urgence, 
    • "1" donne un ordre d'arrêt d'urgence avec inertie,
    • Ensuite il s'agit de transmettre le pas de vitesse en binaire. Bit de poids fort en tête.

8) Séparation par un bit "START" à "0".

9) Envoi de l'octet 4 de contrôle : 
• La valeur des bits de l'octet de contrôle dépend de l'octet 1 de l'octet 2 et de l'octet 3,
• L'octet de contrôle est calculé par la centrale DCC en effectuant un "OU EXCLUSIF" ou "XOR",
• Les bits de l'octet 1 et de l'octet 2 sont additionnés bit à bit en utilisant la fonction "OU EXCLUSIF", le résultat de cette opération est ensuite utilisé pour être additionné à l'octet 3 pour obtenir le résultat final. 
Voir exemple sur La TRAME 4 OCTETS, 10239 Décodeurs et 14 ou 28 pas de vitesse. 

Nota : 
L'octet de contrôle calculé est inséré dans la trame DCC qui est ensuite envoyée sur la voie. 
Le décodeur concerné par l'adresse envoyée, calcule de son côté l'octet de contrôle. (Des mauvais contacts ou parasites peuvent altérer le contenu du signal envoyé par la centrale). 
Le décodeur compare ensuite l'octet de contrôle envoyé par la centrale DCC et celui qu'il a calculé. Si les deux concordes la trame est acceptée et exécutée dans le cas contraire la trame est refusée.

10) 
Bit "STOP" à "1".
Fin de transmission du paquet.
La TRAME 5 OCTETS 
10239 décodeurs et 128 pas de vitesse

Préambule   Octet 1   Octet 2   Octet 3   Octet 4   Octet 5  
1111111111111111 0 1 1 A A A A A A 0 A A A A A A A A 0 0 0 1 1 1 1 1 1  0 D V6 V5 V4 V3 V2 V1 V0  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12)
Trame 10239 décodeurs et 128 pas de vitesse

Explication de la Trame DCC :  
1) Préambule  
• La trame commence par l'envoi du Préambule (16 bits à "1").

2) Séparation par un bit "START" à "0".

3) Envoi de l'octet 1 d'adresse : (L'adresse étant codée sur 14 bits 2 octets sont nécessaires, l'octet 1 et l'octet 2).  
• L'octet commence par les bits 7 et 6 à "1", qui indiquent que l'on utilise une adresse longue. 
• Les 6 bits suivants contiennent l'adresse de la locomotive à commander en binaire en combinaison avec l'octet 2.
 Nota

4) Séparation par un bit "START" à "0".

5) Envoi de l'octet 2 d'adresse : 
• Les 8 bits de l'octet sont réservés à la vitesse en combinaison avec l'octet précédent.

Dans le protocole DCC le premier bit d'adresse est le bit de poids fort (MSB) qui est transmis en premier. 
Exemple :

Préambule   Octet 1   Octet 2   Octet 3   Octet 4   Octet 5  
1111111111111111 0 1 1 1 0 0 1 1 1    0  1 1 1 1 1 1 1 1 
0 0 0 1 1 1 1 1 1  0 D V6 V5 V4 V3 V2 V1 V0  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12)
Adresse : 10239

Préambule   Octet 1   Octet 2   Octet 3   Octet 4   Octet 5  
1111111111111111 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1  0 D V6 V5 V4 V3 V2 V1 V0  0 C C C C C C C C
1
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12)
Adresse : 3

6)
Séparation par un bit "START" à "0".

7) Envoi de l'octet 3  : 
• L'octet commence avec les bits 7 à "0", 6 à "0" et 5 à "1", qui indiquent que l'octet suivant est entièrement dédié à la vitesse, (001 : fonctions avancées du décodeur).
• Les bits suivants à "1" indique que l'on est sur 128 pas de vitesse.

8) Séparation par un bit "START" à "0".

9) Envoi de l'octet 4 :  
• Le bit 7 "D" indique la direction de la locomotive :  
"0" donne la marche arrière,  
"1" donne la marche avant, 
• Les bits suivants "V6 V5 V4 V3 V2 V1 V0"indique la valeur de la vitesse sur 128 pas :   
"0"  donne un ordre d'arrêt d'urgence avec inertie, 
"1" donne un ordre d'arrêt d'urgence, 
• Ensuite il s'agit de transmettre le pas de vitesse en binaire. Bit de poids fort en tête.

10)
Séparation par un bit "START" à "0".

11) Envoi de l'octet 5 de contrôle :  
• La valeur des bits de l'octet de contrôle dépend de l'octet 1 de l'octet 2 et de l'octet 3,
• L'octet de contrôle est calculé par la centrale DCC en effectuant un "OU EXCLUSIF" ou "XOR",
• Les bits de l'octet 1 et de l'octet 2 sont additionnés bit à bit en utilisant la fonction "OU EXCLUSIF", le résultat de cette opération est ensuite utilisé pour être additionné à l'octet 3 pour obtenir le résultat final.  
Voir exemple sur La TRAME 4 OCTETS, 10239 Décodeurs et 14 ou 28 pas de vitesse.

12) 
Bit "STOP" à "1".
Fin de transmission du paquet.