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 *