Interface de communication entre 2 machines

Tรฉlรฉcharger le fichier pdf d’un mรฉmoire de fin d’รฉtudes

Prรฉsentation de l’UART et de la RS-232

Les quatre projets, sur lesquels j’ai travaillรฉ, utilisent un moyen de communication commun pour dialoguer avec un ordinateur ou d’autres machines. Je commencerai donc par vous introduire ร  celui-ci. Ce moyen regroupe deux technologies complรฉmentaires, l’UART et la INRA/SAGA Gestion deย  LA RS-232 RS-232.

La RS-232

La RS-232 est une norme de standardisation pour un bus de communication sรฉrie, elle dรฉnit les caractรฉristiques รฉlectriques du bus de communication telles que les tensions, ou les intensitรฉs.
Les bus de communication sont des interfaces, ou connecteurs, permettant de relier des appareils entre eux dans le but d’รฉchanger des informations binaires.

Interface de communication entre 2 machines

Mon tuteur m’a demandรฉ pour ce sujet de permettre la communication entre deux machines en formatant, adaptant, les donnรฉes entre les deux, pour qu’ils puissent dialoguer, au travers d’un micro-contrรดleur.
Le micro-contrรดleur utilisรฉ est un pic18F96J60 montรฉ sur une carte รฉlectronique (cf : Annexe A page 42).
Le lecteur de puce RFID permet la lecture de l’identiant d’un animal passant dans le champs de l’antenne.
Celui-ci est placรฉ dans des mangeoires pour savoir quel animal vient manger, et de lร  connaitre ร  quel animal correspondent les informations qui sont alors collectรฉes par la mangeoire.
L’identication รฉlectronique des ovins est devenu obligatoire, et il a donc รฉtรฉ nรฉcessaire de changer les puces RFID des animaux ainsi que le lecteur de puces associรฉ.
L’application sur ordinateur qui permet de rรฉcupรฉrer les donnรฉes sur les animaux est une logiciel propriรฉtaire. De ce fait il est impossible de modier ce logiciel pour qu’il puisse rรฉcupรฉrer l’identiant des animaux correctement.
L’autre problรจme c’est que le lecteur de puce ne peut pas non plus รชtre modiรฉ pour envoyer les identiants de la maniรจre voulue par le logiciel sur ordinateur.
C’est pourquoi j’ai รฉtรฉ chargรฉ de crรฉer une application embarquรฉe sur une carte รฉlectronique qui servira d’intermรฉdiaire entre le lecteur de puces et l’ordinateur. Cette carte fonctionnera donc de maniรจre autonome, aucune interaction possible avec une personne durant son fonctionnement.

Introduction ร  la RFID

La RFID, ou Radio Frequency Identication (Identication par frรฉquence radio), est une technologie qui permet de mรฉmoriser et rรฉcupรฉrer des informations ร  distance au moyen de ยซย radio-รฉtiquetteย ยป.
Ces radio-รฉtiquettes sont de petits objets contenant une antenne et une puce, qui mรฉmorise les informations.
Principe : Quand un lecteur de puce est susamment proche d’une l’รฉtiquette celleci ce met ร  fonctionner et transmet au lecteur les donnรฉes qu’elle contient. L’รฉnergie nรฉcessaire ร  son fonctionnement est fournit par le lecteur de puce via radio frรฉquence.
Intรฉrรชt : Les principaux intรฉrรชts de cette technologie sont que les รฉtiquettes, ou puces, peuvent รชtre de taille trรจs rรฉduite, selon les utilisations, donc non encombrante, et deuxiรจmement ne nรฉcessite aucune alimentation (ex : pile).

Contrรดle d’une carte via RS-232

Pour ce projet mon tuteur m’a fait travailler sur carte embarquant un micro-contrรดleur pic16F628A prรฉsentรฉ en annexe D (page 47). Il m’a demandรฉ de fournir une application permettant de contrรดler ses entrรฉes et sorties via la RS-232 (cf : La RS-232 page 11).
Cette carte, moins chรจre que celle embarquant un pic18F97J60, permet de fournir des services similaires, l’Ethernet mis ร  part. Elle servira elle aussi pour le contrรดle de mangeoires dans les Unitรฉs Expรฉrimentales mais de faรงon non-autonome : elle sera directement branchรฉe, via la RS-232, ร  un ordinateur pour pilotรฉ des mangeoires. Elle servira donc de pรฉriphรฉrique ร  un ordinateur.

