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.