CODAGE-DECODAGE PCM
Pour comprendre le PCM, il faut avoir une idée précise de ce que sont l'analogique
et le numérique,
notions particulièrement d'actualité puisqu'elles rivalisent dans tous les secteurs de
l'audio-visuel.
L'ANALOGIQUE est le domaine des grandeurs qui peuvent prendre une INFINITE de
valeurs entre deux valeurs quelconques choisies. En principe, toutes les grandeurs
physiques sont analogiques : la température, la pression, les forces, les longueurs, les
masses ... toutes peuvent varier insensiblement d'une valeur à une autre.
Le NUMERIQUE est le domaine des grandeurs qui passent brutalement d'une valeur à
l'autre consécutive : le cardinal
d'un ensemble d'éléments ( c'est-à-dire le nombre de ces éléments ) est de type
numérique.
On peut avoir une image fidèle de l'analogique et du numérique en représentant le
premier par une RAMPE et le second par un ESCALIER. Fig. 1. La rampe permet de
monter ou descendre très progressivement, insensiblement d'un niveau à un autre.
L'escalier au contraire, ne permet que de passer d'une marche à l'autre.
Sur le plan mathématique, le numérique a été le précurseur :
Les premiers hommes ont inventé les NOMBRES ENTIERS pour pouvoir compter leurs biens,
troupeaux, gibiers, monnaies ... C'est l'ensemble N, qui permet de passer de 1 à 2, de 2
à 3,
mais qui ne connaît rien entre 1 et 2 ou entre 2
et 3 ! Plus tard est venue la nécessité d'apprécier plus finement des valeurs moins
simplistes que le nombre des moutons
du troupeau. On parla alors de nombres RATIONNELS ( Q ), de DECIMAUX ( D ), de REELS ( R
), ces derniers regroupant tous les autres, y compris les IRRATIONNELS ( ã , û2, û3 ..
) Quand l'électricité commença sa conquête de
notre monde, elle était analogique : la tension, l'intensité, la résistance varient
avec la plus grande finesse. Il fallut quelques dizaines d'années pour voir surgir
l'électronique, en fait au début .. la RADIO, la TSF !! Toujours de l'analogique. Bien
plus tard on commença à fabriquer des circuits LOGIQUES, c'est-à-dire des composants
sans états d'âme, ne connaissant que
le VRAI et le FAUX, le "1" et le "0" et suivant les règles strictes
de l'algèbre de BOOLE. Le "0" est l'absence de tension,
le "1" étant l'existence d'une tension donnée, par exemple le +5V des
composants TTL. Entre le "0" et le "1" soit entre 0V
et +5V, il n'y a rien ! La logique est le triomphe de l'interrupteur : Je suis OUVERT ou
FERME, c'est tout !
Mais que peut-on faire avec des "0" et des "1" ? Tout simplement
COMPTER ! Toutefois, pour compter avec 0 et 1, il faut abandonner notre cher système
décimal qui requiert 10 valeurs de 0 à 9 et en venir à un autre beaucoup plus rustique
: le système BINAIRE ou numération en BASE 2. En décimal, pour aller de 0 à 9 on a des
nombres à 1 chiffre ( les unités )
puis on fait des paquets de 10 ( les dizaines ) .... En base 2, on peut compter de 0 à 1
( unités ) avec un seul chiffre, puis
on fait des paquets de 2 ( les "deuzaines" ) ....
Le tableau Fig. 2 montre le résultat de 0 à 10. Dans le nombre binaire on ne
passe plus d'un rang à l'autre de 10 en 10, mais de 2 en 2. Remarquer que pour
représenter le nombre 10, il nous faut 4 chiffres, ce que nous pourrons faire
électriquement avec 4 fils. Fig 3. Avec ces 4 fils on peut compter jusque 15
( 1111 ), avec 8 fils on compte jusque 255, avec 16 jusque 65535, bien entendu par nombres
entiers.
L'électronique logique
permet ainsi de
mesurer lesgrandeurs numériques, mais pas les
analogiques. Comme vous le savez, ce secteur
de l'électronique a connu d'extraordinaires
développements dont l'aboutissement actuel
est le domaine des microprocesseurs, celui de l'INFORMATIQUE tout simplement !
Qui n'est pas émerveillé par le
fonctionnement d'un ordinateur, machine d'une
complexité tellement plus grande que ne l'imagine l'utilisateur lambda et qui pourtant
est d'une fiabilité quasiment sans faille. D'où vient ladite fiabilité ? Tout bonnement
du fait que la machine n'a à traiter quedes
0 et des 1, tâche somme toute simpliste et qu'elle exécute fort bien !
Il est agaçant de ne pas pouvoir donner la même sécurité au traitement des grandeurs
analogiques : au son, aux images
Qu'à cela ne tienne ! Il suffit de les transformer en grandeurs numériques , donc de les
NUMERISER. Voyons comment
cela peut se faire pour un son, par exemple. Fig. 4.
La sinusoïde d'un son supposé pur est transformée en "escalier" dont chacune
des marches correspond à un nombre entier. Il suffit alors de transmettre successivement
chacun de ces nombres, à charge du récepteur de reconstituer l'escalier à partir de
ces valeurs, en y ajoutant un "lissage" restaurant la forme analogique initiale.
Si la transmission des nombres est correct, on est certain de retrouver le signal
d'origine, sans la moindre altération. Simple, n'est-ce pas !!
Mais revenons à nos ... moutons, ou plus exactement à la radio-commande par PCM.
Rappelons tout d'abord que, en PPM, la donnée à transmettre est la durée de
l'impulsion à transmettre aux servos. Fig. 5.
Ce qui est fait par
position relative dans la séquence. En PCM, nous allons transmettre, non pas la durée
réelle, mais le NOMBRE qui mesure cette durée. Ainsi, si la durée à transmettre au
servo est 1225 µs, nous transmettrons le nombre 1225 ! Comment faire cela ?
Tout d'abord en traduisant
cette valeur en BINAIRE Voir Fig. 6.
Constatons que pour une résolution de la µs, la valeur binaire possède 11 chiffres,
soit 11 bits. Une transmission parallèle nécessiterait 11 fils ! Il faut donc utiliser
la transmission SERIE,
bit après bit. Pour ce faire, les microcontrôleurs possèdent une section spécialisée
:
le SCI ( Serial Communication Interface ) pratiquant générale-
ment le mode NRZ ( Non Return to Zero ) Le signal correspon-
dant à la transmission de 1225 aura l'aspect donné en Fig. 7.
Au repos, le signal est à 1, la trame démarre par un bit de START ( passage à 0 ) puis
les 11 bits de donnée, poids faible en tête. Remarquer que si deux "1" se
suivent, il n'y a pas retour à "0". La trame se termine
par un bit de STOP ( à 1 )
La cadence d'envoi est la VITESSE de TRANSMISSION. Elle s'évalue en Bits par seconde,
soit en BAUDs
En fait le signal de la fig. 7 n'est pas complet car il lui manque un bit de
vérification. Ce bit s'évalue souvent en faisant la
somme des bits de donnée. Ici 1+0+0+1+0+0+1+1+0+0+1 = 5 en décimal, nombre impair, d'où
bit de vérification
( Checksum ) à 1.
Par ailleurs le numéro de voie doit être ajouté : Il faut 3 bits de plus pour 8 voies.
Cela nous amène à 1+3+11+1+1 = 17 bits ! Et cela pour la transmission d'une SEULE voie
!!
Il est déjà facile d'évaluer le gouffre de différence existant entre la simplicité de
l'impulsion PPM et la complexité du signal
PCM ! Pourquoi faire simple, quand on peut faire compliqué !!
Mais cette différence n'est pas majeure car c'est l'affaire de circuits électroniques
sophistiqués. Par contre, un autre problème apparaît : C'est celui de la vitesse de
transmission.
N'oublions pas que le signal codeur va devoir transiter par la voie HF de l'ensemble RC.
Comme nous aurons plus tard l'occasion d'en parler, le modulation de fréquence ( FM ) est
généralisée. En fait, il s'agit de NBFM ( FM à bande étroite ) hélas caractérisée
par une BANDE PASSANTE étroite aussi . Dans ces conditions, on peut estimer que 250 µs
est la durée minimum de transmission d'un bit, soit 4 au maximum par milliseconde et 4000
par seconde, soit donc 4000 bauds. Pour transmettre 17 bits, il faut 17 x 250 µs, soit
4.25 ms, durée nettement supérieure aux 1225 µs du PPM.
Et c'est ici que l'affaire se corse ! Car pour palier ce défaut, chaque constructeur fait
appel à SA technique propre, soit à base d'algorithmes de compression ( comme en vidéo
) soit à base de priorités, en ne transmettant par ex. que les voies importantes à
chaque séquence et les autres successivement, soit en ne transmettant que les voies qui
ont été modifiées ...
Si la compression des données est utilisée, on peut se dispenser de numéro de voie dans
la trame, à condition d'inclure un signal de synchro typique, comme en PPM. Par contre,
si la méthode de priorité est choisie, le numéro de voie est nécessaire.
Le choix de la résolution finale est également important. On peut coder la donnée de
voie sur 8, 9 .. bits. Avec 8 bits, on obtient 256 positions de servo possibles, avec 9,
10 on en a 512, 1024 ! En se limitant à 8 bits, on peut affecter la valeur 0
à la durée minimum de voie, par ex. 992 µs et 255 à la durée maximum, 2008 µs, ce
qui donne un pas de 4 µs. Un tel choix aurait l'avantage de réduire de 17 à 14 le
nombre de bits par voie, mais donnerait une précision moindre.
Il est cependant réaliste de constater que la course d'un servo étant de 90° env. pour
255 pas, nous avons 90/255 = 0.35°
par pas, ce qui est mieux que la précision globale de la quasi totalité des servos
existants, sans parler des jeux de tringlerie !
Il y a cependant, parait-il, des pilotes exigeant au moins 10 bits de résolution, soit
1023 pas pour 90° et 90/1023 = 0.088°
par pas ! Y aurait-il des extra-terrestres parmi nous !
Finalement, comme chaque constructeur a son système, il y a incompatibilté totale entre
le PCM de Paul et celui de Pierre !
Techniquement c'est gênant mais commercialement c'est intéressant!
Mais qu'apporte donc en plus le PCM ? C'est la solidité de la transmission de
l'information. Lorsque la trame reçue est acceptée par le décodeur ( voir plus loin )
on est quasi sûr de sa qualité. Le PCM n'est pas, entre autres, sensible au souffle
du signal au voisinage de la portée limite. Jusqu'au dernier mètre, les servos sont
impassibles, puis brutalement c'est la coupure de liaison. Eh oui, en logique c'est bon ou
c'est mauvais !!
On aime ou on n'aime pas !! Le PPM lui prévient : Les servos frétillent avec le souffle
avant de déclarer forfait.
Il faut remarquer que l'ensemble RC PCM n'est pas entièrement numérique : Les manches et
la plupart des servos restent analogiques. Pour passer en numérique intégral, il
faudrait remplacer les manches à potentiomètres par d'autres à encodeurs incrémentaux
et équiper les servos de µC capables de recevoir directement la trame PCM. ( Les
nouveaux servos numériques restent analogiques sur leur entrée ! )
Mais voyons maintenant comment la chose se présente en pratique.
Le CODEUR PCM.
Le PCM ne se conçoit qu'avec un micro-contrôleur, on s'en doute.
Voir Fig. 8. La tension des manches et commandes est lue en séquence par un
convertisseur Analogique/Digital ( A/D ) délivrant le NOMBRE binaire correspondant. La Fig.
9 donne une idée du principe de cette conversion : La tension analogique Van est
"située" par rapport aux "marches" d"un escalier de valeurs
établies par des batteries de comparateurs ( par ex. ). Cette conversion peut se faire à
8, 10, 12 ... bits, selon la précision désirée.Il y aurait alors 256 ou 1024 ou 4096
marches.
Les résultats de la conversion A/D sont traités par un "centre de calcul"
prenant en compte tous les paramètres de la cellule en activité, ajoutant numéros de
voies, appliquant les impératifs de compression ou de priorité. Les valeurs obtenues
sont enfin envoyées dans un SCI,
en mode émission, qui les sérialise pour former la séquence de sortie.
Le DECODEUR PCM.
La séquence reçue est envoyé dans un SCI comparable au précédent, mais en mode
réception. Bien entendu les vitesses
de transmission du codeur et du décodeur doivent être identiques ( même nombre de bauds
). Les données série sont ainsi
remises en parallèle . Voir Fig. 10.
Elles sont stockées dans la mémoire d'entrée. La séquence reçue est alors analysée
par le µC, en fonction de critères imposés ( bit de checksum, cohérence des résultats
... )
Si le test est bon, les valeurs passent en mémoire de sortie où elles sont converties
en impulsions convenant aux servo-
mécanismes. Si le test est mauvais, la valeur n'est pas transmise et le convertisseur de
sortie exploite la dernière valeur déclarée bonne.
Conséquence : toutes les anomalies sont "gommées" et les servos ne
"bafouillent "
pas. Il s'ensuit évidemment des pertes momentanées de liaison que le pilote peut sentir
si elles durent un peu. Il faut alors ramener le modèle à une distance plus adaptée ...
si on le peut !
Si les défauts durent un temps excédant une valeur programmée, un mode FAIL-SAFE peut
s'enclencher, plaçant, par exemple, les gouvernes sur des positions prédéfinies, mais
on sait très bien l'inefficacité de la solution.
On se rappelle que l'information PCM est très complexe, avec de nombreux bits par voie.
Un simple parasite dans la trame
en détruit la validité et la fait rejeter. En fait, le PCM s'avère plus vulnérable aux
perturbations que le PPM pour lequel l'information transmise est plus rustique.
Bien entendu, si on compare un PPM standard et un PCM à µC, on constate que, perturbé,
le PPM envoie les servos "dans les coins" alors que le PCM bloqué ne fait rien
bouger. C'est ce qui fait clamer à certains que le PCM est imbrouillable, ce
qui est faux ! Par contre un PPM à µC, donc de 3ème génération ( voir réf 2 et 3) se
comporte exactement comme un PCM,
mais avec une moindre vulnérabilité.
Nous venons de lire, dans une revue, un article dithyrambique sur le "récepteur du
21ème siècle", en fait un PPM à µC !
Et l'auteur du texte de s'extasier en criant au miracle !!
Nous nous permettons de lui signaler, pour son information, que ce "miracle"
existe pour l'auteur de ces lignes et ses fidèles, depuis ... 1991, date de sortie du
RX16, proposant, en cerise sur le gâteau, l'évasion de fréquence, ce qui est autre
chose !