Vous êtes sur la page 1sur 11

Ministère de l’Enseignement Supérieur

Direction des ISET


ISET Nabeul

Fascicule TP de :

Systèmes de communication

Réalisé par :
JEBRI Elies

Niveau d’enseignement :
Informatique Quatrième Niveau

1999/2002
Matière : Sys Com
Professeur : Elies JEBRI Travaux pratiques Durée 3 h
Classe : II 4
Etablissement : ISET Nabeul
N° 1

Objectif Mettre en oeuvre un test de transmission sur un ETTD en rebouclage


local.

Mise en situation On dispose :

 d'un micro-ordinateur de type PC muni d'une liaison RS232C


disponible ;
 d'un programme de transmission sur liaison V24 (utilitaire du
commerce ou programme développé pour le TP3, voir chapitre
sur la transmission asynchrone) ;
 d'une jonction éclatée ou de connecteurs V24 ;
 d'un voltmètre.

Travail demandé 1. Réaliser un "bouchon" permettant de transférer sur le fil RD les


signaux émis sur le fil TD.

2. Mesurer les niveaux de tension des différents signaux sur le


connecteur après initialisation de la liaison par le programme.

3. Tester la transmission de caractères à l'aide du programme (affichage


sur l'écran des caractères tapés au clavier) dans les deux modes
d'exploitation (half duplex et full dupex).

Critères de réussite

 les valeurs de tension mesurées sont correctement interprétées.

 les caractères émis sont correctement reçus.

Elies JEBRI 1 Systèmes de communication


Matière : Sys Com
Professeur : Elies JEBRI Travaux pratiques Durée 6 h
Classe : II 4
Etablissement : ISET Nabeul
N° 2

Objectif :
Réaliser une application de manipulation du port série avec le langage Visual Basic.

Introduction :
Pour manipuler le port série sous Visual Basic on doit utiliser le contrôle
MSCOMM.VCX. Ce contrôle ne se trouve pas par défaut sur la barre d’outils standard de
VB, il faut donc l’ajouter. Procédez comme suit. Dans le menu Projet cliquer sur
Composants…, dans l’onglet Contrôles cherchez Microsoft Comm Control 6.0 puis cochez la
case correspondante et cliquez sur OK. Ce composant apparaît dans la barre de
composants, cliquez dessus et placez le sur la fiche de travail.
Le contrôle MSComm offre à votre application des fonctionnalités de communications série
en autorisant la transmission et la réception de données par l'intermédiaire d'un port série.

Description de MSComm
Chaque contrôle MSComm utilisé correspond à un port série spécifique. Si vous devez
accéder à plusieurs ports série dans votre application, vous devez utiliser plusieurs contrôles
MSComm. L'adresse du port et celle de l'interruption peuvent être modifiées à partir du
Panneau de configuration de Windows.

Le contrôle MSComm est doté de nombreuses propriétés importantes, dont voici les plus
importantes :

Propriétés Description

CommPort Définit et renvoie le numéro du port de communication.

Settings Définit et renvoie la vitesse de transmission en bauds, la parité,


les bits de données et les bits d'arrêt sous forme de chaîne de
caractères.

PortOpen Définit et renvoie l'état d'un port de communication. Permet


également d'ouvrir et de fermer un port.

Input Renvoie et supprime des caractères du tampon de réception.

Output Écrit une chaîne de caractères dans le tampon de transmission.

Elies JEBRI 2 Systèmes de communication


Établissement de la connexion série
La première étape lors de l'utilisation du contrôle Communications consiste à établir la
connexion au port série. Le tableau suivant présente la liste des propriétés utilisées à cette fin :

Ouverture du port série


Pour ouvrir un port série, utilisez les propriétés CommPort, PortOpen et Settings. Par
exemple :
' Ouvrir le port série
MSComm1.CommPort = 2
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
La propriété CommPort précise le port série à ouvrir. En partant du principe qu'un modem est
connecté à COM2, l'exemple suivant attribue la valeur 2 (COM2) et connecte le modem.
Vous pouvez affecter à la propriété CommPort n'importe quelle valeur comprise entre 1 et 16
(1 est pris par défaut). Cependant, si vous choisissez un port COM absent sur le système sur
lequel l'application est exécutée, une erreur est générée.
La propriété Settings permet de préciser le débit en bauds, la parité et le nombre de bits de
données et d'arrêt. Par défaut, le débit en bauds est fixé à 9 600. Le paramètre de parité
concerne la validation des données. Il n'est habituellement pas utilisé, et prend la valeur "N".
La valeur de bits de données précise le nombre de bits représentant un segment de données.
Le bit d'arrêt confirme la réception du segment.
Une fois que vous avez précisé le port à ouvrir et le mode de traitement de la communication,
vous utilisez la propriété PortOpen pour établir la connexion. Celle-ci correspond à une valeur
de type Boolean prenant la valeur True ou False. Cependant, si le port n'est pas opérationnel,
si la propriété CommPort n'est pas définie correctement ou si le périphérique ne gère pas les
paramètres spécifiés, une erreur sera générée ou le périphérique externe ne fonctionnera pas
correctement. L'affectation de la valeur False à la propriété PortOpen entraîne la fermeture du
port.

