Système embarqué TCP/IP : Différence entre versions
De Wiki d'activités IMA
(→Objectifs suggérés pas les élèves (les encadrants y ont droit de modification)) |
|||
Ligne 33 : | Ligne 33 : | ||
=== Objectifs suggérés pas les élèves (les encadrants y ont droit de modification) === | === Objectifs suggérés pas les élèves (les encadrants y ont droit de modification) === | ||
− | *Partie Informatique | + | *'''Partie Informatique''' |
**Faire du profiling d'utilisation d'espace mémoire afin de voir de quelle taille il faudrait réduire le programme pour qu'il soit portable sur un arduino '''FAIT''' | **Faire du profiling d'utilisation d'espace mémoire afin de voir de quelle taille il faudrait réduire le programme pour qu'il soit portable sur un arduino '''FAIT''' | ||
**Tester une ou deux fonctions sur l'arduino pour savoir qu'est-ce-qu'il faut changer dans le code '''FAIT''' | **Tester une ou deux fonctions sur l'arduino pour savoir qu'est-ce-qu'il faut changer dans le code '''FAIT''' | ||
Ligne 40 : | Ligne 40 : | ||
**Créer une fonction de renvoi des paquets Ethernet reçus qui contiendra une variable Packet dans laquelle seront stockés les en-têtes dudit paquet pour l'optimisation d'espace mémoire sur à l’exécution du programme sur l'arduino | **Créer une fonction de renvoi des paquets Ethernet reçus qui contiendra une variable Packet dans laquelle seront stockés les en-têtes dudit paquet pour l'optimisation d'espace mémoire sur à l’exécution du programme sur l'arduino | ||
**Vérifier et tester le renvoi correct du/des paquet(s) reçu(s) | **Vérifier et tester le renvoi correct du/des paquet(s) reçu(s) | ||
− | *Partie Électronique | + | *'''Partie Électronique''' |
**Concevoir le module d'émission/réception de la plate-forme altium vers l'arduino des trames Ethernet. | **Concevoir le module d'émission/réception de la plate-forme altium vers l'arduino des trames Ethernet. | ||
** => Émission seule '''FAIT''' | ** => Émission seule '''FAIT''' |
Version du 6 avril 2011 à 11:20
Sommaire
Présentation
Le but de ce projet est principalement de réaliser un système embarqué TCP/IP, qui pourrait représenter grâce aux LEDs ou à des moulins à vent la charge sur les différents commutateurs de l'école, décrivant ainsi l'activité de ces derniers.
Préparation du projet
Matériel requis
- microcontroleur [Arduino Duemilanove] (disponible) ;
- LEDs multicolores (disponibles) ;
- moulins à vent avec moteur à courant continu : nous augmenterons la tension d'alimentation des moteurs proportionnellement à l'occupation des switch ;
- câbles ;
- plateforme Altium ;
- un module ELZ50 [1] (commande en cours).
Commentaires des encadrants sur le matériel
Préciser le dispositif "moulin à vent". En particulier, ils doivent être motorisés (comment ?). Vous devez aussi vous préoccuper de la commande des moteurs, ce qui impactera l'architecture à implémenter sous Altium.
Avancement du projet
Objectifs suggérés par les encadrants
- Ecrire un programme avec les fichiers fournis permettant dans un premier temps de créer une machine virtuelle répondant à la commande ping :
- nettoyer les fichiers fournis pour enlever toute référence aux sockets Unix ou Internet ; FAIT
- réaliser des fonctions de lecture et d'écriture pour une interface TAP ; FAIT
- écrire une procedure main réalisant les actions suivantes :
- initialisation d'une variables de pile TCP/IP (type netstack) ; FAIT
- création d'une interface de type TAP avec les fichiers libtap.c et libtab.h fournis ; FAIT
- écriture d'un "pilote" pour cette interface (c'est à dire remplissage d'une structure avec le descripteur lié à l'interface et les fonctions de lecture et d'écriture sur l'interface TAP) ;
- ajout d'une interface réseau et d'une adresse IP à cette pile (par exemple 192.168.0.100/24) ; FAIT
- démarrage de la fonction de gestion de la pile (stackOn). FAIT
- Test de votre programme; lancement du programme, ajout d'une adresse IP (par exemple 192.168.0.200/24) sur l'interface tap0 créée par le programme, test de réponse de la pile par la commande ping (par exemple sur l'adresse 192.168.0.100). FAIT
Objectifs suggérés pas les élèves (les encadrants y ont droit de modification)
- Partie Informatique
- Faire du profiling d'utilisation d'espace mémoire afin de voir de quelle taille il faudrait réduire le programme pour qu'il soit portable sur un arduino FAIT
- Tester une ou deux fonctions sur l'arduino pour savoir qu'est-ce-qu'il faut changer dans le code FAIT
- Inclure les fichiers en-tête ainsi que le Makefile arduino et vérifier qu'on peut bien créer une machine virtuelle sur l'arduino FAIT
- Vérifier qu'avec la machine virtuelle créée sur l'arduino on peut bien envoyer et recevoir des paquets Ethernet
- Créer une fonction de renvoi des paquets Ethernet reçus qui contiendra une variable Packet dans laquelle seront stockés les en-têtes dudit paquet pour l'optimisation d'espace mémoire sur à l’exécution du programme sur l'arduino
- Vérifier et tester le renvoi correct du/des paquet(s) reçu(s)
- Partie Électronique
- Concevoir le module d'émission/réception de la plate-forme altium vers l'arduino des trames Ethernet.
- => Émission seule FAIT
- => Réception seule
- => E/R simultanés (processus multithreadé)
- => Réception sur l'Arduino
- Concevoir le module de réception des commandes actionneur de l'arduino
Difficultes rencontrees
- Comprendre le code fourni et savoir se servir des fonctions
- Comprendre la syntaxe d'un makefile et maîtriser la compilation modulaire sur l'arduino