RETOUR A LA PAGE PRINCIPALE
PicoIP

PicoIP a été construit avec une carte réseau ISA de récupération et un PIC 16F877. Il permet en l'état actuel de répondre à un PING sur un réseau domestique et de transporter des trames UDP depuis un PC avec un logiciel écrit en DELPHI. PicoIP sait aussi gérer le protocole TCP et devenir un petit serveur web. Les applications sont nombreuses:

PicoIP est le travail de quelques passionnés, pour quelques euros et beaucoup de tenacité il permet aujourd'hui d'apprendre le fonctionnement des réseaux IP. Mon ambition est qu'il devienne l'égal de produits commerciaux à quelques dizaines voir quelques centaines d'euros.

LE MATERIEL

Pour construite PicoIP vous avez besoin d'une carte réseau ISA pour PC compatible NE2000 ( en général c'est écrit dessus ). Il vous faudra également un PIC 16F877 et un quartz 12 Mhz plus quelques composants 'fond de tiroir'. Il faut aussi un connecteur ISA pour la carte, celui que j'utilise provient d'un vieux PC et j'ai utilisé un décapeur thermique pour le dessouder, dessouder ce type de connecteur est presque impossible au fer à souder. Attention toutefois à ne pas trop chauffer le connecteur car le plastique fond assez rapidement. Enfin si vous voulez bricoler dans le programme, vous gagnerez du temps si vous êtes familier avec l'utilisation du bootloader décrit autre part dans ce site. Sachez enfin que le programme a été écrit en langage C avec CC5X et qu'il 'pése' 3 koctets, il vous faudra donc disposer de ce compilateur, Sauf pour certaines applications 'toutes faites' qui utilisent l'UART comme port de sortie.

LE CIRCUIT IMPRIME

Le dessin du circuit imprimé simple face est au format PdF. Veillez à faire un essai d'impression pour respecter le pas de 2,54 mm.

L'IMPLANTATION

COMMENT FONCTIONNE PicoIP

PicoIP est construit autour d'un PIC 16F877, il assure l'initialisation de la carte NE2000 et effectue ensuite un polling de la carte pour analyser les trames qui lui sont destinées. Les trames sont dépilées et extraites octet par octet pour determiner le protocole et construire la réponse si elle est nécéssaire. Actuellement PicoIP sait répondre à un PING sur le réseau, à une requête ARP de résolution d'adresse, à une requête en protocole UDP et sait également gérer une page web HTTP via TCP. Le code du programme écrit en C permet aujourd'hui sur un réseau local d'afficher un page web à l'aide d'un explorateur en tapant l'adresse IP de la carte PicoIP. C'est peu mais c'est déja beaucoup !! Bientot une interface quatre sorties relais permettra de commander des sorties relais via une page web, il s'agit de la première d'une longue série d'applications avec cette carte.

LA REALISATION DE PicoIP

LE CODE EN LANGAGE C DE PicoIP

Le code qui vous est fourni ici est celui de la version 1.0.2. La dernière adjonction est la gestion du langage TCP et de HTTP. Pour ces protocole, il est nécéssaire de charger une page en langage HTML dans le processeur, le fichier hex de ce code vous est fourni dans le zip sous le nom de codehtml.hex. Il peut être chargé directement dans le PIC à l'aide du bootloader et réside à l'adresse 0x1000. Ce code a été créé à partir du fichier HTML correspondant à l'aide d'un utilitaire écrit en delphi qui vous sera fourni sur cette page dés qu'il sera finalisé. Toutes les mises à jour du soft sont décrites dans le fichier PicoIP.C, prochainement ce code permettra la mise sur le web de PicoIP, il manque pour cela la gestion d'une passerelle et du masque de sous réseau que je suis en train d'écrire. Bientot PicoIP sera accessible depuis le monde entier !!

Le code en langage C de PicoIP: picoip.zip

La page HTML: codehtml.hex

OU EN EST PicoIP ?

Ca y est !! le projet PicoIP est en route avec la contribution de quelques passionnés. Les bases du projet sont jetées. Dans un premier temps un forum spécifique à ce projet va être créé accessibles aux seuls contributeurs (pour limiter le temps que chacun va y passer et éviter les hors sujet). L'organisation du projet est en train de se dessiner, les taches suivantes sont déja définies:

  1. Affiner la gestion du driver NE2000 notamment pour la gestion du buffer et la compatibilité entre les versions,
  2. Modifier la gestion de la couche IP pour permettre la gestion d'une passerelle et d'un masque de sous réseau,
  3. Reprendre les modules qui peuvent être écrits en assembleur pour gagner de la place et du temps,
  4. Normaliser la gestion des protocoles UDP et HTTP pour pouvoir rapidement gérer des périphériques (entrées/sorties, capteurs etc..),
  5. Etablir un schéma commun de câblage entre le 16F877 et la carte NE2000 pour que tout le monde utilise les mêmes entrées sorties,

Une page spécifique à PicoIP va être créée pour que chacun ait à sa disposition les outils communs de travail sur le projet à savoir:

Enfin, je vais mettre en route une carte PicoIP accessible 24H/24H sur mon réseau local qui transitera via le routeur en HTTP uniquement. Cette carte web sera accessible via une page de redirection sur FreePIC et une routine en JAVA qui assurera le lien vers mon adresse IP de manière transparente pour les utilisateurs ( je n'ai pas d'adresse IP fixe ). Cette carte sera toujours programmée avec la dernière version stable de PicoIP.

Voila pour l'instant, toutes les suggestions et contributions seront les bienvenues, la gestion d'un projet comme celui ci nécéssite toutes les compétences, aussi bien pour faire de la programmation ou de l'electronique que pour formaliser des pages webs ou gérer le forum.

Nous attendons vos propositions !!

Les membres du projet PicoIP