Fonctionnement de l’application

L’application consiste en une boucle innie attendant des ordres, venant de la RS-232 (cf : La RS-232 page 11), et les exรฉcutants.
Cette application se rapproche รฉnormรฉment du module de gestion des entrรฉes/sorties pour l’Ethernet (page 27), ร  la diรฉrence qu’ici les informations et les commandes transitent par la RS-232 et non par Ethernet.
Cette application fournit les commandes permettant d’activer/dรฉsactiver des relais, connaรฎtre l’รฉtat des relais, et connaรฎtre l’รฉtat des entrรฉes.

Prรฉsentation du protocole de cryptage SSL

SSL, Secure Sockets Layer (ou Couche de sรฉcuritรฉ), est un protocole permettant de sรฉcuriser une communication entre deux machines, une cliente et l’autre serveur. Dans le modรจle des couches des protocoles Internet vu prรฉcรฉdemment (page 20), SSL s’utilise juste aprรจs la couche 4, celle du transport (TCP).
Ce protocole utilise deux types d’algorithmes pour cryptรฉ l’information :
,! Cet algorithme utilise 2 clรฉs, une pour cryptรฉ l’information, appelรฉe clรฉ publique, et une autre pour dรฉcrypter l’information, appelรฉe clรฉ privรฉe. La clรฉ publique est donnรฉe ร  toute machine voulant entamer une ยซย conversationย ยป pour que celle-ci puisse crypter ses messages ร  envoyer. La clรฉ privรฉe quant ร  elle n’est jamais divulguรฉe.
Comme on peut le voir, si A veut alors rรฉpondre ร  B, B doit crรฉer lui aussi un jeu de clรฉs et envoyer sa clรฉ publique ร  A.
!Un algorithme de cryptage symรฉtrique.
,! Cet algorithme n’utilise lui qu’une seule clรฉ, pour crypter et dรฉcrypter et doit donc รชtre connue par les deux interlocuteurs.
Le cryptage asymรฉtrique รฉtant gourmand en calcul, SSL l’utilise pour communiquer la clรฉ pour l’algorithme de cryptage symรฉtrique, qui lui demande beaucoup moins de ressources et qui sera utilisรฉ par la suite pour crypter les informations.
Le protocole SSL permet aussi de vรฉrier l’intรฉgritรฉ, la non-corruption, d’un paquet (ou message) reรงu au moyen d’un autre algorithme, appelรฉ algorithme de hachage. Cet algorithme prend le message et crรฉer une ยซย empreinte numรฉriqueย ยป de celui-ci. Cette empreinte ร  une taille xe quelle que soit la taille du message.
Son principal intรฉrรชt est que la moindre petite modication d’un message, le nouveau message aura une empreinte numรฉrique totalement diรฉrente.
Dans le cas de SSL le message est envoyรฉ avec son empreinte, et pour vรฉrier qu’aucune modication n’a eu lieu, il sut de calculer l’empreinte du message reรงu avec l’empreinte fournie avec le message.
La combinaison de ces troix algorithmes nous permet d’assurer la sรฉcuritรฉ (personne ne connait le contenu des messages mis ร  part les deux interlocuteurs), l’intรฉgritรฉ (les messages corrompus sont dรฉtectรฉs) et donc son authenticitรฉ.
Avant de pouvoir รฉchanger des informations entre le client et le serveur, le protocole SSL รฉtablie un ยซย handshakeย ยป (ou ยซย poignรฉe de mainย ยป), pendant lequel les deux machines se concertent pour la conguration de la liaison (exemple : choix des algorithmes, รฉchange des clรฉs, …).
L’Handshake :
Cette phase permet d’initialiser diรฉrents paramรจtres entre le client et le serveur avant de commencer l’รฉchange d’informations.
Aprรจs s’รชtre concertรฉ sur la version du protocole SSL utilisรฉe (v1, 2, ou 3), le serveur ร  obligation de donner un certicat d’authentication contenant diverses informations (exemples : pays, ville, entreprise, …). Si l’utilisateur demande l’accรจs ร  des ressources nรฉcessitant une authentication, il demande au client de lui envoyer un certicat.
A ce stade le client (et si nรฉcessaire le serveur) vรฉrie la validitรฉ du certicat qu’il a reรงu grรขce une 3eentitรฉ, que sont les AC, Autoritรฉ de Certication.
Les AC peuvent รชtre des entreprises ou le client ou le serveur lui-mรชme. Ils sont ici considรฉrรฉs comme des entitรฉs de conance. Si les certicats ne sont pas validรฉ par les AC, la connexion au serveur รฉchoue.
Si elle rรฉussie, le client et le serveur choisissent les diรฉrents algorithmes nรฉcessaires (cryptage et hachage) en fonction de ceux que chacun peut utiliser.
Ensuite ils crรฉent en commun la clรฉ pour l’algorithme de cryptage symรฉtrique et se la partage.
ร€ ce stade l’Handshake est terminรฉ, la connexion sรฉcurisรฉe peut commencer.
Certicat de validation (ou d’authentication) :
Contient plusieurs informations obligatoires, et ร  la possibilitรฉ d’en contenir d’autres si dรฉsirรฉ. Pour que le certicat puisse รชtre utilisรฉ, il est nรฉcessaire de le faire certier auprรจs d’une AC, Autoritรฉ de Certication, qui le signe avec une paire de clรฉ publique/clรฉ privรฉe qui lui est propre. Cette clรฉ publique de l’AC peut ร  son tour รชtre signรฉe par une autre clรฉ formant ainsi une chaรฎne. Tout en haut de ces chaรฎnes se trouve le certicat racine, le plus important.
Certicat racine : C’est une clรฉ publique non signรฉe, ou auto-signรฉe, dans laquelle repose la conance. Si l’AC et le crรฉateur de la clรฉ publique ne font qu’un, le certicat est dit auto-signรฉ.

