Communication série : Différence entre versions

De Wiki de Projets IMA
(Partie électronique)
(Bilan)
 
(14 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
== Evaluation informatique ==
 +
 +
=== Gestion de projet / rédaction Wiki ===
 +
 +
Bonne rédaction, document très complet (note 100%).
 +
 +
=== Test fonctionnels ===
 +
 +
* Sous-système : fonctionnel, interface propre (note 100%).
 +
* Système : non abordé (note 0%).
 +
 +
=== Qualité de la réalisation ===
 +
 +
* Procédure rédigée sur le Wiki :  correct cependant on n'y trouve pas la procedure pour créer le répertoire du démon série (/tmp/serie) et pour créer le fichier PID avec le bon propriétaire (note 75%).
 +
* Pages HTML et Javascript : propre mais aucun commentaire (note 90%).
 +
* Scripts PHP ou programmes C : très correct, de l'aide mais pour traduire ce qui avait déjà été écrit en C (note 75%).
 +
* Installation sur FoxBoard : le test a été mené sur la Fox donc parfait (note 100%).
 +
 +
=== Bilan ===
 +
 +
Tous les points ont un poids équivalent (sauf "système" qui est un bonus).
 +
 +
Note finale : 90%.
 +
 
== Présentation ==
 
== Présentation ==
  
Ligne 16 : Ligne 40 :
 
** Réalisation du circuit électronique sur altium  
 
** Réalisation du circuit électronique sur altium  
 
* Partie informatique :
 
* Partie informatique :
** L'interface web est terminée (l'envoie/réception de caractères sur la liaison série s’effectue correctement !)
+
** L'interface web est terminée (l'envoi/réception de caractères sur la liaison série s’effectue correctement)
  
 
'''Séance 3 (13/05/2011)'''
 
'''Séance 3 (13/05/2011)'''
 
* Partie électronique :  
 
* Partie électronique :  
** Tester le circuit électronique sur altium et sur la nanoboard
+
** Test du circuit électronique sur altium et sur la nanoboard
 
* Partie informatique :
 
* Partie informatique :
 
** L'interface web a été légèrement améliorée :  
 
** L'interface web a été légèrement améliorée :  
 
*** une scrutation du port série à désormais lieu toutes les secondes.
 
*** une scrutation du port série à désormais lieu toutes les secondes.
 
*** L'impression du caractère "\n" (aucune donnée transmise) ne se fait plus.
 
*** L'impression du caractère "\n" (aucune donnée transmise) ne se fait plus.
** L'interface web et le programme c qui gère le port série ont étés implantés sur la foxboard avec succès.
+
** L'interface web et le programme c qui gère le port série ont étés implantés sur la foxboard. (voir partie foxboard)
  
==La partie informatique :==
+
==Partie informatique :==
 
* Machine utilisée : TUTUR11
 
* Machine utilisée : TUTUR11
 
* /home/pifou/Ima3/CHEMIN ZHANG ZHANG
 
* /home/pifou/Ima3/CHEMIN ZHANG ZHANG
  
 
* Les commandes :
 
* Les commandes :
** ls -al        : liste les fichiers avec les droits
+
** ls -al        : liste les fichiers avec les différents droits d’accès
** chmod a+w    : donne les droits en écriture a tout le monde
+
** chmod a+w    : donne les droits en écriture à tout le monde
** su (+ glopglop) : super user !
+
** su : super user
 
** su www-data  : permet de prendre l’identité de www-data
 
** su www-data  : permet de prendre l’identité de www-data
 +
 +
 +
Pour envoyer et recevoir des données via le port série, nous utilisons 2 choses :
 +
* Un programme C (le démon série)
 +
* Un site internet (2.0) :
 +
** Le site se compose d'une page html (index.html), d'un script php (gestion_serie.php) et d'un javascript (prototype.js).
 +
** La page html comporte de deux zones de texte et un bouton d'envoi.
 +
*** une zone d'affichage, qui permet de visualiser les données reçues sur le port série.
 +
*** une zone de saisie, qui permet d'envoyer les données sur le port série.
 +
*** le bouton d'envoi permet d'envoyer les données saisies sur le port série.
 +
 +
*Fonctionnement :
 +
Lorsque qu'un texte est saisie dans la zone prévu à cet effet, chaque caractère est enregistré dans un fichier texte qui est ensuite placé dans le répertoire du démon série.
 +
Des signaux sont également envoyé au démon série pour le prévenir que des fichiers sont présents.
 +
Le démon série consomme ces fichiers texte pour les copier sur le port série.
 +
Le démon série lit ensuite les données présente sur le port série et les enregistres dans des fichiers textes.
 +
