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 ( p, racine  carrée de a, de 2 ....)
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 les grandeurs numériques, mais pas les analogiques
. Comme vous le savez, ce secteurde 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 trasformer en grandeurs numériques , donc de les NUMERISER. .
Voyons comment  cela peut se faire pour un son, par exemple. Voir la  Fig. 4.
La sinusoïde d'un son supposé pur esttransformé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 )en mode NRZ   ( Non Return to Zero )
                                                              Le signal correspondant à 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 cette 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.

La tension des actionneurs est lue en séquence par un convertisseur Analogique/Digital ( A/D ) délivrant le NOMBRE binaire correspondant.    Voir Fig. 8.
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
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 !