Fonctionnement de l'étalement de spectre
direct
(techniques Graupner et SPEKTRUM)
Philippe Kauffmann, club des 5A Pardines (Auvergne)
Version 1.1 de janvier 2008
Liste des articles à : http://laic.u-clermont1.fr/~kauffmann/modelisme.htm
De nombreux modélistes ont des difficultés à comprendre le fonctionnement de l'étalement de spectre direct utilisé par les standards DSM et IFS des sociétés SPEKTRUM et Graupner. Ce principe partagé avec Wifi, la téléphonie mobile de troisième génération et d'autres standards comme ZIGBEE va être explicité brièvement ci-après avec l'aide de quelques chronogrammes issus d'une simulation conforme à la réalité.
N.B. : bien qu'il ne l'affiche pas, Graupner utilise en fait le standard industriel ZIGBEE à l'intérieur de sa technique IFS (voir photo 1). Le système IFS allemand est au demeurant le système XPS nord américain pour le modélisme redistribué par Graupner.

Photo 1 : 12 modules professionnels ZIGBEE capables de partager simultanément
la même fréquence sans se perturber mutuellement (modèle XBEE-PRO
utilisé entre autre dans le système XPS)
Schéma
fonctionnel du système
Le schéma fonctionnel du système présenté en figure 1 peut paraître relativement compliqué. En fait il reste très simple si on considère qu'il se compose de trois parties indépendantes : l'émetteur en bas à gauche, les perturbateurs en haut à gauche qui sont là uniquement pour démontrer la résistance aux perturbations et le récepteur décomposable en décodeur proprement dit suivi d'un filtre destiné à améliorer la qualité du signal reçu.

Figure 1 : le
schéma fonctionnel du système à étalement de spectre direct
L'étalement de spectre (ou codage) consiste simplement à mélanger dans une porte logique "Ou exclusif" (XOR sur le schéma) les données à transmettre et le code d'étalement. Les données sont des successions de 1 et de 0 représentant des nombres qui eux-mêmes représentent la position de chaque manche de la radiocommande. Le code d'étalement est une succession de 1 et de 0 propre à chaque émetteur. La longueur du code peut être variable, elle est de 64 bits dans notre exemple. La fonction logique XOR fonctionne de la façon suivante : si une entrée unique est à 1 sa sortie produit 1, sinon elle produit 0. Le tableau 1 résume le fonctionnement.
|
Entrée A |
Entrée B |
Sortie X |
|
0 |
0 |
0 |
|
1 |
0 |
1 |
|
0 |
1 |
1 |
|
1 |
1 |
0 |
Tableau 1 :
fonction OU exclusif
Les niveaux logiques sont représentés physiquement par des tensions électriques. Tension nulle pour 0 et tension de 5V pour 1.
La case constante du schéma fonctionnel représente une tension de 2,5V. Les cercles du schéma fonctionnel représentent des fonctions d'addition. Ainsi, une tension de 2,5V est soustraite (signe ─ à côté du cercle) au signal codé avant émission. Ceci a pour conséquence décaler le signal logique allant de 0V à 5V en un signal variant de -2,5V à +2,5V, c'est-à-dire sans composante continue. Cette dernière fonction n'existe pas physiquement dans un émetteur, elle n'est la que pour des raisons de simulation car elle matérialise le fait que les composantes continues ne sont pas transmises par un lien radio.
Les
perturbations
Les perturbations ne font évidemment pas partie intégrante de l'émetteur ! Ici deux perturbations ont été ajoutées pour démontrer la résistance du système aux perturbations. La première perturbation appelée brouilleur est un autre émetteur émettant sur la même fréquence selon le même mode, avec la même amplitude, mais avec un code différent. La seconde perturbation est tout simplement un bruit blanc (bruit appelé bruit quantique ou bruit thermique en électronique) toujours présent sur l'antenne de réception. Son amplitude moyenne est elle aussi comparable ici au signal émis. Le circuit de décalage de 2,5V et aussi virtuel ici, pour tenir compte de la nature des ondes radio.
Le récepteur
Pour décoder le signal, il suffit de multiplier arithmétiquement (fonction Mult) la tension reçue par le même code qu'à l'émission. Là encore il faut supprimer la composante continue du code. Il faut aussi que le code utilisé en réception soit parfaitement en phase avec le code utilisé à l'émission, ce qui est la contrainte la plus difficile à satisfaire du dispositif.
Une fois le décodage effectué par le multiplicateur, on obtient un signal décodé, mais fortement entaché de bruit. Les filtres passe-bas PT2 l'éliminent, mais comme ils déforment le signal, un circuit de remise en forme "Saturation" parachève le travail en même temps que l'amplificateur P.
Observation
des signaux
Un flot de données arbitraire (voir figure 2) a été utilisé pour montrer l'aspect des signaux. Il s'agit ici de la succession binaire 100110, avec une période de 1,6 ms par bit. On notera que cette période a été choisie arbitrairement et ne correspond pas à la période des bits des systèmes DSM ou IFS, ce qui ne change strictement rien au principe.