Définition des propriétés des tampons de réception et d'émission au


moment de la création
Lors de l'ouverture d'un port, des tampons de réception et d'émission sont créés. Pour gérer
ces tampons, le contrôle Communications offre un certain nombre de propriétés pouvant être
définies au moment de la création à l'aide des pages de propriétés du contrôle.

Elies JEBRI 3 Systèmes de communication


Définition des propriétés de tampon au moment de la création

Allocation de mémoire tampon


Les propriétés InBufferSize et OutBufferSize précisent la quantité de mémoire allouée aux
tampons de réception et d'émission. Par défaut, ces tampons prennent les valeurs indiquées ci-
dessus. Plus cette valeur est élevée, moins votre application dispose de mémoire. Cependant,
si votre tampon est trop petit, vous risquez de dépasser sa capacité si vous n'utilisez pas de
protocole de communication.
Note : En raison de la capacité de mémoire dont disposent aujourd'hui la plupart des
ordinateurs, l'allocation de mémoire tampon est moins cruciale parce que vous avez plus de
ressources disponibles. En d'autres mots, vous pouvez choisir des valeurs de mémoire tampon
plus élevées sans compromettre les performances de votre application.

Les propriétés RThreshold et SThreshold

Les propriétés RThreshold et SThreshold définissent ou renvoient le nombre de caractères


reçus dans les tampons de réception et d'émission avant le déclenchement de l'événement
OnComm. Cet événement permet de contrôler les modifications d'état de communication.
L'affectation de la valeur zéro (0) à chaque propriété interdit le déclenchement de l'événement
OnComm. L'affectation d'une valeur différente de 0 (1, par exemple) entraîne le
déclenchement de l'événement OnComm chaque fois qu'un caractère est reçu dans l'un des
tampons.

Les propriétés InputLen et EOFEnable


Si la valeur 0 est affectée à la propriété InputLen, le contrôle Communications lit la totalité du
contenu du tampon de réception lors de l'utilisation de la propriété Input. Lors de la lecture de
données sur une machine dont la sortie est mise en forme en blocs de données de longueur
fixe, la valeur de cette propriété peut être définie de façon appropriée.
La propriété EOFEnable est utilisée pour indiquer la présence d'un caractère de fin de fichier
(EOF) pendant une entrée de données. L'affectation de la valeur True à cette propriété
entraîne l'arrêt de l'entrée des données et le déclenchement de l'événement OnComm pour
signaler cette présence.

Elies JEBRI 4 Systèmes de communication


Gestion des tampons de réception et d'émission
Comme il a été indiqué plus haut, des tampons de réception et d'émission sont créés lors de
l'ouverture d'un port. Ces tampons servent à stocker les données entrantes et à émettre les
données sortantes. Le contrôle Communications permet de gérer ces tampons avec un certain
nombre de propriétés assurant le placement et la récupération de données, le renvoi de la taille
de chaque tampon et le traitement des données texte et binaires. La gestion de ces tampons
constitue l'un des aspects importants de l'utilisation du contrôle Communications.

Le tampon de réception
La propriété Input est utilisée pour stocker et récupérer des données dans le tampon de
réception. Par exemple, si vous souhaitez récupérer des données du tampon de réception et les
afficher dans une zone de texte, vous pouvez utiliser le code suivant :
TxtDisplay.Text = MSComm1.Input
Cependant, pour récupérer la totalité du tampon de réception, vous devez d'abord affecter la
valeur 0 à la propriété InputLen. Vous pouvez le faire au moment de la création ou de
l'exécution.
Il est également possible de recevoir les données entrantes sous forme de données texte ou
binaires en affectant à la propriété InputMode l'une des constantes Visual Basic suivantes :
comInputModeText ou comInputModeBinary. Les données seront récupérées sous forme de
chaîne ou de données binaires dans un tableau d'octets. Utilisez comInputModeText pour les
données utilisant le jeu de caractères ANSI et comInputModeBinary pour tous les autres types
de données, tels que les données comportant des caractères de contrôle, Null, etc.
À la réception de chaque octet de données, celui-ci est placé dans le tampon de réception et la
valeur de la propriété InBufferCount est incrémentée d'une unité. Cette propriété peut alors
être utilisée pour récupérer le nombre d'octets contenus dans le tampon de réception. Vous
pouvez également purger le tampon de réception en affectant à cette propriété la valeur 0.

