RS232
But : Calculer la latence d'une communication RS232 entre 2 machines.
Prérequis :
- 2 machines connectées par un cable NULL-Modem (sur la RS232C).
L'enseignant vous fournit les cables.
- Les deux machines doivent être sous RTAI.
- L'une est 'cliente' et l'autre 'serveuse'
- La 'cliente' doit pouvoir faire un ssh
sur la 'serveuse' sans donner de mot de passe.
Pour cela il faut générer une paire de clefs avec
la commande ssh-keygen sur la machine cliente.
Puis ajoutez la clef publique contenue dans .ssh/id_rsa.pub
à la fin du fichier .ssh/authorized_keys sur
la machine serveuse.
La cliente va envoyer des caractères via la RS232
à la serveuse et mesurer très exactement le temps
pris pour faire l'aller-retour (c'est le module rs232_time.c
qui fait les mesures).
C'est ce temps qui nous intéresse et que nous voulons mesurer.
La serveuse, lorsqu'elle reçoit un caractère
le retourne directement à la cliente.
Ceci de différentes manières :
- la RS232 est configurée en mode echo
par le système : stty echo
- un processus utilisateur fait l'écho :
dd </dev/ttyS0 >/dev/ttyS0
- un processus RTAI fait l'écho (c'est le module
rs232_echo.c) en utilisant les interruptions matérielles.
Votre travail
- Récupérez l'archive :
http://perso.univ-lyon1.fr/thierry.excoffier/COURS/COURS/TEMPS_REEL/RTAI/rs.tgz
- Lire les sources et essayez de les comprendre.
- Configurez les variables dans le Makefile.
- Tapez make pour lancer la saisie des statistiques
avec le programme echo_speed.c qui se charge
d'initialiser les applications locales et distantes.
- Analysez les résultats contenus dans xxx.stats.
- Recommencez en changeant des paramètres :
- des charges différentes pour la machine serveuse.
- des vitesses de liaison série différentes (9600, 19200, 57600, 115200)
- en faisant tourner le TP du piano sur la serveuse
en même temps que l'écho.
Exposez vos conclusions à la fin du TP à l'enseignant.
Thierry EXCOFFIER
Last modified: Mon Apr 5 21:36:39 CEST 2010