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

De Wiki d'activités IMA
(Materiel et outils)
Ligne 67 : Ligne 67 :
 
==== Materiel et outils ====
 
==== Materiel et outils ====
  
 +
Pour réaliser notre projet nous avons besoin de support physique afin de programmer mais aussi d'outils telle que des librairies et des compilateurs afin de pouvoir travailler. Voici une liste normalement exhaustive du matériel que nous avons utilisé lors des scéances:
 +
 +
''' Relatif à la partie électronique '''
 +
* Une carte nanoboard avec FPGA intégré
 +
* Le logiciel Altium designer pour programmer
 +
* La librairie Altium relative au FPGA programmer
 +
* Un ordinateur avec une liaison série et hyperterminal afin de tester notre carte
 +
 +
 +
''' Relatif à la partie informatique '''
 +
* Un ordinateur sous Debian
 +
* Un serveur local pour exécuter le PHP
 +
* Un navigateur web pour exécuter le javascript
 +
* La librairie Jquery permettant les requettes Ajax
 +
* Une carte Arduino pré-programmer pour tester notre programme
 +
 +
 +
''' Relatif au deux partie '''
 +
* Une Foxboard pour héberger l'interface et connecter la nanoboard afin de liée les deux parties
  
 
=== Groupe de Projet ===
 
=== Groupe de Projet ===

Version du 17 juin 2013 à 14:15

Evaluation informatique et électronique

Gestion de projet / rédaction Wiki

  • Informatique :
  • Electronique :

Note .

Test fonctionnels

  • Sous-système.
    • Sous-système informatique :
    • Sous-système électronique :

Qualité de la réalisation

  • Informatique : Note .
    • procédure de test :
    • pages HTML et Javascript :
    • scripts PHP ou programmes C :
    • installation sur FoxBoard :
  • Electronique : Note .
    • qualité de la réalisation :
    • tests autonomes :

Bilan

Note finale :

Rapports des élèves

Description du projet



Mise en situation

Photo d'une nanoboard contenant le FPGA

Dans le cadre de la fin d'année à Polytech' Lille il nous est demandé de mener un projet qui nous permet d'appliquer les connaissances aquisent tout au long de l'année et aussi de développer notre auto apprentissage pour apprendre manier des outils nouveaux. Au cours de ce projet nous devrons travailler en différent groupe, principalement une partie informatique et une partie électronique. Il faut pour cela diviser les tâches mais garder contact entre les différentes partie car le projet reste commun et le but final est de faire fonctionner les deux partie ensemble en autonomie sur une serveur basé sur la Foxboard.

Sujet

Le but du projet est de réaliser une communication série entre la carte FPGA d'une nanoboard et une interface Web 2.0 héberger sur la Foxboard. Le sujet est facilement différentiable en une partie électronique qui développera le système d'émission et de transmission qur la carte FPGA et la partie informatique qui fera de même sur l'interface Web:

  • La partie électronique programme la FPGA avec un logiciel de programmation graphique qui ne permet que la programmation de manière concurrente. Il leur faudra gérer l'envoie séquentielle des données sur la broche RS232 en transformant une donnée parallèle en donnée série selon le protocol suivant : 1 bit de start (niveau bas), 8 bits de données et un bit de stop (niveau haut) sans parité et sans contrôle de flux. Sans émission ni réception, les broche RX et TX sont au niveau haut.


Serial-trame.png


  • La partie informatique consiste à créer une interface Web afin de communiquer avec le port série. Pour cela il sera nécessaire d'utiliser du PHP et du javascript et donc pour les liées des requêtes Ajax. La partie PHP qui s’exécute du coté serveur permet d'interroger le port série branché sur la Foxboard et la partie javascript qui s’exécute coté client permet d'avoir une page dynamique qui se rafraichit automatiquement et qui appelle les requêtes Ajax. L'utilisateur aura accès à un champs ou il pourra écrire des données texte envoyées sur le port lors de l'appuie sur un bouton, et d'une zone de texte ou toutes les informations émise et reçu sur le port série serons affiché. La difficulté de cette partie sera de géré la scrutation du port qui se fait donc du coté serveur et qui bloque donc le chargement de la page coté client qui attend les données.


