Transmission série

Transmettre une information numérique revient à transmettre via un medium capable de véhiculer une grandeur physique (électrique, optique, sonore, …) représentant les bits qui permettent de la coder.

Par exemple, on peut coder

    • le nombre décimal 63 par un mot de 8 bits : 0011 1111
    • la couleur de ce mot par le nombre hexadécimal F90, soit 1111 1001 0000 en codage binaire

Transmettre un mot binaire en série consiste à faire passer toutes les informations binaires via une unique voie  (« tuyau »), bit après bit.

 

 

 

Synchronisation

En transmission série, puisque l’information passe par une seule voie, il existe un problème de synchronisation entre l’émetteur et le récepteur : le récepteur ne peut pas a priori distinguer les séquences de bits, car les bits sont envoyés successivement, avec une période définie par l’émetteur.

Il existe deux types de transmission permettant de remédier à ce problème :

Transmission synchrone

La transmission des éléments binaires s’effectue au rythme d’un signal d’horloge transmis en permanence.

En général, le bit de donnée est émit/lu à l’instant du front descendant de l’horloge.

 

En pratique il faudrait transmettre ce signal de synchronisation sur une voie séparée des données. Cette solution est envisageable pour des liaisons filaires à très courte distance.

Une autre technique consiste à mélanger le signal d’horloge aux données, au moment du codage. Il est souvent possible, côté réception, de recréer une horloge de synchronisation à partir du signal reçu.

 

Transmission asynchrone

L’émetteur et le récepteur ont des horloges de fréquences en principe égales. Mais en raison d’une légère et inévitable différence, la transmission se fait par séquences de bits courtes (environ un octet).


Un « top », dit de bit de synchronisation (ou bit de start), indique au récepteur le début d’une séquence. Le récepteur, fait alors démarrer son horloge locale, laquelle marque les temps de bit en un relatif isochronisme avec celle avec laquelle le récepteur créé le signal.

Voir le cours « La liaison série RS232« 

 

Trames

Les transmissions séries sont généralement structurées sous forme de trames : un ensemble de bits successifs contenant les données à transmettre… mais pas que !

Ces trames comportent :

  • un en-tête de synchronisation (« synchronisation bits ») : un « motif » particulier qui donne l’information du début de transmission de la trame (utile uniquement pour les transmission asynchrones)
  • suivi d’un symbole de délimiteur de début de trame, et éventuellement de fin de trame
  • les données, envoyées sous différents formats :
    • ordre des bits : poids faibles en premier (LSB first – Least Significant Bit first) ou bien poids forts en premier (MSB first – Most Significant Bit first)
    • valeurs des bits : normal ou inverse (on envoie 1 à la place de 0, et vice-versa)
    • en plusieurs exemplaires (par exemple, les bits normaux puis les bits inversés)
  • un code de détection (ou correction) d’erreur

Voir la trame série RS232

 

Le signal logique suivant représente un octet envoyé par une trame dont les bits de poids faibles sont envoyés en premier (LSB first – Least Significant Bit first).

Donner la valeur (écriture décimale) de cet octet.
CORRECTION

LSB first :

010001012 = 6910

 

 

Codage en ligne

Pour transporter un signal logique d’une machine à une autre, il faut le convertir en un signal physique associé aux propriétés physiques spécifiques des canaux de transmissions (les médias) :

Le processus de codage du signal logique en signal physique est appelé codage en ligne.

 

Codage bipolaire

Une des valeurs logiques (soit le 0, soit le 1) est alternativement codée par une grandeur physique de valeur positive puis de valeur négative.

Exemples :

    • La valeur logique 1 est codée par une grandeur physique de valeur nulle
    • La valeur logique 0 est codée par une grandeur physique alternativement positive, puis négative

    • La valeur logique 0 est codée par une grandeur physique de valeur nulle
    • La valeur logique 1 est codée par une grandeur physique alternativement positive, puis négative

Décoder le signal bipolaire ci-dessous en indiquant la séquence de bit transmise, sachant que la valeur logique 0 est codé par une grandeur physique de valeur nulle.
CORRECTION

 

 

Codage différentiel

On parle de codage différentiel lorsque seul le changement de valeur logique dans une trame produit un effet (changement de valeur, changement de front, …)  sur le signal physique.

Exemples pour des signaux pour lesquels l’information est portée par la valeur de la grandeur physique :

    • La valeur logique 1 est codée par une non modification du signal physique
    • La valeur logique 0 est codée par une modification du signal physique

    • La valeur logique 0 est codée par une non modification du signal physique
    • La valeur logique 1 est codée par une modification du signal physique

