Accueil > Technique > Digital > Les trames de fonctions en DCC

Les trames de fonctions en DCC

lundi 24 mai 2021, par Jean Champalbert, Jean-Philippe Combier

Les trames de fonctions en DCC

Les décodeurs de locomotive gèrent également un certain nombre de fonctions comme l’allumage des feux de position, l’allumage de la cabine, un fumigène, un dételeur, la levée du pantographe... Actuellement le nombre de fonctions admises est de 28 mais ce nombre va croissant.

Les trames qui codent les sorties de fonctions sont un peu différentes de ce que nous avons vu précédemment car les trames destinées à la fonction à commander sont complémentaires à la commande de vitesse reçue par le décodeur. Comme on le verra plus loin, les fonctions sont réparties en cinq groupes. Pour commander une fonction qui a changé d’état seule la trame du groupe de fonction impliquée sera émise.

Comme on s’en doute, plus le nombre de fonctions est important et plus la programmation va être complexe. Pour chaque fonction une ou plusieurs Cv sont concernées. Les locomotives équipées de décodeurs sonores multiplient les fonctions sans compter les demandes d’allumage individuel des feux, l’allumage de la cabine, le rougeoiement du foyer, le fumigène, l’attelage/détellage…. Il faut bien entendu que la locomotive dispose de ces équipements et que sa platine soit câblée en conséquence.

Les trames de fonction des locomotives sont composées, comme les commandes de vitesses, avec un ou deux octets d’adresse identiques à ceux de commande de vitesse et de un ou deux octets de commande pour coder les fonction de 1 à 28.

Les fonctions sont réparties en 5 groupes. 3 groupes sont codés sur 1 octet et les deux derniers groupes sur 2 octets.
Quand le bit attribué à une fonction et mis à 1 la fonction est activée et en le mettant à 0 la fonction est désactivée.

Codage pour les adresses courtes

Pour les fonctions F1 à F12 et une adresse courte, on utilise une trame sur 3 octets.

On distingue les trames codant les fonctions F1 à F4 et FL (FL pour Front Light c’est le F0 allumage des feux), couplée avec les Cv 33 marche avant et Cv 34 marche arrière), Et les trames codant les fonctions F5 à F12, ces deux trames sont sur 3 octets, seul le 5ème bit de l’octet 2 est différent.

1) Très long préambule d’au moins 20 bits à 1.
2) Bit de séparation à 0
3) Premier octet. Le bit 7 est à 0 pour indiquer une adresse courte. Les 7 bits suivants (A) codent l’adresse qui ne peut prendre que 128 valeurs.
4) Bit de séparation à 0.
5) Deuxième octet. Les bits 7, 6 et 5 (X) codent les fonctions suivant le tableau suivant :

Ainsi, dans l’octet 2, le bit 8 à 1 et les bits 7 et 6 à 0 vont coder les fonctions FL (F0), F1 à F4, comme toujours la valeur 1 active et la valeur 0 désactive, il faut encore que le bit 1 de la Cv 29 soit à 1 voir à ce sujet La Cv 29 à quoi ça sert

Si on active les bits 5 et 7 de l’octet 2 (XXX = 101) on gagne 8 fonctions supplémentaires F5 à F12, c’est l’octet 4 (S) qui les pilote :
Mis à 1 il contrôle les fonctions F5 à F8, mis à 0 il contrôle les fonctions F9 à F12.
6) Le traditionnel bit de séparation à 0
7) L’octet de contrôle sur le contenu des octets 1 et 2.
8) Le bit STOP à 1

Et pour piloter plus de fonctions il va nous falloir ajouter un octet supplémentaire.

Format du paquet pour fonctions F13 à F28 et FL (F0)

Là encore il faudra distinguer les fonctions de F13 à F20 et les fonctions F21 à F 28.

1) Très long préambule d’au moins 20 bits à 1.
2) Bit de séparation à 0
3) Premier octet. Le bit 7 est à 0 pour indiquer une adresse courte. Les 7 bits suivants (A) codent l’adresse qui ne peut prendre que 128 valeurs.
4) Bit de séparation à 0.
5) Deuxième octet. Les bits 7, 6 et 5 X codent les fonctions suivant le tableau suivant :

16 fonctions sont alors sélectionnables avec les bits 0,1,2,3,4, (C) du deuxième octet
6) Bit de séparation à 0
7) L’octet 3 code les fonction visées

8) Bit de séparation à 0
9) Octet de contrôle
10) Bit de STOP à 1

Codage pour les adresses longues.

C’est la norme de la NMRA RP-921 (Extended Packet Formats) parue en Aout 2021 qui définit les adresses dites longues et le codage des fonctions jusqu’à 28. Le paquet gérant la vitesse et l’activation des fonctions va s’écrire sur 1, 2 ou 3 octets, séparés par un bit à zéro.

En plus de l’octet 1 qui contient le préambule, il nous faut deux octets pour coder l’adresse de la loco su r 14 bits. L’adresse va s’écrire dans les octets 2 (poids faible) et une partie de l’octet 1 (An)

Ici encore il faudra distinguer les trames codant les fonctions FL (F0) à F4 et celles pour coder les fonctions F5 à F12 et F13 à F28.

L’octet 4 contient 3 bits (X) d’instructions
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 (FL) à F4)
101 définit une commande d’accessoires (F5 à F12)
110 définit une commande d’accessoires (F13 à F28)
Et 5 bits de données qui codent les fonctions F0 (FL) et F1 à F4

Au-delà, un octet supplémentaire est nécessaire pour ajouter plus de fonctions, ce qui nous fait des trames de 5 octets.

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

Fn=1 la fonction n est activée, Fn=0 la fonction n n’est pas activée

De même les fonctions F21 à F28 ont besoin de 2 octets

C’est le bit 0 de l’octet 3 qui fait la différence

On obtient donc des trames de 6 octets.
L’octet 1 contient le préambule
Les octets 2 et 3 l’adresse longue et 2 bits d’instructions
Les octets 4 et 5 l’instruction pour les fonctions
L’octet 6 le contrôle.

Pour en savoir plus Piloter les fonctions des locomotives à qui j’ai beaucoup emprunté et à Dcc2

Portfolio