Le nouveau protocole Märklin
(ou protocole de 2° génération)


Les limitations du format MOTOROLA

Le choix par Märklin d'un format binaire pour les trits de donnée S1 à S4 impose certaines limitations qui s'avêrent assez vite génantes :

Comme les décodeurs Märklin ont bien vite fait appel à des puces spécifiques (tels que la ZYMOS ou la LME03) pour traiter les ordres de télécommande, il aurait été possible de concevoir un protocole entièrement nouveau, capable de fournir les services supplémentaires, mais dont les décodeurs auraient été incompatibles avec le matériel de la génération précédente.
Heureusement, durant le développement du nouveau protocole, l'une des priorités de Märklin a été de conserver la compatibilité avec le 'vieux' protocole MOTOROLA, afin de pouvoir faire cohabiter sur le même réseau des matériels roulants équipés de décodeurs de différentes générations.
ATTENTION : en réalité, un décodeur de 1° génération est incapable de comprendre le protocole de 2° génération. En fait, si la grande majorité des contrôleurs de 2° génération arrive à piloter des décodeurs de 1° génération, c'est parce que ceux-ci transmettent (moyennant une configuration adéquate) des commandes au nouveau format mélangés avec des commandes à l'ancien format...
Bien entendu, un ancien décodeur sera parfaitement incapable d'éxécuter les commandes spécifiques au nouveau protocole !
De même, piloter une machine équipée d'un décodeur récent à partir d'un contrôleur de 1° génération empêche d'accéder aux fonctions spécifiques du nouveau protocole. Cette pirouette n'est rendue possible que par le fait que les décodeurs récents sont conçus pour reconnaître l'ancien protocole.

ContrôleurDécodeurFonctions disponibles
1° génération1° génération14 vitesses
Fonctions F1..F4 inexistantes
Pas de direction absolue (1 seul poussoir pour changer de direction)
2° génération1° génération14 vitesses reconnues
Fonctions F1..F4 non reconnues par le décodeur
Pas de direction absolue (1 seul poussoir pour changer de direction)
1° génération2° génération14 vitesses reconnues
Sorties F1..F4 inactives sur le décodeur
Pas de direction absolue (1 seul poussoir pour changer de direction)
2° génération2° génération14/15 vitesses reconnues
Sorties F1..F4 actives sur le décodeur
Sélection de direction absolue par commandes 'Forward' et 'Reverse'



Des paquets avec un nouveau format...

Les paquets du nouveau format sont constitués (presque) comme ceux de l'ancien format.
On trouve donc toujours nos 9 trits (soit 18 bits) répartis comme tel : Comme le format de l'adressage est le même que pour la 1° génération, les limites sont les mêmes (80 adresses différentes). L'adresse 0 (permutée avec l'adresse 80 dans les documentations Märklin) est toujours réservée par Märklin.

ATTENTION : EDiTS Pro se réserve également l'adresse 79 pour son usage personnel (cette adresse est destinée à la programmation des superdécodeurs. Tous les superdécodeurs reconnaissent cette adresse, afin de pouvoir recevoir les ordres de programmation). N'affectez jamais cette adresse à une de vos locomotives, faute de quoi TOUTES LES MACHINES seraient programmées à chaque fois qu'une commande serait transmise au décodeur 79.

Le trit de fonction garde lui aussi la fonction et le format (uniquement codes 00 ou 11) qu'il avait dans le format MOTOROLA.

La différence porte sur les trits S1 à S4, qui vont être codés en dibits. Du coup, le code interdit dans la 1° génération (trit 01) est valide pour les décodeurs de 2° génération (ce code est rejeté par les décodeurs de 1° génération, ce qui leur évite de "s'emmêler les pinceaux").


Le secret du nouveau protocole

Pour comprendre comment le nouveau protocole est structuré, il suffit juste de se rappeler qu'un trit n'est rien d'autre que deux bits accolés.
Märklin utilisait d'ailleurs une approche restrictive du format MOTOROLA en se limitant au trit '0' (codé 00) et au trit '1' (codé 11) - (le trit 'ouvert' 10 et le trit 'interdit' 01 ne sont pas utilisés dans l'ancien protocole), d'où les 16 combinaisons possibles avec S1, S2, S3 et S4.

Dans le nouveau protocole, on considère qu'on ne travaille plus avec 4 trits, mais 8 bits, ce qui permet d'accéder alors à 256 combinaisons. Le 'hic', c'est qu'il faut qu'aucune de ces combinaisons ne ressemble à une combinaison déja existante dans l'ancien format : il ne reste donc plus que 240 codes possibles...
Si on souhaite 16 vitesses possibles dans chaque sens, avec 4 sorties de fonctions, il faut déjà 512 codes !
Bref, il faut trouver une autre solution...