Décoder le signal différentiel ci-dessous en indiquant la séquence de bit transmise, sachant qu’une modification de la grandeur physique signifie la valeur logique 0.
CORRECTION

 

 

Quelques systèmes de codages …

Tous les systèmes de codage suivants peuvent être utilisés en mode synchrone ou asynchrone, mais certains sont plus adaptés à un mode de transmission qu’à un autre …

NRZ (Non Return to Zero)

Très proche du codage binaire de base, il code :

  • un 1 par +V,
  • un 0 par -V

(ou l’inverse, ce qui est le cas pour la norme RS232).

Avantages :

  • Le code NRZ est le moyen le plus simple de coder l’information: il y a une relation directe entre la valeur logique et une grandeur physique (exemple une tension électrique).
  • NRZ produit un signal dont la grandeur physique varie d’une valeur positive à une valeur opposée. Ainsi, une grandeur physique nulle signifie un défaut sur la ligne.
  • Le codage NRZ améliore légèrement le codage binaire de base en augmentant la différence d’amplitude du signal entre les 0 et les 1.

Inconvénients :

  • Toutefois les longues séries de bits identiques (0 ou 1) provoquent un signal sans transition pendant une longue période de temps, ce qui peut engendrer une perte de synchronisation en cas de transmission asynchrone.

Une trame est envoyée en codage NRZ par deux fils électriques portant une tension de ±12V.

Que se passe-t-il si on inverse la polarité de ses deux fils ?
 
Est-ce un avantage ou un inconvénient de ce système de codage ?
CORRECTION

Toute inversion de polarité se traduira par une inversion de l’information binaire.

Inconvénient : la trame pourrait être interprétable par le récepteur, mais donner une information fausse !!

 

 

NRZI (Non Return to Zero Inverted)

On produit une transition du signal pour chaque 1, pas de transition pour les 0 (ou bien l’inverse).

Ce codage n’utilise pas directement le niveau mais un changement de niveau (par rapport au bit précédent) pour coder les valeurs logiques ; ce codage est du type différentiel.

 

Avantages :

Il s’agit, comme pour NRZ, d’un codage facile à mettre en œuvre.

Inconvénients :

On retrouve là encore le problème des longues périodes niveaux identiques en présence d’une longue suite de 0 (qui ne font pas commuter le signal).

 

Exemple d’utilisation : le bus USB
(transition sur les 0 ; pour éviter la perte de synchronisation un 0 est envoyé après six 1 consécutifs)

 

Manchester

Le codage Manchester est obtenu par le mélange (opération logique OU-exclusif) d’un signal horloge et d’un signal NRZ.

Il s’agit donc intrinsèquement d’un signal synchrone, qui ne nécessite pas de voie dédiée à une horloge puisque le signal d’horloge est « intégré » au signal Manchester.

Par exemple : Valeurs à coder ↔ Valeurs transmise

  • 0 ↔ transition du niveau haut vers le niveau bas 
  • 1 ↔ transition du niveau bas vers le niveau haut 

(mais cela peut parfois être l’inverse !)

 

Avantages :

  • Mise en œuvre simple, codage et décodage faciles.
  • Il se produit un changement d’état physique de la ligne à chaque période d’horloge : il ne peut donc plus y avoir de perte de synchronisation à cause d’une suite de 0 ou de 1.
  • Peu sensible aux parasites

 

Exemples d’utilisation : Ethernet  Station météo domestiques ……

 

 

Manchester différentiel

Le Manchester peut également être du type différentiel :

Dans ce cas on utilise la variation du sens des transitions par rapport au bit précédent.

Dans l’exemple précédent, on constate une inversion du sens des transitions du signal en milieu de période bit (durée = T) pour les valeurs « 1 » logiques. Par contre un « 0 » logique conserve le sens de la transition précédente.

 

MLT3

Dans ce codage, seuls les 1 font changer le signal d’état. Les 0 sont codés conservant la valeur précédemment transmise. Les 1 sont codés successivement sur trois états +V, 0, -V.
Le principal avantage du codage MLT3 est de diminuer fortement la fréquence nécessaire pour un débit donné grâce à l’utilisation de 3 états.
Les longues séquences de 0 peuvent entraîner une perte ou un déphasage de l’horloge du récepteur.

 

2B1Q

Le code 2B1Q fait correspondre à un groupe de deux éléments un créneau de tension dit symbole quaternaire pouvant endosser quatre valeurs différentes :

Groupe de 2 bits Tension
00  -3
01  -1
11 +1
10 +3

Les données sont donc transmises à deux fois la fréquence de l’horloge.

 

Application interactive

Codage en ligne

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *