• accueil
  • réseaux à l'échelle 0
    • réseau jouet ancien
      • présentation
      • catalogue LR
      • photos du matériel roulant
    • réseau jouet moderne
      • présentation
      • quelques videos
      • matériel roulant
      • 131T ETS et fumigènes
      • portique intermodal
    • réseau modulaire
      • présentation
      • photos
      • vidéos
      • exploitation du réseau
      • matériel roulant
      • le parc d'attractions
      • le pont tournant
  • réseaux de monorails
    • introduction
    • histoire des monorails
    • maquettes de monorails gyroscopiques
    • principes de la levitation magnétique
    • monorail jouet à sustentation magnétique
    • maquette de lévitation électromagnétique
  • train de jardin
    • présentation
    • Matériel roulant
    • 030T CDN
    • autorail de Dion
    • autorail Billard
    • Mallet LGB
    • BB400 des CP
    • Vapeur vive Emma
    • Vapeur vive Millie
    • Vapeur vive MIKADO
    • Loco vapeur 031T ACO
    • Exploitation du réseau
    • Rétrosignalisation
    • Wagon dételeur
    • Liens
  • techniques
    • électronique
      • présentation
      • alimentation pwm
      • Détecteur de passage infra rouge
      • Commande d'une plaque tournante
      • Comment réaliser un oscillo pas cher
      • Utilisation d'un servomoteur
      • Commande d'aiguille par décharge capacitive
      • Commande d'un fumigène pulsé par un décodeur ESU Loksound
    • informatique
      • généralités
      • port parallèle
      • port série
      • port USB
      • Qbasic et Freebasic
      • Visual Basic
      • Exploitation d'un réseau en Visual Basic
      • Commande d'un réseau par manette de jeu
      • Commande vocale d'un réseau
    • ARDUINO
      • introduction
      • Sonorisation d'une locomotive
      • Radiocommande et sonorisation d'une loco sans DCC
      • Module de sonorisation d'un réseau
      • Applications du BLUETOOTH au modélisme ferrovaire
    • Fumigènes
    • dcc
      • Introduction
      • Structure des paquets DCC
      • ARDUINO et DCC
      • Utilisation d'un ampli audio comme booster
      • Création d'un signal DCC avec un PC
      • Contrôle d'un signal DCC
      • Rétrosignalisation
      • Détecteurs d'occupation
      • Utilisation du LokProgrammer
      • SPROG II
      • DCC transmis par radio
      • Présentation du programme CARTO-DCC
      • Commande d'un réseau DCC en WiFi
      • programmation des locos MTH
      • Régulateur DCC à commande vocale en Français
      • Commande des aiguilles en DCC
      • Les décodeurs sonores
  • Contact




  • 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