Figure 2 : les
données à transmettre (1,6 ms par bit)
Le code
d'étalement
Un code d'étalement avec 64 bits (figure 3) a été choisi (on remarquera qu'il est représenté ici sans composante continue). Le débit est de 64 fois le débit des données, afin que chaque bit de données soit mélangé avec les 64 bits de code. La période d'un bit de code est en conséquence de 0,025 ms.

Figure 3 : le code
d'étalement sur 64 bits (0,025 ms par bit)
Les
perturbations
Le signal du brouilleur n'est pas représenté car il est parfaitement semblable à celui de la figure 3. Le bruit thermique est quant à lui visible à la figure 4. On remarquera que son amplitude maximale dépasse significativement celle du signal de l'émetteur.

Figure 4 : le
bruit thermique
Le signal reçu
Le signal reçu est présenté figure 6, c'est la superposition du signal émis, du brouilleur et du bruit thermique. Il est parfaitement impossible de discerner les données initiales, ni même un quelconque signal. C'était le but de la manœuvre lorsque les militaires ont mis au point cette technique !
Même sans bruit thermique significatif (voir figure 5), cas que l'on peut rencontrer en s'approchant à proximité immédiate de l'émetteur il est parfaitement impossible de retrouver les données, même si dans ce cas on distingue parfaitement une émission cohérente.

Figure 5 : signal
reçu sans bruit thermique

Figure 6 : signal
reçu réel
Le décodage
Dans le récepteur, après passage à travers le multiplicateur, les données réapparaissent comme par magie (figure 7). Malheureusement, elles sont fortement perturbées par le bruit, ce qui impose un traitement supplémentaire.
On notera toutefois que dans l'exemple présent les niveaux logiques ont été inversés par rapport l'émetteur. Ceci est sans importance car le filtre passe-bas qui suit (les deux fonctions PT2 en cascade) peut remettre le signal dans le bon sens (coefficient K = -1 dans le premier filtre).

Figure 7 : signal
décodé
Le filtre passe-bas du quatrième ordre (fonctions PT2 en cascade) vient à bout du bruit (voir figure 8), mais rend le signal très "mou". Il faut donc encore un traitement supplémentaire.

Figure 8 : signal
décodé et filtré
L'amplification finale et la suppression des valeurs crêtes donnent (figure 9 en bleu) le signal finalement exploitable par le microcontrôleur du récepteur. Il n'est pas parfait, mais en tout cas suffisant puisqu'on retrouve sans difficulté la suite 100110, CQFD. On remarquera accessoirement qu'il est retardé par rapport aux données initiales en rouge sur la même figure, ce qui provient du filtre passe bas. Toutefois, ce délai est négligeable à l'échelle de temps qui nous concerne en modélisme.

Figure 9 : signal
restitué après remise en forme (en bleu)
Rapport avec
la technologie DSM2 (SPEKTRUM)
DSM2 va au-delà de l'étalement de spectre académique, car :
C'est un peu comme un cow-boy qui maintiendrait son blue-jean avec deux ceintures et deux paires de bretelles. Ce serait très mal vu dans l'ouest américain Hollywoodien !
Rapport avec
la technologie IFS (Graupner)
IFS va aussi au-delà de l'étalement de spectre académique, car :