Introduction au Bluetooth

C’est une technologie permettant la communication sans l sur de courtes distances. Elle utilise le support radio pour transporter les informations. Cette spรฉcication a รฉtรฉ dรฉveloppรฉe dans le but de supprimer les cรขbles des pรฉriphรฉriques reliรฉs ร  un ordinateur (ex : imprimantes, souris, clavier, etc.). De nos jours avec les progrรจs qui ont รฉtรฉ rรฉalisรฉs, on retrouve cette technologie dans de nombreux appareils tels que les tรฉlรฉphones portables, PDAs, kits mainlibre, lecteurs de code barres, etc.).
Intรฉrรชts :
Trรจs faible consommation
Faible portรฉe
Bon marchรฉ et peu encombrant
Un mode d’utilisation que permet le Bluetooth, appelรฉ ยซย RFCOMMย ยป, permet d’utiliser le dispositif implรฉmentant le Bluetooth comme une liaison UART. Ceci permet, une fois le dispositif Bluetooth congurรฉ, de simplier la communication entre les 2 machines utilisant le Bluetooth pour dialoguer.
Le dispositif Bluetooth rรฉcupรจre, via l’UART, les informations ร  envoyer, et fais tout le nรฉ- cessaire pour envoyer ces informations ร  l’autre machine par le Bluetooth. Quand il reรงoit des informations de l’autre machine par le Bluetooth il les envoie sur l’UART.
Ainsi pour la machine, l’utilisation du Bluetooth lui est totalement inconnue et simplie le travail du dรฉveloppeur qui ร  juste ร  congurer le dispositif Bluetooth et ร  le brancher ร  la liaison UART de la machine sans se soucier du fonctionnement complexe du Bluetooth.
Le dรฉveloppeur a donc juste ร  gรฉrer l’UART du micro-contrรดleur pour dialoguer avec l’autre machine, et de mรชme pour l’autre machine.

