Structure des paquets DCC


Structure d'un paquet DCC de base

Vous trouverez ci-dessous (figure1) la structure d'un paquet de données DCC de base.



Un paquet DCC de base permettant l'exploitation d'une locomotive et de ses accessoires se compose des éléments suivants:
- une séquence de synchronisation constituée d'un minimum de 14 bits à 1 suivie d'un bit à 0
- un octet d'adresse de loco suivi d'un bit à 0
- un octet de commande suivi d'un bit à 0
- un octet de controle suivi d'un bit à 1 qui signale la fin de la transmission du paquet.

L'intervalle de temps minimal entre l'émission de 2 paquets est de 5 ms (en pratique, on peut envoyer une suite de 0)

Contenu des paquets DCC de base générés par le PC

1. remise à zéro générale des décodeurs (reset)

Nom de l'octet
Valeur de l'octet
Commentaires
Octet de données 1
Octet d'adresse
00000000
Octet de données 2
Octet de commande
00000000
Octet de données 3
Octet de controle
00000000


2. réglage de la vitesse et du sens de marche des motrices

Nom de l'octet
Valeur de l'octet
Commentaires
Octet de données 1
Octet d'adresse
0AAAAAAA
adresse de la loco entre 1 et 127. Par exemple, l'adresse 3 est codée 00000011
Octet de données 2
Octet de commande
01DF S3/S2/S1/S0
Le bit D définit le sens de marche, avant(D=1) ou arrière (D=0)
Les bits F,S0 à S3 définissent les 28 crans de vitesse (stop: 00000, vitesse max:11111)
Octet de données 3
Octet de controle
EEEEEEEE
Cet octet est généré par l'addition logique bit pour bit de l'octet d'adresse et de l'octet de commande. La fonction logique utilisée est "OU-EXCLUSIF".


3. mise en route et arrêt des accessoires de la loco (phares, fumigène, sons), fonctions F0 à F12

Nom de l'octet
Valeur de l'octet
Commentaires
Octet de données 1
Octet d'adresse
0AAAAAAA
adresse de la loco entre 1 et 127. Par exemple, l'adresse 3 est codée 00000011
Octet de données 2
Octet de commande
1/0/d5/d4/d3/d2/d1/d0
Les bits d0 à d5 sont associés à la mise en route des fonctions F1 à F12 conformément au tableau ci-dessous.
Octet de données 3
Octet de controle
EEEEEEEE
Cet octet est généré par l'addition logique bit pour bit de l'octet d'adresse et de l'octet de commande. La fonction logique utilisée est "OU-EXCLUSIF".


Le tableau ci-dessous donne les valeurs de l'octet de données 2 correspondant aux fonctions F0 à F12.

Fonction
Valeur de l'octet
Fonction
Valeur de l'octet
F0
10010000
F7
10110100
F1
10000001
F8
10111000
F2
10000010
F9
10100001
F3
10000100
F10
10100010
F4
10001000
F11
10100100
F5
10110001
F12
10101000
F6
10110010


La programmation des fonctions s'effectue comme suit. Les instructions sont divisées en 2 groupes.

Le groupe 1 (100) permet la commande des fonctions F0,F1,F2,F3 et F4. L'octet de commande s'écrit: 100DDDDD.

Le groupe 2 (101) permet la commande des fonctions F5 à F12. L'octet de commande s'écrit: 101SDDDD.
Lorsque le bit S est à 1, les 4 bits DDDD controlent les fonctions F5 à F8. La fonction F5 est controlée par le bit 0 et la fonction F8 par le bit 3.
Lorsque le bit S est à 0, les 4 bits DDDD controlent les fonctions F9 à F12. La fonction F9 est controlée par le bit 0 et la fonction F12 par le bit 3.

Ainsi,pour commander toutes les fonctions d'un décodeur de locomotive (sens de marche, vitesse, fonctions F0 à F12), il faut envoyer successivement quatre paquets:
- un paquet de commande de vitesse
- un paquet de commande des fonctions F0 à F4
- un paquet de commande des fonctions F5 à F8
- un paquet de commande des fonctions F9 à F12

4. paquet vide (idle)

Nom de l'octet
Valeur de l'octet
Commentaires
Octet de données 1
Octet d'adresse
11111111
Octet de données 2
Octet de commande
00000000
Octet de données 3
Octet de controle
11111111


5. Paquets de base pour décodeurs d'accessoires.

Les décodeurs d'accessoires sont utilisés pour commander des fonctions simples comme les aiguillages, feux, etc...

Ils comportent en général 8 sorties qui sont groupées en 4 groupes de 2 (1A, 1B, 2A, 2B, 3A, 3B, 4A, 4B)

Le format d'un paquet est le suivant:

{préambule} 0 10AAAAAA 0 1AAACDDF 0 EEEEEEEE 1

