Architecture - Langage C++ Transmission série 03/11/02
David Saint-Mellion
Programmation de l'interface série du PC
2 PC communiquent par les voies séries, reliés par un cable Null-Modem Vous disposez de 2 programmes de réception :
§ reception affiche le code des caractères reçus en hexadécimal.
§ reception_chaine affiche la chaîne de caractère reçue
Ces 2 programmes attendent le caractère ‘\n’ code - ASCII 0x0A pour mettre fin à la transmission.
Les caractéristiques de la transmission sont :
§ Débit : 2400 bauds
§ Format de la Trame : 1 stop bit, 8 bits de données, Pas de Parité Le composant 8250 est utilisé en scrutation
Principe de l’écriture dans le registre THR :
Le registre LSR est scruté. Lorsque le bit b5 est à 1, le registre est vide, un nouveau caractère peut être écrit dans le registre THR
Principe de la lecture du registre RBR :
Le registre LSR est scruté. Lorsque le bit b0 est à 1, le registre est plein, le caractère est prélevé dans le registre RBR
Le programme Transmission
Complétez l’amorce du programme :
1. La fonction initialisation() 2. La transmission des caractères 3. La transmission du caractère de fin
Le programme Reception
Réécrire le programme pour qu’il utilise les fonctions intilisation(), lire() et ecrire()
La Classe Comp_8250
Développez le corps de la méthode emissionVide()
Lit le registre LSR. - Bit b5=1 retour true - Bit b5=0 retour false, Complétez le programme transmission utilisant cette classe
La Classe Rs232
Développez le corps du constructeur et de la méthode lire() Complétez le programme transmission utilisant cette classe
Mettre en œuvre la classe, permettant l'échange de messages (ligne de texte).
Les messages seront saisis au clavier, transmis puis affichés par le récepteur.
Mise en place d’un protocole
Le système sera constitué d'un programme ÉMETTEUR (lit au clavier et envoie), et d'un programme RÉCEPTEUR (attend les messages et les affiche à l'écran). Chaque message est une chaîne de caractères qui sera transmise avec le protocole suivant :
• Chaque caractère reçu est acquitté par le récepteur. Il envoie en réponse le caractère ACK (code ASCII 0x 06);
• Le début de la transmission d'un message est annoncé par l'envoi du caractère STX (Start of Text, code ASCII 0x 02H) (lui aussi est acquitté).
La fin de la transmission est annoncée par l'envoi du caractère ETX (End of Text, code ASCII 0x03).
En mettant œuvre la classe RS232, écrire un programme de communication permettant l'échange de messages (ligne de texte). Les messages seront saisis au clavier, transmis puis affichés par le récepteur.