Des notes destinées à éclaircir certains points
ou à apporter d'intéressants suppléments d'information
sont programmées pour apparaître lorsqu'on passe le curseur de souris
sur des icônes telles que
          
Pour des raisons de sécurité, certains navigateurs
bloquent l'apparition de ces notes (programmées en JavaScript) .
Des précieuses informations, exercices, réponses, aidant à comprendre,
à se repérer, à étendre ses connaisances sont alors perdues.

AUTORISEZ DONC VOTRE NAVIGATEUR A OUVRIR CES SCRIPTS !

Transmission sérielle Asynchrone

Accueil
du Site

 


    
Précédent : Liaisons Parallèle / Série
Suite : Standard RS 232

Historique

C'est l'un des plus anciens modes de transmission sérielle (sur une seule ligne de transmission) de données numériques.
Il fut utilisé dans les premiers systèmes télégraphiques (Emile Baudot dans les années autour de 1870)
puis dans les téléscripteurs (télétypes)
qui permettaient d'imprimer à distance et par voie télégraphique (lignes longtemps séparées des voies téléphoniques)
des documents écrits, au fur et à mesure qu'ils étaient tapés par un opérateur distant sur un clavier type machine à écrire.

Ce fut par exemple un excellent outil pour les journalistes dont les salles de rédaction
résonnent encore dans les vieux films de leurs cliquetis caractéristiques apportant les dépêches affluant du monde entier.

Les données numériques étaient alors des binaires à 5 bits représentant les caractères et le chiffres.
Il fut porté à 7 bits pour coder l'ensemble des majuscules et minuscules (Code ASCII)
puis à 8 pour représenter des nombres.

L'inventeur de ce mode de transmission est incontestablement Emile Baudot 1845-1903
qui l'utilisa pour le transport des premiers télégrammes sur les lignes télégraphiques.
En sa mémoire, l'unité de la rapidité de modulation s'évalue en Bauds.

Généralités


Pendant longtemps, ce fut le mode de transmission privilégié pour l'échange de données,
local ou distant, entre machines informatiques:

  • Modems et ordinateurs
  • Imprimantes et ordinateurs
  • Automates programmables et imprimantes
  • Automates programmables et consoles de programmation.
  • Souris d'ordinateur
  • etc.

Il y a deux modes de tranmission possibles :

  • la transmission parallèle
  • la transmission sérielle
