module des sciences appliquÉesbibliotheque.uqat.ca/documents/rapportsa/23.pdf · 2010. 9. 9. ·...

71
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 PROGRAMME 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

Upload: others

Post on 27-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 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