Ces fichiers textes sont lus, puis détruits par le script php et leurs contenu est enregistré dans l'autre zone de texte.
  
 
==La FoxBoard==
 
==La FoxBoard==
Ligne 62 : Ligne 103 :
 
La réception des données consiste à mettre en parallèle les donnée reçues en série. Pour cela on utilise un compteur, deux comparateurs et un registre Série/parallèle (SR16CEB).
 
La réception des données consiste à mettre en parallèle les donnée reçues en série. Pour cela on utilise un compteur, deux comparateurs et un registre Série/parallèle (SR16CEB).
 
Le premier comparateur permet de détecter le premier bit (bit de start).
 
Le premier comparateur permet de détecter le premier bit (bit de start).
Le compteur va ensuite contrôler le registre série/parallèle en activant la broche "Clock Enable" 10 fois a intervalle régulier.
+
Le compteur et le deuxième comparateur vont ensuite contrôler le registre série/parallèle en activant la broche "Clock Enable" 10 fois de suite à intervalle régulier.
 
Avec la fin de la trame de donnée (bit de stop) le compteur arrive à 10.
 
Avec la fin de la trame de donnée (bit de stop) le compteur arrive à 10.
 
La réception d'une trame est terminée : on réinitialise le compteur , la donnée se trouve sur les broches 01 à 08 du registre série/parallèle.
 
La réception d'une trame est terminée : on réinitialise le compteur , la donnée se trouve sur les broches 01 à 08 du registre série/parallèle.
Ligne 68 : Ligne 109 :
 
* La partie émission :
 
* La partie émission :
 
L'émission des données consiste à mettre en série les données reçues parallèles. Pour cela on utilise un compteur, un comparateur et un multiplexeur 10 voix (MUX).
 
L'émission des données consiste à mettre en série les données reçues parallèles. Pour cela on utilise un compteur, un comparateur et un multiplexeur 10 voix (MUX).
Les voix 1 et 10 sont reliées à une masse et une tension +Vcc.
+
Les voix 1 et 10 sont reliées à une masse et une tension +Vcc (équivalent à un bit de start et bit de stop).
 
Les voix 2 à 9 sont reliées avec un bus de 8 bits.
 
Les voix 2 à 9 sont reliées avec un bus de 8 bits.
 