Note abrégée sur le mode de transmission parallèle
(qui ne fait pas l'objet de la présente étude):

La transmission parallèle consiste à relier les machines par autant de voies de comunication (des fils dans un câble) que de bits dans les mots binaires à transmettre.

Les mots binaires les plus répandus étant les octets, on a généralement besoin de huit voies de communication entre les deux machines.

Auxquelles il faut ajouter la "masse commune" (équipotentielle zéro) s'il s'agit de transmission par voie électrique et des signaux de synchronisation et d'acquittement, ce qui augmente encore le nombre de voies.

Ce mode de transmission parallèle présente des inconvénients majeurs :

  • le nombre de voies peut est financièrement coûteux et même prohibitif si la distance de transmisssion est élevée.
  • les caractéristiques de transmission des différentes voies étant différents, même légèrement, les signaux se propagent à des vitesses différentes donc accusent des retards inégaux et difficilement prévisibles à l'arrivé .
  • la multiplication des voies multiplie aussi les chances de parasitage et de diaphonie.

C'est malgré tout un mode de transmission utilisé dans les liaison locales :

  • liaisons d'imprimante dans le cas particulier des PC d'IBM ou compatibles : CENTRONICS
  • les bus d'intrumentation de type GPIB - IEEE 488.
  • les interfaces de transmission rapide type SCSI
  • les liaisons entre composants microinformatiques dans les cartes à microprocesseurs
  • liaisons internes entre différentes parties fonctionnelles d'un même processeur (bus internes)

Mais dans les autres cas on utilise le mode sériel de transmission.

Mode de transmission sérielle

Ce mode permet de transmettre les données sur un seul support de transmission :

  • une ligne bifilaire (signal + masse)
  • une fibre optique
  • un canal hertzien
  • un canal infra-rouge
  • etc

La transmission se fait en émettant les bits de données les uns après les autres.



Synchronisation émetteur-récepteur :

Le récepteur d'une telle salve de bits peut être perplexe ...


Comment interpréter le signal binaire ci-dessus si on ne connaît pas la durée d'un bit ?

Est-ce 101 ou 110011 ou 111000111 ?

Il faut donc le lui faire connaître : cela s'appelle la synchronisation.

On distingue :

  • la transmission sérielle asynchrone :
    • Emetteur & récepteur ont des horloges de fréquences égales en principe,
      proches en réalité (la perfection n'est pas de ce monde)
      qui donc peuvent dériver dans certaines limites l'une par rapport à l'autre.

    • La transmission se fait par séquences de bits. En général, octet par octet.

    • Un top, dit de synchronisation (bit de start), indique au récepteur,
      par une première transition descendante du signal en ligne, le début d'une séquence

      Le récepteur, fait, à ce top, 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.

      Si la séquence de bits n'est pas trop longue (8 en général) les bits qui suivent sont correctement décodés..

    • On appelle ce type de synchronisation la "synchronisation octet" car elle se produit une fois par octet.

    • Voir ci-dessous une description plus détaillée:

  • la transmission sérielle synchrone :

    • l'émetteur génère un signal conçu de telle manière que le récepteur soit en mesure de se synchroniser à chaque bit .
    • des dispositifs matériels sophistiqués (PLL) permettent une meilleure et constante synchronisation des horloges distantes.
    • Ce type de synchronisation est qualifié de "synchronisation bit"
    • La synchronisation n'est pas parfaite, mais maintenue dans des limites acceptables pendant toute la durée de la transmission ; et même éternellement....

Vous trouverez sur ce même site une étude détaillée de la transmission synchrone en

TRANSMISSION SERIELLE ASYNCHRONE
Exemple du standard RS 232

Applications courantes du mode sériel asynchrone :

  • liaison entre modem et ordinateur
  • liaison souris-ordinateur
  • liaisons ordinateur-imprimante (sauf pour les ordinateur compatibles IMB-PC qui utilisent la liaison parallèle Centronics)
  • les ports COM1 - COM2 etc... des compatibles IBM-PC
  • la plupart des liaisons consoles de programmation - automates programmables.
  • etc, etc ...

Pourquoi "TRANSMISSION ASYNCHRONE" ?

Dans le procédé qui va être décrit, l'horloge du récepteur n'est pas, en pratique, constamment isochrone à celle de l'émetteur.
La synchronisation se fait seulement au moment de l'arrivée de chaque séquence de données (1 octet par exemple)
Pendant le décodage de la séquence entrante l'horloge du récepteur peut se désynchroniser, mais ce désynchronisme doit être maîtrisé si l'on veut la décoder sans erreur.

En pratique, cette méthode s'avère très sûre pour des séquences courtes (un octet en général), quoiqu'un peu lente.

Chronogramme d'une transmission
sérielle asynchrone
type RS232 :

Info :

Commentaire du schéma ci-dessus.

  1. Le signal est au niveau logique "1"
    tant qu'aucune transmission n'est en cours.
    Voir note :

  2. Bit de START : c'est un signal de synchronisation
    Le début de la transmission d'un mot binaire (octet en général), est marqué par le passage du signal
    du niveau de repos représenté par "1", au niveau logique "0".
    Voir détails ci-dessous :


  3. Nombre de bits :
    Les bits constituant le mot binaire à transmettre sont ensuite envoyés un par un en commençant par le bit de poids le plus faible.
    L'octet 01011001 est envoyé dans l'ordre : 10011010.
    Le temps alloué à l'état de chaque bit est le telmps "T" précédemment décrit.


  4. Temps de bit :
    Ce temps est lié au débit binaire en bits par seconde ( bit / s ) de la transmission.
    Débit binaire = 1 / T.
    Par exemple, si T = 1 ms, la transmission se fait à 1000 bit/s.
    Un mauvaise habitude a fait que ce débit est souvent exprimé en BAUDS.
    La transmission précédente se faisant ainsi à 1000 Bauds.
    Mais cette dénomination n'est pas rigoureuse : elle désigne autre chose, comme nous le verrons dans notre étude des modems.

    Les débits binaires usuels des transmissions sérielles asynchrones sont, en bit/s :
    50, 75, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400 et 56 kbit/s.

    Transmetteur et récepteur doivent, bien entendu, être réglés sur le même débit binaire.


  5. Bit de parité :
    Pour tenter de repérer à la survenue d'une erreur lors de la transmission, le transmetteur génère un bit de parité.


    Le bit de parité peut être défini de deux manières :


    Convention dite de "parité paire" : on compte les bits à "1" en comprenant le bit de parité.
    Leur nombre doit être pair.
    Par exemple, l'octet 01011001 compte 4 bits à "1", le bit de parité doit être à "0"
    dans cette convention.

    Convention dite de "parité impaire" : on compte les bits à "1" en comprenant le bit de parité.
    Leur nombre doit être impair.
    Par exemple, l'octet 01011001 compte 4 bits à "1", le bit de parité doit être à "1" dans cette convention.


    En résumé, il existe trois possibilités de convention.
    - PARITE PAIRE : "EVEN PARITY" en anglais.
    - PARITE IMPAIRE : "ODD PARITY" en anglais.
    - PAS DE BIT DE PARITE : "NO PARYTY" en anglais

    Le transmetteur et le récepteur doivent être accordés sur la même convention.

    Le récepteur fait lui-même le calcul de la parité du mot binaire reçu.
    Il compare le résultat au bit de parité reçu du transmetteur.
    S'il y a discordance, c'est qu'une erreur s'est produite en ligne.
    Le circuit intégré spécialisé dans la réception (UART - Unité Asynchrone de Réception et de Transmission)
    génère alors un signal d'interruption permettant au logiciel qui gère la transmission de réagir.


    S'il y a concordance, on ne peut pas conclure qu'aucune erreur ne s'est produite.
    En effet, deux erreurs ayant perturbé deux bits de la donnée, laisseront le bit de parité correct.
    La parité est une bien piètre méthode de transmission de données car elle laisse la porte ouverte
    au passage d'erreurs de transmission non décelées.


    Il est absolument nécessaire, en milieu perturbé,
    de sécuriser physiquement les lignes de transmission et surtout de réaliser des liaisons courtes.


  6. Bit de stop :
  • Nous avons dit que la ligne doit être au niveau logique "1" avant de commencer à émettre un mot binaire.
    Si le bit de parité (ou le dernier bit émis si pas de parité) sont à 0 il faudra bien que la ligne soit remontée systématiquement à "1". Voilà l'un des rôles du bit de stop.
  • Par ailleurs, le fonctionnement de la machine réceptrice exige un certain temps de latence pour mémoriser le mot de données arrivé, calculer sa parité, prévenir le logiciel de réception d'une éventuelle erreur de transmission, etc.
    Voilà une deuxième vocation du bit de stop : donner du temps de "réflexion" au récepteur.
    Dans certains cas, fréquents dans le passé où les machines étaient lentes, on avait le choix de la durée du bit de stop : 1ou 2 temps "T", on disait : 1 stop ou 2 stops.
    Certaines liaisons avaient adopté 0,5 stop.


Détails sur le type de synchronisation lié à la transmission asynchrone
  • L'émetteur génère les bits à un rythme (bits/seconde) fixe imposé par son horloge interne suffisamment stabilisée (à quartz par exemple).

  • Le récepteur dispose d'une horloge battant au même rythme (quartz de même fréquence).
    Mais si l'on sait fabriquer des horloges de fréquence extrêmement proche, personne ne sait comment faire pour les synchroniser parfaitement !
    Elles se déphasent immanquablement l'une par rapport à l'autre au bout de quelques secondes.

  • Un signal de synchronisation est généré par l'émetteur au début seulement de la séquence de bits fixée d'avance (un octet par exemple).
    Il est constitué par la simple transition de niveau logique de 1 à 0 du signal. On l'appelle "bit de start".

    Cette appellation me semble trompeuse car c'est seulement la transition initiale qui représente le top de synchronisation.
    Il est vrai que lorsqu'on a créé une telle transition, force est de revenir au niveau de repos après une durée déterminée : la durée commune de chacun des bits ultérieurement transmis bien sûr.


  • Une fois ce signal de synchronisation reçu, le récepteur lit les états électriques successifs de la ligne au rythme de sa propre horloge interne.

  • Bien entendu, comme on ne peut pas assurer la parfaite correspondance entre les fréquences de l'émeteur et du récepteur,
    un déphasage croissant peut intervenir si la séquence de bits est longue. (marqué par une étoile dans le schéma i-dessous).



    Si les bits étaient émis sans discontinuer, ce type de synchronisation serait inacceptable. Voir "Transmission Synchrone"
    Mais si la séquence de bits n'est pas trop longue (p. ex. un octet) on peut limiter la dérive de l'horloge réceprice de manière à ce que l'on ne "rate" pas le dernier bit (comme c'est le cas marqué par une étoile dans le dessin ci-dessus).

    Ce système accepte des désynchronisations d'horloge de+/- 5% !
    . Ce qui est largement à la portée d'oscillateurs simples.
    Le récepteur se resynchronisant à la prochaine séquence (prochain octet envoyé). Synchronisation "octet".
    Alors que le mode synchrone assure la synchronisation bit.


Orientation

 

    
Précédent : Transmission Parallèle / Série
Suite : Standard RS 232
Sommaire
du Site
 
Sommaire
du Site