Le tampon d'émission
La propriété Output est utilisée pour envoyer des commandes et des données au tampon
d'émission.
Comme la propriété Input, les données peuvent être envoyées sous forme de données texte ou
binaires. Cependant, la propriété Output doit envoyer des données texte ou binaires en
spécifiant une chaîne ou un Variant de type tableau d'octets.

Vous pouvez envoyer des commandes, des chaînes de texte ou des données d'un tableau
d'octets avec la propriété Output. Par exemple :
' Envoie une commande AT
MSComm1.Output = "ATDT 555-5555" & vbcr

' Envoie une chaîne texte


MsComm1.Output = "Chaîne de texte"

' Envoie des données d'un tableau d'octets


MSComm1.Output = Out
Dans le dernier exemple, Out est une variable définie sous forme de tableau d'octets : Dim
Out() As Byte. S'il s'agissait d'un Variant de type chaîne, sa définition aurait été : Dim
Out() As String. Vous pouvez contrôler le nombre d'octets contenus dans le tampon
d'émission à l'aide de la propriété OutBufferCount. Pour purger le tampon d'émission, affectez
la valeur 0 à cette propriété.

Elies JEBRI 5 Systèmes de communication


Gestion de la communication
Le contrôle MSComm permet de gérer les communications des deux manières suivantes :
 Les communications événementielles constituent une méthode extrêmement puissante
de gestion des interactions du port série. Dans de nombreux cas, il est utile d'être
averti du moment où se déroule un événement. Vous utilisez alors l'événement
OnComm du contrôle MSComm pour récupérer et gérer ces événements de
communication. En outre, l'événement OnComm détecte et gère les erreurs de
communication. Voir dans ce qui suit l’exemple des propriétés CommEvent.
 Vous pouvez également contrôler la présence d'événements et d'erreurs en vérifiant la
valeur de la propriété CommEvent après l'exécution de chacune des fonctions vitales
de votre programme. Cette solution est préférable dans le cas d'une application
autonome de taille réduite.

Exemple :
Private Sub MSComm_OnComm ()
Select Case MSComm1.CommEvent
' Traite chaque événement ou erreur en insérant du
' code sous chaque instruction Case

' Erreurs
Case comEventBreak ' Un signal d'arrêt a été reçu.
Case comEventCDTO ' Erreur de délai d'attente Détection de
porteuse.
Case comEventCTSTO ' Erreur de délai d'attente Prêt à
émettre.
Case comEventDSRTO ' Erreur de délai d'attente Modem prêt.
Case comEventFrame ' Erreur de trame
Case comEventOverrun ' Données perdues.
Case comEventRxOver ' Dépassement de la capacité du tampon de
réception
Case comEventRxParity ' Erreur de parité.
Case comEventTxFull ' Tampon de transmission plein.
Case comEventDCB ' Erreur inattendue lors de l'extraction du
bloc de
' contrôle de périphérique]

' Événements
Case comEvCD ' Modification dans la ligne Détection de
porteuse.
Case comEvCTS ' Modification dans la ligne Prêt à émettre.
Case comEvDSR ' Modification dans la ligne Modem prêt.
Case comEvRing ' Modification dans l'Indicateur d'appel.
Case comEvReceive ' Nombre de caractères indiqué
' par la propriété RThreshold reçus.
Case comEvSend ' Nombre de caractères indiqué
' par la propriété SThreshold
' dans le tampon de transmission.
Case comEvEof ' Caractère de fin de fichier
' trouvé dans le flux en entrée
End Select
End Sub

Elies JEBRI 6 Systèmes de communication


Manipulation 2 :

2 3

 On vous demande de concevoir cette interface.


 D’initialiser le port série au paramètres suivants 9600 bits/s, 8 bits de données, 1 bit de
stop et une parité paire.
 Les tampons d’émission et de réception auront une taille de 1 caractère.
 Transmettre sur le port série disponible la chaîne de caractères présente dans la
première zone de texte.
 La deuxième zone de texte servira à recevoir les caractères émis par l’autre machine
au bout du câble croisé.

Elies JEBRI 7 Systèmes de communication


Matière : Sys Com
Professeur : Elies JEBRI Travaux pratiques Durée 9 h
Classe : II 4
Etablissement : ISET Nabeul
N° 3

