Td corrigé td teleinfo annee 2 , Octobre 94 pdf

td teleinfo annee 2 , Octobre 94

Exercice 1 - Corrigé. Pour chacun des propositions, indiquez la bonne réponse. A ? La domiciliation est l'adresse de la banque du client : Vrai Faux.




part of the document



Département Informatique Année 2005-2006
IUT Bordeaux 1 Semestre 2



TD ASR4 - Téléinformatique
Transmission asynchrone
Contrôle de flux

On s'intéresse à la transmission asynchrone entre deux ordinateurs munis chacun d'un port série. Les caractéristiques de la liaison seront les suivantes :
- données codées sur 8 bits,
- parité paire,
- 1 bit START, 2 bits STOP,
- 9600 bps.

Question 0
On désire utiliser un câble avec 3 fils. Donner le câblage minimal de la jonction entre les 2 ordinateurs.

Question 1
Quel est le nombre de bits transférés pour un caractère codé sur 8 bits ?

Question 2
Quelle est la durée qui sépare l'émission de deux caractères ?

Question 3
Un module RS232 contient les primitives suivantes :

Action InitialiseRS232 ( Entrée Config : Octet
NuméroPort : Octet);
Cette action permet d'initialiser le port série NuméroPort (0,1,...) avec la configuration Config. Les bits de l'octet Config ont la signification suivante :

Bits Description Valeur
0..1 Nombre de bits de données 10 : 7 bits 11 : 8 bits
2 Nombre de bits STOP 0 : 1 bit 1 : 2 bits
3..4 Parité 00 : pas de parité 01 : impaire
10 : pas de parité 11 : paire
5..7 Vitesse 000 : 111 bps 001 : 150 bps
010 : 300 bps 011 : 600 bps
100 : 1200 bps 101 : 2400 bps
110 : 4800 bps 111 : 9600 bps

Action EmissionCaractère ( Entrée : Caract : Octet
NuméroPort : Octet);
Cette action envoie le caractère Caract sur le port série NuméroPort.

Action RéceptionCaractère ( Entrée : NuméroPort : Octet
Sortie : Caract : Octet);
Cette action permet de recevoir un caractère sur le port série Numéroport.

a) Action Emetteur
Ecrire une action Emetteur qui configure le port série 1 et qui envoie, sur ce même port, une suite de P caractères. (P constante prédéfinie)

b) Action Récepteur
Ecrire une action Récepteur qui configure le port série 1 et qui lit, sur ce même port, P caractères. Les caractères seront affichés sur l'écran, au fur et à mesure de leur arrivée.

Pour a et b, on effectue seulement la transmission de données, sans se préoccuper des phases d'ouverture et de fermeture.

Question 4
Donner une solution permettant le transfert d'un fichier. Quel est le temps minimal nécessaire pour le transfert d’un fichier de 120K ?

Question 5
Expliquez pourquoi les situations critiques suivantes peuvent avoir lieu lorsqu'on effectue un transfert en utilisant les actions Emetteur et Récepteur :
a) perte des caractères lors de la réception,
b) perte des caractères lors de l'émission.

Question 6
On se propose d'éviter les situations critiques de "type a" en utilisant une file circulaire de type FIFO (First In First Out) de la façon suivante :
sur le site récepteur, l'arrivée d'un caractère sur le port série va déclencher la routine d'interruption InterruptSérie qui déposera le caractère dans une file circulaire. On dispose alors d'un module RS232_Bufferisée avec les primitives suivantes :
Action InitialiseRS232 _Bufférisée ( Entrée Config : Octet
NuméroPort : Octet); idem à InitialiseRS232.

Action EmissionCaractère _Bufferisée ( Entrée : Caract : Octet
NuméroPort : Octet);
Idem à EmissionCaractère.

Fonction NombreCaractères ( NuméroPort : Octet) : entier;
Cette fonction retourne le nombre de caractères contenus dans la file circulaire associée au port NuméroPort.