Comme on vient de le dire, l'astuce consiste à compter S1, S2, S3 et S4 en dibits, soit 8 bits au total.
Histoire de s'y retrouver, on va appeler ces bits H G F E D C B A. Au passage, on remarque que les trits de l'ancien protocole sont formés en fait des bits H/G, F/E, D/C et B/A.

Les bits G, E, C et A vont former le quartet de contrôle de vitesse. Dans tous les paquets du nouveau protocole, ces bits serviront à indiquer la consigne de vitesse.

GECACommande
1111Vitesse = 15
1110Vitesse = 14
1101Vitesse = 13
1100Vitesse = 12
1011Vitesse = 11
1010Vitesse = 10
1001Vitesse = 9
1000Vitesse = 8
0111Vitesse = 7
0110Vitesse = 6
0101Vitesse = 5
0100Vitesse = 4
0011Vitesse = 3
0010Vitesse = 2
0001Vitesse = 1
0000Vitesse=0 (Arrêt)

On remarque au passage que l'on gagne une vitesse, puisque la consigne 1, dédiée l'inversion de sens dans l'ancien protocole, est devenue libre.
Les décodeurs Märklin n'utilisent pas cette consigne, ce qui fait qu'ils ne disposent en fait que de 14 vitesses (comme avec l'ancien protocole). En revanche, les décodeurs EDiTS reconnaissent parfaitement cette consigne, et disposent d'un niveau de vitesse supplémentaire, bienvenu durant les manoeuvres.

L'indication de sens de déplacement (Avant / Arrière) est fait par les bits H, F, D et B. Pour éviter de tomber sur des combinaisons déjà existantes dans l'ancien protocole, l'indication de sens n'est pas donnée par un seul bit, mais par différentes combinaisons, selon le sens désiré et la vitesse correspondante.

HFDBRégle d'utilisation
1010Marche avant, vitesses 0 à 7
0010Marche avant, vitesses 8 à 15
1101Marche arrière, vitesses 0 à 7
0101Marche arrière, vitesses 8 à 15

Un petit exemple : si on souhaite faire rouler un train à vitesse maximale en marche avant, il faut utiliser le code vitesse (GECA) 1111, associé au code fonction (HFDB) 0010. La combinaison des deux (HGFEDCBA) donne donc le code binaire 01011101. Noter au passage la présence à trois reprises de la séquence 01, interdite dans l'ancien protocole.

Arrivé à ce niveau, nous avons donc (enfin !) la commande de direction absolue (on peut prévoir dans quelle direction partira un train...), mais on ne peut toujours pas commander de fonctions spécifiques.
Pour ce faire, on va repartir du même principe que ci-dessus, mais en utilisant des codes spécifiques, permettant au décodeur de savoir que ce n'est plus une direction qui est indiquée, mais l'activation (ou la désactivation) d'une fonction.

HFDBCommande
0011Désactivation sortie F1
1011Activation sortie F1
0100Désactivation sortie F2
1100Activation sortie F2
0110Désactivation sortie F3
1110Activation sortie F3
0111Désactivation sortie F4
1111Activation sortie F4

Exemple : si on souhaite activer la sortie F2 d'un train roulant à la vitesse 14, il faut utiliser le code vitesse (GECA) 1110, associé au code fonction (HFDB) 0100. La combinaison des deux (HGFEDCBA) donne donc le code binaire 01110100. Noter encore une fois la présence de la séquence interdite (dans l'ancien protocole) 01.

Arrivé à ce point, tout semble aller pour le mieux dans le meilleur des mondes. Avec ce nouveau protocole, on peut commander les trains dans une direction prédéfinie, avec 15 niveaux de vitesse, et on peut agir à volonté (et à distance...) sur 4 sorties sur chaque décodeur.

Oui mais...
Prenons par exemple le cas d'un train roulant à la vitesse 14, sur lequel on souhaite activer la sortie F3. Les deux tableaux précédents nous donnent : Catastrophe : on arrive au code (HGFEDCBA) 11111100 qui est utilisé dans l'ancien protocole pour donner la consigne de vitesse 14. Comme les décodeurs de 2° génération se doivent de reconnaître l'ancien protocole, notre décodeur ne sait pas quoi faire. Ce code peut signifier "soit va à la vitesse 14" (ancien protocole), soit "va à la vitesse 14 ET active la sortie F3" (nouveau protocole).
Il existe ainsi 8 combinaisons qui posent problème.
Pour ces 8 cas, un code de remplacement à été prévu pour remplacer la séquence HFDB, là ou les risques de confusion existent :