Materiel et outils

Pour réaliser notre projet nous avons besoin de support physique afin de programmer mais aussi d'outils telle que des librairies et des compilateurs afin de pouvoir travailler. Voici une liste normalement exhaustive du matériel que nous avons utilisé lors des scéances:

Relatif à la partie électronique

  • Une carte nanoboard avec FPGA intégré
  • Le logiciel Altium designer pour programmer
  • La librairie Altium relative au FPGA programmer
  • Un ordinateur avec une liaison série et hyperterminal afin de tester notre carte


Relatif à la partie informatique

  • Un ordinateur sous Debian
  • Un serveur local pour exécuter le PHP
  • Un navigateur web pour exécuter le javascript
  • La librairie Jquery permettant les requettes Ajax
  • Une carte Arduino pré-programmer pour tester notre programme


Relatif au deux partie

  • Une Foxboard pour héberger l'interface et connecter la nanoboard afin de liée les deux parties

Groupe de Projet

Division des tâches

Feuille de route

Séance 1 :

  • Prise en main du sujet.
  • Début de la réalisation de la transmission.


Séance 2 :

  • Programmation de la transmission.

Séance 3 :

  • Fin de la transmission.
  • Début et fin de la réception.
  • Tests de la transmission et de la réception.
  • Rapport.

Gantt (peut etre)

Partie électronique


Réalisation de la transmission

Description : La transmission s'effectue par l'envoi d'une donnée (le caractère à envoyer) de 8 bits entre 1 bits de start (à 0V) et 2 bits de stop (à 5V).

Afin de permettre l'envoi sur un fil, nous avons placé un multiplexeur qui prend en entrée la donnée,le start, le stop et une broche à 5V. Cette broche à 5V permet de garder un état haut sur le fils afin que le système de réception puisse détecter passage de 5V à 0 lors de l'arrivée du bit de start.Le multiplexeur est commandé par un compteur sur 4 broches pour pouvoir compter de 0 à 10 pour chaque entrées du multiplexeur.

Le compteur doit donc être commandé de façon à être remis à 0 lorsque l'on arrive à 10 et il ne doit pas recompter sous peine de renvoyer le caractère, pour cela nous avons réalisé un bloc de composant appelé bloc_CE.

Le Bloc_CE est donc une association de composant permettant la remise à zéro et l'arrêt dès que la sortie du compteur renvoie la valeur "1010" et que le bouton poussoir ne renvoi pas un front montant.

L'horloge est paramétrable, elle basée sur l'horloge de la NanoBoard à 50MHz, elle nous permet de fixer la vitesse de transmission à 9.6KHz (9600 bauds).

Pour tester la transmission nous avons visualisé l'horloge, la broche Tx ainsi que les valeurs des compteurs.

Fichier:Ecope 0.tif

On observe que le signal émis est synchronisé avec l'horloge et que le compteur compte jusqu'à la valeur désirée.


Réalisation de la réception

Description : La réception à la même composition que la transmission.

Pour pouvoir recevoir, nous devons détecter le front descendant du bit de start, pour cela nous avons réutiliser le Bloc_CE décrit plus haut. Celui-ci est toujours connecté à un compteur permettant donc de compter chaque bit reçue. La sortie de ce compteur est connectée à un autre bloc de composant que nous avons réalisé permettant de composant la réception et d'y retrouver les 8 bits de données.

Le bloc Reg_reception prend en entrée la broche Rx, le compteur

Le bloqueur/compteur

Le registre de mémorisation

Test de fonctionnement

Partie Informatique


Le principe Ajax

La transmission

La réception

Test de fonctionnement

Assemblage du pojet


Liaison des éléments

Test de fonctionnement