LES RESEAUX LOCAUX INDUSTRIELS

Chapitre 11/25  -  Les premiers Réseaux informatiques : liaison RS232

Hugues Angélis

 

 Les premiers Réseaux informatiques.

 

Avant d'essayer d'analyser les Réseaux modernes, nous allons "continuer" l'historique en étudiant certaines vieilleries. Elles furent à l'origine de toutes améliorations et de tous les éléments actuels (les Réseaux en particulier).

 

         La norme RS232

 

                        Les puristes pourraient vous le dire, RS 232 est une façon de faire communiquer 2 machines entre elles, mais en aucun cas le terme Réseau ne peut lui être appliqué. Ceci est une pure vérité, mais, comme il faut bien commencer quelque part, commençons donc par ce système puisque je suis sûr que vous en avez entendu parlé (peut être sous le nom de liaison série).

 

                        La norme RS 232 permet de connecter entre elles 2 et seulement 2 machines. Entre ces machines va circuler, via une liaison série à 3 ou à 9 fils, l'information à transmettre. Les signaux présents sur ces fils, auxquels il convient d'ajouter la masse, sont :

 

                        Présentation.

 

                        La norme RS 232 est un protocole de transmission série qui permet des transmissions full duplex, half duplex ou même simplex. Les signaux transmis sont codés en ±12V avec le "1" logique équivalant à un niveau -12V. La communication est régie par des paramètres matériels qui doivent être identiques sur les deux machines en communication :

 

¨ Le débit : Il peut être choisi, selon les versions de la norme entre 75 bauds et plusieurs centaines de kilo-bauds (valeur typique 9600 bauds).

¨ Le nombre de bits de données : Il peut varier de 4 à 8 bits.

¨ Le nombre de bits d'arrêts : Il peut être 1, 1,5 ou 2.

¨ Le type de contrôle de la parité. Il peut être choisi parmi trois possibilités :

·         pas de contrôle de parité;

·         parité paire (le message contient un nombre pair de '1');

·         parité impaire (le message contient un nombre impair de '1').

                        En outre, une fois les paramètres matériels définis à l'identique sur les deux machines, pour quelles communiquent, on doit choisir un mode de transmission, c'est à dire définir le processus de contrôle de flux utilisé pour la liaison série.

 

                        Contrôle de flux

 

                        La notion de contrôle de flux doit être comprise comme un moyen mis en œuvre pour faire en sorte qu'entre deux machines connectées à une liaison série avec un débit fixe et des vitesses de traitement différentes selon les machines, on s'aligne sur la capacité de traitement la plus lente.

 

                        Même si de nos jours, la capacité de traitement des ordinateurs modernes rend ridicule le temps de traitement de l'information par rapport à la durée d'un bit, il existe toujours des cas où ce contrôle est indispensable.

 

                        Il existe trois possibilités pour le contrôle de flux :

·         Le contrôle de flux matériel.

·         Le contrôle de flux logiciel.

·         Pas de contrôle flux.

 

                                   Le contrôle de flux matériel.

 

                        Le contrôle de flux matériel, consiste à utiliser des signaux supplémentaires pour "rythmer" les échanges, c'est à dire que les machines en communication vont transmettre des données de contrôle sur des voies supplémentaires.

 

                        Il existe plusieurs méthodes de contrôle de flux matériel utilisant plus ou moins de signaux.

Le cas général (celui décrit par la norme RS-232) utilise sept signaux nommés CTS (Clear To Send), RTS (Request To Send), DSR (Data Set Ready), DTR (Data Terminal Ready), TD (Transmit Data), RD (Received Data) et DCD (Data Carrier Detected) auxquels on ajoute une masse.

 

            Dans le câblage, on associe ces signaux par paire : DTR avec DSR (et DCD), RTS avec CTS et TD avec RD. On a alors besoin d'une liaison à 7 fils.

 

                        Parmi les autres possibilités, de câblage, il existe des liaisons à 5 (contrôle de flux partiel) et à 3 fils (sans contrôle de flux matériel).

 

 

 

                                   Le contrôle de flux logiciel.

 

                        On peut aussi utiliser un protocole logiciel pour contrôler le flux des échanges. Cette fois-ci, la connexion n'a plus besoin des signaux RTS, CTS, DTR, DSR et DCD, on peut donc se limiter à une liaison à 3 fils.

 

                        C'est au niveau du logiciel que les machines vont contrôler leurs échanges de données. Le protocole (puisqu'il s'agit là d'un protocole) se nomme Xon/Xoff. Il est limité aux échanges en ASCII. Il est impossible d'utiliser ce protocole pour envoyer des informations binaires. De plus ce protocole nécessite une liaison FULL DUPLEX.

 

                        Les codes ASCII utilisés pour contrôler les échanges sont Xon, qui est le code ASCII 17 (0x11) ou Ctrl Q, et Xoff qui est le code ASCII 19 (0x13) ou Ctrl S.

 

                        Le principe de fonctionnement de ce contrôle de flux repose sur un concept d'automatique simple.

 

                        Du point de vue de la machine réceptrice qui, à l'origine, est naturellement prête à recevoir des données; chaque octet reçu est stocké dans un tampon de réception.

 

                        Lorsque ce tampon de réception atteint un certain pourcentage d'occupation (en général 80%), la machine réceptrice envoie le caractère Xoff à l'émetteur. Elle va alors traiter les données reçues pour vider le tampon de réception.

 

                        Une fois atteint un second seuil (50% en général), elle envoie alors à l'émetteur le caractère Xon pour que le transfert de données puisse reprendre.

                        Du coté émetteur, la réception du Xoff bloque l'émission jusqu'à la réception d'un Xon.

 

Concept du contrôle de flux logiciel pour le récepteur

 

 

                        Application.

 

                        Ainsi une transmission de 7 bits de données avec un contrôle de parité paire et 2 bits de stop à 9600 bauds représente une transmission de 11 bits au total dont 7 utiles. Soit (9600*7) / 11 = 6110 bits utiles/s.

 

                        Une fois ces points définis, on peut transmettre les données en utilisant un UART. La forme des trames est alors la suivante :

 

                        La réception des données est réalisée par l’horloge interne d’un UART, multiple de la fréquence de transmission (horloge interne = N * horloge transmission) pour lui permettre de se synchroniser avec le signal transmis.

 

                        Un front descendant du signal permet de définir le début du bit de start (qui vaut '0' alors que la ligne inoccupée ou le stop est à '1'), on a alors un comptage des fronts de l'horloge interne. Comme on a défini le débit de la transmission, le récepteur sait combien de fronts de l’horloge interne (N) représentent un bit transmis, à N/2, l’UART saisit la donnée présente sur la ligne. On fait de même avec les autres bits de la transmission à 3N/2, 5N/2, etc.

 

                        Ainsi on reconstitue le message sans qu'il soit nécessaire de transmettre l'horloge. Toutefois, ceci n'est valable que pour des messages de faible longueur faute de quoi, la désynchronisation des horloges risque de poser des problèmes qui peuvent engendrer une perte de données. Il suffit, pour éviter ces dysfonctionnements de resynchroniser l’horloge de réception à chaque front montant et (ou) à chaque front descendant du signal de données.

 

                        La norme RS232 est désormais réservée à une utilisation basique. Certaine évolutions (RS 422, RS 423 et RS 485) de la norme permettent des débits bien supérieurs entre de multiples machines. Toutefois, elle ne sont pas "de série" sur les ordinateurs modernes, ce qui est un handicap sévère à leur développement.