La broche de sortie du multiplexeur est reliée avec RS_TX (broche de donnée d'un câble série).
 
La broche de sortie du multiplexeur est reliée avec RS_TX (broche de donnée d'un câble série).
Le compteur balaye ensuite les 10 voix d'entrée et les recopie sur la sortie.
+
Le compteur fait balayer le multiplexeur sur les 10 voix d'entrée et les recopie sur la sortie.
  
 
* Fréquences  
 
* Fréquences  
Notre montage utilise 2 fréquences différentes :
+
Notre montage utilise 2 horloges de fréquences différentes car l'intervalle de temps entre deux séries de données parallèles est 10 fois plus important qu'entre deux données séries. En effet une donnée parallèle comporte 10 données , il faut donc attendre la fin d'une trame de donnée série , soit 10 fois le temps entre deux données série.
L'intervalle de temps entre deux série de données parallèle est 10 fois plus important qu'entre deux donnée série. En effet une donnée parallèle comporte 10 données , il faut donc attendre la fin d'une trame de donnée série , soit 10 fois le temps entre deux données série.  
 
  
 
[[Fichier:shema.jpg]]
 
[[Fichier:shema.jpg]]

Version actuelle datée du 17 mai 2011 à 09:11

Evaluation informatique

Gestion de projet / rédaction Wiki

Bonne rédaction, document très complet (note 100%).

Test fonctionnels

  • Sous-système : fonctionnel, interface propre (note 100%).
  • Système : non abordé (note 0%).

Qualité de la réalisation

  • Procédure rédigée sur le Wiki : correct cependant on n'y trouve pas la procedure pour créer le répertoire du démon série (/tmp/serie) et pour créer le fichier PID avec le bon propriétaire (note 75%).
  • Pages HTML et Javascript : propre mais aucun commentaire (note 90%).
  • Scripts PHP ou programmes C : très correct, de l'aide mais pour traduire ce qui avait déjà été écrit en C (note 75%).
  • Installation sur FoxBoard : le test a été mené sur la Fox donc parfait (note 100%).

Bilan

Tous les points ont un poids équivalent (sauf "système" qui est un bonus).

Note finale : 90%.

Présentation

Le but du projet est de réaliser le circuit de gestion du port série sur la carte FGPA de la NanoBoard (dans les deux sens) et de réaliser une interface de gestion du port série sur la FoxBoard.

Avancement du projet

Séance 1 (06/05/2011)

  • Partie électronique :
    • Prise en main de la nanoboard (réalisation du tutoriel)
  • Partie informatique
    • Récupération et compilation du démon qui écrit sur le port série des fichiers textes
    • Etude de la réalisation du site utilisant html/php/javascript

Séance 2 (11/05/2011)

  • Partie électronique :
    • Réalisation du circuit électronique sur altium
  • Partie informatique :
    • L'interface web est terminée (l'envoi/réception de caractères sur la liaison série s’effectue correctement)

Séance 3 (13/05/2011)

  • Partie électronique :
    • Test du circuit électronique sur altium et sur la nanoboard
  • Partie informatique :
    • L'interface web a été légèrement améliorée :
      • une scrutation du port série à désormais lieu toutes les secondes.
      • L'impression du caractère "\n" (aucune donnée transmise) ne se fait plus.
    • L'interface web et le programme c qui gère le port série ont étés implantés sur la foxboard. (voir partie foxboard)

Partie informatique :

  • Machine utilisée : TUTUR11
  • /home/pifou/Ima3/CHEMIN ZHANG ZHANG
  • Les commandes :
    • ls -al  : liste les fichiers avec les différents droits d’accès
    • chmod a+w  : donne les droits en écriture à tout le monde
    • su : super user
    • su www-data  : permet de prendre l’identité de www-data


Pour envoyer et recevoir des données via le port série, nous utilisons 2 choses :

  • Un programme C (le démon série)
  • Un site internet (2.0) :
    • Le site se compose d'une page html (index.html), d'un script php (gestion_serie.php) et d'un javascript (prototype.js).
    • La page html comporte de deux zones de texte et un bouton d'envoi.
      • une zone d'affichage, qui permet de visualiser les données reçues sur le port série.
      • une zone de saisie, qui permet d'envoyer les données sur le port série.
      • le bouton d'envoi permet d'envoyer les données saisies sur le port série.
  • Fonctionnement :

Lorsque qu'un texte est saisie dans la zone prévu à cet effet, chaque caractère est enregistré dans un fichier texte qui est ensuite placé dans le répertoire du démon série. Des signaux sont également envoyé au démon série pour le prévenir que des fichiers sont présents. Le démon série consomme ces fichiers texte pour les copier sur le port série. Le démon série lit ensuite les données présente sur le port série et les enregistres dans des fichiers textes. Ces fichiers textes sont lus, puis détruits par le script php et leurs contenu est enregistré dans l'autre zone de texte.

La FoxBoard

  • Adresse ip : 172.26.79.102
  • Password : netusg20
  • Les fichiers implantés :
    • root/serie.c
    • root/serie
    • var/www/index.html
    • var/www/gestion_serie.php
    • var/www/prototype.js
  • Les commandes pour executer le démon sur la foxboard :
    • ssh -l root 172.26.79.102
    • netusg20
    • su www-data
    • ./serie /tmp/serie/
    • la page : http://172.26.79.102/ fonctionne désormais !

Partie électronique

  • Introduction :

Notre circuit comporte deux partie : une partie pour la réception des données et un autre partie pour l'émission des données reçues.

  • La partie réception :

La réception des données consiste à mettre en parallèle les donnée reçues en série. Pour cela on utilise un compteur, deux comparateurs et un registre Série/parallèle (SR16CEB). Le premier comparateur permet de détecter le premier bit (bit de start). Le compteur et le deuxième comparateur vont ensuite contrôler le registre série/parallèle en activant la broche "Clock Enable" 10 fois de suite à intervalle régulier. Avec la fin de la trame de donnée (bit de stop) le compteur arrive à 10. La réception d'une trame est terminée : on réinitialise le compteur , la donnée se trouve sur les broches 01 à 08 du registre série/parallèle.

  • La partie émission :

L'émission des données consiste à mettre en série les données reçues parallèles. Pour cela on utilise un compteur, un comparateur et un multiplexeur 10 voix (MUX). Les voix 1 et 10 sont reliées à une masse et une tension +Vcc (équivalent à un bit de start et bit de stop). Les voix 2 à 9 sont reliées avec un bus de 8 bits. La broche de sortie du multiplexeur est reliée avec RS_TX (broche de donnée d'un câble série). Le compteur fait balayer le multiplexeur sur les 10 voix d'entrée et les recopie sur la sortie.

  • Fréquences

Notre montage utilise 2 horloges de fréquences différentes car l'intervalle de temps entre deux séries de données parallèles est 10 fois plus important qu'entre deux données séries. En effet une donnée parallèle comporte 10 données , il faut donc attendre la fin d'une trame de donnée série , soit 10 fois le temps entre deux données série.

Shema.jpg