Le codage du signal
Lorsque nous parlons de transmission de données sur un réseau, il ne suffit pas seulement de convertir ces données en un signal électrique, mais il est aussi très important de structurer ce signal de manière à ce que le destinataire puisse le comprendre facilement. C’est là que le « codage du signal» entre en jeu. Le codage du signal est une technique qui transforme nos données en une séquence spécifique de symboles. Cela permet de faciliter la distinction entre les bits lors de la transmission. Ce codage est très utile, car sans lui, le destinataire aurait du mal à savoir où un bit commence et où il se termine.
En d’autres termes, le codage du signal est comme un “code secret” qui permet aux données d’être transmises de manière claire et précise. Il permet de s’assurer que les données arrivent à destination sans être altérées ou mal interprétées. Il est donc très utile pour assurer le bon fonctionnement des réseaux numériques et pour permettre aux gens de communiquer et de partager des informations en ligne.
Imaginez que vous essayez de suivre le rythme d’une musique sans jamais avoir de battements réguliers. La transmission de données est similaire : pour que le destinataire puisse “entendre” et comprendre les données, il doit y avoir une certaine régularité, un “rythme”. C’est là que les problèmes de synchronisation apparaissent. La synchronisation assure que l’émetteur et le destinataire “parlent” au même rythme. Si le rythme est perdu, la donnée peut devenir incompréhensible. Pour remédier à ce problème, nous utilisons des codes qui sont auto-synchronisants.
Un code auto-synchronisant est un type de code qui est conçu pour aider le destinataire à rester synchronisé avec l’émetteur. Il fait cela en effectuant régulièrement des changements d’état, comme passer d’un niveau bas à un niveau haut, dans le flux de données. Ces changements d’état sont similaires aux battements réguliers dans une musique, qui aident à maintenir le rythme. Plus il y a de ces changements d’état, plus il est facile pour le destinataire de rester synchronisé avec l’émetteur.
Cependant, ajouter trop de transitions peut également avoir des conséquences. Cela peut conduire à une augmentation du bruit dans le signal ou à une consommation excessive de bande passante. Ainsi, il est nécessaire de trouver un équilibre entre un nombre suffisant de transitions pour maintenir la synchronisation et la nécessité de transmettre les données de manière efficace. Plusieurs méthodes de codage ont été développées pour atteindre cet équilibre. Parmi les plus courantes, on peut citer le codage Manchester et le codage Miller. Chacun de ces codes possède ses propres avantages et inconvénients, en fonction des caractéristiques spécifiques du réseau et des besoins en matière de transmission.
Le codage NRZ(i)
Le codage NRZ est l’une des méthodes de codage les plus élémentaires. Dans ce type de codage, un ‘1’ est représenté par un niveau haut (une tension positive) et un ‘0’ est représenté par un niveau bas (une tension négative). L’idée principale derrière NRZ est simple : la valeur du signal représente directement la valeur du bit. Cependant, bien que le codage NRZ soit simple à mettre en œuvre, il présente des défis majeurs en matière de synchronisation. En effet, s’il n’y a aucune transition pendant une longue période, le destinataire pourrait perdre la synchronisation avec l’émetteur.
Prenons l’exemple d’une série de plusieurs ‘0’ consécutifs envoyés en utilisant le codage NRZ. Si nous envoyons, par exemple, dix ‘0’ consécutifs, le signal restera à un niveau bas pendant toute cette durée. Sans transitions, le récepteur n’a aucun moyen de déterminer où un bit commence et où il se termine. Il peut commencer à mal interpréter le début et la fin de chaque bit, ce qui pourrait entraîner une lecture incorrecte des bits suivants. De plus, dans un environnement réel, les horloges de l’émetteur et du destinataire peuvent légèrement dériver avec le temps. Si une longue séquence de ‘0’ (ou de ‘1’) est envoyée, même cette légère dérive peut provoquer une désynchronisation, car le destinataire n’a aucun point de repère pour ajuster ou recalibrer sa propre horloge.
Pour surmonter ces problèmes de synchronisation inhérents au codage NRZ, d’autres techniques de codage ont été développées. Ces techniques garantissent des transitions régulières dans le signal, ce qui aide à maintenir la synchronisation entre l’émetteur et le destinataire. Le codage NRZi est une variante du codage NRZ. Dans le codage NRZi, la logique est un peu différente : au lieu de représenter le ‘1’ et le ‘0’ par des niveaux de tension spécifiques, le signal change d’état pour représenter un ‘1’, et il reste à son état actuel pour représenter un ‘0’.
Cela signifie que si nous regardons une séquence de bits, chaque fois que nous voyons un ‘1’, nous nous attendons à voir une transition dans le signal. Si nous voyons un ‘0’, le signal reste à son niveau actuel, que ce soit haut ou bas. Par conséquent, NRZi utilise les transitions elles-mêmes pour représenter les informations, plutôt que l’état absolu du signal. Un avantage majeur de NRZi est qu’il maintient de la synchronisation. Cela signifie qu’une longue séquence de zéros n’entraînera pas nécessairement une absence de transitions si elle est précédée d’un ‘1’. Cela permet au récepteur de suivre le rythme du signal, même s’il y a de longues séries de zéros.
Cependant, il convient de noter que même si NRZi résout certains problèmes posés par NRZ, il n’est pas exempt de défaut. Un de ces défauts est qu’une longue série de zéros peut causer des problèmes de synchronisation. Pour résoudre ce problème, on utilise une technique appelée “bit stuffing”, qui consiste à insérer artificiellement un bit ‘1’ après un certain nombre de zéros consécutifs, même si ce ‘1’ était absent dans les données d’origine. Par exemple, les ports USB utilisent NRZi et insèrent un ‘1’ après six zéros consécutifs pour assurer une transition et maintenir la synchronisation. Un autre exemple concerne le protocole de communication derrière les ports OBD, présent sur les voitures, qui insère un ‘1’ après cinq zéros consécutifs.
Lors de la réception, le dispositif reconnaît cette séquence particulière et retire le bit artificiel pour restaurer les données d’origine. Ainsi, même si de longues séries de zéros sont envoyées, le processus d’insertion de bit garantit qu’il y aura des transitions régulières dans le signal pour maintenir la synchronisation. Il est évidemment important que l’émetteur et le récepteur soient tous deux au courant de cette technique d’insertion de bit pour qu’ils puissent coder et décoder correctement le signal.
Le codage Manchester
Comme nous l’avons observé avec la technique NRZi, assurer une transmission de données fiable sur un réseau nécessite de coder l’information d’une manière qui facilite sa reconnaissance et son déchiffrement par le dispositif récepteur. Le codage Manchester est l’une des méthodes les plus efficaces pour répondre à ce besoin. La particularité et la force du codage Manchester résident dans sa capacité à intégrer en même temps les données et le mécanisme de synchronisation directement au sein du signal. Cela permet au récepteur de maintenir une synchronisation constante avec l’émetteur, assurant ainsi une communication optimale.
Le principe de base du codage Manchester est assez simple: il faut inclure la transition dans le codage du bit. De cette façon, pour chaque bit de données:
- Un ‘0’ est représenté par une transition montante au milieu du symbole. Dans le schéma ci-dessous, on peut observer les transitions montantes en vert.
- Un ‘1’ est représenté par une transition descente au milieu du symbole. Dans le diagramme suivant, les transitions descendantes sont indiquées en rouge.
L’un des principaux avantages du codage Manchester est que, puisque chaque bit contient une transition, il y a toujours une activité sur le lien de communication, permettant ainsi une synchronisation continue entre l’émetteur et le récepteur. Cette synchronisation est très importante pour garantir que les deux parties interprètent les données à la même vitesse et au bon moment.
Cependant, comme tout système, le codage Manchester a lui aussi ses inconvénients. Sa principale limitation est qu’il demande une bande passante supérieure à celle de plusieurs autres systèmes de codage. Cette exigence résulte en partie des transitions additionnelles nécessaires lorsque deux bits consécutifs sont identiques, comme le montrent les marquages en bleu sur le schéma. Toutefois, malgré cet inconvénient, le codage Manchester est largement apprécié pour sa capacité à maintenir une synchronisation précise, ce qui limite les erreurs de transmission. Un exemple notable de son utilisation est dans les premières versions d’Ethernet.
Le codage Miller
Le codage Manchester, tel que vous le savez déjà, utilise une transition au milieu de chaque période d’horloge pour représenter un bit. Cependant, cela signifie que chaque bit est représenté par deux niveaux de tension, ce qui peut augmenter la bande passante nécessaire pour la transmission, là aussi illustrée en bleue dans le schema ci-dessous. C’est là qu’entre en jeu le codage Miller, également connu sous le nom de codage biphase de niveau.
Le codage Miller présente une optimisation significative par rapport au codage Manchester. Alors que le Manchester nécessite une transition pour chaque bit, le Miller n’en nécessite que lors d’un changement de bit. De ce fait, le codage Miller requiert moins de transitions que le Manchester (visible en bleue dans le schéma), le rendant ainsi plus efficace en termes de bande passante. Les règles du codage Miller sont les suivantes :
- Pour un bit logique “1” :
- Si le bit précédent était un “1” : une transition a lieu au milieu de la période d’horloge. Représenté en rouge dans le schéma ci-dessous.
- Si le bit précédent était un “0” : il n’y a pas de transition. En orange dans le diagramme.
- Pour un bit logique “0” :
- une transition est effectuée au début de la période d’horloge. Mis en évidence en vert dans l’illustration.
Néanmoins, rappelons que l’absence de transitions régulières, comme dans le codage NRZ, pourrait poser des problèmes de synchronisation. Le codage Miller contourne habilement ce problème en garantissant qu’il n’y aura jamais plus de deux périodes d’horloge consécutives sans transition. Cette caractéristique maintient une certaine régularité, aidant les dispositifs récepteurs à maintenir une synchronisation précise avec le signal entrant.
Aujourd’hui, le codage Miller est largement adopté dans de nombreuses technologies modernes. L’un des exemples les plus notables est son utilisation dans le protocole NFC. En effet, les cartes de paiement sans contact nécessitent une transmission de données rapide et fiable tout en conservant une consommation d’énergie faible. Les évolutions du codage Miller ont également trouvé leur chemin dans les technologies Ethernet récentes.
5 Comments
Titre : Codage Miler ou codage Miller ? Idem dans la conclusion.
corrigé! merci
Ce pdf est bien détaillé et sa permettra de bien débuter en réseau
Et l’objectif du codage ?
Le signal électrique c’est pas des bits. Les cartes réseaux doivent se comprendre, et donc utiliser le même codage et bien comprendre où commence et se termine un bit.