Nous avons publié il y a quelques semaines un article sur le stockage, et comment transférer des données d’un espace de stockage à une machine ; nous nous intéressons aujourd’hui aux modes de transmission de ces données.

A chaque transfert de donnée, une vérité est immuable : l’émetteur et le récepteur doivent utiliser le même protocole. Cela permet que chacun ait les mêmes informations et connaisse la vitesse de transmission des données, les signaux annonçant le début et la fin de la communication, ainsi que la méthode utilisée pour vérifier l’intégrité des données reçues. Il existe de nombreux protocoles, auxquels nous nous sommes intéressés dans notre article précédemment cité. Cependant, tous ces protocoles dépendent de deux modes de transmission : la transmission en parallèle et la transmission en série.

Découvrez dans cet article les différences de concept et d’utilisation de ces deux modes !

Les bits

Petite pause vocabulaire avant de rentrer dans le vif du sujet : intéressons-nous aux bits. Un bit est la plus petite unité permettant de coder des données, et ne peut prendre que deux valeurs : 0 ou 1.

Prenons l’exemple du code ASCII, permettant de coder un caractère avec un octet (un octet correspondant à 8 bits). La lettre A, dans ce cas, se traduit en code ASCII par 01000001, soit :

Bit 1 : 0 Bit 2 : 1 Bit 3 : 0 Bit 4 : 0 Bit 5 : 0 Bit 6 : 0 Bit 7 : 0 Bit 8 : 1

Un mot de trois lettres, comme « non », est codé avec 3 octets et donc 3×8 = 24 bits, etc.

Les deux modes de transmission de données exposés ci-dessous agissent au niveau des bits.

La transmission en parallèle

transmission paralleleCette modalité de transmission des données consiste à envoyer des bits entre un émetteur et un récepteur sur plusieurs voies simultanément. Par exemple, en associant 8 conducteurs (câbles) et transmettant 1 bit par conducteur simultanément, on a l’opportunité d’aller 8 fois plus vite qu’en envoyant les données progressivement : c’est le gros avantage de ce mode. De plus, il s’implémente facilement sur une machine, puisqu’il est très simple de créer un port parallèle pour accueillir les conducteurs supplémentaires. Son inconvénient, c’est son prix : logiquement, il est beaucoup plus coûteux d’avoir plusieurs câbles qu’un seul ! Il est cependant possible de faire de la transmission de données en parallèle via une seule ligne physique, en divisant la bande passante pour créer des sous-canaux.

Utilisations principales

La transmission en parallèle s’utilise pour les transferts de données à courte distance, comme par exemple entre des composants d’une machine (protocole PCI). En revanche, pour les grandes distances, on préfère la transmission en série, car l’utilisation de la transmission en parallèle nécessiterait trop d’équipements. De plus, plus le câble est long, plus la probabilité de diaphonie (ou crosstalk) est importante : c’est un phénomène d’induction électromagnétique où le signal transmis par un câble crée une interférence avec un signal d’un autre câble.

La transmission en série

serialCette modalité de transmission des données consiste à envoyer des bits se succédant les uns après les autres, par l’intermédiaire d’un seul connecteur, entre un émetteur et un récepteur. Ces bits arrivent donc un par un chez le récepteur, ce qui peut prendre du temps selon la quantité de données à envoyer.

Afin de déterminer quand commence la transmission et quand elle se finit, les données envoyées sont organisées en trames. Une trame est constituée d’un préambule ou header (en-tête de description), des données à transmettre, et d’un postambule ou trailer (indiquant la fin de la transmission).

Il y a deux modes de transmission en série de ces trames :

Transmission synchrone

L’émetteur et le récepteur sont réglés sur la même horloge grâce à un signal de synchronisation (signal déterminant l’instant où le récepteur doit lire une donnée), afin que la fréquence de lecture corresponde à la fréquence d’envoi. Sans cela, le récepteur peut ne lire, par exemple, qu’un bit sur deux s’il a une fréquence de lecture deux fois plus lente que la fréquence de réception.