Objectif Réaliser et tester un programme de transfert de fichiers entre


deux ETTD.

Mise en situation On dispose :


 de deux micro-ordinateurs de type PC munis chacun d'une
liaison RS232C disponible;
 d'un environnement de développement en langage VB sur
PC;
 d'un câble pour liaison V24.

Travail demandé Réaliser et tester un programme permettant le transfert de


fichiers en full duplex entre les deux ETTD suivant le protocole
Xmodem (dans un premier temps, un programme de transfert
sans protocole de niveau fichier pourra être crée).
Le programme devra comporter les fonctions suivantes
(certaines peuvent être fournies, la bibliothèque de fonctions
crées pour le TP précèdent pourra être réutilisée)
 lecture d'un fichier;
 émission par blocs du fichier ;
 ouverture d'un fichier ;
 réception par blocs du fichier.

Critère de réussite Le transfert d'un fichier d'une taille minimum de 64 Ko est


réalisé.

Elies JEBRI 8 Systèmes de communication


Matière : Sys Com
Professeur : Elies JEBRI Travaux pratiques Durée 9 h
Classe : II 4
Etablissement : ISET Nabeul
N° 4

Objectif Assurer l'émission et la réception de trames entre deux ordinateurs


en mode asynchrone (niveau 1 du modèle OSI).

Mise en situation On dispose :


- de 2 ordinateurs équipés chacun de 2 ports série RS232C ;
- de 2 câbles permettant de raccorder le port 1 d'un ordinateur au
port 2 de l'autre ;

COM 1 COM 2
Station 1 Station 2
COM 2 COM 1

Travail demandé 1. Ecrire un programme permettant l'émission d'une trame vide au


format ci-dessous sur le port 1.
Les adresses destination et source sont égales et fixées arbitrairement.
Ce programme devra calculer le FCS. Celui-ci sera égal au nombre,
modulo 28, de bits a 1 des octets situés entre lui et le jeton.
2. Ecrire un programme permettant la réception d'une trame sur le
port 2 et sa mise en mémoire dans un tampon.
3. Ecrire un programme permettant l'émission sur le port 1 de la
trame reçue (et mémorisée) sur le port 2. Le programme devra tester
l'état du jeton et le mémoriser.
4. Ecrire un programme permettant d'émettre une trame de données
située dans un tampon. La trame ne pourra être émise que si le jeton
reçu est vide.
Critères de réussite
 La trame vide émise sur le port 1 est bien conforme aux
spécifications.
 La trame vide reçue sur le port 2 est bien retransmise sur le port
1.
 Les trames de données sont transmises au moment voulu et sont
conformes au format spécifié.
Format de la trame
Délimiteur Contrôle @destination @ source Longueur Données FCS Délimiteur
SOH=$01 000J0000 1 octet 1 octet 1 octet <=255octets 1 octet ETB=$17

Trame vide : J=0 et longueur = 0


Trame pleine : J=1 et longueur = nombre d’octets de données

Elies JEBRI 9 Systèmes de communication


Matière : Sys Com
Professeur : Elies JEBRI Travaux pratiques Durée 15 h
Classe : II 4
Etablissement : ISET Nabeul
N° 5

Objectif Mettre en oeuvre les logiciels de niveau 1 et 2 du modèle OSI pour


permettre la circulation des trames sur un réseau d'ordinateurs
connectés en anneau.

Mise en situation On dispose :


 de trois ou quatre ordinateurs équipés chacun de deux ports
série RS232C ;
 des câbles permettant le raccordement deux à deux des
ordinateurs ;
 du programme VB6 ;
 des programmes du TP précédent.

Travail demandé 1. Ecrire un programme permettant de construire une trame au


format décrit dans le TP précédent à partir du fichier des données
à transmettre et de la placer dans le tampon d'émission (voir
TP4). Les adresses des stations seront respectivement 1, 2 et 3.
2. Ecrire un programme d'analyse des trames reçues sur le port 2
et mises en mémoire dans le tampon de réception. Ce programme
devra détecter si la station est destinatrice de la trame ou
émettrice. Il devra, suivant le résultat de cette analyse, mémoriser
les données dans un tampon ou éliminer les données et libérer le
jeton.
3. Tester ces programmes sur une station équipée d'un câble de
rebouclage du port 2 sur le port 1.
4. Valider ces programmes sur un anneau comportant 3 stations.

Critères de réussite Les trames émises sont conformes au format.


 La station reconnaît les trames qui lui sont destinées et les
mémorise.
 La station élimine les trames pleines qu'elle a émises et libère
le jeton.

Elies JEBRI 10 Systèmes de communication