Td corrigé rs pdf

rs

Faire de l'imparité : le nombre de bits à 1 y compris le bit de parité est impair. La parité n'est .... Les données s'échangent par les circuits TD (103) et RD (104).




part of the document





Le protocole RS232

Introduction
I -(RS232/EIA232 qu'est"ce que c'est ?
RS signifie 'Recommanded Standard' soit en français standard recommandé. Dans les années 1960, un comité, actuellement nommé 'Electronic Industries Association' (d'où le EIA232 des années 1990), a développé un standard d'interface de transmission de données en série entre équipements. A l'époque, il était prévu essentiellement pour des communications entre ordinateur et modem. Par la suite, il a été utilisé à d'autres fins comme la transmission de donnée entre des ordinateurs, entre un ordinateur et ces périphériques (imprimante, table traçante, ...), entre un ordinateur et d'autres systèmes équipés de processeur tel les commandes numériques de machines outils, ... Ce standard défini les niveaux de tensions correspondant aux 1 et aux 0, le brochage des connecteurs, la fonction de chacun des signaux et un protocole d'échange des informations. Il permet des communications bi"directionnelles synchrone (les 2 équipements peuvent émettre en même temps, full duplex) ou asynchrone (les équipements émettent l'un après l'autre, half duplex). l'utilisation la plus courante est asynchrone.
Le protocole RS232 utilise le principe des poupées russes: La poupée qui contient la poupée qui contient la poupée.
En technique, on utilise le terme d’encapsulage, ceci signifie que la donnée utile (payload) est noyée au milieu d’autres informations.
I-1 Définition de donnée utile
Une donnée est une valeur ou un caractère, elle est dite utile quand elle peut être exploitée par l’utilisateur. Dans le cas de la RS232, la donnée utile peut être un caractère ASCCII. Tout ce qui entoure la donnée utile est aussi une donnée au sens large du terme, mais ce n’est pas exploité par l’utilisateur donc ce n’est pas une donnée utile.
I-2 Le message
Le message comprendra toujours:
Un état repos
Un bit de start
La donnée utile
Un bit de contrôle (optionnel)
Un ou deux bits de stop
Retour à l’état repos
Il est bien important de souligner que le protocole RS232 est base sur un ensemble d’accords établis avant la communication.
Il est de coutume de dire que l’on va établir des paramètres.
Il convient de s’entendre sur les points suivants:
la rapidité ou le débit
Le nombre de bit de la donnée ainsi que le code
L’utilisation d’un bit de contrôle
Le nombre de bits de stop
L’utilisation d’un contrôle de flux

II- Rapidité et debit
La rapidité R = 1/T , elle s’exprime en bauds
Le débit D=Rlog2V , V étant la valence du signal ou son nombre d’états,
D s’exprime en bits/S.
Ainsi pour un signal à 2 états avec T = 20ms
R=1/20ms = 50 bauds et D=50log22= 50 bits/s
Pour un signal à 8 états avec T= 20 ms
R=1/20ms = 50 bauds et D=50log28= 150 bits/s


II-1 Nombre de bits de donnée
Le mot binaire représentant la donnée peut être de 5,7 ou 8 bits.
En général nous utilisons la table ASCII, mais celle-ci prévoit des codes sur 7 ou 8 bits.
Il est donc bien important des spécifier le nombre de bits choisi et bien sûr le code, car l’utilisation de la table ASCII est un exemple parmi d’autres.

II-2 Le bit de contrôle ou bit de parité
Ce bit est un bit supplémentaire ajouté à la donnée utile, il est destiné à détecter les erreurs du message .

Il existe deux possibilités:
Faire de la parité : le nombre de bits à 1 y compris le bit de parité est pair
Faire de l’imparité : le nombre de bits à 1 y compris le bit de parité est impair.
La parité n’est pas utilisée sur des distances courtes < 1mètre. Il est à noter que si 2 bits sont modifies dans la donnée, la parité n’a plus d’effet, heureusement , ce cas est rare.
Compte tenu de cette dernière Remarque, la parité ne sera pas utilisée en transmissions de données, en particulier pour transmettre des fichiers.

II-3 Nombre de bits de stop
Il est bien important de spécifier le nombre de bits de stop et façon à ne pas créer de décalage entre l’émétteur et le récepteur.

II-4 Le contrôle de flux
Il fait intervenir une mémoire tampon , cette mémoire est de type LIFO ou FIFO.
Bien souvent, le contrôle de flux n’est pas utilise afin de libérer le processeur d’une tâche supplémentaire.
II-4-1 Protocole XON-XOFF
L'émetteur envoie des données. Le récepteur les stocke dans une mémoire tampon. Lorsque cette mémoire atteint un seuil de remplissage défini, le récepteur envoie le code XOFF ( caractère de code décimal 17) à l'émetteur. L'émetteur arrête immédiatement d'envoyer des données. Le récepteur continue de traiter les données qu'il a dans sa mémoire tampon. Lorsque sa mémoire tampon arrive au seuil espace libre suffisant, il envoie le code XON (caractère de code décimal 19) à l'émetteur. L'émetteur se remet à envoyer des données. Le cycle recommence jusqu'à ce que toutes les données aient été envoyées.
Exemple : émettre la lettre B
Les paramètres
Code ASCCII sur 7 bits
Parité
1 bit de stop

Rapidité=9600 bauds
Le code de la lettre B en ASCII sur 7 bits est 1000010 soit 42h
1 0 0 0 0 1 0
Le message envoyé sera de la forme: bits de start, 0100001. Bit de parité, bit de stop
Le start, la parité, le(s) stop(s) constituent l’encapsulage.
Remarques importantes
Le niveau de sortie est déterminé par la version de norme
Dans la donnée utile (ici 42 h), le bit de poids faible est en tête

II- 5 Les normes en vigeur
Caractéristiques électriques :
Tensions :
Les tensions représentant les 1 et 0 sont relatives à la masse (0V) commune qu'il y a entre les 2 équipements. Elles sont définies comme suit :
Tension Etat
"Vmax à "3V 1 logique, marque (mark), en attente "3V à 3V zone interdite, afin éliminer les problèmes dus aux bruits sur la ligne
3V à Vmax 0 logique, espace (space), actif
Version de la norme Vmax
RS232 48V
RS232A 25V
RS232B 12V
RS232C 5V
Les tensions extrêmes varient en fonction de la version de norme utilisée.
* Une si grande plage de tension peut engendrer des problèmes de dialogue entre 2 équipements.
III Constitution d'une liaison
La communication entre systèmes informatiques s'effectue grâce à des liaisons dont les principaux
éléments sont définis par des normes dans le cadre du CCITT (Comité Consultatif International des Téléphones et Télégraphes).
La Figure 1 montre ces éléments.




ETTD : Equipement Terminal de Traitement de données (ou DTE : Data Terminal Equipment). ETCD : Equipement de Terminaison de Circuit de Données (ou DCE : Data Communication Equipment).
L'ETTD est un élément qui ne se connecte pas directement à la ligne de transmission. Par exemple : un ordinateur, un terminal, une imprimante... L'ETCD assure la transmission des données. Par exemple : un modem, un multiplexeur... Il a deux fonctions principales :
- l'adaptation du signal de l'ETTD à la ligne (codage et modulation en émission, démodulation et décodage en réception) ;
- la gestion de la liaison (établissement, maintien et libération de la ligne).
III-1 Modes d'exploitation
Il existe trois modes d'exploitation d'une liaison. L'un est choisi en fonction de l'application.
- Simplex : Un système est émetteur, l'autre récepteur. C'est par exemple le cas des émissions radio ou télévision.
- Semi-duplex (half duplex) : Les deux systèmes peuvent être à la fois émetteur et récepteur, mais les émissions ne peuvent avoir lieu en même temps.
- Duplex (full duplex) : Les deux systèmes peuvent être à la fois émetteur et récepteur, les émission pouvant avoir lieu en même temps.
III-2 Normalisation des jonctions
3 organismes de normalisation : - CCITT : Comité Consultatif International des Téléphones et Télégraphes. - ISO : International Standardisation Organisation. - EIA : Electrical Industry Association.
Présentation des normes électriques V28 et V11. Puis un paragraphe est consacré à la norme fonctionnelle V24.





.Norme V28 (RS232)
Pour chaque signal, le support est un fil référencé par rapport à la masse. La norme permet d'adapter les signaux logiques (TTL ou CMOS).
1 logique = 5V devient une tension comprise entre -3V et -25V. 0 logique = 0V devient une tension comprise entre +3V et +25V.
On a alors le circuit de jonction équivalent de la Figure 2 avec les caractéristiques du Tableau 2. La Figure 3 donne les niveaux électriques significatifs de la norme V28.
















Norme V11 (RS422 et RS485)
Le support de transmission est ici différentielle. Deux fils correspondant à des niveaux complémentaires sont donc utiles pour chaque signal ce qui limite l'influence des bruits extérieurs et des masses. Pour la RS485, des circuits trois états permettent des liaisons multipoints.















Les signaux 113 à 115 sont utilisés pour la transmission synchrone. Les circuits 118 à 122 correspondent à une voie secondaire au fonctionnement identique à la voie principale. Elle peut être utilisée comme voie de secours ou en cas de transferts semi-duplex sur la voie principale. Les signaux 140 à 142 permettent la maintenance de la liaison. Etudiés dans la suite.
IV.2.Echange de données par l'intermédiaire d'une liaison V24
Les données s'échangent par les circuits TD (103) et RD (104). Avant la transmission des données, la connexion doit être établie entre les deux systèmes. Les signaux participant à cette phase de la communication sont :
DTR (108.2) et DSR (107) pour la connexion de ligne ; RTS (105) et CTS (106) pour la validation de l'émission ; DCD (109) pour la validation de porteuse ; RI (125) pour signaler un appel reçu par l'ETCD.

La Figure 6 décrit les différentes phases de commande d'un ETCD :
Phase 1 : DTR passe à 0. L'ETTD indique qu'il est prêt et demande la connexion de la ligne.
Phase 2 : DSR passe à 0. L'ETCD indique en réponse qu'il est prêt : la ligne est connectée.
Phase 3 : RTS passe à 0. L'ETCD indique qu'il veut émettre.
Phase 4 : CTS passe à 0. L'ETCD indique qu'il est prêt à émettre des données sur la ligne. Emission des données.
Phase 5 : RTS passe à 1. L'ETTD suspend l'émission. RTS ne peut pas repasser à 0 tant que CTS est à 0.
Phase 6-7 : CTS passe à 1. L'ETCD indique en réponse qu'il ne peut plus émettre de données.
Phases 8-10 : L'émission est de nouveau validée. CTS peut éventuellement repasser à 1 pour demander à l'ETTD une interruption du transfert des données pendant un laps de temps défini dû à problème de flux, de synchronisation...
Phases 11-12 : L'émission est suspendue. Phase 13 : DTR passe à 1. L'ETTD demande la déconnexion de la ligne. Phase 14 : DSR passe à 1. L'ETCD répond et la ligne est déconnectée.
IV.2.2.Etablissement d'une liaison entre deux systèmes
Les chronogrammes de la Figure 7 décrivent les différentes phases de l'établissement d'une liaison entre le système émetteur A et le système récepteur B :

Phase 1 : Connexion de ligne sur les systèmes A et B. Les signaux DTR et DSR peuvent être validés suite à une procédure de réponse automatique transmise par le circuit RI (125).

Phase 2 : Validation de l'émission sur A (RTS=0 et CTS=0). L'ETCD A émet une porteuse sur la ligne.

Phase 3 : Détection de porteuse par l'ETCD B (DCD=0).
Phase 4 : Transmission de données.
Phase 5 : Arrêt de l'émission par A (RTS=1 et CTS=1).
Phase 6 : Déconnexion de la ligne sur A et B (DTR=1 et DSR=1).






Pour qu'une transmission série puisse avoir lieu, l'émetteur et le récepteur doivent avoir une référence commune de durée des bits reçus ou encore de vitesse de transmission. Dans le cas d'une liaison asynchrone, la vitesse de transmission est définie à l'avance. Elle est donnée en bit/s ou en Baud (attention, les deux ne sont pas identiques dans le cas général). Pour la liaison RS232, des vitesses normalisées sont utilisées : 150, 300, 600, 1200, 2400, 4800, 9600, 19200...


IV.4.2.Bits de contrôle
Quand la ligne est au repos, TD est au niveau logique 1. Le début du message est donné par un 0 logique sur TD : on l'appelle bit de début ou de start. Puis viennent les données (§ suivant). A la fin du message, la ligne TD se remet à 1 logique : bit de fin ou de stop. Il y en à 1, 1.5 ou 2 suivant le protocole choisi.









Boucle1: Permetde vérifier le bon fonctionnement de l'ETTDA par renvoi des signaux émis. Permet, à partir de la station A, de tester le bon fonctionnement de la ligne et de l'ETCDB.
Boucle2: Permet de vérifier le bon fonctionnement de l'ETCDA.
Boucle3: Destiné à la maintenance de la ligne(réservée à l'administration du réseau).
Les commandes de bouclages sont réalisée manuellement à l'aide d'un commutateur ou automatiquement en utilisant les circuits 140, 141, 142 de l'avis V24.
142 (TI) : Utilisé pour signaler l'établissement d'un bouclage. 140 (RM) : Commande le bouclage 2. 141 (RM) : Commande le bouclage 3.

VI Notions complémentaires
VI-1 La Pile
La pile est une partie de la RAM, c’est donc une mémoire volatile.
La meilleure façon de se représenter une pile est de la comparer à une pile d’assiettes.
La pile est utilisée par le processeur comme zone de stockage de ses registres.
La particularité d’une pile est liée au fait qu’elle « monte » au fur et à mesure que les données s’entassent.
Comme la pile est dans la RAM, si la pile monte trop les données de la plie vont écraser les données de la RAM.
Il est donc nécessaire de créer un pointeur de pile ( Stackpointer)



Une pile peut se vider par le haut , c’est alors une LIFO (Last In First Out)


La dernière donnée empilée, est donc la dernière entrée
La pile monte, le pointeur indique le niveau de pile à ne pas dépasser
Lorsque la donnée est dépilée, la première à sortir de la pile est la dernière entrée. La pile descends .
Ou être vidée par le bas , c’est alors une FIFO

Supposons la pile vide.
La donnée est empilée, c’est donc la première entrée.
Au fur est à mesure que les données sont empilées, la pile monte.
Si la donnée est dépilée par le bas La première donnée sortie est bien la première entrée. La pile descends
Ce petit jeu de montée descente doit être géré par le programmeur dans le cas qui nous intéresse.

La pile est utilisée dans 2 cas :
Lors de l’appel à un sous programme
Lors d’une interruption


VI-2 La parité
La parité, comme vu plus haut, est un code détecteur d’erreur et non un code correcteur d’erreur.
Étant donné qu’il est préférable de limiter le nombre d’erreurs, il a faalu trouver une parade.
La parade est celle de la parité croisée.
Si on transmet un bloc de messages avec simple contrôle de parité pour chaque message, on peut ajouter un message supplémentaire faisant un contrôle de parité sur l’ensemble des bits de même rang de chaque message. S’il y a une erreur, les deux contrôles localisent la ligne et la colonne.
Exemple
Poids -> 8 4 2 1 Parité
Messages 1 0 1 1 0 0
2 1 1 0 1 0 le bit de parité détecte 
message mauvais

3 0 0 1 0 1
parité 1 1 0 1 0 message de parités


colonne détectée par le message de parités
On en déduit donc que l’erreur est dans le message 2 poids 4.
Cette méthode a été abandonnée car elle était ‘’ gourmande’’ en capacité mémoire. De plus, en cas d’erreur sur 2 bits le problème restait entier car on détectait les colonnes et pas la ligne.
Etant donné les défauts du bit de parité , celle-ci n’est plus guère utilisée qu’avec RS232.
Du coup, RS232 n’est utilisée que pour transmettre des caractères de type ASCII.
En effet si l’on transmet uniquement des caractères non codés, l’utilisateur arrivera toujours à reconstituer le message sauf si la liaison est trop bruitée.
Si l’on veut éviter ce genre d’ennuis, deux remèdes s’imposent :
La détection et la correction des erreurs
Le transcodage
Parité: La parité est une technique qui permet de vérifier que le contenu d’un mot n’a pas été
changé accidentellement lors de sa transmission. L’émetteur compte le nombre de « 1 » dans le mot et met le bit de parité à « 1 » si le nombre trouvé est impair, ce qui rend le total pair : c’est la parité paire. On peut aussi utiliser la parité impaire. Exemple: transmission de $82, puis $F1, avec parité paire et 2 bits de « stop ».







Jean Marc Masson
Cours 247-415-GG

PAGE 


PAGE 1



RAMM

pointeur

RAMM


RAMM

PILE

PILE

PILE





PILE