DECODEURS  PPM  

             Après avoir étudié, dans les précédentes pages, la technologie des
CODEURS PPM, nous devons maintenant passer au DECODAGE de la
séquence générée.
Rappelons que le codeur est nécessaire pour faire passer sur UN FIL
( ou un canal de transmission ) les diverses informations de voies, alors que
le DECODEUR doit effectuer le travail inverse, de manière à restituer à
chaque servo l'information qui lui est destinée. Cela est illustré en Fig. 1.

Le DECODEUR PPM.

Bien entendu le décodeur PPM a évolué depuis sa création, mais en réalité, beaucoup moins que le codeur lui-même.

        1. Décodeurs PPM de 1ère génération.

Ils étaient évidemment à transistors.     Voir Fig.2 .
Constitués de bascules élémentaires réalisées par des couples PNP/NPN dénommés BINISTORS, leur fonctionnement très astucieux est assez complexe et nous n'entrerons pas dans les détails.
Au repos ou pendant le temps de synchro, le binistor T4/T5 conduit, tous les autres sont bloqués. A la première impulsion de la séquence T4/T5 se bloque mais fait conduire T6/T7 par le 22 nF. La deuxième impulsion bloque T6/T7 qui fait conduire T8/T9 ....La première voie est donc disponible en 1, la seconde en 2 ....  Les premiers décodeurs de ce type sortaient des créneaux négatifs ( c'est le cas en Fig. 2 ) alors que nos servos actuels requièrent des créneaux positifs.
Ce type de décodeur fut utilisé avec succès entre les années 1968 et 1978. Le nombre de voies n'est pas limité mais le codeur doit en transmettre un nombre égal ou supérieur.

2. Décodeurs PPM de 2ème génération. 1976.

L'apparition des circuits CMOS à très faible consommation a permis une simplification radicale du décodeur. Parmi les diverses solutions possibles, la plus classique est celle du REGISTRE à DECALAGE : Il s'agit d'un circuit intégrant plusieurs basculeurs de type D connectés en série avec une horloge commune. Fig 3.

Le basculeur D est de fonctionnement simple : Une entrée horloge
( clock ) reçoit les impulsions de déclenchement, les fronts montants actifs. Un niveau haut ( 1 ) ou bas ( 0 ) est appliqué sur l'entrée de données ( data ). Ce niveau est transmis à la sortie ( Q ) au coup d'horloge qui suit.

Ainsi en Fig. 4 , les coups d'horloge 1 et 2 trouvent DATA = 0
et Q reste à 0. Le coup d'horloge 3 trouve DATA = 1 ce qui fait passer Q à 1.
Il y reste jusqu'au coup d'horloge 4 qui retrouve DATA à 0 donnant Q = 0 , jusqu'à 6 qui remet Q à 1 car DATA = 1.


Revenons au registre à décalage de la Fig. 3. Remarquer que l'entrée DATA
du circuit est celle D1 du premier basculeur D, chacune des autres étant reliée
à la sortie Q du basculeur précédent.
Au départ, on a DATA = 0 et toutes les sorties à 0. Envoyons des coups d'horloge sur CLOCK ( commune à tous les basculeurs ) Q1 reste à 0, donc D2, donc Q2, donc D3 ....
C'est ce que montre la Fig. 5 pour les coups d'horloge 1 à 3.
Mettons DATA à 1 entre 3 et 5. Le coup d'horloge 4 fait passer Q1 à 1, les autres sorties restant à 0 car à "l'instant" exact du front montant les "data" intermédiaires étaient encore à 0.
                                                                                                  
Remettons DATA à 0 entre 4 et 5. Le coup d'horloge 5 trouve
D1 à 0 et remet Q1 à 0, mais le même front montant a trouvé Q1,
donc D2 à 1, ce qui fait Q2 = 1 ... et ainsi de suite.
Remarquer que le "1" de DATA passe successivement de Q1 à Q3
sur 4, 5 et 6. On dit qu'il est "décalé" de sortie en sortie, d'où le nom
de "registre à décalage".
Il faut très peu de choses pour passer du registre à décalage pur au décodeur PPM de la Fig. 6. Simplement l'adjonction d'un transistor et d'un circuit RC, qui se chargeront de la mise à 1 de DATA au moment opportun.

        La séquence avec impulsions positives est appliquée à la fois sur l'entrée CLOCK et sur la base du transistor qui conduit pendant les impulsions de 300 µs et est bloqué par ailleurs.

     Au départ, ( Fig. 7 )
E = 0, T est bloqué. Le condensateur C se charge à travers R, amenant DATA à 1. Survient la 1ère impulsion qui trouve DATA à 1 et fait donc passer Q1 à 1. Mais cette impulsion fait aussi conduire T qui décharge brutalement C, d'où DATA = 0. Entre 1 et 2, C commence à se recharger mais n'y parvient pas suffisamment pour remettre DATA à 1, et ainsi de suite jusqu'à 4. Par contre, entre la dernière impulsion de la séquence ( ici 4 ) et la première de la suivante, nous avons le fameux "temps de synchro" créé précisément assez long pour autoriser une recharge complète de C et donc une remise à 1 de DATA et la sortie de la première voie sur Q1. Le registre à décalage fonctionnant par ailleurs comme en Fig. 4.
Il est facile d'imaginer que la série Q1, Q2, Q3 peut s'allonger à volonté.
On utilise le plus souvent des registres à 8 sorties ( 4015, 74C164 ) ce qui est presque toujours suffisant, mais rien n'empêche de "cascader" ces registres pour avoir 16, 24 ... voies !
Seul problème, nous l'avons déjà signalé, l'allongement de la durée de séquence espace dans le temps les créneaux de commande des servos qui petit à petit perdent puissance et précision.

3. Décodeurs PPM de 3ème génération.

La simplicité extrême des décodeurs CMOS et leur très bon fonctionnement a de toute évidence éliminé les velléités de faire plus simple et mieux. C'est pourquoi ce type de décodeur existe toujours sous cette forme ou une semblable dans tous les récepteurs PPM encore distribués actuellement. Pourtant ces montages restent sensibles aux perturbations et les transmettent aux servos. Voir Fig. 8.
Une séquence "propre" envoie bien aux servos l'ordre prévu, mais si une impulsion parasite s'intercale dans la séquence il n'en est plus de même. Dans l'exemple de la figure, le parasite tronque l'information de voie 2, la seconde partie est envoyée en voie 3, alors que la donnée de 3 va à 4 !! Bien entendu les servos font un brusque mouvement et l'avion une cabriole intempestive. Comme il est impossible de prévoir l'arrivée de cette perturbation aléatoire, il est impossible d'y parer.
Une solution existe pourtant : Il "suffit" de ne pas transmettre immédiatement aux servos les ordres reçus mais de prendre le temps de les examiner "à la loupe" en ne donnant l'autorisation de passage que si le contrôle déclare "bon pour le service". Dans le cas contraire, on bloque le servo sur sa position. Le résultat est parfait : Toutes les séquences perturbées sont éliminées, on ne garde que les bonnes ! Les servos ne font plus de mouvements intempestifs et l'avion plus de cabrioles ! En contre-partie, la séquence est transmise avec un petit retard dû au contrôle, mais il s'agit de milli-secondes et le pilote ne se rend compte de rien.
Bien entendu, si les parasites ou perturbations sont si denses que la plupart des séquences sont "gommées", alors on pilote
"en pointillé" et à l'extrême .... plus du tout ! Dans ce cas, de toute manière, QUEL QUE SOIT le système, on va droit à la catastrophe. Il faut alors faire appel à des techniques complémentaires dont la seule réellement efficace est l'EVASION de FREQUENCE avec un seul ou deux récepteurs à bord. Nous en reparlerons.
Quoi qu'il en soit, la technique de l'analyse préalable de la séquence reçue est indispensable pour tous ces procédés. Mais elle n'est pas simple car cette séquence est fugitive donc, pour l'étudier, il faut la MEMORISER. La conclusion est simple : Seul le microcontrôleur est capable de faire ce travail. Mais le µC ne sait traiter que des NOMBRES : Il faut donc NUMERISER.
La structure d'un tel décodeur est donnée
en Fig. 9.
La séquence issue du récepteur Rx est envoyée dans un TIMER qui en mesure TOUS les temps : des impulsions, des voies, de la synchro. Il compte le nombre de voies. Les résultats des mesures sont stockés dans la mémoire d'entrée. La séquence terminée, le µC l'analyse et en fonction du "cahier des charges" prend sa décision : bonne ou erronée. Dans le premier cas il y a transfert de la mémoire d'entrée dans celle de sortie, dans le second il n'y a pas de transfert et la sortie exploite les dernières données correctes reçues. Si la situation perdure une décision complémentaire peut être prise : ou utilisation de données fixes programmées par défaut ( FAIL SAFE passif ) ou commutation vers un récepteur de secours
( FAIL SAFE actif )
Si la dernière solution a toutes les chances de sauver l'appareil, on sait que le fail-safe passif n'a par contre aucune chance de le faire. On peut simplement dans ce cas couper les gaz ce qui réduit quelque peu la violence du crash inévitable !
On notera que le micro-contrôleur utilisé intègre en fait la totalité de la figure 9, à l'exception, bien sûr, du récepteur de secours. On aboutit ainsi à une structure "hard" extrêmement simple et partant, d'une très grande fiabilité.

L'auteur pense être le seul à avoir proposé un décodeur PPM à µC, ( voir RX19B) Les divers fabricants proposant plutôt
des systèmes PCM dont nous parlerons le mois prochain.

Pour terminer cette page, nous vous proposons une petite "manip" facile, pas chère : L'expérimentation d'un ensemble codeur/décodeur à câbler sur plaques d'essais rapides, sur lesquelles les composants sont simplement insérés sans soudure. Sur une plaque vous montez un codeur 4 voies et sur l'autre un décodeur correspondant.
Le codeur est choisi pour sa simplicité :
C'est un modèle de 2ème génération à deux circuits CMOS :
Le 4017, compteur par 10 et le 4538, double monostable.
UV2 fabrique les impulsions de 300 µs et UV1 les temps de voies et de synchro, commutation assurée par le 4017 limité à 5 sorties actives.
Le plan de montage est donné en Fig. 10. Les circuits intégrés, R et C s'enfichent directement sur la plaque.
Les connexions sont faites avec du petit fil rigide isolé.
L'alimentation se fera sous 5 V, donc par une classique batterie 4.8 V, ou même par une pile de 4.5 V.
Le contrôle de fonctionnement se fait de préférence avec un oscilloscope, ce qui permet de voir tous les signaux du montage.       A défaut de ce merveilleux outil, tester la sortie avec une diode Led en série avec une 560 ohms ou avec un écouteur d'impédance supérieure à 500 ohms. La diode s'allume très faiblement et l'écouteur fait entendre le crépitement caractéristique à 50 Hz env. de la séquence.

Le décodeur est le modèle à 4015 de cet article. Fig. 1.
Le câbler sur une seconde plaque ou à défaut sur la même. L'alimentation peut être commune avec le codeur pour les premiers essais. Relier S à E ainsi que les masses
et constater l'existence des créneaux de voies sur V1 .. V4 , par exemple, faute de mieux avec un servo.
Nous espérons que vous apprécierez le travail sur ces plaques d'essais qui
s'avèrent d'un emploi très agréable en permettant le test rapide de montages en
développement ou simplement réalisés à des fins pédagogiques.