Les bits A transmettent l'adresse ( 512 adresses possibles)
Le bit C permet d'activer ou de désactiver la sortie.
Les bits D permettent de sélectionner le groupe de sortie (00 correspond au groupe 1, 01 correspond au groupe 2, etc...
Le bit F permet de sélectionner la sortie A ou B dans chaque groupe: F=0 correspond à la sortie A et F=1 correspond à la sortie B.
Le premier octet d'adresse transmet les bits de poids faible.
Les 3 bits d'adresse du deuxième octet sont les bits de poids fort en complément à 2.
Un paquet destiné à un décodeur d'adresse 3 s'écrit:
"préambule" 0 10000011 0 1111CDDF 0 EEEEEEEE 1
et un paquet destiné à un décodeur d'adresse 128 s'écrit:
"préambule" 0 10000000 0 1101CDDF 0 EEEEEEEE 1

Paquets DCC étendus.

Ce nouveau type de paquets est défini dans la norme NMRA RP-921 "Extended packet formats".

Les paquets étendus ont une longueur comprise entre 3 et 6 octets séparés par un bit à zéro.

Alors que dans un paquet de base, le nombre d'adresses possibles est de 127, un paquet étendu permet d'avoir 16383 adresses.

De plus, un paquet étendu permet de commander jusqu'à 28 fonctions.

L'adresse utilise les deux premiers octets selon la configuration suivante:

1/1/a13/a12/a11/a10/a9/a8 0 a7/a6/a5/a4/a3/a2/a1/a0

L'adresse est codée sur 14 bits (bits a0 à a13).

Les paquets de vitesse et de commande d'accessoires ont une longueur de un, deux ou trois octets selon l'une des configurations suivantes:

CCCDDDDD,
CCCDDDDD 0 DDDDDDDD, ou
CCCDDDDD 0 DDDDDDDD 0 DDDDDDDD

Les 3 premiers bits C sont des bits d'instruction:
011 définit une commande de vitesse en marche avant
010 définit une commande de vitesse en marche arrière
100 définit une commande d'accessoires (F0 à F4)
101 définit une commande d'accessoires (F5 à F12)
110 définit une commande d'accessoires (F13 à F28)
Les bits D contiennent les données.

Le dernier octet du paquet est l'octet de controle généré par l'addition logique bit pour bit des octets précédents.

La commande des fonctions F13 à F28 utilise deux octets définis comme suit.

Pour les fonctions F13 à F20, le premier octet est: 11011110 et le deuxième octet est
F20/F19/F18/F17/F16/F15/F14/F13. Fn=1 indique que la fonction n est activée et Fn=0 indique que la fonction n n'est pas activée.

Pour les fonctions F21 à F28, le premier octet est: 11011111 et le deuxième octet est F28/F27/F26/F25/F24/F23/F22/F21.

Paquets DCC de service

1. Généralités

Les décodeurs sont tous livrés avec l'adresse 3. Dès que l'on veut utiliser plusieurs décodeurs sur le même circuit, il faut pouvoir changer les adresses. Pour celà, il faut passer en mode service qui permet d'envoyer à un décodeur les paquets correspondant à la nouvelle adresse de la loco.

Pendant la programmation, on ne doit avoir qu'une seule loco sur le circuit (celle à programmer). Il est donc prudent de réserver un tronçon de voie dédié à la programmation. On est sur de ne pas faire d'erreurs.

2. Structure d'un paquet de service

Un paquet de service est constitué d'un long préambule (au moins 20 bits à "1") suivi de 4 octets comme représenté ci dessous:

11...11 0 01111CAA 0 AAAAAAAA 0 DDDDDDDD 0 EEEEEEEE 1

Les 10 bits A transmettent l'adresse des variables de configuration (CV).Si N est le numéro du CV, son adresse est N-1 codé en binaire.
Les 8 bits D coorespondent aux données associées à chaque CV.
Les 8 bits E sont des bits de controle générés par l'addition logique bit pour bit des 3 octets précédents. La fonction logique utilisée est "OU-EXCLUSIF".

Le bit C correspond aux deux façons d'écrire les données associées à un CV.

a) C=1 correspond aux CV pour lesquels les données D0 à D7 peuvent avoir les valeurs comprises entre 0 et 255. C'est par exemple le cas du CV1 qui modifie l'adresse le la loco. Le CV1 a pour adresse: 00 00000000
La nouvelle adresse de la loco est transmise par les bits D.
Ainsi, un paquet de service destiné à transmettre l'addresse 4 d'une loco aura la structure suivante:

11...11 0 01111100 0 00000000 0 00000100 0 10011111 1

b) C=0 correspond au mode "manipulation de bit". Dans ce mode, on définit la position du bit à modifier et la nouvelle valeur du bit sélectionné.
Les 8 bits D de l'octet de données sont définis comme suit:
1111FBBB
BBB représente la position du bit dans le CV (001 définit le bit 1) et F donne la valeur du bit à modifier (F=0 ou F=1).
Par exemple, si on veut donner dans le CV 29 la valeur 1 au bit 2, l'octet s'écrira:
11111010
et le paquet de service aura la structure suivante:

11...11 0 01111000 0 00011101 0 11111010 0 01111000


Page suivante


Page précédente