Action RéceptionCaractère _Bufferisée ( Entrée : NuméroPort : Octet
Sortie : Caract : Octet);
Cette action fournit dans Caract le caractère en tête de la file circulaire associée au port Numéroport (et la file circulaire est mise à jour). A utiliser lorsque la file est non vide.

Donner les nouvelles versions des actions Emetteur et Récepteur.

On ne demande pas d'écrire :
- la routine InterruptSérie de traitement de l'interruption série,
- les primitives du module RS232_Bufferisée.

Question 7
Cette solution n'est pas suffisante pour éviter toutes les situations de "types a". Expliquez pourquoi ? Donner brièvement les idées d'une solution correcte.
Correction
Question 0




102 : terre de signalisation, établit un potentiel commun de référence.

Question 1
- données codées sur 8 bits,
- parité paire,
- 1 bit START, 2 bits STOP,
==> 8+1+1+2=12bits

Question 2
Quelconque ! parce que asynchrone…

Question 3
a) Action Emetteur(Entrée Ch:Chaine[P])
variables: Config:Octet
début
Config:=t // t = 11111111
InitialiseRS232 ( Config , 1 )
Pour i allant de 1 à P
faire EmissionCaractère (Ch[i],1)
fin
b) Action Récepteur
variables:
Config:Octet
C:Caractere
début
Config:=t
InitialiseRS232 ( Config , 1 )
Pour i allant de 1 à P
faire ReceptionCaractère (1,C)
Ecrire(C)
fin
Question 4
Au plus simple, on envoie la taille N du fichier, puis les N caractères. Ca marche si la ligne est fiable et si émetteur et récepteur vont à une cadence ‘compatible’...
Autre solution: voir Xmodem, Ymodem, Zmodem, Kermit, ... Plus difficile à mettre en oeuvre !
Temps minimal pour transférer un fichier de 120K :
1 carac = 8 bits ( 12 bits transmis
120K = 120 * 1024 octets = 120 * 1024 * 8 bits ( 120 * 1024 * 12 bits transmis
temps = 120 * 1024 * 12 / 9600 = 153,6 sec ( 2m30 !!

Question 5
a) perte des caractères lors de la réception,
Si le débit est élévé par rapport à la vitesse du Récepteur, on peut avoir un écrasement dans le registre de réception. (cf schéma)
b) perte des caractères lors de l'émission.
Si le débit est peu élévé par rapport à la ‘vitesse’ de l’Emetteur, on peut avoir un écrasement dans le registre d’émission. (cf schéma)

 SHAPE \* MERGEFORMAT 

Question 6
a) Action Emetteur
Pas de changement !
b) Action Récepteur
variables:
Config:Octet
C:Caractere
début
Config:=t
InitialiseRS232 _Bufférisée( Config , 1 )
Pour i allant de 1 à P
faire repeter jusqu’à NombreCaractères(1) 0
RéceptionCaractère _Bufferisée(1,C)
Ecrire(C)
fin

Question 7
Situations de "types a".
On ne fait que retarder le problème en passant d’une file de taille 1 à une file de taille N : si le récepteur ‘traîne par rapport à l’émetteur, la file de réception va se remplir et à ce moment là, tout caractère déposé sur la ligne sera perdu.
 SHAPE \* MERGEFORMAT 
Solution correcte.
Il faut mettre en oeuvre une gestion du contrôle de flux. (cf Livret I)
==>protocole Xon/Xoff
- full-duplex
- R envoie un caractère de commande dès que la mémoire tampon est « presque pleine » pour bloquer momentanément l’E (Xoff).
- Dès que la memoire tampon est « presque vide », R débloque E en envoyant un caractère de commande (Xon).
==> protocole DTR/DSR (ou RTS/CTS)
- marche aussi si half-duplex
- utilise directement les circuits de la jonction :
EMBED MSDraw \* MERGEFORMAT
désactivation de RTS ( suspend E
activation de RTS ( reprise de E







102

103

104

103

102

104

E

R


a) >> R

b) > R

R

E