ConditionHFDB
Désactivation F1
Vitesse=3
0101
Activation F1
Vitesse=11
1010
Désactivation F2
Vitesse=4
0101
Activation F2
Vitesse=12
1010
Désactivation F3
Vitesse=6
0101
Activation F3
Vitesse=14
1010
Désactivation F4
Vitesse=7
0101
Activation F4
Vitesse=15
1010

Si on reprend les données précédentes (activation de F3 sur un train roulant à la vitesse 14), au lieu d'avoir le code binaire 11111100, on a pour GECA le code 1110, et pour HFDB le code spécial 1010, ce qui donne le code binaire suivant pour HGFEDCBA : 11011100.


Faut pas être pressé...

Les informations du paragraphe précédent devraient déjà vous faire frémir d'horreur... Le protocole MARKLIN (alias nouveau protocole MOTOROLA, alias 2° génération...) ne peut à la fois donner les consignes de vitesse et celles de commande des sorties de fonction, car on arriverait à des situations où les commandes seraient similaires à celles de l'ancien protocole...
Il faut donc DEUX DOUBLES PAQUETS REPETES : un premier avec les informations de vitesse et de direction absolue, un second pour commander les sorties de fonctions F1..F4.

Arrivé à ce point, on pourrait croire que la charge n'est "que" doublée. Mais c'est sans compter le fait que dans un double paquet répété, on ne peut transmettre la commande que d'UNE SEULE sortie de fonction...
Un bloc complet est donc formé de (l'ordre des messages donné ici est celui retrouvé en sortie des contrôleurs 6021) : soit la bagatelle de... 32 paquets (8 doubles paquets répétés) par décodeur !!!

Faisons nos comptes :
La page précédente a montré qu'avec les paramètres de transmission MOTOROLA, il fallait 28 ms pour transmettre un double paquet répété.
Le nouveau protocole transmet 8 doubles paquets répétés, soit un temps équivalent à 8 * 28 = 224 ms (soit 0,2 seconde par train !)
Avec 80 décodeurs possibles, il faut donc 17,92 secondes pour faire un cycle complet !!!
Cette valeur signifie que lorsque le contrôleur transmet des commandes aux trains, il pourrait y avoir un décalage jusqu'à 18 secondes entre l'action sur le pupitre et la réaction du train. Pour éviter ça, les contrôleurs comme le 6021 utilisent une stratégie de commande spéciales : chaque fois qu'un nouvel ordre parvient au contrôleur (changement de direction par exemple), celui-ci transmet prioritairement cet ordre avant de continuer son cycle de balayage. Toutefois, sur un réseau fortement chargé, avec des commandes simultanées d'itinéraire, on peut atteindre des retards à l'éxécution de plusieurs secondes (les aiguilles sont toujours traitées APRES les ordres de traction... ouf)

Les nouveaux contrôleurs Märklin disposent toutefois d'une fonction spécifique, qui permet d'augmenter la cadence de transmission des paquets, afin de réduire le temps de réaction.
En activant cette fonction, les contrôleurs Märklin utilisent un temps inter-paquet de 1525 µs (comme sur le protocole MOTOROLA, compatibilité oblige...), mais le temps entre les répétitions est ramené à 1025 µs (au lieu de 4025 µs). Le temps "inter double paquet répété" est quant à lui purement et simplement supprimé (il valait 6025 µs dans le protocole MOTOROLA).
La communication sur les rails a donc l'allure suivante : On refait les comptes :
Avec 80 locomotives, le temps de cycle est ramené dans ce cas à 80 * 152.6 = 12.2 secondes (au lieu de 17.9 secondes...)

Seul "petit" problème : ce réglage 'accéléré' n'est compris que par les décodeurs de la 2° génération.
Si vous n'avez que des trains équipés de tels décodeurs, n'hésitez pas : activez la transmission accélérée.
Si vous avez des trains équipés de décodeurs de 1° génération, vous devrez configurer votre contrôleur pour qu'il utilise les réglages équivalents au protocole de 1° génération, faute de quoi vos décodeurs ne réagiront pas.
Signalons quand même que les temps ont été choisis astucieusement par Märklin : certains décodeurs de 1° génération arrivent quand même à fonctionner avec la communication accélérée.


Retour à la page principale