Communication série, 2011/2012, TD2 : Différence entre versions

De Wiki de Projets IMA
Ligne 103 : Ligne 103 :
  
 
'''>>>Regarder la vidéo de la démonstration:''' [http://www.youtube.com/watch?v=Hk3SSGpHKbM&feature=youtu.be]
 
'''>>>Regarder la vidéo de la démonstration:''' [http://www.youtube.com/watch?v=Hk3SSGpHKbM&feature=youtu.be]
 
+
[[Média:Exemple.ogg]]
  
 
----
 
----

Version du 16 juin 2012 à 21:20

Rapport de Projet

Objectifs:

Dans ce projet de système communicant nous intéressons à la communication à travers une liaison série à travers deux parties : La partie informatique pour le développement des interfaces permettant la communication entre deux foxboard en liaison série dans les deux sens La partie électronique permettant la conception de circuit de la gestion de liaison série sur la carte FGPA de la NanoBoard.


Partie Informatique : Foxboard 7 et 9

>>>1ère séance : 25/05/2012

Le but de la première séance est de réfléchir sur la solution à proposer pour permettre la communication via une liaison série en émission et en réception.

Pour mener à bien ce projet nous avons décidé d'établir une architecture de la solution web à proposer avec utilisation des langages html, java script , php ainsi que le démon de gestion de la liaison série écrit en langage C.

Durant cette première séance nous allons commencer à concevoir notre page principale en HTML avec l'intégration de Java script. Création d'interface d’envoi et de réception :

En HTML nous avons créé des champs afin de permettre à l'utilisateur d'entrer les données à envoyer et à recevoir les données dans l'autre sens :

Champ d’émission avec un id pour permettre l’identification ultérieure :

<TD>emission</TD> <TD> <INPUT type=text id="emission" > </TD>


Bouton d'envoi permettant à l'utilisateur de maîtriser la commande d'envoi à travers l'appel à une fonction Java script envoyer()

<INPUT type="submit" value="Envoyer" onclick="javascript:envoyer();">

Champ de réception un champ texte permettant d'afficher les informations reçus.

<TD>reception</TD> <TD> <TEXTAREA id="reception" COLS="40" ROWS="10"></TEXTAREA>

</TD>

Ensuite nous allons concevoir le programme Java script permettant l’exécution des programmes PHP de lecture et écriture sur la liaison série.

Les spécifications des fonctions:


Fonction envoyer():permet de récupérer l'id du champ envoie tapé par l'utilisateur grâce à la librairire prototype.jc et ensuite faire appel au fichier envoie.php en passant en paramètre la chaine à envoyé identifié par l'id.


Fonction lire():cette fonction permet d'appeler le fichier scrutation.php responsable de la lecture sur la liaison série, en effet, en cas de la réussite de lecture,les données seront affichées par appel de la fonction java script afficher(). L'exécution de cette fonction sera par scrutation à l'aide d'un Timer contenu dans la librairie prototype.js : setTimeout("javascript:lire();",1000);


Fonction afficher():Permet l'affichage des données reçues dans le champ réception identifié par l'id 'reception' par insertion afin de garder les informations ultérieures.


>>>2ème séance:01/06/2012

Dans la 2éme séance nous allons éditer les deux fichiers envoie.php et scrutation.php permettant à partir de demon.c d'envoyer et de recevoir des informations sur la liaison série.


Fichier envoie.php:

-Ouverture de la connexion en transmission avec fsockopen().

-Récupération de la chaine passée en parametre pendant l'appel à envoie.php.

-Écriture de la chaîne caractère par caractère dans la connexion avec fwrite().


Fichier scrutation.php:

-Ouverture de la connexion en réception avec fsockopen().

-Vérification de la présence des données avec stream_select().

-Dans le cas où stream_select renvoie 1,on lit l'un caractére avec fread() et on l'affiche avec echo().

On va ensuite tester le fonctionnement par le transfert des fichiers dans le dossier /var/www/ et tapant localhost dans le navigateur pour interroger le serveur local.


>>>3ème séance:08/06/2012


Dans cette séance, on va transférer les fichiers édités sur la foxboard pour qu'on puisse vérifier la communication entre deux postes (les foxboard 7 et 9).

Nous commençons par transférer les fichiers suivants avec scp sur /var/www/ de la foxboard:la page html,scrutation.php,envoie.php,prototype.js et demon.c

Ensuite nous compilons demon.c en demon.

Afin de pouvoir afficher directement la page html nous avons écrit un fichier index.php afin de ré-diriger la racine de la connexion vers notre page web html principale.

Pour débuter la communication:

-Connectez vous à partir de n'importe quel navigateur sur 172.26.79.7 et 172.26.79.9

-Connexion avec ssh sur les deux foxboard et exécution des 2 demon.c avec ./demon.


>>>Regarder la vidéo de la démonstration: [1] Média:Exemple.ogg


Partie électronique:

>>>1ère séance : 25/05/2012 : Consacrée à la découverte du logiciel Altium, réalisation du tutoriel pour se familiariser avec les fonctionnalités et l'analyse du sujet.


>>>2ème séance:01/06/2012 : A une fréquence de 9600 Hz, il faut réaliser un montage qui permet d'émettre 8 bits un par un, puis une autre partie du montage qui permettra de recevoir ces bits. Les bits en partie émission contiendront des bits start et stop ( pour marquer le début et la fin de l'information ), il faut donc penser à isoler ces bits.

Explications : On reçoit 8 bits à émettre, on ajoute les bits start et stop au début et à la fin ( 10 bits au total ), puis on utilise un registre parallèle-série qui permettra d'envoyer les les données bit par bit vers le port RS232. De l'autre coté, les données sont renvoyées via la broche RX vers un registre série-parallèle, oné limine les bits start et stop et on isole la donnée sur 8 bits.

Photo.png


>>>3ème séance : 08/06/2012 : Le schéma marchait correctement lors du premier test, mais après une modification ( ajout du bouton ) les résultats n'étaient pas concluants.



Conclusion:

A travers ce projet, nous avons réalisé un système permettant la communication en liaison série entre deux postes en émission et réception malgré quelques difficultés qui on apparait dans la partie électronique.