LES RESEAUX LOCAUX INDUSTRIELS

Chapitre 06/25  -  Techniques d'interconnexion : Transmission en bande de base

Hugues Angélis

 

         La transmission en bande de base.

 

                        Le principe de la transmission en bande consiste à modifier le spectre du signal, sans le décaler dans un autre domaine de fréquence, en jouant sur des paramètres d'amplitude ou en associant différents signaux.

 

                       Les polarités :

 

                        On dit d'un code qu'il est unipolaire lorsque le codage de l'information fait intervenir un niveau électrique (en plus de la masse). On dit d'un code qu'il est bipolaire lorsque le codage de l'information fait intervenir deux niveaux électriques pour coder l'information (la masse pouvant être utilisée comme 3ème niveau). Les codes bipolaires éliminent généralement la composante continue du signal transmis.

                                   Exemples.

                        Le retour à zéro.

 

                        Les systèmes de transmission jouent aussi sur la façon de coder un signal en terme, non plus de niveau de tension, mais d'évolution dans le temps. Le code que nous appelons le binaire ('0' = 0V et '1' = +5V) est en réalité un code unipolaire (le niveau des tensions), NRZ (l'organisation dans le temps). NRZ signifiant Non Return to Zero, c'est à dire : qui ne change pas d'état pendant la durée d'un bit.

 

                        C'est en fait le contraire du code RZ (Return to Zero) qui crée automatiquement un retour à l'état zéro pendant la durée d'un bit.

 

                                   Exemple.

                        On peut aussi parler des codes NRZI (Non Return to Zero Inverted). Ces codes engendrent des changements de niveaux du signal en sortie du codeur sur un niveau donné du signal entrant. Par exemple, le code NRZI-S (Non Return to zero Inverted on Space) change l'état du signal en sortie à chaque fois que le bit présenté à l'entrée du codeur est à '0' (le zéro étant considéré comme un espace).

 

                                   Conclusions sur les codes asynchrones.

 

                        Le principal souci avec les codes asynchrones est justement présent dans leurs noms, il s'agit de l'absence d'horloge. Les horloges respectives de l'émetteur et du récepteur n'étant par définition pas les mêmes, elles battent à des rythmes proches mais différents. Il faut donc réussir à resynchroniser régulièrement les deux machines.

 

                        Ce sont les fronts sur le signal de données qui sont utilisés pour recaler l'horloge du récepteur sur celle de l'émetteur.

 

                        Or plus la transmission se fait pour de grosse quantité de données, plus la probabilité d'avoir un long "blanc", c'est à dire une absence de front, est grande.

 

                        Voilà pourquoi, il est excessivement rare d'utiliser des codes asynchrones sans avoir de petits messages à transmettre (quitte à ce qu'il y ait beaucoup de petits messages successifs). Dès que la transmission nécessite le transfert d'une grosse quantité de données, on a tendance à utiliser des codes synchrones.

 

                        Les codages synchrones.

 

                        Le principe des codes synchrones réside dans le mélange de l'information d'horloge avec le signal de données pour composer un signal possédant à la fois une horloge facilement utilisable et dont on peut facilement extraire les données.

                        Le code Manchester II.

 

                        Ce code est assez utilisé dans les Réseaux, c'est un code biphasé et bipolaire. Le principe du codage Manchester consiste à traduire le '1' comme un front descendant et le '0' comme un front montant. Pour ce faire, on utilise une fonction logique NON OU EXCLUSIF entre l'horloge et le signal de données.

                        Ce signal peut paraître assez compliqué à analyser, mais en réalité il est très simple. Tout les nombres impairs de fois T/2 (T/2, 3T/2, 5T/2, …), il y a systématiquement un front. Si ce front est montant, il s'agit d'un '0' logique, si ce front est descendant, il s'agit d'un '1' logique.

 

                        Episodiquement, il y a sur le signal des fronts après un nombre pair de demi-période. Ce phénomène apparaît lorsqu'il y a consécutivement deux bits ayant la même valeur. En effet pour pouvoir avoir deux fronts descendants, il est indispensable d'avoir un front montant entre les deux.

                        Le signal codé en Manchester, outre qu'il ne comporte pas de composante continue, élargi considérablement le spectre du signal NRZ (voir les spectres présentés page 30) au point de lui faire occuper une bande de fréquence située entre 2F/3 et 3F/2 (F est la fréquence de l'horloge d'émission). Son spectre contient donc inévitablement une composante à la fréquence F de l'horloge.

 

                        La réalisation d'un tel codage est, comme on l'a vu, extrêmement simple. Son décodage est quand à lui un peu plus difficile, il faut recréer une horloge (la partie compliquée du travail) avant de passer cette horloge dans une même porte NON OU EXCLUSIF pour récupérer les données.

 

                        La régénération de l'horloge ne peut se faire qu'en éliminant les transitions aux instants multiples de T, et en ne gardant que les fronts à T/2. A l'origine, on utilisait (avant que les techniques numériques ne le remplace) un système à base de monostables non redéclenchable pour éliminer les fronts à T. Puis on utilisait une PLL pour re-fabriquer à partir du signal extrait des monostables, une horloge de même fréquence et en phase avec celle de l'émetteur. Cette horloge était en suite utilisée pour la récupération des données.

 

                        La "lenteur" de la synchronisation de la PLL imposait alors de longues salves de données pour permettre au récepteur de se caler. Pour Ethernet (qui utilise le codage Manchester II), il y a 7 octets utilisés en tant que salve (le préambule).

 

                        Le code Miller.

 

                        Le code Miller est un code dérivé du code biphasé classique, il répond à la nécessité de transmettre un signal dans une bande plus étroite. Pour réaliser un code Miller, on passe le code biphasé dans une bascule montée en diviseur par 2.

                        Bien entendu, cette fois ci, le décodage est beaucoup plus compliqué.

                        Le code HDB3.

 

                        Le code HDB3 est le code utilisé en téléphonie (pas au niveau utilisateur, mais au niveau des centraux et de l'international). Le code HDB3 est un code bipolaire, retour à zéro, alterné (les bits à '1' sont une fois positifs, une fois négatifs), asynchrone. Il permet de transmettre des trames extrêmement longues, sans qu'il puisse il y avoir de désynchronisation de l'émetteur et du récepteur.

                        Le principe utilisé ici s'appelle le bit stuffing, il consiste (dans le cas du code HDB3) à substituer des bits à '0' par des bits fictivement à '1'. On parle alors de bit stuffing substitutif. Dans le cas d'autres Réseaux, il n'y a pas substitution, mais ajout d'un bit à '1'. On parle alors de bit stuffing addittif.

 

                        Dans le code HDB3, si une série de plus de 3 zéros consécutifs apparaît sur la ligne de données (d'où le 3 de HDB3), on substitue volontairement le quatrième '0' par un '1' qu'on appelle bit de viol.

 

                        Pour pouvoir identifier immédiatement un bit de viol d'un bit réellement à '1', le bit de viol est systématiquement de la même polarité que le dernier bit à '1' (que ce soit un vrai bit à '1' ou un bit de bourrage). Ce bit viol la règle de l'alternance.

 

                        Toutefois, ce non respect de l'alternance risque, en cas de très longue série de '0', d'engendrer l'apparition d'une tension continue (les bits de viols étant tous dans le même sens). Pour les compenser, on introduit donc des bits dit de bourrage pour forcer des alternances.

 

                        Les bits de bourrage respectent la règle de l'alternance. On les insère dans la transmission si le nombre total de bits à '1' depuis le dernier bit de viol est pair. Ainsi en cas de longue série de '0', les bits de bourrage en s'alternant éliminent la composante continue.

 

                        Le décodage de ce système est simple, il consiste à repérer les bits de viol (facile, il ne respectent pas la règle de l'alternance), puis pour éliminer les bits de bourrage, il faut savoir qu'un bit de viol est précédé d'une série de trois '0'…

                        Représentation fréquentielle.



emprunté à "Les MODEMS pour les Transmissions de données"