TCP/IP avec un PIC
____________________________________________________________________________________

La mode étant aux systèmes embarqués TCPIP, J'ai décidé de me mettre moi aussi au gout du jour. Malheureusement de prix des modules sur le marché m'a dissuadé rapidement, alors pourquoi pas utiliser ce qui ne coute (presque) rien, une carte réseau de PC ? J'ai rapidement abandonné les cartes PCI trop difficiles à gérer pour moi pour me rabattre sur les cartes ISA NE2000 que l'on trouve neuve pour 15€ et d'occase pour rien.

Pour réaliser ce montage je me suis inspiré d'un montage réalisé par David Witt qui a écrit un programme avec CCS pour piloter une carte réseau NE2000. Je ne suis pas arrivé à faire marcher son programme mais celui que je vous fourni ici a donné satisfaction. Il a été écrit avec CC5X version 3.1G et est appelé à évoluer trés prochainement. Je souhaite rapidement gérer le protocole UDP pour faire de petit systèmes de pilotage sur réseau IP et le protocole TCP pour embarquer un serveur Web dans le PIC !!

La version actuelle de mon travail est trés 'prototype', pour preuve les photos, j'invite ceux qui sont intéréssés par ce projet et veulent faire évoluer ce système à me contacter pour monter un groupe de travail.

LES OUTILS

Avant de commencer à bricoler dans les réseaux, il faut s'équiper de tous les outils qui vont vous servir à déboger vos applications. Pour ma part, j'utilise:

LE PROGRAMME

Le programme a été écrit avec CC5X. Il comporte une partie définition qui énumére tous les registres d'un chip NE2000. La partie initialisation de la carte a été écrite en suivant les instructions de la documentation de NATIONAL SEMICONDUCTEURS. La routine principale du progamme est la routine POLL_NIC, elle teste les pointeurs d'écriture et de lecture de la carte pour savoir si une trame est présente. Si une trame est présente elle dépile le FIFO de la carte octet par octet et analyse la trame pour determiner le protocole et préparer la réponse. A ce stade du programme, seul les protocoles ARP et ICMP ( demande d'echo ) sont gérés. C'est suffisant pour placer la carte sur un réseau et faire un PING dessus avec un PC. On notera que l'adresse IP de la carte est en 'dur' en début du MAIN. La prochaine évolution du programme est de pouvoir à l'aide d'hyper terminal par exemple changer l'adresse de la carte par via l'UART du PIC.

Les fichiers du programme: NE2000.ZIP

 

UN PEU DE THEORIE

Je vous proposerai bientot ici une description des trames et la façon de les traiter dans un système à PIC.

LE CABLAGE

Assez de baratin, maintenant il va quand même falloir sortir le fer à souder. Vous trouverez ci-dessous le schéma de raccordement du PIC à la carte réseau. J'ai utilisé un connecteur femelle ISA récupéré sur une carte mère sacrifiée ( c'était un 486 !! ).

La broche IOCHK est la première broche située sur la carte réseau coté composants et du coté du connecteur RJ45. La broche GND1 est la première située coté soudures et coté cuivre de la carte réseau.

L'ensemble a été raccordé en 'fil volant' sur la platine de test 877 décrite sur ce site.

RETOUR A LA PAGE PRINCIPALE