Communication série, 2013/2014, TD1 : Différence entre versions
(→Partie Informatique) |
(→Partie Informatique) |
||
Ligne 20 : | Ligne 20 : | ||
''' Séance 2 (14/05/2014) ''' | ''' Séance 2 (14/05/2014) ''' | ||
+ | |||
Pendant cette séance nous avons réalisé les deux fichiers PHP d'émission et de réception. Par contre, en testant en utilisant l'Arduino, on recevait bien des informations mais l'émission des données ne fonctionnait pas. | Pendant cette séance nous avons réalisé les deux fichiers PHP d'émission et de réception. Par contre, en testant en utilisant l'Arduino, on recevait bien des informations mais l'émission des données ne fonctionnait pas. | ||
''' Séance 3 (21/05/2014) ''' | ''' Séance 3 (21/05/2014) ''' | ||
+ | |||
Nous avons corrigé nos erreurs qui se trouvaient dans notre code. Et nous avons configuré notre Foxboard avec le réseau polytech. | Nous avons corrigé nos erreurs qui se trouvaient dans notre code. Et nous avons configuré notre Foxboard avec le réseau polytech. | ||
''' Séances supplémentaires ''' | ''' Séances supplémentaires ''' | ||
+ | |||
Nous avons copié nos fichiers sur la Foxboard. | Nous avons copié nos fichiers sur la Foxboard. | ||
Version du 10 juin 2014 à 10:07
Sommaire
Introduction
Ce projet a été réalisé par Ghada Elbez, Sandra Hage, Louis Chauchard et Romain Imbert.
La partie informatique a été réalisée par Ghada et Sandra et la partie électronique par Louis et Romain.
L'objectif principal était de réaliser un circuit électronique qui avait pour mission de gérer le port série présent sur la carte FPGA de la NanoBoard (dans les deux sens c'est à dire émission et réception) ainsi que de réaliser une interface de gestion du port série présent sur la Foxboard.
Partie Informatique
La partie informatique consiste à réaliser une interface Web qui permet de communiquer avec le port série du serveur. Notre site est composé d'une seule page HTML qui contient deux zones de textes, une pour l'émission, l'autre pour la réception. Les langages utilisés pour notre interface sont : HTML, JavaScript, PHP. Nous avons aussi utiliser des requêtes Ajax pour combiner tous ces langages. Pour cela, nous avons installé la librairie jQuery. Nous avons réalisé d'abord nos test en utilisant un serveur local. Nous avons ensuite copier nos fichiers sur la Foxboard, afin de rendre celle-ci comme un serveur.
Séance 1 (07/05/2014)
Cette séance était consacrée à la compréhension du sujet et à la découverte des différents langages qu'on allait utiliser. Nous avons aussi commencé à faire la page HTML ainsi que quelques fonctions en javascript.
Séance 2 (14/05/2014)
Pendant cette séance nous avons réalisé les deux fichiers PHP d'émission et de réception. Par contre, en testant en utilisant l'Arduino, on recevait bien des informations mais l'émission des données ne fonctionnait pas.
Séance 3 (21/05/2014)
Nous avons corrigé nos erreurs qui se trouvaient dans notre code. Et nous avons configuré notre Foxboard avec le réseau polytech.
Séances supplémentaires
Nous avons copié nos fichiers sur la Foxboard.
Partie Electronique
Explication du sujet
(IMAGE TRAME RS232)
La valeur par défaut est à l'état haut. L'envoi du bit de start est représenté par le passage de l'état haut à l'état bas. Ensuite les 8 bits de données sont envoyés à chaque front d'horloge et le dernier (10ème bit) correspond au bit de stop qui permet la remise à la valeur par défaut.
Séance 1 (07/05/2014)
Pour la toute première séance, suite au choix définitif du sujet et de sa compréhension, nous avons effectué plusieurs recherches sur le fonctionnement de la liaison série.
Avant de commencer directement sur le projet, nous avons réalisé le tutoriel d'Altium Designer proposé. Ce qui nous a permis de nous familiariser avec l'utilisation de ce logiciel. En effet, cela nous a permis de comprendre le fonctionnement de la Nanoboard avec les composants des différentes librairies "FPGA".
Ensuite, nous avons commencé réellement le projet, en nous intéressant dans un premier temps à la partie émission, qui nous semblait plus facile. Nous avons rapidement choisi d'utiliser un registre à décalage étant donné que l'on avait eu, au premier semestre, un TP de logique qui permettait de charger des données en parallèles et qui les transmettait ensuite en série.
Nous avons donc débuter avec un montage simple qui comporte les éléments suivants:
Un registre à décalage SR16CLES pour convertir Parallèle/Série
Un Configurable Digital IO qui permet de générer les 8 bits de données, reliés au niveau des 8 premières broches du registre à décalage. Les autres sont reliées au VCC.Seul la broche D? est reliée au GND (masse) pour représenter le bit de start qui est un passage de 1 à 0.
Des lEDs pour visualiser la bonne conversion parallèle/série
Suite à ce test, on a pu constaté que le registre à décalage fonctionne.
Séance 2 (14/05/2014)
Pour cette seconde séance, nous avions prévu de continuer et de terminer la partie émission et si possible de commencer la partie réception.
Nous avons gardé le schéma de la première séance, mais nous avons ajouté en plus la possibilité de sélectionner parmi deux vitesses différentes d'émission (sous conseil de nos professeurs). L'utilisation d'un multiplexeur nous a permis de faire cette sélection.
Il suffit de relier deux générateur de fréquence sur les deux entrées du multiplexeur. L'appui sur un bouton de type switch, qui doit être complémenté, sélectionne l'une des deux entrées à générer.
On utilise un bascule D afin de mémoriser le premier appui puis lors du deuxième appui, la valeur mémorisée est complémentée. Ce qui permet d'alterner entre les deux vitesses de transmission possibles, à chaque appui du bouton.
De plus,un second bouton switch est utilisé pour le chargement des données parallèles.
(IMAGE SCHEMA)
(IMAGE DIO + CLKGEN)
(IMAGE ANALYSEUR LOGIQUE bits stop et start, 10101010)
(IMAGE ANALYSEUR LOGIQUE vitesse 9600 bauds)
(IMAGE ANALYSEUR LOGIQUE vitesse 4800 bauds)
Séance 3 (21/05/2014)
La partie émission fonctionnant, nous nous sommes penchés sur la partie Réception du système qui est apparue bien plus complexe.
Suite à l'explication de Monsieur Boé, nous avons compris que pour cette partie, il était nécessaire d'utiliser deux générateur d'horloge de fréquence différente. En effet, si l'on souhaite détecter correctement un bit, il faut se positionner en plein milieu du bit et non pas au niveau d'un front (montant ou descendant) afin d'être sur de détecter un bit et non une perturbation quelconque.
Pour se faire, il faut utiliser une deuxième horloge de fréquence deux fois plus rapide pour pouvoir être au milieu du bit.
Conclusion
En conclusion, la partie informatique fonctionne et la partie électronique seule la partie émission fonctionne convenablement, la partie réception ne donne pas de résultats concluants. Ce qui malheureusement, bloque la possibilité de relier les deux parties du projet...