View
1
Download
0
Category
Preview:
Citation preview
MODULE DES SCIENCES APPLIQUÉES
INTERFACE ENTRE UN SYSTÈME DE RADIO-IDENTIFICATION ET UN RÉSEAU LAN EXISTANT
PROJET D’ÉTUDES EN INGÉNIERIE DANS LE CADRE DU PROG RAMME DE BACCALAURÉAT EN GÉNIE ÉLECTROMÉCANIQUE
Présenté par : Dave Pigeon Superviseur : Nahi Kandil Représentants industriels : Mohamed Aïlas Éric Trudel
24 AVRIL 2009
PEI
Dave Pigeon Hiver 2009 ii
REMERCIEMENTS
Premièrement, je tiens à remercier Monsieur Mohamed Aïlas, représentant industriel du
laboratoire de recherche Télébec en communications souterraines de l’université du Québec en
Abitibi-Témiscamingue, de m’avoir fait bénéficier d’un projet très intéressant. De plus je tiens
à souligner mon appréciation face à son apport important et sa disponibilité tout au long de
cette session.
J’aimerais également remercier Monsieur Éric Trudel, représentant industriel de chez
Télébec, pour sa collaboration envers ce projet.
De plus, j’aimerais remercier mon professeur responsable Nahi Kandil pour le support,
les commentaires et les suggestions qu’il m’a apporté tout au long de ce projet.
Un grand merci également à tous ceux qui de près ou de loin, m’ont apporté un support
quelconque durant l’achèvement de ce projet.
PEI
Dave Pigeon Hiver 2009 iii
RÉSUMÉ
Tout d’abord ce projet a été effectué avec la collaboration du département de
l’ingénierie de chez Télébec en partenariat avec le laboratoire de recherche Télébec en
communications souterraines de l’Université du Québec en Abitibi-Témiscamingue. Le but de
celui-ci est de développer une interface entre un système de localisation et un réseau LAN
existant afin que tous les utilisateurs puissent repérer un employé ou une machine dans un
milieu confiné. Pour ce faire, la partie 1 de ce projet consiste à rechercher et se procurer un
système de radio-identification selon les besoins et restrictions précises tel que le type de milieu
par exemple. La partie 2 consiste à créer une interface de communication entre le système
choisi et un réseau LAN existant. En raison de l’ampleur de ce projet, ce rapport est axé sur la
partie 2. Celle-ci est effectuée grâce à un microcontrôleur collectant les données du système de
radio-identification pour ensuite les acheminer à un serveur. Le microcontrôleur et le serveur
sont branchés indépendamment à un réseau existant.
Donc, les objectifs de ce projet sont de se procurer et programmer un système embarqué
pour envoyer des données à un serveur par les protocoles TCP/IP et HTTP. Par la suite, le
serveur doit être en mesure de stocker l’information acquise du microcontrôleur dans une base
de données MySQL et pouvoir les présenter à un utilisateur lorsque ce dernier le demande.
Ainsi, une page web dynamique est nécessaire.
Puisque la partie 1 n’est pas incluse dans ce rapport, une simulation des résultats a été
effectuée afin de s’assurer de la validité du fonctionnement de la solution. Pour évaluer celle-ci,
le microcontrôleur, le serveur et un ordinateur de bureau, agissant comme utilisateur, ont été
branchés à une passerelle. En appuyant sur un bouton du microcontrôleur, des données tel que
le nom d’un identifiant et le temps sont immédiatement acheminées au serveur. Par la suite, il a
été possible d’aller observer celles-ci avec l’ordinateur de bureau. Donc, la solution présenté
dans ce rapport est réelle, exploitable et ce, à faible coût.
PEI
Dave Pigeon Hiver 2009 iv
ABSTRACT
First, the project was achieved in collaboration with the department of engineering at
Télébec in partnership with the research laboratory Télébec in underground communications of
Quebec University in Abitibi-Temiscamingue. The goal of this one is to develop an interface
between a radio frequency identification system and an existing LAN network. So the users can
identified an employee or a machine in confined surroundings. To do this, the part 1 of this
project is to find a system of radio frequency identification considering the specific restrictions
such as the type of environment. The part 2 is to create a communication interface between the
system chosen and an existing network. Because of the width of this project, this report is
focuses on part 2. This one is build with a microcontroller. It collect data from radio frequency
identification systems and then forward to a server. The microcontroller and the server are
independently connected to an existing LAN network.
Therefore, the mandate of this project is to obtain and set an embedded system to send
data to a server by TCP/IP and HTTP protocols. Thereafter, the server must be able to store the
acquired information from the microcontroller in MySQL database and to be able to present
them to a user when he requests it.
Because the part 1 is not included in this report, a simulation of the results was carried
out to make sure the solution work. To evaluate this one, the microcontroller, the server and a
desktop machine, acting like user, were connected with a router. While pressing on a button of
the microcontroller, data such as the name of an identifier and time are immediately sent to the
server. Thereafter, it was possible to observe them with the desktop computer. So, the solution
presented in this report seems real, workable and at low cost.
PEI
Dave Pigeon Hiver 2009 v
TABLE DES MATIÈRES
INTRODUCTION .........................................................................................................................1 CHAPITRE 1 : Étude des besoins et mandat ................................................................................3
1.1 Présentation de l’entreprise .............................................................................................3
1.2 Description et caractéristiques du procédé......................................................................4
1.2.1 Ensemble de radio-identification .............................................................................5
1.2.2 Interface de communication ....................................................................................5
1.2.2.1 La couche physique ..........................................................................................6
1.2.2.2 La couche liaison ..............................................................................................6
1.2.2.3 La couche réseau ..............................................................................................7
1.2.2.4 La couche transport ..........................................................................................7
1.2.2.5 La couche session .............................................................................................7
1.2.2.6 La couche présentation .....................................................................................8
1.2.2.7 La couche application .......................................................................................8
1.2.3 Les protocoles ..........................................................................................................8
1.3 Formulation du mandat ...................................................................................................9
1.4 Objectifs, contraintes et restrictions ..............................................................................10
1.5 Normes applicables .......................................................................................................11
CHAPITRE 2 : Cadre théorique ..................................................................................................12 2.1 Couche OSI appliquée au projet ...................................................................................12
2.1.1 Matériels physiques ...............................................................................................13
2.1.2 Protocole Ethernet .................................................................................................13
2.1.2.1 Constitution d’un paquet Ethernet ..................................................................14
2.1.3 Protocole IP ...........................................................................................................14
2.1.3.1 Constitution d’un paquet IP ............................................................................15
2.1.4 Protocole TCP ........................................................................................................17
2.1.4.1 Constitution d’un paquet TCP ........................................................................18
2.1.5 Protocole HTTP .....................................................................................................19
CHAPITRE 3 : Les systèmes embarqués ....................................................................................21 3.1 Les systèmes embarqués ...............................................................................................21
3.2 Les microcontrôleurs de Microchip ..............................................................................22
3.3 La carte de développement PICDem.net 2 ....................................................................23
CHAPITRE 4 : Programmation de la carte PICDem.net 2 .........................................................24 4.1 Présentation de la carte PICDem.net 2..........................................................................24
PEI
Dave Pigeon Hiver 2009 vi
4.2 Configuration de la connexion réseau de la carte PICDem.net 2 .................................25
4.3 Environnement MPLAB IDE........................................................................................26
4.3.1 Configuration de la pile TCP/IP à l’aide du fichier TCPIPConfig.h .....................27
4.3.2 Programmation du fichier GenericTCPClient.C ....................................................28
4.3.2.1 Définition du numéro d’un identifiant ............................................................30
4.3.2.2 Programmation pour simuler une horloge à temps réelle ...............................30
4.3.2.3 Définition de l’adresse du serveur, du port à ouvrir et d’un lien URL ...........32
4.3.2.4 Insérer les variables dans le lien URL ............................................................33
4.3.2.5 Créer la requête GET ......................................................................................33
CHAPITRE 5 : Le serveur ...........................................................................................................34 5.1 Logiciel XAMPP...........................................................................................................34
5.2 Programmation du serveur ............................................................................................35
5.2.1 Création de la base de données MySQL ................................................................36
5.2.2 Programmation PHP pour écrire dans MySQL .....................................................36
5.2.3 Programmation PHP pour lire dans MySQL .........................................................38
CHAPITRE 6 : Évaluation de la solution, évaluation des coûts et aspect : santé et sécurité ......40 6.1 Évaluation de la solution ...............................................................................................40
6.2 Étude des coûts..............................................................................................................44
6.3 Santé et sécurité ............................................................................................................44
CONCLUSION............................................................................................................................45 BIBLIOGRAPHIE .......................................................................................................................47 ANNEXE A: Programmation du fichier GenericTCPClient.c ....................................................48 ANNEXE B: Fonctions de la pile TCP/IP fourni par Microchip ................................................56
PEI
Dave Pigeon Hiver 2009 vii
LISTE DES FIGURES
Figure 1.1: Schéma préliminaire du mandat ..................................................................................4 Figure 1.2: Étiquette RFID ............................................................................................................5 Figure 1.3: Schéma du mandat ....................................................................................................10 Figure 3.1: Marché des microcontrôleurs 8 bits ..........................................................................21 Figure 3.2: Gammes de microcontrôleurs offerts par Microchip ................................................22 Figure 4.1: Carte PICDem.net 2 de Microchip ............................................................................24 Figure 4.2: Configuration réseau de la carte PICDem.net 2 ........................................................25 Figure 4.3: Environnement MPLAB IDE ....................................................................................26 Figure 4.4: Configuration de la pile TCP/IP ................................................................................27 Figure 4.5: Algorithme du fichier GenericTCPClient.c ..............................................................29 Figure 5.1: Application XAMPP .................................................................................................34 Figure 5.2: Fonctionnement de la base de données MySQL lors d'une communication entre un client et un serveur .......................................................................................................................35 Figure 5.3: Création de la base de données MySQL ...................................................................36 Figure 6.1: Création du réseau .....................................................................................................40 Figure 6.2: Configuration réseau du serveur ...............................................................................41 Figure 6.3: Requête PING via le protocole ICMP .......................................................................41 Figure 6.4: Affichage des paquets lors de la communication entre le microcontrôleur et le serveur ..........................................................................................................................................42 Figure 6.5: Résultat obtenu ou page web générée .......................................................................42 Figure 6.6: Affichage des paquets lors de la communication entre l'utilisateur et le serveur .....43
LISTE DES TABLEAUX
Tableau 1.1: Modèle OSI ...............................................................................................................6 Tableau 1.2: Exemples de protocoles appliqués au modèle OSI ...................................................9 Tableau 2.1: Protocoles appliqués au modèle OSI ......................................................................12 Tableau 2.2: Encapsulation des données .....................................................................................12 Tableau 2.3: Constitution d'un paquet Ethernet ...........................................................................14 Tableau 2.4: Adresse IP de classe A,B et C ................................................................................15 Tableau 2.5: Plage d’adresse IP réservées aux réseaux locaux ...................................................15 Tableau 2.6: Constitution d'un paquet IP .....................................................................................15 Tableau 2.7: Constitution d’un paquet TCP ................................................................................18 Tableau 3.1: Microcontrôleurs de la série PIC18 de Microchip ..................................................23 Tableau 6.1: Table des coûts .......................................................................................................44
PEI
Dave Pigeon Hiver 2009 viii
LÉGENDE DES ACRONYMES
ACK : Acknowledgement ARP : Address Resolution Protocol CSMA/CD : Carrier Sense Multiple Access /Collision Detection FDDI : Fiber Distributed Data Interface FIN : Finish FTP : File Transfer Protocol HTML : Hypertext Markup Language HTTP : Hypertext Transfer Protocol ICMP : Internet Control Message Protocol IHL: Internet Header Length IP : Internet Protocol IPX: Internet Datagram Protocol LAN : Local Area Network LLC : Logical Link Control MAC : Media Access Control Address NetBEUI : NetBIOS Extended User Interface OSI : Open System Interconnection PHP : Hypertext Pre-processor PSH: Push RFID : Radio Frequency Identification ROM : Read Only Memory RST : Reset SMTP : Simple Mail Transfer Protocol SNMP : Simple Network Management Protocol SPX : Sequenced Packet exchange SQL : Structured Query Language SYN : Synthesis TCP : Transmission Control Protocol TTL: Time To Live UDP : User Datagram Protocol URG : Urgent Pointer URL : Uniform Ressource Locator
PEI
Dave Pigeon Hiver 2009 1
INTRODUCTION
En 1792, l’ingénieur français Claude Chappe réalisa le premier système de télégraphie.
Un système à aiguilles permettait de coder et de recevoir les messages sous formes de signaux
inspirés du code visuel de Chappe. Le téléphone classique fut inventé par Alexander Bell en
1876. Son fonctionnement consistait en une membrane qui vibrait au son de la voix. Le rôle de
celle-ci était de faire coulisser une bobine le long d’un aimant afin de produire un courant
électrique auquel il était acheminé à un haut parleur. La première communication par radio a été
démontrée en 1893 par Nikola Tesla. En effet, il apprit que par le phénomène de résonance
entre la fréquence des ondes électromagnétiques et celle d’un circuit électrique, il pouvait
capter des signaux radio. Il nota également que le tube à vide permettait de détecter des ondes
radio. En 1966, Larry Roberts concevait l'arpanet. Arpanet est le premier réseau à transfert de
données par paquets. De là est né le concept d'internet. Le premier lancement commercial de
télécommunications cellulaires a été réalisé au japon en 1979 utilisant une technologie
analogique dite de première génération. Dans les années 1990, la deuxième génération de
téléphonie mobile faisait son apparition. Celle-ci avait comme particularité de transmettre des
données en mode numérique.
Bref, ce petit historique de la télécom démontre à quel point ce domaine est vaste et en
constante évolution. En effet, le mot télécommunication signifie toute transmission, émission et
réception à distance, de signes, de signaux, d’écrits, d’images, de sons ou de renseignements de
toutes natures, par fil électrique, radioélectricité, liaison optique, ou autres systèmes
électromagnétiques.
Dans le cadre de ce projet, on désire développer une interface entre un système de
localisation et un réseau LAN existant afin de communiquer ou transmettre des données à partir
d’un point A, tel un milieu confiné, vers un point B. Cette idée a pour finalité de localiser un
employé ou de la machinerie dans un endroit restreint afin d’assurer la sécurité de celui-ci et ce,
dans un temps rapide. Due à l’ampleur de ce projet, il a été décidé de scinder celui-ci en deux
volets. Le premier est de rechercher et évaluer des éléments de bases de système de localisation,
PEI
Dave Pigeon Hiver 2009 2
principalement des ensembles de radio-identification comprenant une radio-étiquette passive
idéale pour le type de milieu en question. Le deuxième est de concevoir et programmer une
interface entre le système radio-identification et un réseau LAN existant.
Ainsi, ce document est axé sur la conception et la programmation d’une interface
permettant d’établir une communication entre un système RFID et un réseau existant. Il
comporte une étude du mandat, la théorie en ce qui attrait un échange de données entre deux
ordinateurs. Ensuite, les chapitres suivants présentent le développement et l’évaluation de
l’interface de communication. Avant de terminer, une estimation des coûts d’investissements et
l’aspect santé et sécurité sont présentés.
PEI
Dave Pigeon Hiver 2009 3
CHAPITRE 1 : Étude des besoins et mandat
1.1 Présentation de l’entreprise
Télébec fut fondé en 1965 par un groupe de gens d’affaires dans la ville de
Bécancour. Cette entreprise téléphonique tire son nom de « Téléphone Bécancour ». Elle offre
aux consommateurs des services en matière d’informations et de communications, y compris la
téléphonie, le service sans fils, le service Internet, la transmission de données, les services de
vidéo et de solutions d’affaires. Télébec gère le plus grand territoire desservi par une entreprise
de télécommunications au Québec. En d’autres mots, cela représente 750 000 km2 comptant
300 municipalités. Ainsi, Télébec offre des services de télécommunications à plus de 180 000
clients résidentiels et d'affaires.
Le projet surnommé « Interface entre un système de radio-identification et un réseau
LAN existant » est effectué avec la collaboration du département de l’ingénierie de chez
Télébec en partenariat avec le laboratoire de recherche Télébec en communications souterraines
de l’Université du Québec en Abitibi-Témiscamingue. Ce laboratoire, situé à Val d’Or, est
ouvert aux collaborations nationales et internationales, notamment par l’accueil et la formation
de stagiaires ainsi que d’étudiants à la maîtrise et au doctorat dans le domaine de la télécom. Il a
pour objectif de développer des programmes de recherche liés aux télécommunications sans fils
dans les mines souterraines. Afin d’expérimenter leur études, le personnel de recherche et les
étudiants utilisent les installations de la mine-laboratoire de l’entreprise CANMET à Val-d’Or.
Ainsi, le laboratoire a pour mission de proposer des solutions innovatrices aux industriels
miniers.
PEI
Dave Pigeon Hiver 2009 4
1.2 Description et caractéristiques du procédé
Avant de débuter la mise en œuvre du mandat, il est important de bien définir ce que
l’on veut à partir de la problématique du projet. Ainsi, le but premier est de développer une
interface entre un système de radio-identification et un réseau LAN existant afin de
communiquer ou transmettre des données. Pour ce faire, le schéma de la figure 1.1 explique
bien les étapes du procédé permettant d’acheminer des données à partir d’une étiquette RFID
passive à travers un réseau LAN.
Étiquette RFID
Lecteur RFID
Interface de communication
Client
Client
Client
Réseau LANPasserelle
Client
Client
Figure 1.1: Schéma préliminaire du mandat
PEI
Dave Pigeon Hiver 2009 5
1.2.1 Ensemble de radio-identification
La radio-identification ou le terme RFID est constitué de deux principales composantes.
La première est la radio-étiquette aussi connu sous le nom de tag. Ce dernier peut être passif
c’est-à-dire qu’il n’a pas besoin d’une alimentation, par exemple une pile, pour fonctionner. Le
tag passif, représenté à la figure 1.2, se compose d’une antenne et d’une puce de silicium. La
deuxième composante d’un ensemble RFID est le lecteur. Celui-ci est un émetteur
radiofréquence. Il permet d’activer la radio-étiquette située dans son champ d’action en
émettant l’énergie nécessaire à faible distance, soit entre 3 et 10 mètres, dont il a besoin pour
fonctionner. Son but est de faire parvenir à l’étiquette un signal d’interrogation particulier afin
que celle-ci puisse répondre. Si le lecteur émet une fréquence élevé, cela permet un échange
d’information à des débits plus importants qu’en basse fréquence. Les débits importants
permettent l’implémentation de nouvelles fonctionnalités au sein des tags, par exemple, la
cryptographie. Par contre, une fréquence plus basse a pour avantage d’avoir une meilleure
pénétration de la matière.
Figure 1.2: Étiquette RFID
1.2.2 Interface de communication
Aujourd’hui, il existe plusieurs protocoles permettant d’avoir de multiples façons
d’acheminer des données sur un réseau informatique. Ainsi, toute personne dont les activités
ont un lien avec les réseaux doit connaître le modèle OSI qui englobent les principes de base de
la communication entre ordinateur. Cette structure fut établie en 1984 en tant que standard
reconnu au niveau international pour l’échange de données puisqu’elle intègre la totalité des
PEI
Dave Pigeon Hiver 2009 6
cartes réseau et des protocoles. Comme l’indique le tableau 1.1, elle est subdivisée en sept
couches où chacune d’entre elles traite une tâche, un protocole ou un composant matériel afin
de communiquer avec l’une des deux couches adjacentes.
Tableau 1.1: Modèle OSI
7 Couche application
6 Couche présentation
5 Couche session
4 Couche transport
3 Couche réseau
2 Couche liaison
1 Couche physique
1.2.2.1 La couche physique
La couche physique assure le transport des données soit par la transmission de signaux
électriques, optiques ou de radiofréquence. Ainsi, pour qu’un utilisateur puisse envoyer des
données à un autre utilisateur, le codage numérique de celles-ci doit spécifier la représentation
des bits par des tensions ou des flux optiques. De plus, le codage doit établir la coordination de
la suite des signaux et la synchronisation des systèmes émetteurs et récepteurs.
1.2.2.2 La couche liaison
Cette couche transforme les signaux numériques en signaux électriques. Elle assure la
fiabilité de la transmission en structurant les données en trames que la couche physique se
charge de transmettre. Un en-tête est créé dans lequel on identifie l’expéditeur et le destinataire
par une adresse physique. En fait, la couche liaison gère la communication entre deux
utilisateurs. Pour ce faire, elle doit recevoir un accusé de réception1 des données expédiées
1Avis informant l'expéditeur que les données sont arrivées au destinataire.
PEI
Dave Pigeon Hiver 2009 7
sinon elle doit renouveler la transmission. Un code de redondance d’information ou checksum
permet de détecter les erreurs de transmission. Ce code est en général une somme calculée à
partir d’un polynôme de degré élevé. Ainsi, le destinataire d’une trame recalcule cette somme et
la compare avec celle qui a été transmise. Dans le cas d’une différence, la trame est rejetée.
1.2.2.3 La couche réseau
C’est au niveau de cette couche qu’est géré le choix du meilleur chemin pour atteindre
le destinataire. En d’autres mots, cette couche traite les problèmes d’acheminement tels que
l’indisponibilité d’un segment du réseau. Alors que l’adresse physique sert à identifier un
périphérique local, une adresse logique permet de référencer un composant de manière globale.
Le protocole bien connu sous le nom d’IP fait parti de cette couche.
1.2.2.4 La couche transport
La couche transport assure le transfert sans erreur des paquets. Elle subdivise en petits
blocs les messages longs. Les paquets trop petits sont assemblés en grands paquets. Les paquets
générés sont numérotés et transmis à la couche 3. Pour ce faire, un premier niveau de connexion
consiste à envoyer un accusé de réception systématiquement de tous les paquets reçus, et cela
dans un délai suffisant. Si le délai est trop long, le paquet est retransmis car il a été considéré
comme égaré. Alors que la couche réseau choisit un meilleur chemin avec une vision globale de
l’inter-réseau, la couche transport ajoute un mécanisme de contrôle concernant la fiabilité des
données reçues.
1.2.2.5 La couche session
Cette couche gère la connexion à une ressource partagée sur un réseau en prenant en
compte l’aspect sécurité de l’application. Dès qu’une application tente de communiquer avec
une application d’un autre ordinateur, la couche session se procure l’adresse de l’ordinateur
cible et demande à la couche transport d’établir une liaison. C’est au niveau de cette couche que
PEI
Dave Pigeon Hiver 2009 8
sont gérés les points de synchronisation permettant, par une sauvegarde de contextes et de sous-
contextes, une reprise en cas d’incident.
1.2.2.6 La couche présentation
La couche présentation définit un format des données par lequel les informations
circuleront dans le réseau. Les données sont adaptées à un format uniforme pour que tous les
ordinateurs puissent les traiter. À titre d’exemple, PC et Macintosh représentent les données de
manière différente. Pour cette raison, il convient donc d’adopter une représentation unique pour
que les différentes plates-formes puissent communiquer entre elles. En fait, le langage HTML,
tel qu’on le connaît, est son rôle.
1.2.2.7 La couche application
Il s’agit de la couche supérieure du modèle OSI. En fait, c’est l’interface de
communication avec l’utilisateur. Elle comprend des programmes tels que le navigateur qui
permet de lire les pages web, le client FTP pour les téléchargements de fichiers et les
programmes de messageries.
1.2.3 Les protocoles
Pour qu’un échange de données de manière structuré au sein d’un réseau soit possible,
on doit avoir des règles qui commandent le déroulement de la communication. Voilà la raison
pour laquelle les protocoles existent. Le modèle en couche OSI est un cadre compatible avec les
protocoles et les types de réseaux les plus courant tels que Ethernet, Token Ring et FDDI.
Toutefois, à cause de la conversion des codages ou des compressions de données internes, il
arrive que certains protocoles ne se limitent pas à une seule couche. Le tableau 1.2 démontre
quelques protocoles appliqués à la couche OSI. En bref, le choix d’un protocole pour un réseau
est basé sur l’environnement. Afin de prendre une décision judicieuse, on doit évaluer la taille
du réseau, définir les ordinateurs qui vont l’utiliser et cerner le but de la mise en réseau. À titre
PEI
Dave Pigeon Hiver 2009 9
d’exemple, les protocoles IP et IPX sont des protocoles routables2 et ils sont couramment
utilisés. Inversement, NetBEUI est un protocole non routable.
Tableau 1.2: Exemples de protocoles appliqués au modèle OSI
7 Applications
FT
P
HT
TP
SM
TP
SN
MP
etc.
Ser
vice
s
Nov
ell
Net
war
e
6
Inte
rfa
ces
Net
BIO
S e
t
Net
BE
UI 5
4 TCP/UDP SPX
3 IP IPX
2 LLC LLC
Pilotes de cartes MAC MAC
1 Matériel réseau
1.3 Formulation du mandat
Le but du projet est de développer une interface entre un système de radio-identification
et un réseau LAN existant afin que les utilisateurs puissent localiser des employés ou de la
machinerie en milieu confiné. L’interface sera créée grâce à un microcontrôleur et un serveur.
Le but du microcontrôleur sera de collecter les données à partir du système RFID. Par la suite,
il soumettra celles-ci à un serveur. De cette façon, en branchant le serveur sur un réseau
TCP/IP, les utilisateurs de celui-ci pourront voir l’information. La figure 1.3 de la page suivante
explique bien, de façon visuelle, le mandat de ce projet.
2 Protocole auquel il est possible de transmettre des paquets à un routeur.
PEI
Dave Pigeon Hiver 2009 10
Figure 1.3: Schéma du mandat
1.4 Objectifs, contraintes et restrictions
Afin de clarifier et détailler la formulation du mandat, il a été possible de définir trois
grandes étapes à franchir pour l’accomplissement de ce dernier. En fait, chacune d’entres elles
représentent un objectif lié à une contrainte particulière. Donc, les points majeurs pour mettre
en œuvre ce projet sont :
• Rechercher des systèmes embarqués dédiés à la communication sur le LAN.
• Acheter le système embarqué choisi. Programmer le microcontrôleur en langage C et en
langage assembleur pour simuler un envoi de données du système de radio-identification
et les acheminer au serveur distant à l’aide du protocole TCP/IP et HTTP. La simulation
PEI
Dave Pigeon Hiver 2009 11
doit envoyer un numéro d’identifiant du tag et du lecteur ainsi que l’instant de
l’événement.
• Monter le serveur web dynamique et la base de données MySQL pour stocker
l’information acquise du microcontrôleur, et permettre aux clients web l’accès à distance
aux données. Les utilisateurs du réseau accèdent à l’information avec un navigateur web
tel qu’Internet Explorer, FireFox, Safari, etc.
1.5 Normes applicables
Dans le domaine des télécommunications, il y a beaucoup de normes à respecter. En
fait, les couches du modèle OSI et les différents protocoles élaborés à la section précédente sont
des normes. L’existence des protocoles est primordiale pour qu’un ordinateur puisse
communiquer avec un autre. Sinon, il serait impossible de synchroniser et acheminer des
paquets de données. De plus, pour que tous programmes ou tous périphériques fonctionnent
adéquatement, chacun d’entres eux doivent être programmés dans un langage quelconque. Par
exemple, le microcontrôleur doit être programmé en langage assembleur. Toutefois, des
compilateurs permettent au programmeur d’utiliser le langage C. Pour faire un site web, le
langage HTML est la référence. Pour rendre une page dynamique, le PHP et le SQL sont requis.
Que ce soit pour les protocoles ou les langages informatiques, ils existent plusieurs
organismes de normalisation dans le domaine de la télécom responsable au développement de
ceux-ci. Par exemple, ANSI (American National Standards Institue) travaille à normaliser les
codes, les alphabets, les modèles de signalisation et les langages de programmation. Il a
normalisé le langage C et SQL. ISO (International Standards Organization) définit des normes
internationales pour tous les environnements réseaux ouverts. Cet organisme mis sur pied le
modèle OSI. IEEE (Institute of Electrical and Electronics Engineers, Inc) publie des normes sur
les communications de données. Cette institution a développé la norme 802.3 ou la méthode
CSMA/CD. Enfin, SAG (SQL Access Group) a pour objectif de promouvoir une
interopérabilité parmi les standards SQL des bases de données relationnelles et des outils
reposant sur SQL.
PEI
Dave Pigeon Hiver 2009 12
CHAPITRE 2 : Cadre théorique 2.1 Couche OSI appliquée au projet
En guise de rappel, le réseau local est de type Ethernet, l’échange des données du
microcontrôleur au serveur se fait par protocole TCP/IP et le serveur utilise le protocole HTTP
pour les échanges de données. Le tableau 2.1 indique les différentes couches OSI appliquées
aux protocoles utilisées pour l’échange d’information dans le cadre de ce projet.
Tableau 2.1: Protocoles appliqués au modèle OSI
7
HTTP 6
5
4 TCP
3 IP
2 Ethernet
1 Matériels physiques
Chaque protocole comporte un en-tête avec des renseignements importants pour
l’acheminement de données. Ainsi, à toutes les fois que l’on veut obtenir des données via un
réseau à partir d’un serveur ou un utilisateur, le processus d’encapsulation du tableau 2.2
s’exécute.
Tableau 2.2: Encapsulation des données
Données
Entête HTTP Données
Entête TCP Données
Entête IP Données
Entête Ethernet Données
PEI
Dave Pigeon Hiver 2009 13
2.1.1 Matériels physiques
Tous les ordinateurs d’un réseau sont branchés sur une même ligne de communication
par le biais de concentrateur ou répartiteur. Ils existent plusieurs types de câbles afin de se
connecter sur la ligne. Évidemment, chacun d’eux présentent différentes caractéristiques dont le
type de connecteur, le débit des données et la portée. De nos jours, la majorité des réseaux
Ethernet sont composées de paires torsadées surnommé 10/100Base-T. Ce câble est composé
d’un connecteur RJ-45, offre un débit de 10/100Mbits/s et une portée de 100m sans avoir
besoin de répéteur.
2.1.2 Protocole Ethernet
Reconnu sous le nom de norme IEEE 802.3, Ethernet est un standard de transmission de
données pour un réseau. Ethernet est régit par un sous protocole appelé CSMA/CD. Le principe
de celui-ci revient à parler tout en écoutant s’il se passe quelque chose. Donc, avant d’émettre,
un ordinateur vérifie qu’il n’y a aucune communication sur la ligne. Lorsqu’un ordinateur émet,
il continu d’écouter pendant sont émissions afin de s’assurer que les données qu’il envoi ne sont
pas perturber. Si une collision a lieu, les deux ordinateurs interrompent leur communication et
attendent un délai aléatoire. Tous les utilisateurs d’un réseau Ethernet possède un MAC. Le
MAC est une adresse écrite dans la mémoire ROM de l’interface réseau donc, elle est
ineffaçable. Cette adresse est inscrite par le constructeur de la carte et elle sert à l’identification
des hôtes qui communiquent sur le réseau. Pour envoyer une trame, l’émetteur doit connaître le
MAC du destinataire et c’est pour cette raison que le protocole ARP existe. Ce sous protocole
de la couche 3 permet à l’expéditeur d’envoyer une requête sur tout le réseau où il demande
quel est le MAC de l’ordinateur possédant l’adresse IP en question. Lorsque l’utilisateur en
question se reconnaît, il fait parvenir immédiatement son adresse MAC à celui qui a fait la
requête. Par la suite, il peut finalement envoyer la trame.
PEI
Dave Pigeon Hiver 2009 14
2.1.2.1 Constitution d’un paquet Ethernet
Le paquet Ethernet, tel qu’indiqué au tableau 2.3, est assez simple à comprendre. Seul le
champ type de protocole peut citer une interrogation. En fait, ce champ indique le protocole de
la couche 3 utilisé c’est-à-dire IP dans la majorité des cas. Il est caractérisé par le nombre
0x0800 en hexadécimal.
Tableau 2.3: Constitution d'un paquet Ethernet
6 octets 6 octets 2 octets 1500 octets 4 octets
MAC du
destinataire
MAC de la
source
Type de
protocole
Zone de
données Checksum
2.1.3 Protocole IP
Ce protocole en mode non-connecté3 assure le routage des informations entre les
réseaux. Pour y en arriver, les données à transmettre sont subdivisées en petits paquets qui sont
déposés dans le réseau et sont acheminés par le chemin le moins encombré. Par la suite, le
destinataire décode et rassemble toutes les trames reçus. À titre de comparaison, l’adresse IP
fonctionne de la même manière qu’une adresse postale. Elle permet d’identifier un ordinateur
précis au sein d’un réseau. Une adresse IP est un code sur 32 bits ou 4 octets. Il existe 3 classes
d’adresses IP et pour chacune d’entre elles, une plage est réservée pour les réseaux locaux. Les
tableaux 2.4 et 2.5 précisent ceci. De plus, l’adressage dans un réseau exploite également ce que
l’on appelle un masque de sous réseau. Un masque de sous réseau permet simplement de savoir
si l’adresse IP de l’expéditeur fait partie du même LAN que celle du récepteur lors de l’échange
de paquets. Si les deux utilisateurs ne font pas parties du même réseau local, les paquets émis
seront envoyés au routeur, c’est-à-dire à la passerelle, afin que celui-ci les acheminent.
3 Il s'agit d'un mode de communication dans lequel la machine émettrice envoie des données sans prévenir la machine réceptrice, et la machine réceptrice reçoit les données sans envoyer d'avis de réception à la première.
PEI
Dave Pigeon Hiver 2009 15
Tableau 2.4: Adresse IP de classe A,B et C
Classe 1 7 bits 24 bits
A 0 ID de réseau ID de l’hôte
Classe 2 bits 14 bits 16 bits
B 1 0 ID de réseau ID de l’hôte
Classe 3 bits 21 bits 8 bits
C 1 1 0 ID de réseau ID de l’hôte
Tableau 2.5: Plage d’adresse IP réservées aux réseaux locaux
Classe Adresse IP réservées
A 10.0.0.0 à 10.255.255.255
B 172.16.0.0 à 172.31.255.255
C 192.168.0.0 à 192.168.255.255
2.1.3.1 Constitution d’un paquet IP
Le tableau 2.6 démontre la constitution d’un paquet IP. L’entête de celle-ci est beaucoup
plus complexe que celle d’un paquet Ethernet. Ainsi, il en vaut la peine de bien expliquer
chacun des champs de celui-ci.
Tableau 2.6: Constitution d'un paquet IP
Octet 1 Octet 2 Octet 3 Octet 4
Version IHL Type de service Longueur du paquet
Identificateur Flags Offset du fragment
TTL Protocole Checksum
Adresse IP expéditeur
Adresse IP destinataire
Options (facultatif)
Zone de données
PEI
Dave Pigeon Hiver 2009 16
Version : Ce champ est codé sur 4 bits et contient la version du protocole IP, soit 0100 pour
version 4. Il est bon de souligner qu’une nouvelle méthode d’adressage, soit la version 6.
Longueur de l’entête IP (IHL) : IHL indique la longueur de l’entête exprimée en mots de 4
octets. Étant codée sur 4 bits, on peut déduire que la taille maximum de l’entête peut être de 60
octets.
Type de service : Ce champ donne des indications aux équipements qu'il traverse sur son
niveau de priorité et sa classe de service. Défini sur 8 bits, il est divisé en 5 parties :
• Les bits 0 à 2 indiquent la précédence ou la priorité d'acheminement par rapport aux
autres paquets. Cette partie du champ permet de définir 8 niveaux de priorité
d'acheminement. Les bits pour être en mode normal sont 000.
• Le bit 3 indique si le paquet peut supporter une attente de traitement normale ou faible.
• Le bit 4 indique si le paquet doit être acheminé en priorité sur des liens à débit faible ou
élevé.
• Le bit 5 indique si le paquet doit être acheminé sur des liens très fiables ou normaux.
• Les bits 6 et 7 sont réservés et donc inutilisés.
Longueur du paquet : Cette partie indique la longueur totale du datagramme, exprimée en
octets, en-tête et données comprises. Ce champ étant codé sur 2 octets permet de déduire que la
longueur maximale d'un paquet IP est de 65 536 octets.
Identificateur, Flags et Offset du fragment : Ces trois champs étant réparti sur 32 bits servent
à gérer le mécanisme de fragmentation d’un paquet IP. En effet, il est possible qu'un paquet IP
n'entre pas entièrement dans une trame parce que sa taille est trop importante. Donc, il sera
nécessaire de fragmenter le paquet pour le véhiculer dans plusieurs trames. Cependant en raison
de la nature non connecté du protocole, la fragmentation est assez complexe à gérer.
Durée de vie d’un paquet (TTL) : En raison des techniques de routage dynamique susceptible
de lui permettre de changer de route, il est possible qu'un paquet se perde dans le réseau. Pour
PEI
Dave Pigeon Hiver 2009 17
éviter qu'il tourne indéfiniment, on lui affecte une durée de vie auquel cette valeur est
décrémentée toutes les secondes ou à chaque passage dans une passerelle. Si cette valeur est à
0, le datagramme est automatiquement mis au rebut.
Protocole : Ce champ, codé sur un octet, identifie le protocole de niveau supérieur transporté
dans la zone de données du paquet IP. Il permet au destinataire de savoir à quel protocole de
niveau supérieur il doit transmettre le contenu du datagramme. Pour indiqué le protocole TCP,
les bits 00000110 sont placés dans cette partie.
2.1.4 Protocole TCP
Puisque que le protocole IP n’offre aucun contrôle de flux et que les paquets transmis sont
considérés indépendamment les uns des autres, la possibilité de ne pas retrouver un paquet
existe. Donc, en raison du manque de fiabilité de IP, cela explique en quelque sorte le rôle de
TCP c’est-à-dire, s’assurer que les données transmises sont reçues adéquatement. Toutes les
communications en TCP sont régies par des accusés de réception des données transmises.
Donc, ce protocole fonctionne en mode connecté. Si un accusé de réception n'est pas reçu dans
un temps raisonnable, les données sont retransmises. Comme les protocoles Ethernet et IP, un
checksum permet également de vérifier si les données transmises sont exactes. En raison de IP,
les données ne sont pas forcément reçues dans l'ordre d'émission suivant le chemin emprunté.
Ainsi, ce protocole permet de remettre les données dans l'ordre à la réception à l'aide du numéro
d'ordre. Voici les étapes de ce protocole :
1. L’émetteur envoie un segment SYN ou Synchronisation au récepteur.
2. Le récepteur envoie SYN/ACK ou Synchronisation/Accusé de réception à l’émetteur
pour confirmer qu’il a reçu le message de l’étape 1.
3. L’émetteur confirme par un ACK ou Accusé de réception qu’il a reçu le message de
l’étape 3.
4. L’émetteur envoie un numéro de séquence et c’est ainsi que le transfert des données
débute.
PEI
Dave Pigeon Hiver 2009 18
5. Le récepteur utilise un numéro de séquence et envoie dans le numéro de l’acquittement
celui de l’émetteur incrémenté de 1.
6. L’émetteur confirme par un ACK avec un numéro de séquence incrémenté de 1 et un
numéro d’acquittement incrémenté de 1.
2.1.4.1 Constitution d’un paquet TCP
Bien que la structure du paquet TCP semble lourde selon le tableau 2.7, celui-ci est
relativement simple en compréhension. Toutefois, chaque champ est important, donc il est utile
de bien les définir.
Tableau 2.7: Constitution d’un paquet TCP
Octet 1 et 2 Octet 3 et 4
Port source Port cible
Numéro de séquence
Numéro d’acquittement
Offset de
données Réservé
UR
G
AC
K
PS
H
RS
T
SY
N
FIN
Taille de la fenêtre
Checksum Pointeur urgent
Options (facultatif)
Données
Port source et Port destination: Le port source et le port de destination varient entre 0 et
65535. Il est spécifique à l’application. Les ports indiquent à un ordinateur avec quelle
application les données transmises ou reçues doivent fonctionner. Par exemple, le port 80 est
celui de HTTP, le 21 celui de FTP.
Numéro de séquence : Ce champ de 32 bits indique le numéro du paquet de donnée.
Numéro d’acquittement : Défini sur 32 bits, il indique le numéro du prochain paquet attendu.
PEI
Dave Pigeon Hiver 2009 19
Offset de donnée : Ce champ de 4 bits signale le nombre de mots de 32 bits dans l’entête du
message. Cela a pour but de savoir à quel endroit débute la zone de données.
URG : Lorsque le bit est à 1, cela indique que le paquet est urgent.
ACK : Lorsque le bit est à 1, cela indique que le paquet est un accusé de réception.
PSH : Lorsque le bit est a 1, cela signifie au récepteur de transmette les données directement à
l’application sans passer par un tampon de mémoire.
RST : Lorsque le bit est à 1, la connexion doit se réinitialiser.
SYN : Lorsque le bit est à 1, un établissement de connexion est demandé.
FIN : Lorsque le bit est à 1, la connexion est interrompue.
Taille de la fenêtre : Ce champ correspond au nombre d’octets que le destinataire es capable
de recevoir sans accusé de réception.
Pointeur urgent : Si le bit du champ URG est au niveau élevé, le pointeur urgent de 16 bits
indique précisément le numéro du paquet en question.
2.1.5 Protocole HTTP
Ce protocole basé sur TCP et sert au dialogue entre un navigateur web et un serveur. Le
navigateur est le client. Généralement, celui-ci envoie une requête à un serveur qui lui répond
en y permettant l’accès à une page en langage HTML. Le serveur est une application qui est
dans notre cas Apache. Son rôle est d’écouter et répondre aux requêtes. Il est important de
comprendre que les protocoles de la couche application sont accessibles par l’ouverture d’un
port TCP. Ainsi, le port HTTP par défaut est le 80. Il est possible de récupérer les données d’un
formulaire, dans une page web, par la méthode GET ou la méthode POST dont chacune
d’entres elles à ces avantages et inconvénients. Toutefois, dans le cadre de ce rapport, seul la
requête GET est utilisée. En fait, c’est celle-ci la plus employée sur internet. Elle porte bien son
nom car elle fait la demande pour obtenir la ressource située à l'URL spécifiée. L’URL sert à
localiser l’emplacement de la page web dans le serveur. De plus, il est possible de transmettre
PEI
Dave Pigeon Hiver 2009 20
des informations supplémentaires dans le URL lors de la demande de ressource. L’exemple
suivant explique clairement la façon dont fonctionne le protocole HTTP.
Exemple de représentation d’une adresse internet lors d’une requête GET:
Site internet : http://www.monsite.com/chemin/pageprincpale.php?a=allo&b=bonjour
http : Permet d’accéder à un serveur par le port 80.
www.monsite.com : Adresse de l’hôte ou adresse IP.
/chemin : Emplacement de la page web dans le serveur.
/pageprincipale.php : Fichier de la page web
?: Caractèrede séparation obligatoire pour indiquer que des données
complémentaires suivent.
a=allo&b=bonjour : Chaîne de requête traité par le serveur.
Maintenant, côté programmation, lorsque l’on effectue une requête GET c’est-à-dire, lorsque
l’on se connecte sur un site internet, elle se résulte de cette façon.
Exemple de requête GET:
Site internet : http://www.monsite.com/chemin/pageprincpale.php?a=allo&b=bonjour
GET /chemin/pageprincipale.php?a=allo&b=bonjour HTTP/1.1\r\n
Host: www.monsite.com\r\n
r\n
PEI
Dave Pigeon Hiver 2009 21
CHAPITRE 3 : Les systèmes embarqués
3.1 Les systèmes embarqués
Tout d’abord, il existe de nombreuses compagnies fabriquant des systèmes embarqués
avec la capacité de fonctionner sur Ethernet. La majorité d’entre eux offrent une pile TCP/IP
gratuitement avec l’achat d’un microcontrôleur de ce type. Bref, dans l’optique d’effectuer ce
projet dans sa totalité, il est important d’avoir un microcontrôleur capable de brancher un
système de radio-identification avec suffisamment d’espace pour stocker une pile TCP/IP et les
informations recueillis par celui-ci et ce, à un prix intéressant. Ainsi, suite à des
recommandations, il a été conseillé de se tourner vers une solution abhorrant la compagnie
Microchip Technology Inc. Microchip offre une interface de programmation complète et simple
d’utilisation. La documentation de leur microcontrôleur est très bien structurée et l’aide sur
internet en cas de problème abonde. En regardant les succès de Microchip au cours des
dernières années, comme indique la figure 3.1, il est très valable de regarder les produits
qu’offre cette compagnie.
Figure 3.1: Marché des microcontrôleurs 8 bits
PEI
Dave Pigeon Hiver 2009 22
3.2 Les microcontrôleurs de Microchip
Microchip offre une gamme complète de microcontrôleur satisfaisant au besoin de
l’industrie. La figure 3.2 démontre un bon aperçu de leurs produits disponibles. Maintenant,
puisque l’échange de données ne requiert pas une puissance de calcul énorme, il est préférable
d’utiliser un microcontrôleur 8 bits. En fait, le microcontrôleur 8 bits est le plus utilisé sur le
marché ainsi, les références sont très nombreuses. Il est très faible en consommation d’énergie
et le coût d’acquisition est très bas. Ce type de microcontrôleur est employé dans le marché de
l’industrie automobile, dans le contrôle de processus industriels et dans les applications grand
publics.
Figure 3.2: Gammes de microcontrôleurs offerts par Microchip
PEI
Dave Pigeon Hiver 2009 23
Ainsi, la famille PIC18 des microcontrôleurs de Microchip sont conçues principalement
pour l’application d’Ethernet. Comme mentionné dans le tableau 3.1, la série PIC18 a comme
particularité d’avoir une mémoire tampon pour le transport des données et un périphérique
Ethernet 10BaseT d’intégré. Il existe neuf microcontrôleurs dans cette série. Tous sont
compatibles avec la pile TCP/IP fournie gratuitement par Microchip. Ils ont une mémoire
tampon pour le trafic Ethernet de 8192 octets et leur mémoire programmes varient entre 64000
et 128000 octets.
Tableau 3.1: Microcontrôleurs de la série PIC18 de Microchip
3.3 La carte de développement PICDem.net 2
Microchip offre une carte de développement conçue pour créer des applications par
Ethernet. Cette carte se surnomme PICDEM.net 2. Elle est composée du microcontrôleur
PIC18F97J60. Avec c’est 128 000 octets, l’emplacement de celui-ci est amplement suffisant
pour stocker la pile TCP/IP et ajouter les programmes personnels à souhait. Puisque cette carte
semble être conçue parfaitement pour l’accomplissement du mandat et est disponible à un prix
attrayant de 250$ sur le site web http://www.digikey.com, l’achat de celle-ci a été réalisé.
PEI
Dave Pigeon Hiver 2009 24
CHAPITRE 4 : Programmation de la carte PICDem.net 2
4.1 Présentation de la carte PICDem.net 2
La carte indiquée ci-dessous à la figure 4.1 est la PICDem.net 2 de Microchip. Cette
carte à une dimension de 14cm X 11,5cm X 2cm.
Figure 4.1: Carte PICDem.net 2 de Microchip
La carte PICDem.net 2 est munie de toutes les composantes nécessaires pour
l’accomplissement du projet dans sa totalité. Le microcontrôleur(1) PIC18F97J60 offre
suffisamment de mémoire pour stocker une pile TCP/IP. De plus, il est relié à une connexion
RJ-45 (11) pour accéder à un réseau. L’écran (4) permet d’afficher des informations
intéressantes telles que l’adresse IP. Les boutons (8) sont utiles pour simuler un envoi de
PEI
Dave Pigeon Hiver 2009 25
données. La connexion RJ-11 (12) permet de brancher le module MPLAB ICD 2 afin de
programmer le microcontrôleur sous l’environnement MPLAB IDE. Pour fonctionner, un bloc
d’alimentation de 9V avec un courant continu de 500mA minimum est nécessaire. La
connexion pour cet effet (16) a une broche de 2,5 mm et la tension positif doit circuler dans
celle-ci et non à l’extérieur. En cas contraire, la carte refuserait de fonctionner. Toutefois, cela
n’engendrait aucun dommage à celle-ci car elle est munie d’une diode. Autres points
intéressants, cette carte a un capteur de température (6) et un potentiomètre (9). Elle a
également huit LEDS (7). Un bouton (10) permet de réinitialiser la carte. Enfin, cette carte
possède une connexion PICTail (14) permettant de brancher un autre module pour ainsi
accueillir un système de radio-identification.
4.2 Configuration de la connexion réseau de la carte PICDem.net 2
Pour que la carte puisse communiquer sur le réseau existant, il faut configurer celle-ci.
Un logiciel software est offert gratuitement avec la pile TCP/IP et permet de modifier les
champs inscrit à la figure 4.2. Ainsi, les champs ont été configurés pour que la carte ait
l’adresse IP 192.168.1.101 et que l’adresse de la passerelle soit 192.168.1.1.
Figure 4.2: Configuration réseau de la carte PICDem.net 2
PEI
Dave Pigeon Hiver 2009 26
4.3 Environnement MPLAB IDE
Pour pouvoir programmer le microcontrôleur PIC18F97J60 de la carte PICDem.net 2,
celle-ci doit relier au module MPLAB ICD 2 en branchant ce dernier dans le connecteur RJ-11.
Par la suite, il faut connecter MPLAB ICD 2 à l’ordinateur à l’aide d’un câble USB. Pour
poursuivre, il suffit d’exécuter le fichier de la pile TCP/IP fournie gratuitement par Microchip
sous le programme MPLAB IDE. Dès que la connexion est lancée, les onglets encerclés à la
figure 4.3 permettent de programmer le microcontrôleur. En regardant les fichiers de
programmation en assembleur (.h) et les fichiers en langage C (.c), il est possible de voir en
entier la programmation de la majorité des protocoles dont TCP et IP. Delà l’importance
d’avoir bien définie chacun leur rôle précédemment au chapitre 2. De plus, pour faciliter la
compréhension de chaque fonction établie par Microchip, il y a un document complet qui
explique en détail chacune d’entre elles.
Figure 4.3: Environnement MPLAB IDE
PEI
Dave Pigeon Hiver 2009 27
4.3.1 Configuration de la pile TCP/IP à l’aide du fichier TCPIPConfig.h
Tout d’abord, la pile TCP/IP fournie par Microchip est très complète. En fait, elle
possède quasiment tous les sous protocoles régies par TCP/IP. Afin de maximiser l’espace du
microcontrôleur et augmenter sa vitesse d’exécution, il est préférable de configurer la pile à
l’aide du fichier TCPIPConfig.h et d’utiliser seulement les fonctions nécessaires. Ainsi, la
figure 4.4 démontre les fonctions utilisées et ceux misent en commentaires.
Figure 4.4: Configuration de la pile TCP/IP
STACK_USE_ICMP_SERVER : ICMP est un protocole faisant partie de la couche 3. Il
permet de gérer les informations relatives aux problèmes de connexion réseau. La commande
PING fait partie de ce protocole. Ainsi, le STACK_USE_ICMP_SERVER est nécessaire pour
voir, en cas de problème s’il y a lieu, si la connexion est bien établie entre le microcontrôleur et
le serveur. Le serveur pourra effectuer une requête PING au microcontrôleur et ce dernier
répondra.
PEI
Dave Pigeon Hiver 2009 28
STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE : Cette fonction est la plus utilisée
pour le cas de ce projet. Elle inclut le fichier où le microcontrôleur peut envoyer des requêtes
GET par HTTP au serveur. Ce fichier est le GenericTCPClient.c et c’est lui qui sera repensé
selon ce que l’on désire.
STACK_USE DNS : Lorsque l’on navigue sur internet, pour accéder à un site web, il suffit
d’entrer l’adresse sous la forme de «www.monsite.com». En réalité, pour se connecter sur un
site web, il faut entrer l’hôte ou plutôt l’adresse IP. Donc, le rôle du DNS est de résoudre
l’adresse IP. Également, en regardant la documentation de la pile, le fichier GenericTCPClient.c
requiert l’activation du DNS pour fonctionner.
4.3.2 Programmation du fichier GenericTCPClient.C
À l’origine, le fichier GenericTCPClient.c était un exemple de requête GET effectué par
Microchip. Ainsi, ce fichier a été modifié selon les besoins du mandat. Toutefois, avant de faire
quoi que ce soit, il a été utile de faire l’algorithme de celui-ci afin de bien comprendre son rôle.
Celui-ci est reproduit à la figure 4.5. Par la suite, les étapes de la liste ci-dessous permettent de
compléter l’objectif qui est de simuler un envoi de données à l’aide du protocole HTTP.
Comme mentionné dans le mandat, les données à envoyer sont le numéro d’un identifiant fictif
et le temps. Les procédures sont définies dans les pages qui suivent et le fichier complet de
GenericTCPClient.c est en annexe A. Les fonctions utilisées pour ce fichier sont tous en annexe
B.
1. Définir le numéro d’un identifiant.
2. Programmer une méthode pour obtenir le temps précis de la requête.
3. Définir l’adresse du serveur, du port http et un lien URL.
4. Insérer les valeurs de l’étape 1 et 2 dans le lien URL.
5. Créer la requête GET.
PEI
Dave Pigeon Hiver 2009 29
Figure 4.5: Algorithme du fichier GenericTCPClient.c
PEI
Dave Pigeon Hiver 2009 30
4.3.2.1 Définition du numéro d’un identifiant
Afin de simuler l’envoi d’une lecture de donnée, un numéro d’identifiant a simplement
été défini par le numéro 20.
//Définir un numéro pour un identifiant BYTE id = 20;
4.3.2.2 Programmation pour simuler une horloge à temps réelle
Pour calculer le temps, incluse dans la pile TCP/IP fournie par Microchip, permet de
créer une horloge qui servira pour donner le temps lors de la lecture Cette fonction permet
d’obtenir le nombre de cycle du processeur à partir du moment où la carte est en fonction. De
plus, la constante TICK_SECOND (voir annexe B) représente le nombre de cycle du
processeur par seconde. Toutefois, la fonction TickGet() retourne seulement une valeur sur 32
bits. Donc, en supposant que le processeur du microcontrôleur est d’environ 32000
cycles/seconde et que la valeur maximale d’un nombre de 32bits est de 2^32 soit 4294967296,
cela permet de compter jusqu’à environ 36 heures avant que la valeur de retour de TickGet()
revienne à 0. Cela est insuffisant. Donc, la programmation du temps a été effectué en fonction
que le microcontrôleur puisse fonctionner pendant 2^8 soit 256 jours car la variable jour a été
défini comme étant un octet.
Définition des variables globales :
//Définir le temps et initialiser à 0 BYTE jourtot=0; BYTE heuretot=0; BYTE minutetot=0; BYTE secondetot=0; TICK tempsprecedent=0; TICK tempsmax = (0xffffffff);
PEI
Dave Pigeon Hiver 2009 31
Définition des variables dans la fonction GenericTCPClient(void)
//Variables pour calculer le temps WORD reste=0; WORD reste2=0; BYTE jour=0; BYTE heure=0; BYTE minute=0; BYTE seconde=0; TICK temps=0; TICK deltatemps=0;
Calcul du temps :
//Prendre le nombre de cycle //Attention TickGet() retourne un 32bits temps=TickGet(); //Diviser le nombre de cycle par le nombre de cycle par seconde temps=temps/TICK_SECOND; //Si le temps présent est plus grand ou plus grand que le temps précédent if(temps >= tempsprecedent) { //Calcul de la différence entre le temps présent et le temps précédent deltatemps=temps-tempsprecedent; } //Si le temps présent est plus petit que le temps précédent if(temps < tempsprecedent) { //Calcul de la différence entre le temps présent et le temps précédent deltatemps=(tempsmax-tempsprecedent)+temps; } //Garde en mémoire le temps pour la prochaine utilisation tempsprecedent=temps; //Mettre la difference de temps en jour,heure,minute,seconde jour=deltatemps/86400; reste=deltatemps%86400; heure=reste/3600; reste2=deltatemps%3600;
PEI
Dave Pigeon Hiver 2009 32
minute=reste2/60; seconde=reste2%60; //Additionne la difference de temps au temps precedent secondetot=seconde+secondetot; minutetot=minute+minutetot; heuretot=heure+heuretot; jourtot=jour+jourtot; //Restructurer les le nombre de jour,heure,minute,seconde if (secondetot>=60) { minutetot=minutetot+(secondetot/60); secondetot=secondetot%60; } if (minutetot>=60) { heuretot=heuretot+(minutetot/60); minutetot=minutetot%60; } if (heuretot>=24) { jourtot=jourtot+(heuretot/24); heuretot=heuretot%24; }
4.3.2.3 Définition de l’adresse du serveur, du port à ouvrir et d’un lien URL
Pour envoyer les données au serveur, les constantes et variables ci-dessous ont été
définis. Puisque les données complémentaires du lien URL varient, celui-ci a été défini comme
une variable pour contenir l’information. L’adresse du serveur et le port de communication ont
été définies comme des constantes car ceux-ci ne doivent pas être modifiés pendant l’exécution
du programme.
//Adresse du serveur static BYTE ServerName[] = "192.168.1.100"; //Définir le port de communication static WORD ServerPort = 80; //Port 80 ou port HTTP //Definir un tableau de octet pour la requête GET BYTE RemoteURL[240];
PEI
Dave Pigeon Hiver 2009 33
4.3.2.4 Insérer les variables dans le lien URL
Afin de faire parvenir les variables au serveur, elles ont été ajoutées dans le lien URL
comme données complémentaires. Dans l’ordre, l’identifiant, les jours, les heures, les minutes
et les secondes ont été inscrites dans le lien.
//Insérer les variables dans le lien URL sprintf(RemoteURL, "/phpmyadmin/Serveur/Projet_Ecriture.php?id=%d&j=%d&h=%d&m=%d&s=%d",id, jourtot,heuretot,minutetot, secondetot);
4.3.2.5 Créer la requête GET
La requête GET est créée tel que vue au Chapitre 2. La fonction TCPPutROMString()
met les données dans le socket et les transmet dans la mémoire tampon Ethernet. Seules les
données constantes sont inscrites avec cette fonction. Pour ce qui est du lien URL et du nom du
serveur, étant considéré comme des variables, la fonction TCPPutString() met les données dans
le socket et les transmet dans la mémoire tampon Ethernet également.
// Déposer la requête GET dans le Ethernet TX buffer TCPPutROMString(MySocket, (ROM BYTE*)"GET "); TCPPutString(MySocket, RemoteURL); TCPPutROMString(MySocket, (ROM BYTE*)" HTTP/1.0\r\nHost: "); TCPPutString(MySocket, ServerName); TCPPutROMString(MySocket, (ROM BYTE*)"\r\nConnection: close\r\n\r\n")
PEI
Dave Pigeon Hiver 2009 34
CHAPITRE 5 : Le serveur
5.1 Logiciel XAMPP
XAMPP est un logiciel gratuit simple d’utilisation qui permet de mettre en place un
serveur web. Il contient des outils indispensables tels qu’Apache, PHP, MySQL. Apache est
l’application serveur HTTP. En d’autres mots, en activant Apache sous XAMPP, cela permet
aux utilisateurs munis d’un navigateur web d’accéder à une page HTML. Lorsque MySQL est
activé, cela permet au serveur de collecter des valeurs dans la base de données. Pour des raisons
de sécurité, il est primordial de bien sécurisé XAMPP avant d’activer quoi que ce soit. La
figure 5.1 donne un aperçu de ce logiciel lorsqu’il est en fonction.
Figure 5.1: Application XAMPP
PEI
Dave Pigeon Hiver 2009 35
5.2 Programmation du serveur
Le site web a été programmé en langage PHP. Contrairement au langage HTML, PHP
rend une page web dynamique, c’est-à-dire qu’elle se met à jour automatiquement. Pour ce
faire, on doit créer une base de données MySQL. De cette façon, lorsqu’un utilisateur ou un
client du réseau se connecte au serveur, ce dernier peut lire les informations de la base de
données MySQL à travers une page web. Donc, il suffit de monter celle-ci en programmant des
requêtes MySQL à l’aide d’un script PHP. Toutefois, il est important de bien comprendre que
ce n’est pas le client qui effectue les modifications ou la lecture dans MySQL mais bien le
script PHP qui tourne du côté serveur. La figure 5.2 démontre comment un échange de données
s’effectue lorsque la page web est dynamique en récoltant les données dans MySQL.
Dans le cadre de ce projet, puisque l’on veut recevoir les données du microcontrôleur
permettant de localiser une personne ou une machinerie en milieu confiné, un script PHP est
nécessaire pour écrire celles-ci dans MySQL. De plus, pour que les utilisateurs ou clients du
réseau puissent consulter des données constamment mises à jour, une page web dynamique est
indispensable. Celle-ci devra consulter les valeurs contenues dans MySQL. Ainsi, la
programmation PHP a été créée grâce au logiciel Dreamweaver d’Adobe.
Figure 5.2: Fonctionnement de la base de données MySQL lors d'une communication entre un client et un serveur
PEI
Dave Pigeon Hiver 2009 36
5.2.1 Création de la base de données MySQL
Avant de se lancer dans la programmation PHP, il faut tout d’abord définir la base de
données avec l’application phpmyadmin sous XAMPP. Selon la figure 5.3, celle-ci a été définie
sous le nom de « projet » et contient la table appelé « interface ». Les champs de cette table sont
« Numéro », « Identifiant », « Jour », « Heure », « Minute » et « Seconde ». Ainsi, le
microcontrôleur effectuera une requête au serveur pour que ce dernier puisse écrire dans les
champs de la table interface, qui elle, est dans la base de données projet. Les utilisateurs
pourront consulter à tout moment le contenu de celle-ci car il sera présenté dans une page web.
Toutefois, il sera impossible pour eux d’apporter une modification et, outre que le
microcontrôleur, personne ne pourra écrire dans la base de données.
Figure 5.3: Création de la base de données MySQL
5.2.2 Programmation PHP pour écrire dans MySQL
Le code qui suit est celui qui permet au microcontrôleur d’écrire des requêtes dans la
base de données MySQL. Les étapes du déroulement sont les suivantes :
1. Le serveur prend et enregistrent dans une variable individuelle chaque donnée que le
microcontrôleur envoient c’est-à-dire, le numéro d’identifiant et le temps.
PEI
Dave Pigeon Hiver 2009 37
2. Le serveur se connecte à la base de données.
3. Le serveur écrit les valeurs des variables de l’étape 1 dans la base de données.
4. Le serveur se déconnecte de la base de données.
Projet Interface RFID-Reseau Ecriture
PEI
Dave Pigeon Hiver 2009 38
mysql_query($requete) or die(mysql_error()); //Fermeture de la connexion mysql_close($connexion); ?>
5.2.3 Programmation PHP pour lire dans MySQL
Le code ci-dessous est celui qui permet à un utilisateur du réseau d’ouvrir la page web,
qui elle, contient les données de MySQL. Les étapes du déroulement sont les suivantes :
1. Le serveur se connecte à la base de données
2. Le serveur lit à tour de rôle et présentent dans une page web les valeurs
contenues dans la base de données.
3. Le serveur se déconnecte de la base de données.
Projet Interface RFID-Reseau Lecture
PEI
Dave Pigeon Hiver 2009 39
$mdp = "projet2009"; //Mot de passe $base = "Projet"; //Base de donnée $table = "interface"; //Table dans la base de données //Connecter à la base de données mysql $connexion = mysql_connect($hote, $utilisateur, $mdp) or die("Impossible de se connecter au serveur: ". mysql_error()); mysql_select_db($base) or die("Impossible de se connecter à la base de donnée: ". mysql_error()); //Sélectionner les données $reponse = mysql_query("SELECT * FROM $table") or die("Erreur: ". mysql_error()); //Lire les données à tour de rôle et afficher sur la page HTML while ($donnees = mysql_fetch_array($reponse)) { ?> . L'identifiant # s'est connecté il y a jour(s) heure(s) minute(s) seconde(s)
PEI
Dave Pigeon Hiver 2009 40
CHAPITRE 6 : Évaluation de la solution, évaluation des coûts et aspect : santé et sécurité
6.1 Évaluation de la solution
Afin de voir si la solution établi fonctionne, un petit réseau local, tel qu’indiqué à la
figure 6.1, a été monté. Le réseau comporte le microcontrôleur avec son interface réseau, le
serveur et un ordinateur de bureau utilisateur. Ces 3 composantes ont été reliées directement à
un routeur. Le microcontrôleur a été configuré avec l’adresse IP 192.168.1.101.
Figure 6.1: Création du réseau
De plus, il faut se souvenir que le microcontrôleur a été programmé pour envoyé des
requêtes à l’hôte 192.168.1.100. Donc, il faudra configurer l’adresse du serveur comme à la
figure 6.2. Par la suite, afin de savoir si l’équipement est bien relié, il est possible de faire une
requête ICMP, tel qu’indiqué à la figure 6.3, avec le serveur en effectuant un PING au
microcontrôleur. En regardant la figure, tout indique que la connexion est bien établie car les
quatre paquets envoyés ont bel et bien été reçues par le microcontrôleur.
PEI
Dave Pigeon Hiver 2009 41
Figure 6.2: Configuration réseau du serveur
Figure 6.3: Requête PING via le protocole ICMP
Maintenant, le serveur est prêt à recueillir les données du microcontrôleur. En appuyant
sur le bouton RB2 de la carte PICDem.net 2, une demande de connexion TCP et une requête
GET est effectuée par le microcontrôleur. En regardant les paquets à l’aide du logiciel snifer
« Wireshark », soit à la figure 6.4, il est possible de voir que le processus se déroule belle et
PEI
Dave Pigeon Hiver 2009 42
bien de cette façon. L’adresse 192.168.1.101 ou le microcontrôleur envoie un segment de
synchronisation à l’adresse IP du serveur. Celui-ci répond en envoyant un segment de
synchronisation et un accusé de réception. Par la suite, l’utilisateur émet un accusé de réception
avant d’exécuter une requête GET à l’URL:
/phpmyadmin/Serveur/Projet_Ecriture.php?id=id&j=jourtot&h=heuretot&m=minutetot&s=sec
ondetot.
Figure 6.4: Affichage des paquets lors de la communication entre le microcontrôleur et le serveur
Par la suite, lorsque l’on branche l’ordinateur de bureau sur le réseau qui possède
l’adresse IP 192.168.1.102, que l’on se connecte sur le serveur à l’adresse IP 192.168.1.100 et
que l’on ouvre la page web à l’URL /phpmyadmin/Serveur/Projet_Lecture.php, les valeurs que
le microcontrôleur a envoyées à la base de données apparaissent à l’écran. La figure 6.5
présente les résultats obtenus.
Figure 6.5: Résultat obtenu ou page web générée
PEI
Dave Pigeon Hiver 2009 43
En regardant les paquets TCP et HTTP, à l’aide du logiciel « Wireshark », lorsque
l’utilisateur se connecte sur le serveur, il est possible de voir, de la même façon que pour le
microcontrôleur, l’adresse 192.168.1.102 envoie un segment de synchronisation à l’adresse IP
du serveur. Celui-ci répond en envoyant un segment de synchronisation et un accusé de
réception. L’utilisateur émet un ACK avant d’envoyer sa requête ou sa demande pour se
connecter sur la page web. Par la suite, le serveur achemine les paquets de données de la page
web à l’utilisateur qui lui ne fait que répondre en envoyant des accusés de réceptions pour
signaler au serveur que les paquets sont bien reçues. Lors du dernier paquet envoyé par le
serveur, celui-ci le signale en mettant le bit du champ FIN à 1 dans l’entête TCP. La figure 6.6
représente les résultats obtenus par le logiciel « Wireshark ».
Figure 6.6: Affichage des paquets lors de la communication entre l'utilisateur et le serveur
PEI
Dave Pigeon Hiver 2009 44
6.2 Étude des coûts
Afin de réaliser le projet, les pièces énumérées dans le tableau 6.1 sont nécessaires. La
carte PICDem.net 2 et le module de programmation MPLAB ICD 2 sont disponibles sur
http : //www.digikey.com. Ils se détaillent respectivement à 250$ chaque. Le bloc
d’alimentation pour faire fonctionner la carte et l’ordinateur ou le serveur ainsi que les câbles
réseau sont disponibles dans la majorité des magasins informatiques. Pour ce qui est du coût du
serveur, n’ayant pas besoin de moniteur et d’un ordinateur puissant, il a été estimé à 400$.
N’ayant aucune idée de la longueur des câbles pour brancher les appareils à la passerelle du
réseau LAN existant, l’estimation de ceux-ci a été fixée à 150$. Ainsi, il en coûte environ
1075,00$. Cela semble très raisonnable pour une interface de communication fiable et efficace.
Tableau 6.1: Table des coûts
Pièces Coûts ($)
Carte PICDem.net 2 de Microchip 250,00
Module MPLAB ICD 2 de Microchip 250,00
Bloc d’alimentation 9V 25,00
Ordinateur ou Serveur 400,00
Câbles réseau avec connecteur RJ-45 150,00
Total 1075,00
6.3 Santé et sécurité
L’exécution de ce projet n’engendre aucun danger pour la santé et la sécurité des
employés qui auront à utiliser cette interface. Toutefois, il est bon de souligner que les appareils
électroniques sont fabriqués avec d’importantes quantités de mercures et de plombs. Lorsque
celle-ci seront désuètes ou encore, défectueuses, il est très important de ne pas les jeter aux
poubelles domestiques mais plutôt de les apporter à un centre de collecte.
PEI
Dave Pigeon Hiver 2009 45
CONCLUSION
Pour conclure, les objectifs de ce projet étaient de se procurer et programmer un système
embarqué dédié à la communication sur le LAN pour ainsi créer une interface entre un système
de radio-identification et un réseau existant. Le rôle du serveur était de stocker les données
reçues du microcontrôleur et de les présenter à des utilisateurs membre d’un réseau existant.
Bref, la simulation exercée a tout indiqué que le procédé de communication est valide. En
d’autres mots, la solution proposée dans ce rapport fonctionne. En effet, dès que le
microcontrôleur envoie une requête au serveur, celui-ci mémorise le nom de l’identifiant et
l’instant de l’événement dans une base de données. Ainsi, au moment où un utilisateur désire
ouvrir la page web du serveur, ce dernier collecte les valeurs de la base de données et les
transmets immédiatement au client.
Pour exécuter ce genre de projet, les notions du modèles OSI appliquées aux protocoles
TCP, IP et HTTP sont très importantes afin de comprendre le fonctionnement de la
programmation du microcontrôleur fournie par Microchip. Par la suite, la compréhension du
langage PHP et le rôle de la base de données sont également primordiales pour réaliser ce
mandat.
Puisque que la solution réaliser est simple, efficace et à faible coût, elle est très
intéressante. Toutefois, pour accomplir celle-ci, il est fortement suggéré de procéder en suivant
les étapes suivantes dans l’ordre :
1. Étudier les protocoles utilisés pour l’échange de données. Cette étude permet de bien
comprendre le rôle de la pile TCP/IP déjà programmée dans le microcontrôleur. Cela
évite des pertes de temps inutiles lors de la programmation.
2. Acheter la carte PICDem.net 2 de Microchip, le programmeur MPLAB ICD 2 de
Microchip également ainsi que le bloc d’alimentation.
3. Essayer la démo de la carte offerte avec la pile TCP/IP gratuitement par Microchip afin
de se familiariser avec celle-ci et avec l’environnement MPLAB IDE.
PEI
Dave Pigeon Hiver 2009 46
4. Configurer la carte pour le réseau existant grâce au logiciel software offert par
Microchip.
5. Afin d’optimiser l’espace mémoire du microcontrôleur, garder seulement les protocoles
à utiliser en modifiant le fichier TCPIPconfig.h dans l’environnement MPLAB IDE.
6. Programmer la carte afin d’exécuter une requête http par la méthode GET. Celle-ci se
fait en modifiant le fichier GenericTCPClient.c.
7. Installer et sécuriser le programme XAMPP pour créer un serveur Apache.
8. Créer le serveur MySQL et la base de données avec les champs désirés grâce à XAMPP
également, sous l’application phpmyadmin.
9. Créer le fichier PHP, à l’aide du programme Dreamweaver, qui permet au
microcontrôleur, en exécutant sa requête, d’écrire dans la base de données.
10. Créer le fichier PHP qui permet aux utilisateurs du réseau de lire dans la base de
données les résultats envoyé par le microcontrôleur.
Étant donnée le succès de ce projet, il serait intéressant de poursuivre celui-ci en
recherchant des ensembles de radio-identification dans le but de s’en procurer un, de le
brancher et de le programmer sur le microcontrôleur afin d’envoyer le nom de l’identifiant et
l’instant de l’événement. Ceci permettrait de localiser finalement des personnes ou une machine
dans un milieu confiné.
PEI
Dave Pigeon Hiver 2009 47
BIBLIOGRAPHIE Livres : SEBA, Djillali; (2003) CISCO : installation, configuration et maintenance de réseaux, (Certifications) Paris : ENI, 534 p. DORDOIGNE, Josée; (2003) CISCO : Network+ : Notions fondamentales sur les réseaux locaux et étendus, (Certifications) Paris : ENI, 554 p. HOLZER, Juergen; PFLUGMANN, Marc; trad., WOLF, Pier re M.; LIGER, François; (2001) TCP/IP, Paris : Micro Application, 474 p. PLUM, Thomas; (1986) Introduction à la programmation : le langage C, (Intermicro) Paris : InterEditions, 340 p. ROBINET, Philippe; (2005) Le langage C par l’exemple : concepts, exemples, fiche mémos, (Technosup) Paris : Ellipses, 320 p. BORDE, Nicolas; (2004) PHP 5, Paris : Micro Application, 1246 p. THAUREAUX DE LEVARÉ, Thierry; (2005) MySQL, (Guide Microapp) Paris : Micro Application 191 p. THIBAUD, Cyril; (2003) MySQL 4 : installations, mise en œuvre et programmation, Paris : ENI, 403 p. SEIDLER, Kai; trad. DELISLE Marc; (2002) Apache Friends, , Consulté le 2009-03-01, Dernière mise à jour : 2009-01-08. Site Internet : (1995) Digi-Key Corporation, , Consulté le 2009-01-26, Dernière mise à jour : 2009-01-23. (2008) Microchip Technology Inc,, Consulté le 2009-01-14. Dernière mise à jour : 2009-01-14.
PEI
Dave Pigeon Hiver 2009 48
ANNEXE A: Programmation du fichier GenericTCPClient .c
/************************************************** ******************* * * Generic TCP Client Example Application * Module for Microchip TCP/IP Stack * -Implements an example HTTP client and should be used as a basis * for creating new TCP client applications * -Reference: None. Hopefully AN833 in the future. * ************************************************** ******************* * FileName: GenericTCPClient.c * Dependencies: TCP, DNS, ARP, Tick * Processor: PIC18, PIC24F, PIC24H, dsPIC30F, dsPIC33F, PIC32 * Compiler: Microchip C32 v1.00 or higher * Microchip C30 v3.01 or higher * Microchip C18 v3.13 or higher * HI-TECH PICC-18 STD 9.50PL3 or higher * Company: Microchip Technology, Inc. * * Softwar
Recommended