Pour cela, deux solutions existent : soit le signal est régulier, auquel cas le récepteur synchronisera son horloge interne à la fréquence de l’émetteur, soit il ne l’est pas. Dans ce cas, le signal de synchronisation est envoyé par le biais d’un deuxième conducteur dont le but est donc de synchroniser les transmissions, placé en parallèle du conducteur transitant les données.

Dans les deux cas, les données peuvent être envoyées en un flux ininterrompu puisque le récepteur se cale sur les signaux de synchronisation.

Transmission asynchrone

Dans le mode asynchrone, en revanche, les envois de données doivent être espacés par une durée d’inactivité. La fréquence d’envoi des données ne compte pas dans ce cas. En effet, au sein même de la trame générale, la transmission d’un seul caractère est lancée par un signal de départ (un bit de « début »). Une fois les 8 bits du caractère transmis, suit un bit de « fin » indiquant la fin de la transmission du caractère. Le problème avec cette méthode est que 20% de la bande passante est utilisée par ces bits de cadrage. Elle est majoritairement utilisée pour des trames courtes à la cadence modérée.

Ce travail de division de la donnée et d’insertion des bits entre un bit de « début » et un bit de « fin » est réalisé par l’UART (Universal Asynchronous Receiver/Transmitter ou Receveur/Transmetteur Asynchrone Universel). Pour pouvoir envoyer un caractère composé donc de 8 bits, l’UART de l’émetteur met ces 8 bits entre un bit de début et un bit de fin. Il a donc, pour chaque caractère, ce que l’on appelle un « registre à décalage » contenant ce caractère :

DEBUT Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 FIN

L’UART commence par envoyer le bit de début, puis décale son registre vers la gauche.

Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 FIN

Le bit 1 est alors en position d’envoi ; il est envoyé. Cela continue comme ça jusqu’à l’envoi du bit de fin.

Au niveau du récepteur, le principe est le même. L’UART a un registre vide, composé de 10 « cases ». Lorsqu’il reçoit le bit de début, son registre se remplit comme ceci :

DEBUT

Le registre se décale alors vers la gauche pour recevoir les bits suivants et ainsi obtenir tous les bits dans l’ordre. A la fin, le registre est donc rempli comme le montre le tableau suivant :

DEBUT Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 FIN

C’est ainsi que le caractère est à nouveau lisible dans son ensemble.

Intégrité des données

Check mark verteDans ces deux cas, il convient également de vérifier que l’ensemble des données ont été transmises. Pour cela, deux solutions sont possibles. La première est d’installer un contrôle de redondance cyclique : c’est un outil logiciel utilisant la technique du hachage permettant de détecter les erreurs de transmission. La deuxième est d’inclure, à chaque caractère, un bit de parité. Un bit de parité prend la valeur 0 si la somme des autres bits est paire, et la valeur 1 si elle est impaire.

Utilisations principales

La transmission en série s’utilise majoritairement sur de longues distances (télécommunications, audiovisuel). On la retrouve dans les protocoles suivants : fibre optique, USB, Ethernet, Fibre Channel, Serial Attached SCSI, PCI, SATA

Utilisation de ces modes aujourd’hui

Aux débuts de l’informatique, les transmissions de données se faisaient par série, puis l’utilisation de la transmission en parallèle s’est développée car elle offrait de meilleures performances. Mais en 2005 environ, avec l’amélioration de l’électronique, le mode de transmission en série est à nouveau devenu compétitif : il offre désormais de bonnes performances, parfois même meilleures que la transmission en parallèle, et coûte moins cher car nécessite moins d’équipement. C’est pourquoi, aujourd’hui, on utilise des disques USB plutôt que IEEE 1284, du SATA plutôt que du PATA

Le parallèle reste tout de même utilisé dans les communications radios, où il est en recrudescence, ou encore au sein même des machines sur de courtes distances (avec le protocole PCI par exemple).

Lucie Saunois
Lucie Saunois
Passionnée d'informatique, en particulier de sécurité, depuis qu'elle a rejoint l'OT Group en 2015, Lucie se spécialise dans la vulgarisation technique pour permettre à tous d'appréhender ces sujets parfois complexes.