Fonctionnement

Le TEO, la nouvelle machine, dispose de nombreuses commandes qui font son comportement. Ainsi le AGPA doit pouvoir rรฉpondre de la mรชme faรงon, et pouvoir eectuer les mรชmes traitements que le TEO, aux ordres qu’il reรงoit.
En annexes F (page : 53) est prรฉsentรฉe la liste des commandes du TEO ainsi que les rรฉponses ร  ces commandes.
Le AGPA disposant d’une interface graphique, il a รฉtรฉ nรฉcessaire de la gรฉrer.

Problรจmes techniques importants rencontrรฉs

L’application a รฉtรฉ dรฉveloppรฉe ร  l’origine pour une version de compilateur trรจs ancienne. Le problรจme qui a eu lieu c’est que l’on c’est retrouvรฉ dans l’impossibilitรฉ de porter le projet sur une version plus rรฉcente du compilateur, ni de l’รฉditeur de code source et non plus sur un autre ordinateur.(Je vais travailler sur ce problรจme durant mon CDD suivant ce stage).
L’รฉditeur de code source ayant des fonctionnalitรฉs trรจs limitรฉes j’ai dรป utiliser un 2eordinateur pour analyser le code source, et utiliser le 1erpour รฉditer et compiler.
Un autre problรจme qui a รฉtรฉ rencontrรฉ รฉtait que l’application utilise de nombreuses variables globales, et l’espace mรฉmoire restant รฉtant trรจs limitรฉ, j’ai dรป les utiliser ce qui m’a pausรฉ de nombreux problรจmes d’eet de bord tout au long du projet. Un eet de bord reprรฉsente un comportement non prรฉvu dans l’application dรป ร  l’utilisation de ressources partagรฉes entre diรฉrents traitements, dans notre cas ces ressources sont des variables.
Pour terminer un dernier problรจme a รฉtรฉ rencontrรฉ, celui de l’espace limitรฉ de la mรฉ- moire pour le programme. Vers la n du projet j’ai rencontrรฉ ce problรจme qui a รฉtรฉ rรฉsolu en analysant mon code source pour le rรฉduire au maximum pour pouvoir ainsi continuer et nir le projet.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

1 Prรฉsentation de l’INRAย 
1.1 Gรฉnรฉralitรฉs
1.1.1 Missions
1.1.2 Organisation
1.1.3 Structure et moyens
1.2 Le centre de recherche de Toulouse
1.2.1 Prรฉsentation
1.2.2 La SAGA
2 Le travail rรฉalisรฉย 
2.1 Prรฉsentation de l’UART et de la RS-232
2.1.1 La RS-232
2.1.2 L’UART
2.2 Les outils utilisรฉs
2.3 Interface de communication entre 2 machines
2.3.1 Introduction ร  la RFID
2.3.2 Prรฉsentation des machines
2.3.3 La liaison RS-232
2.3.4 Fonctionnement de l’application
2.4 Connexion Ethernet d’une carte รฉlectronique
2.4.1 Prรฉsentation de l’Ethernet et du TCP/IP
2.4.2 Prรฉsentation du protocole de cryptage SSL
2.4.3 Fonctionnement de l’application
2.5 Contrรดle d’une carte via RS-232
2.5.1 Fonctionnement de l’application
2.6 Gestionnaire de communication
2.6.1 Prรฉsentation des machines
2.6.2 Introduction au Bluetooth
2.6.3 Fonctionnement
Conclusion
Annexesย 
A Carte รฉlectronique avec pic18f97J60
B Prรฉsentation de code source : rรฉcupรฉration des informations des LEDs et activations de celle-ci (projet Serveur TCP/IP sur carte)
C Prรฉsentation de code source : rรฉcupรฉration des informations des entrรฉes et activations des relais (projet Contrรดle d’une carte via RS-232)
D Carte รฉlectronique avec pic16F628A
E Prรฉsentation code source : La commande de pesรฉe stabilisรฉe
F Liste des commandes du TEO
G Fiche bilan de stage

Tรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *