N° d’ordre :
REPUBLIQUE TUNISIENNE
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE
UNIVERSITE DE MONASTIR
FACULTE DES SCIENCES DE MONASTIR Ecole Doctorale : Matériaux, Dispositifs et Microsystèmes (Sciences et Technologie de l’Information)
MEMOIRE Présenté pour l’obtention du diplôme de :
MASTERE Spécialité : Technique de communication radiofréquence Par :
ELBOUGHDIRI ABDESSALEM Sujet :
Conception et modélisation d’un réseau de capteur sans fil
Soutenu le…. Juin 2011, devant le jury composé : Pr. Pr Pr.
Président Membre Membre (Encadreur)
Laboratoire ……………………… (Code : MESRST ……/UR/LR…………….)
A mon père, à ma mère A mes frères et mes sœurs A toute ma famille et mes amis
Remerciements Remerciements
Je tiens à exprimer mes vifs remerciements envers toutes les personnes qui ont contribué au bon déroulement de ce travail. En particulier, j’exprime j ’exprime ma gratitude à mon encadreur encadreu r M. Med Atri Atr i pour ses qualités professionnelles et humaines.
Enfin, j’adresse mes remerciements à toute l’équipe de la station de gaz Feriana pour leur accueil chaleureux et leur sympathie.
2
Table des matières Remerciement ...................................................................................................................................... 2 Introduction générale .......................................................................................................................... 8 CHAPITRE I : Présentation des Réseaux de Capteurs Sans Fil ........................................ 10 I.1 Introduction : ............................................................................................................................ 10 I.2 Les réseaux sans fil : ................................................................................................................ 11 I.2.1 Définition : ..................................................................................................................... 11 I.2.2 Caractéristiques des réseaux sans fil : ........................................................................ 12 I.2.3 Les catégories des réseaux sans fil : ........................................................................... 12 I.2.3.1 Le réseau personnel sans fil (WPAN) : ....................................................... 13 I.2.3.2 Le réseau local sans fil (WLAN) : ............................................................... 14 I.2.3.3 Le réseau métropolitain sans fil (WMAN): ................................................ 14 I.2.3.4 Le réseau étendu sans fil (WWAN): ........................................................... 14 I.2.4 Les classes des réseaux sans fil : ................................................................................. 15 I.2.4.1 Les réseaux cellulaires : ................................................................................ 15 I.2.4.2 Les réseaux ad Hoc : .................................................................................... 17 I.2.4.2.1 Définition : ...................................................................................... 17 I.2.4.2.2 Caractéristiques des réseaux Ad Hoc : ........................................ 18 I.3 Présentation d’un réseau de capteurs sans fil: ................................................................. 18 I.3.1 Anatomie d’un nœud de capteur : .............................................................................. 19 I.3.1.1 L'unité de captage: ......................................................................................... 20 I.3.1.2 L'unité de traitement des données : ............................................................. 20 I.3.1.3 L'unité de communication : .......................................................................... 21 I.3.1.4 L’unité de puissance : .................................................................................... 21 I.3.2 Architecture d’un réseau de capteurs sans fil : .......................................................... 22 I.3.2.1 Architecture de communication : ................................................................. 23 I.3.2.2 Architecture protocolaire : ............................................................................ 23 I.3.2.2.1 La couche physique : ..................................................................... 24 I.3.2.2.2 La couche de liaison de données : ................................................ 24 I.3.2.2.3 La couche réseau : .......................................................................... 24 I.3.2.2.4 La couche transport : ...................................................................... 24 I.3.2.2.5 La couche application : .................................................................. 25 I.3.2.2.6 Le niveau de gestion d’énergie : ................................................... 25 I.3.2.2.7 Le niveau de gestion de mobilité : ............................................... 25 I.3.2.2.8 Le niveau de gestion des taches : ................................................. 25 I.3.3 Caractéristique des réseaux de capteurs sans fil: ...................................................... 26 I.3.4 Technologie des capteurs : ........................................................................................... 27 I.4 Application des réseaux de capteurs sans fil : ................................................................... 31 I.4.1 Applications environnementales : ............................................................................... 32 ELBOUGHDIRI Abdessalem
3
I.4.2 Applications écologiques : ........................................................................................... 32 I.4.3 Applications militaires : ............................................................................................... 33 I.4.4 Applications industriels : ............................................................................................. 33 I.4.5 Applications commerciales : ........................................................................................ 33 I.4.6 Applications médicales : .............................................................................................. 34 I.4.7 Applications domestiques : .......................................................................................... 34 I.4.8 Applications de traçabilité et de localisation : ........................................................... 35 I.4.9 Applications liées à la sécurité : ...................................................................................35 I.5 Contrainte d’un réseau de capteurs sans fil : .................................................................... 35 I.5.1 Durée de vie du réseau : ............................................................................................... 35 I.5.2 Ressources limitées : ..................................................................................................... 36 I.5.3 Bande passante limitée : ............................................................................................... 36 I.5.4 La scalabilité : .............................................................................................................. 36 I.5.5 Topologie dynamique : ................................................................................................. 36 I.5.6 Agrégation de donnée: .................................................................................................. 36 I.5.7 Le cout de production : ................................................................................................. 37 I.6 Conclusion : ............................................................................................................................... 37
CHAPITRE II : Le système d’exploitation TinyOS ................................................................ 38 II.1 Introduction : ......................................................................................................................... 38 II.2 Présentation de TinyOS : ..................................................................................................... 38 II.2.1 Propriétés : ................................................................................................................... 39 II.2.2 Caractéristiques de TinyOS : .................................................................................... 40 II.2.3 Allocation de la mémoire : ........................................................................................ 41 II.3 Structure logicielle : .............................................................................................................. 42 II.4 Modèle d’exécution de TinyOS : ........................................................................................ 43 II.4.1 Programmation par évènement : ............................................................................... 43 II.4.2 Tâches : ........................................................................................................................ 43 II.4.3 Description de l’ordonnanceur TinyOS : ................................................................ 44 II.5 Cibles possibles pour TinyOS : .......................................................................................... 44 II.6 Package TinyOS : ...................................................................................................................45 II.7 Description du langage NesC : ........................................................................................... 46 II.7.1 Les Principaux caractéristiques de NesC : .............................................................. 47 II.7.2 Les fichiers dans NesC : ............................................................................................ 48 II.7.2.1 Interface : ...................................................................................................... 48 II.7.2.2 Module : ........................................................................................................ 48 II.7.2.3 Configuration : ..............................................................................................49 II.7.3 Types de données : ..................................................................................................... 50 II.7.4 Types de fonctions en NesC : ................................................................................... 50 II.8 Simulation : TOSSIM, PowerTOSSIM et TinyViz : .................................................... 52 II.8.1 TOSSIM : ..................................................................................................................... 52 II.8.2 PowerTOSSIM : ......................................................................................................... 52 II.8.3 TinyViz : ...................................................................................................................... 53 II.9 Conclusion : ............................................................................................................................ 53 ELBOUGHDIRI Abdessalem
4
CHAPITRE III : Conception et implémentation ..................................................................... 54 III.1 Introduction : ......................................................................................................................... 54 III.2 Les diagrammes statiques : ................................................................................................. 55 III.2.1 Les diagrammes de cas d'utilisation : ....................................................................... 55 III.2.2 Le diagramme des classes : ....................................................................................... 57 III.3 Les diagrammes dynamiques : ........................................................................................... 57 III.3.1 Les diagrammes d'états : ............................................................................................ 57 III.3.2 Les diagrammes d'activités : ..................................................................................... 58 III.3.3 Les diagrammes de séquence : .................................................................................. 59 III.4 préparation de l’environnement de travail : ....................................................................60 III.5 Implémentation en NesC : ................................................................................................... 64 III.5.1 Code de l'application à déployer sur le capteur puits : ......................................... 64 III.5.2 Code de l'application à déployer sur les capteurs collecteur : .............................. 67 III.6 Simulation : ............................................................................................................................ 67 III.7 Conclusion : ............................................................................................................................ 68 Conclusion générale : ...................................................................................................................... 69 Bibliographie : .................................................................................................................................... 70
ELBOUGHDIRI Abdessalem
5
Table des figures Figure I.1 : Les catégories des réseaux sans fil ....................................................................... 12 Figure I.2 : Principales normes des réseaux sans fils .............................................................. 13 Figure I.3 : Classes des réseaux sans fil .................................................................................. 15 Figure I.4 : Modèle des réseaux cellulaires ............................................................................. 16 Figure I.5 : Principe de réutilisation de fréquence .................................................................. 16 Figure I.6 : Modèle des réseaux Ad Hoc ................................................................................. 17 Figure I.7 : Anatomie générale d’un nœud de capteur ............................................................ 20 Figure I.8 : Architecture d'un réseau de capteurs .................................................................... 22 Figure I.9 : Pile protocolaire dans les réseaux de capteurs sans fils ....................................... 23 Figure I.10 : Progression des technologies de capteurs à travers le temps ............................. 27 Figure I.11 : Consommation d’énergie dans un nœud de capteur sans fil .............................. 35 Figure II.1 : Organisation de la mémoire dans TinyOS .......................................................... 41 Figure II.2 : Interactions internes au système TinyOS ............................................................ 42 Figure II.3 : Architecture générale des cibles utilisant TinyOS .............................................. 45 Figure II.4 : processus de compilation pour une application TinyOS écrite en NesC ............ 47 Figure II.5 : Syntaxe d'un module ........................................................................................... 49 Figure II.6 : Architecture d’une application NesC .................................................................. 51 Figure III.1 : Cas d'utilisation haut niveau .............................................................................. 55 Figure III.2 : Cas d'utilisation pour le capteur puits ................................................................ 55 Figure III.3 : Cas d'utilisation pour les nœuds de capteur collecteur ...................................... 56 Figure III.4 : Diagramme de cas d'utilisation pour les capteurs .............................................. 56 Figure III.5 : Diagramme des classes du réseau de capteur sans fil ........................................ 57 Figure III.6 : Diagramme d'états d'un nœud capteur Collecteur ............................................. 57 Figure III.7 : Diagramme d'états d'un nœud capteur puits ...................................................... 58
ELBOUGHDIRI Abdessalem
6
Figure III.8 : Diagramme d'activité pour un capteur collecteur .............................................. 58 Figure III.9 : Diagramme d'activité pour un capteur puits ...................................................... 59 Figure III.10: Diagramme de séquence entre l’administrateur et un capteur puits ................. 59 Figure III.11 : Diagramme de séquence entre un capteur puits et un capteur collecteur ...... 60 Figure III.12 : choix des options d’installation de TinyOS ..................................................... 61 Figure III.13 : Installation de Cygwin ..................................................................................... 61 Figure III.14 : Ajout du plugin Yeti 2 à Eclipse ...................................................................... 62 Figure III.15 : Définition des chemins de Cygwin et Tin yOS pour Eclipse ........................... 63 Figure III.16 : Création d’un nouveau projet TinyOS ............................................................. 63 Figure III.17 : composantes du code à déployer sur le capteur puits ..................................... 64 Figure III.18 : composantes du code à déployer sur les capteurs collecteurs ........................ 67 Figure III.19 : Simulation de l’application sur TinyViz .......................................................... 68
Table des tableaux Tableau I.1: Technologies des capteurs .................................................................................. 28 Tableau II.1: Propriété de TinyOS .......................................................................................... 40 Tableau II.2 : différents actions dans TinyOS ......................................................................... 43
ELBOUGHDIRI Abdessalem
7
PRESENTATION DE LA CENTRALE DE TURBINE A GAZ: PRESENTATION
DE LA STEG :
Cree par l’ordre de loi n° 62-8 du 3 Avril 1962 à la forme d’une entreprise publique à caractère industriel et commercial (EPIC). La société tunisienne d’électricité et de gaz est le résultat de la nationalisation et de la fusion de RET (réseau d’électricité et du transport) et de la R.E.G.E.T (réseau d’eau, de gaz et de l’électricité de Tunis) en tant que société nationale assurant un service public. La STEG a pour mission la production, le transport et la distribution de l’électricité et de gaz. L’énergie électrique est un facteur moteur de toute activités économique .Ainsi que le taux d’électrification est considère comme un critère fondamental du développement des pays. LA CENTRALE DE TURBINE A GAZ:
La centrale de production de l’électricité de FERIANA a été constituée par General Electric International Incorporated et General Electric Energy Product France, elle coûte 97 millions DT. Les travaux de génie civil ont eu lieu en août 2003, par PIRECO et ils sont composés d’un bâtiment administratif et social et une salle de machine contenant la turbine et ses auxiliaires. La turbine a été mise en service industriel en Mars 2005.
La Centrale De Turbine A Gaz Feriana
ELBOUGHDIRI Abdessalem
Introduction générale
INTRODUCTION GENERALE Depuis leur création, les réseaux de communication sans fil ont connu un succès sans cesse croissant au sein des communautés scientifiques et industrielles. Grâce à ses divers avantages, cette technologie a pu s'instaurer comme acteur incontournable dans les architectures réseaux actuelles. Le média hertzien offre en effet des propriétés uniques, qui peuvent être résumées en trois points : la facilité du déploiement, l'ubiquité de l'information et le coût réduit d'installation. Au cours de son évolution, le paradigme sans fil a vu naître diverses architectures dérivées, telles que : les réseaux cellulaires, les réseaux locaux sans fils et autres. Durant cette dernière décennie, une architecture nouvelle a vu le jour : les réseaux de capteurs sans fil. Ce type de réseaux résulte d'une fusion de deux pôles de l'informatique moderne : les systèmes embarqués et les communications sans fil. Un réseau de capteurs sans fil (RCSF), ou "Wireless Sensor Network" (WSN), est composé d'un ensemble d'unités de traitements embarquées, appelées "motes", communiquant via des liens sans fil. Le but général d'un WSN est la collecte d'un ensemble de paramètres de l'environnement entourant les motes, telles que la température ou la pression de l'atmosphère, afin de les acheminer vers des points de traitement. Les RCSF sont souvent considérés comme étant les successeurs des réseaux ad hoc. En effet, les RCSF partagent avec les MANET (Mobile Ad hoc NETworks) plusieurs propriétés en commun, telles que l'absence d'infrastructure et les communications sans fil. Mais l'une des différences clés entre les deux architectures est le domaine d'application. Contrairement aux réseaux MANET, qui n'ont pas pu connaître un vrai succès, les RCSF ont su attirer un nombre croissant d'industriels, vu leur réalisme et leur apport concret. ELBOUGHDIRI Abdessalem
8
Introduction générale
En effet, le besoin d'un suivie continu d'un environnement donné est assez courant dans diverses activités de la société. Les processus industriels, les applications militaires de tracking, le monitoring d'habitat, ainsi que l'agriculture de précision ne sont que quelques exemples d'une panoplie vaste et variée d'applications possibles du suivi continu offert par les RCSF. Grâce à ce potentiel riche en applications, les RCSF on su se démarquer de leur origine MANET et attirer de grandes firmes à travers le monde, telles que IBM, Sun, Intel et Philips. Malheureusement, les RCSF ne sont pas parfaits ! A cause de leur faible coût et leur déploiement dans des zones parfois hostiles, les motes sont assez fragiles et vulnérables à diverses formes de défaillances : cassure, faible énergie, ... etc. Ces problèmes rendent les RCSF des systèmes à fragilité innée, qui doit être considérée comme une propriété normale du réseau.
ELBOUGHDIRI Abdessalem
9
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
CHAPITRE
I
PRESENTATION DES RESEAUX DE CAPTEURS SANS FIL
I.1 Introduction : En 1860, le physicien James Clerk Maxwell a prévu l’existence de la propagation des ondes électromagnétiques, qui on été expliquées la première fois par le physicien allemand Heinrich Rudolf Hertz en 1888. C'était juste le début d'une longue liste d'achèvements par d'autres scientifiques et ingénieurs en plus de 100 ans de la communication sans fil. [I.1] Aujourd’hui l’essor des technologies sans fil offre de nouvelles perspectives dans le domaine
de
télécommunication.
En
comparaison
avec
l’environnement
filaire,
l’environnement sans fil permet aux utilisateurs une souplesse d’accès et une facilitée de manipulation de l’information à travers des unités de calcule mobiles (PC portable, PDA, capteur, …). Dans ce chapitre, nous présenterons en premier lieu les réseaux sans fil en général. Nous détaillerons en second lieu leur décomposition en réseaux avec infrastructure (réseaux cellulaires) et sans infrastructure (réseaux Ad Hoc). Nous entamerons par la suite les RCSF en présentant leurs caractéristiques et leurs technologies toute en passant par leurs architectures de communication et protocolaire, puis aborderons les domaines d’applications des RCSF. Pour terminer, nous décrirons les contraintes d’un réseau de capteurs sans fil.
ELBOUGHDIRI Abdessalem
10
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.2 Les réseaux sans fil : Le développement rapide dans le domaine de la technologie sans fil, connu par la facilité de déploiement et le coût relativement faible, a permis à un usager muni d’unité portable d’accéder à l’information indépendamment de la position géographique et du facteur de temps, en lui permettant une libre mobilité, sans l’astreindre à une localisation fixe.
I.2.1 Définition : Un réseau sans fil (Wireless Network) est, comme son nom l’indique, un réseau dans lequel les terminaux peuvent communiquer sans liaison filaire. Les terminaux du réseau se déplacent librement, tandis que le système doit assurer toutes les fonctionnalités et tous les services d’un réseau classique. Il peut être associé à un réseau de télécommunication pour réaliser des interconnexions entre nœuds. La notion de nœuds se restreint sur les extrémités d’une connexion. Elle peut contenir différents terminaux tel que les routeurs, les ordinateurs, les concentrateurs, les commutateurs, etc. La communication sans fil permet une grande flexibilité d'emploi. En particulier la mise en réseau des sites dont le câblage serait trop couteux à réaliser dans sa totalité, voire même impossible. En effet, la mise en place des réseaux sans fil n’exige pas de lourds aménagements des infrastructures comme c’est le cas dans les réseaux filaires (creusement de tranchées pour acheminer les câbles, équipement des bâtiments en câblage, goulottes et connecteurs, etc.). Néanmoins, ils présentent des inconvénients étant donné qu’ils sont caractérisés par une faible puissance d’émission et qu’ils n’offrent pas le même niveau de sécurité que les réseaux câblés, vu la nature contraignante de l’environnement sans fil, qui leur impose plusieurs défis que doivent surmonter les unités mobiles. Les réseaux avec câbles n’ont pas disparu avec l’apparition des réseaux sans fil. Par conséquent, ces deux types de réseaux cohabitent en donnant naissance aux réseaux hybrides. La norme la plus utilisée actuellement pour les réseaux sans fil est la norme IEEE802.11, mieux connue sous le nom de Wi-Fi. Le rayonnement géographique des ondes est relativement limité étant donné la faible puissance d’émission des solutions matérielles actuelles. Pour cette raison, les réseaux sans fil se sont avant tout développés comme réseaux internes, propres à un bâtiment, soit comme réseau d’entreprise, soit comme réseau domestique.
ELBOUGHDIRI Abdessalem
11
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Néanmoins, des projets de réalisation de réseaux à grande échelle ont vue le jour, notamment le WiMAX.
I.2.2 Caractéristiques des réseaux sans fil : •
Fiabilité : La propagation des signaux subit des perturbations (microcoupures, erreur
de transfert, timeout) dues à l’environnement qui détériore l’information transmise. •
Débit : L’une des limitations principales vient de la faiblesse de la bande passante.
Ceci est dû au type du média utilisé. On distingue des réseaux utilisant, par exemple, des communications radio qui peuvent atteindre 20Mbps et des communications Bluetooth avec 3Mbps à 10Mbps. •
Sécurité : Plus qu’elle ne l’est dans les réseaux filaire, la sécurité est d’une
importance primordiale dans les réseaux sans fil. Cela est dû à l’absence du câblage dont il résulte la diffusion de l'information facilitant l'interception à distance et la sensibilité au brouillage augmentant les interférences dans le réseau. •
Topologie dynamique : Elle change d’une manière fréquente suite à la mobilité
continue des nœuds qui forment la topologie du réseau.
I.2.3 Les catégories des réseaux sans fil : Il existe plusieurs catégories de réseaux sans fil qui diffèrent par le périmètre géographique qu’ils couvrent ainsi que par les types d’applications supportées. Le schéma suivant illustre les catégories des réseaux sans fil.
Figure I.1 : Les catégories des réseaux sans fil.
ELBOUGHDIRI Abdessalem
[I.2] 12
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Figure I.2 : Principales normes des réseaux sans fils.
I.2.3.1 Le réseau personnel sans fil (WPAN) : Il concerne les réseaux sans fil d'une faible portée : de l'ordre de quelques dizaines de mètres. Ce type de réseau sert généralement à relier des périphériques (imprimante, téléphone portable, appareils domestiques, PDA…). Il existe plusieurs technologies utilisées pour les WPAN : •
La technologie Bluetooth : Elle est connue aussi sous le nom de la norme IEEE
802.15.1, elle a été lancée par Ericsson en 1994, proposant un débit théorique de 1Mbps lui permettant une transmission de la voix, des données et des images, d’une portée maximale d'une trentaine de mètres. Bluetooth est une technologie peu onéreuse, grâce à sa forte intégration sur une puce unique de 9 mm sur 9 mm ; Elle présente également l’avantage de fonctionner sur des appareils à faible puissance d’où une faible consommation d’énergie. [I.3] •
La technologie ZigBee : Elle est connue aussi sous le nom de la norme IEEE 802.15.4
et permet d'obtenir des liaisons sans fil à bas prix et avec une très faible consommation d'énergie, ce qui la rend particulièrement adaptée pour être directement intégrée dans de petits appareils électroniques (capteurs, appareils électroménagers...). Les réseaux ZigBee permettent d’offrir des débits jusqu’à 250 Kbits/s dans la bande classique des 2,4GHz. Les RCSF constituent une des applications que cette norme peut couvrir.
ELBOUGHDIRI Abdessalem
13
CHAPITRE I •
Présentation des Réseaux de Capteurs Sans Fil
Les liaisons infrarouges : Elles permettent de créer des liaisons sans fil de quelques
mètres avec des débits pouvant monter à quelques mégabits par seconde. Cette technologie est largement utilisée dans la domotique (télécommandes), elle souffre toutefois des perturbations dues aux interférences lumineuses.
I.2.3.2 Le réseau local sans fil (WLAN) : C’est un réseau permettant de couvrir une portée d'environ une centaine de mètres. Il permet de relier entre eux les terminaux présents dans la zone de couverture. Il existe deux technologies concurrentes : •
Les réseaux Wi-Fi (Wireless-Fidelity) : Ils proviennent de la norme IEEE 802.11,
qui définit une architecture cellulaire. On y trouve principalement deux types de réseaux sans fil : Ceux qui travaillent à la vitesse de 11 Mbits/s à 2.4 GHz (IEEE 802.11b) et ceux qui montent à 54 Mbits/s à 5 GHz (IEEE 802.11 a/g). [I.3] •
Les réseaux HiperLAN 2 (High Performance LAN 2.0) : Ils découlent de la norme
européenne élaborée par l'ETSI (European Telecommunications Standards Institute). HiperLAN 2 permet d'obtenir un débit théorique de 54Mbps sur une zone d'une centaine de mètres dans la gamme de fréquence comprise entre 5 150 et 5 300 MHz [01]. Ce type de réseau n’a pas reçu autant de succès que la technologie Wi-fi. [I.4]
I.2.3.3 Le réseau métropolitain sans fil (WMAN): Il est connu aussi sous le nom de Boucle Locale Radio (BLR). Il convient de rappeler que la BLR permet, en plaçant une antenne parabolique sur le toit d'un bâtiment, de transmettre par voie hertzienne de la voix et des données à haut débit pour l'accès l'internet et la téléphonie. Il existe plusieurs types de réseaux WMAN dont le plus connu est : Les réseaux Wimax (Worldwide interoperability for Microwave Access) :
Ils émanent de la norme IEEE 802.16 et ont pour but de développer des liaisons hertziennes concurrentes aux techniques xDSL terrestres et offrent un débit utile de 1 à 10 Mbit/s dans la bande 10-66 GHz pour une portée de 4 à 10 kilomètres, ce qui destine principalement cette technologie aux opérateurs de télécommunication. [I.3]
I.2.3.4 Le réseau étendu sans fil (WWAN): Il est connu sous le nom de réseau cellulaire mobile et il est le plus répandu de tous puisque tous les téléphones mobiles sont connectés à un réseau étendu sans fil. Les principales technologies sont les suivantes : GSM (Global System for Mobile Communication), GPRS (General Packet Radio Service), UMTS (Universal Mobile Télécommunication System). [I.4] ELBOUGHDIRI Abdessalem
14
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.2.4 Les classes des réseaux sans fil : Les réseaux sans fil peuvent être classés selon l’architecture de communication adoptée en deux catégories : les réseaux cellulaires avec infrastructure et les réseaux Ad Hoc sans infrastructure fixe. Plusieurs technologies sont apparentées aux réseaux cellulaires comme : GPS, WiMax, GPRS, etc., et aux réseaux Ad Hoc comme les RCSF. Dans ce qui suit, ces deux classes de réseaux sans fil seront décrites en détail.
Réseaux sans fil
Réseaux avec infrastructure (Cellulaire)
GPRS
GPS
WiMAX
Réseaux sans infrastructure (Ad Hoc)
RCSF
Figure I.3 : Classes des réseaux sans fil.
I.2.4.1 Les réseaux avec infrastructure (Cellulaires) : Un réseau cellulaire est un système de communication basé essentiellement sur l'utilisation des réseaux filaires et la présence des stations de base qui couvrent les différentes unités mobiles du système. Un réseau cellulaire est un réseau dont l’architecture de communication est déterminée au préalable. Il est composé de sites fixes interconnectés entre eux à travers un réseau de communication filaire, généralement fiable et d'un débit élevé. Parmi les sites fixes, on retrouve les stations de bases SB. Chacune d’elles définit une région appelée cellule et administre un ensemble de stations mobiles SM (nœuds) qui communiquent entre elles par une liaison sans fil possédant une bande passante limitée qui réduit sévèrement le volume des informations échangées. Une cellule correspond à une zone de couverture où les nœuds communiquent avec d’autres nœuds de l’intérieur ou de l’extérieur de la cellule. La figure I.4 schématise l’architecture de communication des réseaux cellulaires.
ELBOUGHDIRI Abdessalem
15
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
(SB)
(SM)
Figure I.4 : Modèle des réseaux cellulaires.
La configuration standard d'un système de communication cellulaire est un maillage de cellules hexagonales. Initialement, une région peut être couverte uniquement par une seule cellule. Quand la compétition devient importante pour l'allocation des canaux, la cellule est généralement divisée en sept cellules plus petites. Cette subdivision peut être répétée et l'on parle alors de systèmes micro-cellulaires. Les cellules adjacentes dans le maillage doivent utiliser des fréquences différentes ce qui permet d’éviter les interférences entre elles, contrairement a celles qui sont situées sur les cotes opposés du maillage et qui peuvent utiliser la même fréquence sans risque d'interférence. Pour les cellules de faibles tailles (possédant un petit nombre de nœuds), la bande passante augmente. Par contre, pour les cellules de grandes tailles, l’émission de données est limitée.
2 3
7 1
4
1 6
5 Figure I.5 : Principe de réutilisation de fréquence.
ELBOUGHDIRI Abdessalem
16
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.2.4.2 Les réseaux Ad Hoc : À l'heure actuelle, plusieurs systèmes utilisent le modèle cellulaire des réseaux sans fil. Leur inconvénient majeur est qu'ils requièrent une importante infrastructure fixe qui peut être soumise à des risques de destruction dans certaines applications comme le domaine militaire où la capacité à se reconfigurer et à demeurer opérationnelle reste un objectif fondamental. La contrepartie des réseaux cellulaires est les réseaux mobiles Ad Hoc qui sont apparus pour pallier à ce type de désagréments. En effet, les réseaux Ad Hoc ne nécessitent pas une architecture prédéfinie au préalable.
I.2.4.2.1 Définition : Un réseau sans-fil ad hoc (ou MANET, pour Mobile Ad hoc NETwork) est forme par un ensemble d'hôtes qui s'organisent seuls et de manière totalement décentralisée, formant ainsi un réseau autonome et dynamique ne reposant sur aucune infrastructure filaire. Ces hôtes peuvent être fixes ou mobiles. Selon ces hypothèses, tout ensemble d'objets munis d'une interface de communication adéquate est susceptible de spontanément former un tel réseau. Aucune infrastructure n'étant disponible, ces objets ont donc à découvrir dynamiquement leur environnement. Un réseau ad hoc étant avant tout un réseau sans-fil, les objets communiquent entre eux par le biais d'une interface radio. Ces communications sont donc soumises aux phénomènes physiques qui régissent les ondes radio, telle qu'une forte atténuation du signal avec la distance. Ainsi, seuls les hôtes suffisamment proches les uns des autres sont capables de communiquer directement ensemble, et les communications de longue distance doivent s'effectuer par le biais d'un mécanisme nomme multi-sauts : cela signifie simplement que certains objets doivent relayer les messages de proche en proche jusqu'a ce que leur acheminement soit effectue. L'utilisation d'une antenne radio omnidirectionnelle implique également qu'un message envoyé par un émetteur quelconque est reçu par tous les récepteurs suffisamment proches de lui.
Figure I.6 : Modèle des réseaux Ad Hoc.
ELBOUGHDIRI Abdessalem
17
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.2.4.2.2 Caractéristiques des réseaux Ad Hoc : En plus des caractéristiques des réseaux sans fil en général, les réseaux Ad Hoc ont les caractéristiques suivantes: •
Architecture décentralisée: Cela fait référence à un système sans entité centralisée et
sans contrôle extérieur. Par conséquent, les nœuds interagissent, analysent et traitent les données sans faire appel à d’autres dispositifs exotiques. •
Auto-organisation: Les nœuds découvrent automatiquement et d’une manière
autonome les différents paramètres leur permettant de s’intégrer dans l’environnement et de s’autoconfigurer pour devenir opérationnels. •
Sécurité: L’absence d’infrastructure fixe pénalise l’ensemble du réseau dans la
mesure où il faut faire abstraction de toute entité centrale de gestion pour l’accès aux ressources. Cela fait que la sécurité dans les réseaux Ad Hoc soit plus pénible à assurer. De plus, les nœuds d’un réseau Ad Hoc assurent la fonction de reconfiguration contrairement à un réseau avec infrastructure où la gestion du rapport de confiance ne se fait qu’entre le nœud et la station. Dans les réseaux Ad Hoc, cette gestion de confiance mutuelle se fait sur tout l’ensemble des nœuds. Par ailleurs, les nœuds Ad Hoc étant fortement mobiles, leur sécurité physique est moins assurée que pour un poste de travail fixe, dans un bureau par exemple. Leur valeur marchande peut être d’une importance non négligeable.
I.3 Présentation d’un réseau de capteurs sans fil: Depuis quelques décennies, le besoin d’observer et de contrôler des environnements hostiles, civiles ou industriels est devenu essentiel pour de nombreuses applications. Les nœuds utilisés doivent être autonomes, d’une taille miniature et peuvent être déployés d’une manière dense et aléatoire dans le champ surveillé. Une classe spéciale des réseaux Ad Hoc appelée réseaux de capteurs sans fil (RCSF plus connus sous le nom de Wireless Sensor Network (WSN) en anglais) vient au secours. Ceux-ci sont apparus grâce aux
développements technologiques tels que la miniaturisation des composants électroniques, la diminution des coûts de fabrication et l’augmentation des performances et des capacités de stockage, d’énergie et de calcul. Un réseau de capteurs sans fil est composé d’un ensemble de terminaux ou ce qu’on appelle des nœuds capteurs qui peuvent communiquer via des liaisons radio, sans
ELBOUGHDIRI Abdessalem
18
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
infrastructure fixe préalable, a pour but la collecte de données de l'environnement, leur traitement et leur transmission vers le monde extérieur. Un capteur est un mini-dispositif électronique utilisé pour détecter ou mesurer une quantité physique et la convertir en un signal électronique pour la communiquée. En d'autres termes, les capteurs sont des dispositifs qui traduisent des aspects de la réalité matérielle en représentations compréhensibles et traitables par des ordinateurs. [I.5]
I.3.1 Anatomie d’un nœud de capteur : Un nœud de capteur se compose typiquement de quatre composantes de base : une unité de captage, une unité de traitement, une unité de communication, et une unité de puissance, qui est affichée dans La figure
I.7.
L'unité de captage se compose habituellement d'un ou
plusieurs capteurs et convertisseurs analogique-numériques (CAN). Les capteurs observent le phénomène physique et produisent des signaux analogiques basés sur le phénomène observé. Les CAN convertissent les signaux analogiques en signaux numériques, qui sont alors introduits à l'unité de traitement. L'unité de traitement se compose habituellement d'un microcontrôleur ou d'un microprocesseur équipé d’une mémoire (par exemple le microprocesseur StrongARMet d’Intel et le microprocesseur AVR d’Atmel), qui assure le contrôle intelligent au nœud de capteur. L'unité de communication se compose d'une radio à courte portée pour exécuter la transmission et la réception de données sue un canal radio. L'unité de puissance se compose d'une batterie pour fournir l'alimentation électrique de toutes autres composantes dans le système. De plus, un nœud de capteur peut également être équipé de quelques autres unités, selon le type d’applications. Par exemple, un système de localisation mondial (GPS) peut être nécessaire dans quelques applications qui fourni des informations sur l'emplacement du réseau. Un mobilisateur peut être nécessaire pour déménager des nœuds de capteur dans quelques tâches de détection. Toutes ces unités devraient être établies dans un petit module avec la faible consommation d'énergie et le coût de production faible. [I.6] S’il est n´nécessaire qu’un nœud soit maintenu en activité pendant une très longue période de temps, un Générateur de Puissance, tel que des cellules solaires, serait utile afin de tenir le nœud alimenté électriquement sans avoir à changer ses batteries.
ELBOUGHDIRI Abdessalem
19
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Figure I.7 : Anatomie générale d’un nœud de capteur.
I.3.1.1 L'unité de captage: Ce composant est l’unit´e qui contient le ou les capteurs embarqués sur le nœud. Habituellement, un convertisseur analogique-numérique (CAN) convertit les signaux provenant des capteurs (signaux analogiques) en signaux interprétables par l’Unité de Traitement (signaux numériques). Le principe de fonctionnement des unités de captages est souvent le même : il s'agit de répondre à une variation des conditions d'environnement par une variation de certaines caractéristiques électriques (par exemple pour une thermistance, une variation de température entraîne une variation de la résistance). Les variations de tension sont ensuite converties par un convertisseur Analogique-Numérique CAN de pouvoir être traitées par l'unité de traitement. On trouve aussi des structures plus complexes pour détecter d'autres phénomènes : les MEMS (pour Microelectromechanical systems). Ils sont utilisés pour une grande variété de phénomènes physiques (accélération, concentration chimique, radiation...).
I.3.1.2 L'unité de traitement des données : Elle est généralement constituée d’un microcontrôleur dédié et de la mémoire. Cette unité fournit aux capteurs la capacité d’exécuter des calculs sur les données et les conserver selon un scénario programmé. Bien que ce ne soit pas obligatoire, il est souhaitable qu’il existe des moyens de reprogrammer facilement les capteurs dans le cas d’un changement dans les exigences de l’application. ELBOUGHDIRI Abdessalem
20
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Les microcontrôleurs utilisés dans le cadre de réseaux de capteurs sont à faible consommation d'énergie. Leurs fréquences sont assez faibles, moins de 10 MHz pour une consommation de l'ordre de 1 mW. Une autre caractéristique est la taille de leur mémoire qui est de l'ordre de 10 Ko de RAM pour les données et de 10 Ko de ROM pour les programmes [I.7] Cette mémoire consomme la majeure partie de l'énergie allouée au microcontrôleur. . .
Outre le traitement des données, le microcontrôleur commande également toutes les autres unités notamment le système de transmission.
I.3.1.3 L'unité de communication : Elle est le plus souvent constituée d’un transcepteur radio qui fournit au capteur la capacité de communiquer avec les autres au sein d’un réseau. Elle met en œuvre des protocoles de communication dé pendant de la technologie utilisée (par exemple 802.11, 802.15.1, 802.15.4, etc. pour les technologies sans fil), tandis que les protocoles de plus haut niveau (routage, localisation, etc.) sont mis en œuvre dans l’Unité de Traitement. Certaines technologies radio permettent de changer la fréquence et la l a puissance de transmission. Les composants utilisés pour réaliser la transmission sont des composants classiques. Ainsi on retrouve les mêmes problèmes que dans tous les réseaux sans fil : la quantité d'énergie nécessaire à la transmission augmente avec la distance. Pour les réseaux sans fil classiques (LAN, GSM) la consommation d'énergie est de l'ordre de plusieurs centaines de milliwatts, et on se repose sur une infrastructure alors que pour les réseaux de capteurs, le système de transmission consomme environ 20 mW et possède une portée de quelques dizaines de mètres. Pour augmenter ces distances tout en préservant l'énergie, le réseau utilise un routage multi-sauts.
I.3.1.4 L’unité de puissance : Comme il est souhaitable de s’affranchir de toute connexion par câble, le capteur doit disposer de sa propre source d’´energie qui alimente le reste des unités. Cette unité se trouve généralement sous la forme de batterie standard de d e basse tension. Pour des réseaux de capteurs sans fil autonomes, l'alimentation est une composante cruciale. Il y a essentiellement deux aspects : premièrement, stocker l'énergie et la fournir sous la forme requise ; deuxièmement, tenter de reconstituer l'énergie consommée par un réapprovisionnement grâce à une source externe au nœud-capteur telles les cellules solaires. Le stockage de l'énergie se fait traditionnellement en utilisant ses piles. À titre indicatif, ce sera souvent une pile AA normale d'environ 2.2 - 2.5 A h fonctionnant à 1.5 V. [I.7]
ELBOUGHDIRI ELBOUGHDIRI Abdessalem
21
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.3.2 Architecture d’un réseau de capteurs sans fil : Un réseau de capteurs sans fil est un système distribué de grande échelle mettant en communication un grand nombre d’entités autonomes communément communément appelées «capteurs sans fil», autant simplement « capteurs ». Ces capteurs forment donc les nœuds du réseau. Dans un scénario d’application classique, plusieurs nœuds capteurs sont déployés dans un certain environnement pour mesurer certains phénomènes physiques et faire remonter les informations collectées à une station de base, nommée le nœud puits (une porte d’entrée vers le monde extérieur qui fait l’interface entre le réseau de capteurs et l’utilisateur des données). Dans le cas le plus simple, les capteurs seront dans le voisinage direct du puits (un réseau de type étoile à un saut). Cependant, Cependant, dans le cas d’un réseau à grande échelle, échelle, les capteurs ne sont pas tous dans le voisinage du puits et les messages seront acheminés du nœud source vers le puits en transitant par plusieurs nœuds, selon un mode de communication multi-sauts comme l’illustre la figure I.8
.
Figure I.8 : Architecture d'un réseau de capteurs.
Les ressources limitées des nœuds font que les réseaux de capteurs sans fil ont des différences dans leur fonctionnement, leur sécurité et leur fiabilité, selon leur application. De nouveaux protocoles de communication et d’auto-organisation doivent être développés en fonction des besoins des applications puisque les caractéristiques du réseau varient en fonction de l’application. Par exemple, certaines applications considèrent que les nœuds, une fois déployés, sont fixes, d’autres considèrent qu’ils sont mobiles. Le réseau peut être homogène ou hétérogène (différents types de capteurs et de nœuds ou non). Il peut avoir un seul puits, ou plusieurs. En définitive, il y a beaucoup de scénarios envisageables et des protocoles génériques ne pourront pas être efficaces dans tous les cas. La tendance est au développement développement de protocoles dédiés à une application particulière. ELBOUGHDIRI ELBOUGHDIRI Abdessalem
22
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.3.2.1Architecture I.3.2.1 Architecture de communication : Après le déploiement des nœuds capteurs sur une certaine zone de captage, ceux-ci commencent par la découverte de leurs voisins afin de construire la topologie de communication. Ainsi, ils deviennent capables d’accomplir les tâches que leur sont affectées. Selon une communication multi-sauts, les capteurs sont chargés de collecter des données, les router vers un nœud particulier appelé nœud puits (Sink). Ce dernier analyse ces données et transmet à son tour l’information l ’information collectée à l’utilisateur via internet ou bien satellite. Comme l’indique la figure I.8, l’ensemble de nœuds construisant le RCSF est considéré comme étant un réseau d’acquisition de données. Par contre, le réseau de distribution de données est composé des utilisateurs, et du réseau de communication : l’internet, et les satellites.
I.3.2.2Architecture I.3.2.2 Architecture protocolaire : Dans le but d’un établissement efficace d’un RCSF, une architecture en couches est adoptée afin d’améliorer la robustesse du réseau. Une pile protocolaire de cinq couches est donc utilisée par les nœuds du réseau. Citons la couche application, la couche transport, la couche réseau, la couche liaison de données et la couche physique. De plus, cette pile possède trois plans (niveaux) de gestion : le plan de gestion des tâches qui permet de bien affecter les tâches aux nœuds capteurs, le plan de gestion de mobilité qui permet de garder une image sur la localisation des nœuds pendant la phase de routage, et, le plan de gestion de l’énergie qui permet de conserver le maximum d’énergie. Plan de gestion des taches Plan de gestion de la mobilité Plan de gestion de l’énergie
Application Transport Réseau Liaison des données Physique Figure I.9 : Pile protocolaire dans les réseaux de capteurs sans fils.
ELBOUGHDIRI ELBOUGHDIRI Abdessalem
23
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.3.2.2.1 La couche physique : Elle permet de moduler les données et les acheminer dans le media physique tout en choisissant les bonnes fréquences. En effet, la couche physique est responsable à sélection des fréquences, détection des signaux, modulation et le cryptage des données.
I.3.2.2.2 La couche de liaison de données : Elle est responsable de l’accès au media physique et la détection et la correction d’erreurs intervenues sur la couche physique. De plus, elle établit une communication sautpar-saut entre les nœuds. C'est-à-dire, elle détermine les liens de communication entre eux dans une distance d’un seul saut. Parmi les protocoles de liaison de données, nous citons: SMACS (Self-organizing Medium Access Control for Sensor networks) et EAR (Eavesdrop And Register).
I.3.2.2.3 La couche réseau : Elle s’occupe du routage de données fournies par la couche transport. Elle établit les routes entre les nœuds capteurs et le nœud puits et sélectionne le meilleur chemin en termes d’énergie, délai de transmission, débit, etc. Les protocoles de routage conçus pour les RCSF sont différents de ceux conçus pour les réseaux Ad Hoc puisque les RCSF sont différents selon plusieurs critères comme : - l’absence d’adressage fixe des nœuds tout en utilisant un adressage basé-attribut. - l’établissement des communications multi-sauts. - l’établissement des routes liant plusieurs sources en une seule destination pour agréger des données similaires, etc. Parmi ces protocoles, nous citons : LEACH (Low-Energy Adaptive Clustering Hierarchy) et SAR (Sequential Assignement Routing).
I.3.2.2.4 La couche transport : Elle vérifie le bon acheminement des données et la qualité de la transmission. Dans les RCSF, la fiabilité de transmission n’est pas majeure. Ainsi, les erreurs et les pertes sont tolérées. Par conséquent, un protocole de transport proche du protocole UDP et appelé UDP-Like (User Datagram Protocol Like) est utilisé.
ELBOUGHDIRI Abdessalem
24
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Cependant, comme le protocole de transport universel est TCP (Transmission Control Protocol), les RCSF doivent donc posséder, lors d’une communication avec un réseau externe, une interface TCP-spliting pour vérifier la compatibilité entre ces deux réseaux communicants.
I.3.2.2.5 La couche application : Elle assure l'interface avec les applications. Il s'agit donc de la couche la plus proche des utilisateurs, gérée directement par les logiciels. Parmi les protocoles d’application, nous citons: SMP (Sensor Management Protocol) et TADAP (Task Assignement and Data Advertisement Protocol).
I.3.2.2.6 Le niveau de gestion d’énergie : Les fonctions intégrées à ce niveau consistent à gérer l’énergie consommée par les capteurs. Des lors, un capteur peut par exemple éteindre son interface de réception des qu’il reçoit un message d’un nœud voisin afin d’éviter la réception des messages dupliqués. De plus, quand un nœud possède un niveau d’énergie faible, il peut diffuser un message aux autres capteurs pour ne pas participer aux taches de routage, et conserver l’énergie restante aux fonctionnalités de capture.
I.3.2.2.7 Le niveau de gestion de mobilité : Ce niveau détecte et enregistre tous les mouvements des nœuds capteurs, de manière à leur permettre de garder continuellement une route vers l’utilisateur final, et maintenir une image récente sur les nœuds voisins. Cette image est nécessaire pour pouvoir équilibrer l’exécution des taches et la consommation d’énergie.
I.3.2.2.8 Le niveau de gestion des taches : Lors d’une opération de capture dans une région donnée, les nœuds composant le réseau ne doivent pas obligatoirement travailler avec le même rythme. Cela dépend essentiellement de la nature du capteur, son niveau d’énergie et la région dans laquelle il a été déployé. Pour cela, le niveau de gestion des taches assure l’équilibrage et la distribution des taches sur les différents nœuds du réseau afin d’assurer un travail coopératif et efficace en matière de consommation d’énergie, et par conséquent, prolonger la durée de vie du réseau. ELBOUGHDIRI Abdessalem
25
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.3.3 Caractéristique des réseaux de capteurs sans fil: •
Energie limitée: Les RCSF visent la consommation d’énergie puisque l’alimentation
de chaque nœud est assurée par une source d’énergie limitée et généralement irremplaçable à cause de l’environnement hostile où il est déployé. De ce fait, la durée de vie d’un RCSF dépend fortement de la conservation d’énergie au niveau de chaque nœud. •
Modèle de communication: Les nœuds dans les RCSF communiquent selon un
paradigme plusieurs-à-un (many to one). En effets, les nœuds capteurs collectent des informations à partir de leur environnement et les envoient toutes vers un seul nœud qui représente le centre de traitement. •
Densité de déploiement : Elle est plus élevée dans les RCSF que dans les réseaux Ad
Hoc. Le nombre de nœuds capteurs peut atteindre des millions de nœuds pour permettre une meilleure granularité de surveillance. De plus, si plusieurs nœuds capteurs se retrouvent dans une région, un nœud défaillant pourra être remplacé par un autre. Cependant, la densité de déploiement donne naissance à des challenges pour la communication entre les nœuds. En effet, elle provoque des collisions ou des endommagements des paquets transmis. •
Absence d’adressage fixe des nœuds: Les nœuds dans les réseaux sans fil classiques
sont identifiés par des adresses IP. Cependant, cette notion n’existe pas dans les RCSF. Ces derniers utilisent un adressage basé sur l’attribut du phénomène capté, on parle donc de l’adressage basé-attribut. En effet, les requêtes des utilisateurs ne sont pas généralement destinées à un seul nœud, mais plutôt, à un ensemble de nœuds identifiés par un attribut. Par exemple, identifier un ensemble de nœuds par « les nœuds qui captent le volume du CO2 dépassant 0,0375 % dans l’atmosphère». •
Limitations de ressources physiques : A cause de la miniaturisation des composants
électroniques, les performances des nœuds capteurs sont limitées. Par conséquent, les nœuds capteurs collaborent en traitant partiellement les mesures captées et envoient seulement les résultats à l’utilisateur. Une autre conséquence, ces limitations imposent des portées de transmission réduites contraignant les informations à être relayées de nœud en nœud avant d'atteindre le destinataire. C’est la raison pour laquelle les RCSF adoptent des communications multi-sauts. •
Sécurité: En plus des problèmes de sécurité rencontrés dans les réseaux Ad Hoc en
général, les RCSF rencontrent d’autres handicaps dus à leurs challenges, à savoir l’autonomie et la miniaturisation des capteurs. Cela engendre l’inapplicabilité des mécanismes de défense utilisés dans les réseaux Ad Hoc tout en créant d’autres mécanismes de sécurité pour les ELBOUGHDIRI Abdessalem
26
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
RCSF. De plus, l’absence d’une sécurité physique dans l’environnement hostile où ils sont déployés expose les nœuds à un danger qui tend vers la falsification de l’information. En effet, les nœuds capteurs eux-mêmes sont des points de vulnérabilité du réseau car ils peuvent être modifiés, remplacés ou supprimés.
I.3.4 Technologie des capteurs : Les recherches dans les RCSF ont débute par l’agence DARPA pour des besoins de surveillance militaire, avec le projet LWIM et le projet SenseIT qui a été succédé plus tard en 1993-1998 par le projet WINS de sciences Rockwel. Par la suite, d’autres ont vu le jour en 1999 essentiellement parmi les milieux universitaires.
Figure I.10 : Progression des technologies de capteurs à travers le temps.
ELBOUGHDIRI Abdessalem
[I.8]
27
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Vitesse CPU (Mhz)
Mem.Prog. (kb)
RAM (kb)
Radio Freq. (Mhz)
Débit de transmission (kbps)
WeC
8
8
0.5
916
10
Rene
8
8
0.5
916
10
Rene2
8
16
1
916
10
Dot
8
16
1
916
10
Mica
6
128
4
868
10/40
Mica2
16
128
4
433/868/916
38.4
Micaz
16
128
4
2400
250
Nœud
Image
ELBOUGHDIRI Abdessalem
28
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
Cricket
16
128
4
433
38.4
EyesIFX
8
60
2
868
115
TelosB/Tmote
16
48
10
2400
250
SHIMMER
8
48
10
2400
250
Sun SOPT
16-60
2 MB
256
2400
250
BTnode
8
128
64
433-915
Variée
IRIS
16
128
8
2400
250
ELBOUGHDIRI Abdessalem
29
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
V-Link
N/A
N/A
N/A
2400
250
TEHU-1121
N/A
N/A
N/A
900/2400
N/A
NI WSN-3202
N/A
N/A
N/A
2400
250
Imote
12
512
64
2400
100
Imot2
13-416
32MB
256
2400
250
Stargate
400
32MB
64MB SD
2400
Variée
266
8 MB
32 MB
Variée
Variée
Netbridge N100
Tableau I.1: Technologies des capteurs.
ELBOUGHDIRI Abdessalem
[I.8]
30
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.4 Application des réseaux de capteurs sans fil : Les possibilités d'applications des réseaux de capteur sans fil ont été longtemps discutées avec l'accent sur les applications possibles qui peuvent être réalisées en utilisant les RCSF. Dans cette section nous présentons une vue d'ensemble des applications commerciales et académiques existantes développées pour les RCSF. L’usage des RCSF permet la gestion et l‘analyse de phénomènes complexes sur une large région et sur une longue période de temps. Des données telles que la température, l‘humidité, la pression, le bruit ainsi que toute sorte d‘informations liées à la machinerie peuvent être obtenues et traitées moyennant le déploiement de capteurs sans fil. Les RCSF sont généralement déployés en grand nombre dans une zone géographique où ils vont capter, mesurer et rapporter certains phénomènes physiques. Dans le domaine militaire, ils peuvent être utilisés pour surveiller le déplacement de troupes ennemies dans un espace donné, ou récolter des données dans une zone dangereuse où l'envoi d'êtres humains serait à risque. À titre d'exemple, les RCSF ont été utilisés, sous une forme assez primitive, lors de la guerre froide par les Américains qui ont placé dans l'océan un système appelé SOSUS composé de capteurs acoustiques pour surveiller les sous-marins silencieux russes. Dans le domaine civil, les RCSF peuvent être utilisés dans la surveillance des infrastructures, des installations et des zones critiques. Ils peuvent également être utilisés pour surveiller des habitations et contribuer au confort domestique, en transformant les logements en environnements intelligents dont les paramètres (température, pression, humidité, luminosité, etc.) s'adaptent automatiquement au comportement des individus. Dans le domaine de l'environnement, ils peuvent localiser et suivre le mouvement de certains animaux, détecter des feux de forêt ou encore surveiller l'évolution de la densité moyenne de CO2 dans l'air. CORIE est un exemple réel d'application où des capteurs récoltent des informations sur l'eau de la rivière Columbia (température, salinité, flux et niveau de l'eau, etc.), lesquelles sont utilisées pour gérer les opérations de secours et les interventions sur l'écosystème. Dans le domaine industriel, les capteurs peuvent être placés sur des boites de marchandise dans une usine ou un entrepôt pour suivre en temps réel le mouvement des marchandises, ou encore détecter le dysfonctionnement d'une machine en analysant ses émissions acoustiques et vibratoires. Actuellement, il existe quelques applications commerciales assez primitives des RCSF, par exemple pour la lecture distante des appareils commerciaux de mesure de la consommation énergétique domestique (les compteurs d'électricité, de gaz, etc.).
ELBOUGHDIRI Abdessalem
31
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.4.1 Applications environnementales : Des thermo-capteurs dispersés à partir d'un avion sur une forêt peuvent signaler un éventuel début d'incendie dans le champ de captage; ce qui permettra une meilleure efficacité pour la lutte contre les feux de forêt. Dans les champs agricoles, les capteurs peuvent être semés avec les graines. Ainsi, les zones sèches seront facilement identifiées et l'irrigation sera donc plus efficace. Sur les sites industriels, les centrales nucléaires ou dans les pétroliers, des capteurs peuvent être déployés pour détecter des fuites de produits toxiques (gaz, produits chimiques, éléments radioactifs, pétrole, etc.) et alerter les utilisateurs dans un délai suffisamment court pour permettre une intervention efficace. Une grande quantité de capteurs peut être déployée en forêt ou dans un environnement de conservation de la faune afin de recueillir des informations diverses sur l'état du milieu naturel et sur les comportements de déplacement. Par exemple, l'université de Pise en Italie a réalisé des réseaux de capteurs pour le contrôle des parcs naturels (feux, animaux,..). Il est ainsi possible "d'observer", sans déranger, des espèces animales difficiles à étudier dans leur environnement naturel et de proposer des solutions plus efficaces pour la conservation de la faune. Les éventuelles conséquences de la dispersion en masse des micro-capteurs dans l'environnement ont soulevé plusieurs inquiétudes. En effet, chaque micro-capteur est doté d'une batterie qui contient des métaux nocifs. Néanmoins, le déploiement d'un million de capteurs de 1 millimètre cube chacun ne représente qu'un volume total d'un litre. Même si tout ce volume était constitué de batteries, cela n'aurait pas des répercussions désastreuses sur l'environnement.
I.4.2 Applications écologiques : Dans les immeubles, le système de climatisation peut être conçu en intégrant plusieurs micro-capteurs dans les tuiles du plancher et les meubles. Ainsi, La climatisation pourra être déclenchée seulement aux endroits où il y a des personnes présentes et seulement si c'est nécessaire. Le système distribué pourra aussi maintenir une température homogène dans les pièces. Utilisée à grande échelle, une telle application permettrait de réduire la demande mondiale en énergie réduisant du même coup les gaz à effet de serre. Rien que pour les ÉtatsUnis, on estime cette économie à 55 milliards de dollars par an avec une diminution de 35 millions de tonnes des émissions de carbone dans l'air. Ainsi, dans un contexte mondial où le réchauffement de la planète devient une préoccupation grandissante, une telle conséquence environnementale serait un pas dans la bonne direction.
ELBOUGHDIRI Abdessalem
32
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.4.3 Applications militaires : Le déploiement rapide, l’auto-configuration et la tolérance aux pannes des réseaux de capteurs sont des caractéristiques qui font de ce type de réseaux un outil appréciable dans un tel domaine. Déploiement sur un endroit stratégique ou difficile d’accès, afin de surveiller toutes les activités des forces ennemies ou d’analyser le terrain avant d’y envoyer des troupes (par la détection d’agents chimiques, biologiques ou de radiations).
I.4.4 Applications industriels : Des réseaux de capteurs câblés ont été longtemps utilisés dans les domaines industriels tels que des applications industrielles de captage
et de contrôle, l'automatisation de
construction, et le contrôle d'accès. Cependant, le coût associé au déploiement des réseaux de capteurs câblés limite la possibilité d'application de ces systèmes. D'ailleurs, même si un système de capteur ont été déployés à un ensemble industriel, l'évolution de ce système coûterait presque autant qu'un nouveau système. En plus des systèmes de contrôle à base de capteur, la surveillance manuelle a été également utilisée dans des applications industrielles pour la maintenance préventive. La surveillance aux milieux industriels est généralement exécutée par le personnel expérimenté utilisant les analyseurs tenus dans la main qui sont rassemblés d'un site central pour l'analyse. Les systèmes manuels ont limité l'exactitude et exigent le personnel. Au lieu de cela, Les RCSF sont une solution alternative prometteuse pour ces systèmes dus à leur facilité de déploiement, granularité élevée, et de grande précision fourni par les nœuds des capteurs sans fil. [I.8]
I.4.5 Application commercial : Des nœuds capteurs pourraient améliorer le processus de stockage et de livraison (pour garantir la chaine du froid en particulier). Le réseau ainsi formé, pourra être utilisé pour connaître la position, l'état et la direction d'un paquet ou d'une cargaison. Un client attendant un paquet peut alors avoir un avis de livraison en temps réel et connaître la position du paquet. Des entreprises manufacturières, via des réseaux de capteurs pourraient suivre le procédé de production à partir des matières premières jusqu'au produit final livré. Grâce aux réseaux de capteurs, les entreprises pourraient offrir une meilleure qualité de service tout en réduisant leurs coûts. Les produits en fin de vie pourraient être mieux démontés et recyclés ou réutilisés si les micro-capteurs en garantissent le bon état. [I.9]
ELBOUGHDIRI Abdessalem
33
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.4.6 Applications médicales : La surveillance des fonctions vitales d'un organisme vivant pourrait à l'avenir être facilitée par des micro-capteurs avalés ou implantés sous la peau. Des gélules multi-capteurs ou des micro-caméras pouvant être avalées existent déjà, pouvant sans recours à la chirurgie, transmettre des images de l'intérieur d'un corps humain (avec une autonomie de 24 heures). Une récente étude présente des capteurs fonctionnant dans le corps humain, qui pourraient traiter certaines maladies. Un projet est de créer une rétine artificielle composée de 100 microcapteurs pour corriger la vue. D'autres ambitieuses applications biomédicales sont aussi présentées, tel que : la surveillance de la glycémie, la surveillance des organes vitaux ou la détection précoce de cancers. Des réseaux de capteurs permettraient théoriquement une surveillance permanente des patients et une possibilité de collecter des informations physiologiques de meilleure qualité, facilitant ainsi le diagnostic de quelques maladies. [I.9]
I.4.7 Applications domestiques : Les RCSF peuvent être employés pour fournir plus d'environnements vivants plus commodes et plus intelligents pour des êtres humains. •
Maison intelligente : Des capteurs sans fil peuvent être encastrés dans une maison et
être connectés pour former un réseau domestique autonome. Par exemple, un réfrigérateur intelligent connecté à un fourneau ou à un four microondes intelligent peut préparer un menu basé sur l'inventaire du réfrigérateur et envoyer des paramètres à cuire appropriés au fourneau ou au four microondes intelligent, qui placeront la température et le temps désirés pour faire cuire. Le contenu et les programmes des lecteurs de TV, de magnétoscope, de DVD, ou de CD peuvent être surveillés et contrôlés à distance pour répondre aux différents besoins des membres de la famille. •
Télémétrie : Des capteurs sans fil peuvent être utilisés pour indiquer à distance les
compteurs de service dans une maison, par exemple, l'eau, gaz, ou électricité, et puis envoient les relevés à un centre éloigné par la communication sans fil. En plus des applications ci-dessus, l’auto-configuration des RCSF peut être utilisée dans beaucoup d'autres zones, par exemple, secours en cas de catastrophe, contrôle du trafic, gestion d'entrepôt, et génie civil. Cependant, un certain nombre de problèmes techniques doivent être résolus avant que ces applications passionnantes deviennent une réalité. [I.8]
ELBOUGHDIRI Abdessalem
34
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.4.8 Applications de traçabilité et de localisation : Suite à une avalanche il est nécessaire de localiser les victimes enterrées sous la neige en équipant les personnes susceptibles de se trouver dans des zones à risque par des capteurs. Ainsi, les équipes de sauvetage peuvent localiser plus facilement les victimes. Contrairement aux solutions de traçabilité et de localisation basées sur le système de GPS (Global Positionning System), les réseaux de capteurs peuvent être très utiles dans des endroits clos comme les mines par exemple.
I.4.9 Applications liées à la sécurité : Les réseaux de surveillance sont constitués des nœuds fixes et qui contrôlent d’une façon continue la détection d’un événement qui est jugé douteux. Les nœuds transmettent seulement les rapports concernant une violation de la sécurité. Ce type de réseau nécessite un excellent temps de latence pour une bonne performance. Un exemple de tel réseau est la détection des incendies dans les forêts et spécialement le projet « FireBug» installé dans les forêts de Californie.
I.5 Contrainte d’un réseau de capteurs sans fil : La conception et la réalisation des réseaux de capteurs sans fil sont influencées par plusieurs paramètres. Ces facteurs servent comme directives pour le développement des algorithmes et protocoles utilisés dans les RCSF.
I.5.1 Durée de vie du réseau : C’est l’intervalle de temps qui sépare l’instant de déploiement du réseau de l’instant où l'énergie du premier nœud s'épuise. Selon l’application, la durée de vie exigée pour un réseau peut varier entre quelques heures et plusieurs années. 18 e 16 i g r e 14 n é ’ 12 d ) n 10 o W i t m 8 a ( m 6 m o s 4 n o 2 C 0 Traitements
Emissions
Réceptions
Ecoute
Mise en Veille
Captage
Figure I.11 : Consommation d’énergie dans un nœud de capteur sans fil.
ELBOUGHDIRI Abdessalem
[I.10]
35
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.5.2 Ressources limitées : En plus de l’énergie, les nœuds capteurs ont aussi une capacité de traitement et de mémoire limitée. En effet, les industriels veulent mettre en œuvre des capteurs simples, petits et peu coûteux.
I.5.3 Bande passante limitée : Afin de minimiser l’énergie consommée lors de transfert de données entre les nœuds, les capteurs opèrent à bas débit. Typiquement, le débit utilisé est de quelques dizaines de Kb/s. Un débit de transmission réduit n’est pas handicapant pour un réseau de capteurs où les fréquences de transmission ne sont pas importantes.
I.5.4 La scalabilité: Le nombre de nœuds déployés pour une application peut atteindre des milliers. Dans ce cas, le réseau doit fonctionner avec des densités de capteurs très grandes. Un nombre aussi important de nœuds engendre beaucoup de transmissions inter nodales et nécessite que la station de base ou le nœud puis soit équipée de mémoire suffisante pour stocker et gérer les informations reçues.
I.5.5 Topologie dynamique : La topologie des réseaux de capteurs peut changer au cours du temps pour les raisons suivantes: •
Les nœuds capteurs peuvent être déployés dans des environnements hostiles (champ
de batail par exemple), la défaillance d’un nœud capteur est, donc très probable. •
Un nœud capteur peut devenir non opérationnel à cause de l’expiration de son énergie.
•
Dans certaines applications, les nœuds capteurs et les stations de base sont mobiles.
I.5.6 Agrégation de donnée: Dans les réseaux de capteurs, les données produites par les nœuds capteurs voisins sont très corrélées spatialement et temporellement. Ceci peut engendrer la réception par la station de base d’informations redondantes. Réduire la quantité d’informations redondantes transmises par les capteurs permet de réduire la consommation d’énergie dans le réseau et ainsi d’améliorer sa durée de vie. L’une des techniques utilisée pour réduire la transmission d’informations redondantes est l’agrégation des données. Avec cette technique, les nœuds intermédiaires agrègent l’information reçue de plusieurs sources. Cette technique est connue aussi sous le nom de fusion de données.
ELBOUGHDIRI Abdessalem
36
CHAPITRE I
Présentation des Réseaux de Capteurs Sans Fil
I.5.7 Le cout de production : Le cout de production d’un seul capteur est très important pour l’évaluation du cout global du réseau. Si ce dernier est supérieur a celui nécessaire pour le déploiement des capteurs classiques, l’utilisation de cette nouvelle technologie ne serait pas financièrement justifiée. Par conséquent, réduire le cout de production jusqu’ a moins de 1 dollar par nœud est un objectif important pour la faisabilité de la solution des réseaux de capteurs sans-fil.
I.6 Conclusion : Dans ce chapitre, nous avons présenté les réseaux sans fil en général. Ils sont généralement décomposés selon deux modes : réseaux avec infrastructure ou centralisés (cellulaires) et réseaux sans infrastructure ou décentralisés (Ad Hoc). Nous avons décrit le capteur, ses fonctionnalités et son architecture. Nous avons cité les caractéristiques d’un réseau de capteurs et présenté quelques domaines applications. Nous avons décrit ensuite les RCSF qui sont apparentés aux réseaux Ad Hoc. Ces réseaux connaissent un grand essor grâce à la multitude d’applications qu’ils offrent ainsi que leur grande mobilité et aussi, grâce aux récents développements concernant la miniaturisation des composants électroniques. Dans le chapitre suivant, nous allons
présenter la plateforme TinyOS (Système
d’exploitation pour les réseaux de capteur sans fil) ainsi que son architecture et mode d’exécution et le langage de programmation NesC utilisé pour ce système.
ELBOUGHDIRI Abdessalem
37
CHAPITRE II
Le système d’exploitation TinyOS
CHAPITRE
II
LE SYSTEME D’EXPLOITATION TINYOS.
II.1 Introduction : Suite aux différents problèmes vécut par les réseaux de capteurs (problème énergétiques et de mémoire), l’université de Berkeley a développé alors un système d’exploitation minime destiné pour ces réseaux : TinyOS. Il est orienté "composants" afin de faciliter l'implémentation de ces réseaux, tout en minimisant la taille du code afin de respecter les contraintes de mémoire des composants matériels. TinyOS, comme les applications tournant dessus, a été écrit en NesC. Ce langage a été inventé pour répondre aux attentes des systèmes embarqués. Il possède une syntaxe proche de C, supporte le système multitâche de TinyOS et défini des mécanismes pour architecturer et "linker" des composants logiciels en un système embarqué robuste.
II.2 Présentation de TinyOS : TinyOS est un système d’exploitation Open Source pour les réseaux des capteurs, conçu par l’université américaine de BERKELEY. Le caractère open source permet à ce système d'être régulièrement enrichie par une multitude d'utilisateurs. Sa conception a été entièrement réalisée en NesC, langage orienté composant syntaxiquement proche du C. Il respecte une architecture basée sur une association de composants, réduisant ainsi la taille du code nécessaire à sa mise en place. Cela s’inscrit dans le respect des contraintes de mémoires qu’observent les capteurs, pourvus de ressources très limités dues à leur miniaturisation.
ELBOUGHDIRI Abdessalem
38
CHAPITRE II
Le système d’exploitation TinyOS
Pour autant, la bibliothèque des composants de TinyOS est particulièrement complète, puisqu’on y retrouve des protocoles réseaux, des pilotes de capteurs, et des outils d’acquisition de données. Un programme s’exécutant sur TinyOS est constitué d'une sélection de composants systèmes et de composants développés spécifiquement pour l'application à laquelle il sera destiné (mesure de température, du taux d’humidité…). TinyOS s’appuie sur un fonctionnement évènementiel, c'est à dire qu’il ne devient actif qu’à l’apparition de certains évènements, par exemple l’arrivée d’un message radio. Le reste du temps, le capteur se trouve en état de veille, garantissant une durée de vie maximale connaissant les faibles ressources énergétiques des capteurs. Ce type de fonctionnement permet une meilleure adaptation à la nature aléatoire de la communication sans fil entre capteurs.
II.2.1 Propriétés de TinyOS: Le plus gros avantage de TinyOS est qu’il est basé sur un fonctionnement événementiel, c’est-à-dire qu’il ne devient actif qu’à l’apparition de certains événements. Le reste du temps, le capteur se trouve en état de veille afin de garantir une durée de vie maximale aux faibles ressources énergétiques du capteur. TinyOS se distingue aussi par son caractère non préemptif, c’est-à-dire qu’il ne gère pas les interruptions entre tâches. Par contre il donne une priorité aux interruptions matérielles qui peuvent à tout moment stopper l’exécution d’une tâche. Pour terminer, TinyOS ne gère pas de ”temps réel” car il n’est pas prévu pour manipuler des niveaux de priorité. TinyOS est basé sur quelques grandes propriétés qui font que ce système d’exploitation, s’adapte particulièrement bien aux systèmes à faible ressources : •
Disponibilité et sources : TinyOS est un système principalement développé et
soutenu par l'université américaine de Berkeley, qui le propose en téléchargement sous la licence BSD et en assure le suivi. Ainsi, l'ensemble des sources sont disponibles pour de nombreuses cibles matérielles.
•
Event-driven : Le fonctionnement d'un système basé sur TinyOS s'appuie sur la
gestion des évènements se produisant. Ainsi, l'activation de tâches, leur interruption ou encore la mise en veille du capteur s'effectue à l'apparition d'évènements, ceux-ci ayant la plus forte priorité. Ce fonctionnement évènementiel (event-driven) s'oppose au fonctionnement dit temporel (time-driven) où les actions du système sont gérées par une horloge donnée.
ELBOUGHDIRI Abdessalem
39
CHAPITRE II •
Le système d’exploitation TinyOS
Langage : Comme nous l'avons évoqué plus haut, TinyOS a été programmé en
langage NesC que nous allons détailler plus loin.
•
Préemptif : Le caractère préemptif d'un système d'exploitation précise si celui-ci
permet l'interruption d'une tâche en cours. TinyOS ne gère pas ce mécanisme de préemption entre les tâches mais donne la priorité aux interruptions matérielles. Ainsi, les tâches entreelles ne s'interrompent pas mais une interruption peut stopper l'exécution d'une tâche.
•
Temps réel : Lorsqu'un système est dit « temps réel » celui-ci gère des niveaux de
priorité dans ses tâches permettant de respecter des échéances données par son environnement. Dans le cas d'un système strict, aucune échéance ne tolère de dépassement contrairement à un système temps réel mou. TinyOS se situe au-delà de ce second type car il n'est pas prévu pour avoir un fonctionnement temps réel.
•
Consommation : TinyOS a été conçu pour réduire au maximum la consommation en
énergie d’un nœud capteur. Ainsi, lorsque aucune tâche n’est active, il se met automatiquement en mode veille.
Le tableau II.1 ci-dessous résume ses propriétés :
Propriété
Valeur pour TinyOS
Type Event-driven Disponibilité Open source Langage NesC Préemptif Non Temps réel Non Source Fournies Tableau II.1: Propriété de TinyOS
II.2.2 Caractéristiques de TinyOS : •
Concurrence : utilise une architecture orientée événement
•
Modularité :
•
Application composée de composants
OS + Application compilés en un seul exécutable
Communication :
ELBOUGHDIRI Abdessalem
40
CHAPITRE II
Le système d’exploitation TinyOS
Utilise un modèle event/command
Ordonnancement FIFO non préemptif
Pas de séparation noyau/utilisateur
•
II.2.3 Allocation de la mémoire : Il est important de préciser de quelle façon un système d'exploitation aborde la gestion de la mémoire. C'est encore plus significatif lorsque ce système travaille dans un espace restreint. TinyOS a une empreinte mémoire très faible puisqu'il ne prend que 300 à 400 octets dans le cadre d'une distribution minimale. En plus de cela, il est nécessaire d'avoir 4 Ko de mémoire libre qui se répartissent suivant le la figure II.1. •
La pile : sert de mémoire temporaire au fonctionnement du système notamment pour
l'empilement et le dépilement des variables locales. •
Les variables globales : réservent un espace mémoire pour le stockage de valeurs
pouvant être accessible depuis des applications différentes. •
La mémoire libre : pour le reste du stockage temporaire.
La gestion de la mémoire possède de plus quelques propriétés. Ainsi, il n'y a pas d'allocation dynamique de mémoire et pas de pointeurs de fonctions. Bien sur cela simplifie grandement l'implémentation. Par ailleurs, il n'existe pas de mécanisme de protection de la mémoire sous TinyOS ce qui rend le système particulièrement vulnérable aux crash et corruptions de la mémoire.
Figure II.1 : Organisation de la mémoire dans TinyOS
ELBOUGHDIRI Abdessalem
41
CHAPITRE II
Le système d’exploitation TinyOS
II.3 Structure logicielle : Le système d'exploitation TinyOS s'appuie sur le langage NesC. Celui-ci propose une architecture basée sur des composants, permettant de réduire considérablement la taille mémoire du système et de ses applications. Chaque composant correspond à un élément matériel (LEDs, timer, ADC . . .) et peut être réutilisé dans déférentes applications. Ces applications sont des ensembles de composants associés dans un but précis. Les composants peuvent être des concepts abstraits ou bien des interfaces logicielles aux entrées-sorties matérielles de la cible étudiée (carte ou dispositif électronique). L'implémentation de composants s'effectue en déclarant des tâches, des commandes ou des évènements.
Figure II.2 : Interactions internes au système TinyOS
Les évènements sont prioritaires par rapport aux tâches et peuvent interrompre la tache en cours d'exécution. Ils permettent de faire le lien entre les interruptions matérielles (pression d'un bouton, changement d'état d'une entrée, . . .) et les couches logicielles que constituent les taches.
ELBOUGHDIRI Abdessalem
42
CHAPITRE II
Le système d’exploitation TinyOS
II.4 Modèle d’exécution de TinyOS : Pour maintenir une grande efficacité requise par les réseaux de capteurs, TinyOS utilise une programmation par évènement. Ce modèle permet un très haut niveau de concurrence pour un espace très réduit de mémoire. L’implémentation des composants de TinyOS s’effectue en déclarant des tâches, des commandes ou des évènements. Nous allons détailler ceux-ci dans le tableau II.2. Action Tâche
Utilisation Travaux de « longue durée »
Commande
Exécution d’une fonctionnalité précise dans un autre composant Evènement Equivalent logiciel à une interruption matérielle Tableau II.2 : différents actions dans TinyOS
TinyOS dispose de 2 types d'entités ordonnançables : interruptions (évènements) et tâches.
II.4.1 Programmation par évènement : Dans un système basé sur la programmation par évènement, chaque exécution est partagée entre les différentes taches de traitement. Dans TinyOS, chaque module est désigné pour fonctionner en attendant continuellement de répondre aux évènements inattendus. Quand un évènement est signalé, le traitement correspondant est exécuté. Une fois totalement terminé, la main est redonnée au système pour continuer sa tâche antérieure. En plus de l’efficacité de l’allocation du CPU, la programmation par évènement permet d’obtenir des opérations économiques en énergie. Il est très important aussi pour la consommation d’énergie que les applications signalent la fin de leurs évènements et l’utilisation du CPU. Dans TinyOS, les taches associées avec un évènement sont exécutées très rapidement après leurs signalisations. Une fois terminé, le CPU entre en veille en attendant une nouvelle réception d’évènement.
II.4.2 Tâches : Un des facteurs limitant la programmation par évènement est la longue exécution des tâches qui peut interrompre d’autres programmes importants. Si l’exécution d’un évènement ne finit jamais, toutes les autres fonctions vont être interrompues. Pour éviter ce problème, TinyOS fourni un mécanisme d’exécution appelé tâche. Une tâche est un bout de programme ELBOUGHDIRI Abdessalem
43
CHAPITRE II
Le système d’exploitation TinyOS
qui s’exécute jusqu’à la fin sans interférer avec les autres évènements. Les tâches sont utilisées pour effectuer la plupart des blocs d’instruction d’une application. A l’appel d’une tâche, celle-ci va prendre place dans une file d’attente de type FIFO mais elle ne sera exécuté que lorsque il n’y a plus d’évènements. En plus les tâches peuvent être interrompues à tout moment par des évènements. D’autre part, il n’y a pas de mécanisme de préemption entre les tâches et une tache activée s’exécute en entier. Ce mode de fonctionnement permet de bannir les opérations pouvant bloquer le système. Par ailleurs, lorsque la file d’attente des taches est vide, le système d’exploitation met en veille le dispositif jusqu’au lancement de la prochaine interruption (on retrouve le fonctionnement Event-driven).
II.4.3 Description de l’ordonnanceur TinyOS : La gestion des tâches et des évènements est vitale pour TinyOS. Le choix d’un ordonnanceur déterminera le fonctionnement global du système et le dotera de propriétés précises telles que la capacité à fonctionner en temps réel. L’ordonnanceur TinyOS c’est : •
2 niveaux de priorité (bas pour les tâches, haut pour les évènements) ;
•
1 file d’attente FIFO (disposant d’une capacité de 7).
Par ailleurs, entre les tâches, un niveau de priorité est défini permettant de classer les tâches, tout en respectant la priorité des interruptions (ou évènements). Lors de l’arrivée d’une nouvelle tache, celle-ci sera placée dans la file d’attente en fonction de sa priorité (plus elle est grande, plus le placement est proche de la sortie). Dans le cas ou la file d’attente est pleine, la tâche dont la priorité est la plus faible est enlevée de la FIFO.
II.5 Cibles possibles pour TinyOS : Il existe de nombreuses cibles possibles pour ce système d'exploitation embarqué. Malgré leurs différences, elles respectent toutes globalement la même architecture basée sur un noyau central autour duquel s'articule les différentes interfaces d'entrée-sortie, de communication et d'alimentation. La figure II.3 représente cette architecture, qui est enfaite la représentation générale d’un nœud de capteur.
ELBOUGHDIRI Abdessalem
44
CHAPITRE II
Le système d’exploitation TinyOS
Figure II.3 : Architecture générale des cibles utilisant TinyOS •
Mote, processeur, RAM et Flash : On appelle généralement Mote la carte physique
utilisant TinyOS pour fonctionner. Celle-ci a pour cœur le bloc constitué du processeur et des mémoires RAM et Flash. Cet ensemble est à la base du calcul binaire et du stockage, à la fois temporaire pour les données et définitif pour le système TinyOS. •
Radio et antenne : TinyOS est prévu pour mettre en place des réseaux sans fils, les
équipements étudiés sont donc généralement équipés d'une radio ainsi que d'une antenne afin de se connecter à la couche physique que constitue les émissions hertziennes. •
LED, interface, capteur : TinyOS est prévu pour mettre en place des réseaux de
capteurs, on retrouve donc des équipement bardés de différents types de détecteurs et autres entrées. •
Batterie : Comme tout dispositif embarqué, ceux utilisant TinyOS sont pourvus d'une
alimentation autonome telle qu'une batterie.
II.6 Package TinyOS : TinyOS est prévu pour fonctionner sur une multitude de plateformes, disponibles dès l'installation. En effet, TinyOS peut être installé à partir d'un environnement Windows (2000 et XP) ou bien GNU/Linux (Red Hat essentiellement, mais d'autres distributions sont également possibles). Deux principales versions de TinyOS sont disponibles : la version stable (TinyOS 1.x) et la version actuellement qui a subit beaucoup de contribution (TinyOS
2.x).
ELBOUGHDIRI Abdessalem
45
CHAPITRE II •
Le système d’exploitation TinyOS
Windows : un guide propose l'installation de tous les principaux outils nécessaires au
bon fonctionnement du système, notamment Cygwin (couche d'émulation de l'API Linux) qui permet d'avoir une interface Unix sous Windows. Le JDK Java 1.4 ou ultérieure de Sun est nécessaire afin d'effectuer la procédure d'installation. •
GNU/Linux : des packages RPM sont proposés au téléchargement, un guide explique
la marche à suivre. Les distributions Linux ayant un autre gestionnaire de paquet peuvent utiliser un programme (comme « Alien ») pour installer les packages, ou compiler directement à partir des sources. Le JDK de IBM est nécessaire. Par la suite, des packages supplémentaires peuvent être ajoutés en passant par le site SourceForge, qui met à disposition le code open source de TinyOS et d'un ensemble de programmes dédiés.
II.7 Description du langage NesC : Le langage NesC (network embedded system C) est un dialecte du C. C’est un langage de programmation conçu pour la réalisation de systèmes embarqués distribués. Il cible en particulier l’implémentation d’applications pour les réseaux de capteurs. Il offre donc une réactivité importante vis-à-vis de l’environnement, une gestion de la concurrence même intensive et un support de communication. De plus afin de tenir compte des fortes contraintes du domaine visé, de nombreuses optimisations ont été proposées pour diminuer l’occupation de l’espace mémoire. En outre, afin de permettre un développement simple, robuste et rapide des applications, nesC s’appuie sur le concept des composants. Ces derniers correspondent à des éléments matériels (LEDs, timer, ADC …) et peuvent être réutilisé dans différentes applications. Ces applications sont des ensembles de composants associés dans un but précis. Le développement dans TinyOS s’effectue à travers NesC. Le langage NesC est une extension du langage de programmation C qui est été désigné pour faciliter l’implémentation des structures et des composants TinyOS. Dans le concept de NesC il y a une séparation entre la construction et la composition. Les programmes sont construits à l’intérieur des composants qui sont ensuite relié entre eux pour former toute une application. Les composants NesC utilise et fournie des interfaces bidirectionnelles qui représente les seuls points d’accès pour les composants TinyOS.
ELBOUGHDIRI Abdessalem
46
CHAPITRE II
Le système d’exploitation TinyOS
Le langage NesC possède 3 types de fichiers : module, configuration et interface : •
Module : ils constituent les briques élémentaires de code et implémentent une ou
plusieurs interfaces. Une application peut faire appel à des fichiers de configuration pour regrouper les fonctionnalités des modules. •
Configuration : c’est un fichier qui permet de faire le lien entre tous les composants.
•
Interfaces : c’est un fichier décrivant les commandes et les évènements proposés par
le composant qui les implémente. L’utilisation des mots clefs « Use » et «Provide » au début d’un composant permet de savoir respectivement si celui-ci fait appel à une fonction de l’interface ou redéfini son code.
II.7.1 Les Principaux caractéristiques de NesC : NesC est constitué d’interfaces et de composants. Une interface peut être utilisée ou peut être fournie. Les composants sont des modules ou des configurations. Une application est représentée comme un ensemble de composants, regroupés et rattachés entre eux. Les interfaces sont utilisées pour les opérations qui décrivent l’interaction bidirectionnelle. Le fournisseur de l’interface doit mettre en application des commandes, alors que l’usager de l’interface doit mettre en application des événements. Deux types de composants existent : Les modules, qui mettent en application des spécifications d’un composant. Les configurations, qui se chargeront d’unir différents composants en fonction des interfaces (commandes ou événements). La figure suivante montre un diagramme de blocs dans lequel est décrit le processus de compilation pour une application TinyOS écrite en NesC :
Figure II.4 : processus de compilation pour une application TinyOS écrite en NesC ELBOUGHDIRI Abdessalem
47
CHAPITRE II
Le système d’exploitation TinyOS
II.7.2 Les fichiers dans NesC : Les fichiers de NesC sont classés en trois types : Interfaces, modules et configurations.
II.7.2.1Interface : Une interface définie les interactions entre deux composants. Les interfaces sont bidirectionnelles, elles spécifient un ensemble de fonctions à implémenter par les composants fournisseurs de l'interface (commands), et un ensemble à implémenter par les composants utilisateurs de l'interface (events). •
command vs. Event : Les commands font typiquement des appels du haut vers le bas
(des composants applicatifs vers les composants plus proches du matériel), alors que les events remontent les signaux du bas vers le haut. •
Exemple d'interface :
interface SendMsg { command result_t send(uint16_t address, uint8_t length, TOS_MsgPtr msg); event result_t sendDone(TOS_MsgPtr msg, result_t success); }
•
Appeler une commande et signaler un événement :
//Appeler une commande call Send.send(1, sizeof(Message), &msg1); //Signaler un event signal Send.sendDone(&msg1, SUCCESS);
II.7.2.2Module : Un module est un composant qui implémente une ou plusieurs interfaces et peut utiliser une ou plusieurs interfaces. Cette partie du code est généralement plus étendue et c’est dans celle-ci que l’on programme réellement le comportement qu’on souhaite voir réalisé par l’application. Cette partie là est à son tour divisée en trois sous-sections : Provides, Uses, Implementation. La première sous-section, « provides », indique au compilateur les interfaces que va fournir notre composant. Par exemple, si notre composant est une application on doit fournir au moins l’interface StdControl. La sous-section « uses » informe le compilateur que nous allons faire usage d’une interface (on pourra donc effectuer des appels aux méthodes de cette interface). Pour faire cela, on a besoin de respecter quelques règles : si nous utilisons une interface, il nous faut avoir dans la section « implementation » un lien (”wiring”) reliant cette interface avec un ELBOUGHDIRI Abdessalem
48
CHAPITRE II
Le système d’exploitation TinyOS
composant qui la fournit. Finalement, utiliser une interface oblige implicitement à gérer les événements pouvant se produire du fait d’avoir utilisé cette interface précise. La sous-section « implementation », est celle qui contiendra toutes les méthodes nécessaires pour fournir le comportement souhaité à notre composant ou à notre application. Cette sous-section doit contenir au moins : – Les variables globales que va utiliser notre application. – Les fonctions qu’elle doit mettre en œuvre pour les interfaces qui nous fournissons. – Les événements qu’elle doit mettre en œuvre venant des interfaces que nous utilisons.
Figure II.5 : Syntaxe d'un module
II.7.2.3Configuration : C’est à cet endroit que l’on déclare les autres composants dont se servira l’application. Cette possibilité offerte par le langage permet de faire de la programmation modulaire et de réutiliser des composants préalablement définis. Dans nesC, deux composants sont reliés ensemble en les connectant (wiring). Les interfaces du composant utilisateur sont reliées (wired) aux mêmes interfaces du composant fournisseur. Il existe 3 possibilités de connexion (wiring statements) dans nesC: •
endpoint1 = endpoint2
•
endpoint1 -> endpoint2
•
endpoint1 <- endpoint2 (équivalent: endpoint2 -> endpoint1)
Les éléments connectés doivent être compatibles : Interface à interface, "command" à "command", "event" à "event". Il faut toujours connecter un utilisateur d'une interface à un fournisseur de l'interface.
ELBOUGHDIRI Abdessalem
49
CHAPITRE II
Le système d’exploitation TinyOS
II.7.3 Types de données : Les types de données qui peuvent être utilisés en NesC sont tous ceux que fournit le langage C standard plus quelques autres qui n’apportent pas de puissance de calcul mais qui sont très utiles pour la construction de paquets puisqu’ils fournissent à l’utilisateur le nombre de bits qu’ils occupent (ceci est important au moment de la transmission des informations par l’intermédiaire des ondes radio). Ces types additionnels sont : – uint16_t : entier non signé sur 16 bits. – uint8_t : entier non signé sur 8 bits. – result_t : utilisé pour savoir si une fonction a été exécuté avec succès ou non, c’est comme un booléen mais avec les valeurs SUCCESS et FAIL. (Retour de fonction) – bool : valeur booléenne qui peut être TRUE ou FALSE. En NesC il est possible de faire une utilisation dynamique de la mémoire mais ce n’est pas très recommandé (à moins que cela ne soit absolument nécessaire). Pour pouvoir l’utiliser il existe un composant spécial appelé MemAlloc qui permet une gestion dynamique de la mémoire.
II.7.4 Types de fonctions en NesC : En NesC les fonctions peuvent être de types très variés. Il y a d’abord les fonctions classiques avec la même sémantique qu’en C et la façon de les invoquer est aussi la même qu’en C. Il y a aussi des types supplémentaires de fonctions : task, event, command. Les fonctions « command » sont principalement des fonctions qui sont exécutées de manière synchrone, c’est-à-dire que lorsqu’elles sont appelées elles sont exécutées immédiatement. La manière d’appeler ce genre de fonction est : call interface . nomFonction
Les fonctions « task » sont des fonctions qui sont exécutées dans l’application, utilisant la même philosophie que les fils ou « threads », c’est principalement une fonction normale qui est invoquée de la manière suivante : post interface . nomTache
Immédiatement après son invocation, l’exécution du programme qui l’a invoqué se poursuit.
ELBOUGHDIRI Abdessalem
50
CHAPITRE II
Le système d’exploitation TinyOS
Les fonctions « event » sont des fonctions qui sont appelées quand on relèvera un signal dans le système, elles possèdent principalement la même philosophie que la programmation orientée événements, de sorte que, lorsque le composant reçoit un événement, on effectue l’invocation de cette fonction. Il existe une méthode pour pouvoir invoquer manuellement ce type de fonctions : signal interface . nomEvenement
Figure II.6 : Architecture d’une application NesC
ELBOUGHDIRI Abdessalem
51
CHAPITRE II
Le système d’exploitation TinyOS
II.8 Simulation : TOSSIM, PowerTOSSIM et TinyViz : Les environnements de simulation son des outils indispensables pour
prévoir le
comportement d’un réseau de capteur sans fil, parmi eux il y on a ceux qui sont dédiés à la plateforme TinyOS.
II.8.1 TOSSIM : TOSSIM (TinyOS SIMulator) est un simulateur discret basé sur la programmation par événement et qui a été conçu et désigné pour simuler les réseaux de capteurs sans fil qui utilise la plateforme TinyOS. Le principale but de TOSSIM est de créer une simulation très proche de ce qui ce passe dans ces réseaux dans le monde réel. TOSSIM simule le comportement des applications de TinyOS à un niveau très bas. Le réseau est simulé au niveau des bits et chaque interruption dans le système est capturée. TOSSIM fourni 2 modèles de radios pour la communication. Le modèle par défaut est celui « simple ». Les paquets sont transmis dans le réseau avec aucune erreur et ils sont reçus par chaque nœud. Avec ce modèle il est ainsi possible que deux nœuds différents peuvent envoyer un paquet en même temps avec la conséquence que ces deux paquets seront alors détruit à cause du chevauchement des signaux. Le deuxième modèle est le modèle « lossy ». Dans ce modèle les nœuds sont placés dans un graphe direct formé d’un couple (a, b) ce qui signifie qu’un paquet envoyé par le nœud a peut être reçu par le nœud b. TOSSIM est équipé aussi d’un simulateur graphique TinyViz. Cette application est équipée par plusieurs API plugins qui permet d’ajouter plusieurs fonctions à notre simulateur comme par exemple contrôler les entrées de notre radio ou bien suivre la dépense d’énergie en utilisant un autre simulateur qui s’appelle PowerTOSSIM.
II.8.2 PowerTOSSIM : PowerTOSSIM est l’extension de TOSSIM qui contient un modèle de consommation d’énergie. Pour les valeurs de consommation, les auteurs se sont basés sur le Mica2. Ils ont supposé connaitre les consommations des différents composants de ce nœud suivant leurs états. Grâce au modèle de simulation basé sur TinyOS, on connaît immédiatement l’état des composants puisque les changements d’états correspondent à des événements dans TinyOS et donc dans TOSSIM. Par conséquent, PowerTOSSIM permet d’avoir des résultats très proches de la réalité sur le plan de la consommation d’énergie. Enfin, les simulateurs TOSSIM et PowerTOSSIM ne conviennent que pour des applications écrites en TinyOS.
ELBOUGHDIRI Abdessalem
52
CHAPITRE II
Le système d’exploitation TinyOS
II.8.3 TinyViz : Pour une compréhension moins complexe de l’activité d’un réseau, TOSSIM peut être utilisé avec une interface graphique, TinyViz, permettant de visualiser de manière intuitive le comportement de chaque capteur au sein du réseau. TinyViz est une application graphique qui donne un aperçu de notre réseau de capteurs à tout instant, ainsi que des divers messages qu'ils émettent. Il permet de déterminer un délai entre chaque itération des capteurs afin de permettre une analyse pas à pas du bon déroulement des actions.
II.9 Conclusion : Dans ce chapitre, nous avons étudié l’architecture du système TinyOS ; nous avons examiné son mode d’exécution et son mode d’ordonnancement des différents types d’action qui sont évènement, commande et tâche. Nous avons aussi présenté le langage NesC ainsi que le simulateur TOSSIM ainsi que PowerTOSSIM. Dans le chapitre suivant, nous allons concevoir modéliser un réseau de capteur sans fil avec l’environnement TinyOS.
ELBOUGHDIRI Abdessalem
53
CHAPITRE III
Conception et implémentation
CHAPITRE
III
CONCEPTION ET IMPLEMENTATION
III.1 Introduction : Dans le but de concevoir une application sous la plateforme TinyOS, il s’est avéré nécessaire de prendre en mesure l’étude de notre cas spécifique par des outils est des moyens basés sur la modélisation. Pour ce là, nous adoptons UML comme un outil pour modélisé les différentes parties de notre application, puis on essai d’implémenter notre modèle on NesC. Par la suite une simulation sera nécessaire pour validé notre travaille.
UML fournit une panoplie d'outils permettant de représenter l'ensemble des éléments du monde objet (classes, objets, ...) ainsi que les liens qui les relie. Toutefois, étant donné qu'une seule représentation est trop subjective, UML fournit un moyen astucieux permettant de représenter diverses projections d'une même représentation grâce aux vues. Une vue est constitué d'un ou plusieurs diagrammes. On distingue deux types de vues : •
Les vues statiques.
•
Les vues dynamiques.
Cette partie présente donc les diagrammes de cas d'utilisation, d'états, d'activités et de séquences.
ELBOUGHDIRI Abdessalem
54
CHAPITRE III
Conception et implémentation
III.2 Les diagrammes statiques : III.2.1 Les diagrammes de cas d'utilisation :
Figure III.1 : Cas d'utilisation haut niveau
Figure III.2 : Cas d'utilisation pour le capteur puits
ELBOUGHDIRI Abdessalem
55
CHAPITRE III
Conception et implémentation
Figure III.3 : Cas d'utilisation pour les nœuds de capteur collecteur
Figure III.4 : Diagramme de cas d'utilisation pour les capteurs ELBOUGHDIRI Abdessalem
56
CHAPITRE III
Conception et implémentation
III.2.2 Le diagramme des classes :
Figure III.5 : Diagramme des classes du réseau de capteur sans fil
III.3 Les diagrammes dynamiques : III.3.1 Les diagrammes d'états :
Figure III.6 : Diagramme d'états d'un nœud capteur Collecteur ELBOUGHDIRI Abdessalem
57
CHAPITRE III
Conception et implémentation
Figure III.7 : Diagramme d'états d'un nœud capteur puits
III.3.2 Les diagrammes d'activités :
Figure III.8 : Diagramme d'activité pour un capteur collecteur
ELBOUGHDIRI Abdessalem
58
CHAPITRE III
Conception et implémentation
Figure III.9 : Diagramme d'activité pour un capteur puits
III.3.3 Les diagrammes de séquence :
Figure III.10: Diagramme de séquence entre l’administrateur et un capteur puits
ELBOUGHDIRI Abdessalem
59
CHAPITRE III
Conception et implémentation
Figure III.11 : Diagramme de séquence entre un capteur puits et un capteur collecteur
III.4 Préparation de l’environnement de travail Dans cette section nous utilisons Windows comme environnement de travaille, mais comme le développement des applications de la plateforme TinyOS ne se fait que dans des environnements Linux, nous allons utiliser un émulateur de l’environnement Linux sous Windows qui s’appel Cygwin. Pour notre code source, un IDE sera bien utile pour coder les différentes parties, nous utilisons Eclipse comme éditeur. Dans la suite voici un plan d’action pour mettre en place cet environnement de travaille :
•
Installation de Cygwin, TinyOS et le compilateur NesC.
•
Installation d’Eclipse et son paramétrage pour TinyOS.
Pour l’installation de Cygwin TinyOS et le compilateur NesC nous avons utilisée un pack d’installation
qui comporte ces trois composantes et tous ce qui va avec
disponible dans le site de TinyOS. [IV.1]
ELBOUGHDIRI Abdessalem
60
CHAPITRE III
Conception et implémentation
Figure III.12 : choix des options d’installation de TinyOS
Figure III.13 : Installation de Cygwin ELBOUGHDIRI Abdessalem
61
CHAPITRE III
Conception et implémentation
Pour le choix de l’installation de Cygwin nous utilisons « C:\ » Comme racine affin de faciliter la recherche des PATH pour Eclipse, TinyOS sera automatiquement intégré dans Cygwin dans le sous-répertoire « C:\cygwin\opt\tinyos-1.x ».
Pour l’installation de l’IDE Eclipse, il suffit de télécharger une version d’Eclipse orienté modeling situé à l’adresse suivante : http://www.eclipse.org/downloads/ Après avoir décompressé le fichier téléchargé, on lance Eclipse à partir du sousrépertoire « \eclipse\ ». Affin de paramétrer Eclipse pour qu’il fonctionne avec une perspective TinyOS, on doit lui ajouté le plugin Yeti 2, et ceci à partir du menu help en suivant le démarche « help->Install new software->add... » En ajoutant le lien suivant : http://tos-ide.ethz.ch/update/site.xml/ La figure IV.14 nous montre la fenêtre d’ajout du plugin Yeti 2 ainsi que la sélection de
ses différentes composantes.
Figure III.14 : Ajout du plugin Yeti 2 à Eclipse.
Sous le menu « Window > Open Perspective > Other... » On sélectionne la perspective TinyOS et puis sous le menu « window > preference » on procède à définir le chemin de Cygwin et TinyOS pour Eclipse.
ELBOUGHDIRI Abdessalem
62
CHAPITRE III
Conception et implémentation
Figure III.15 : Définition des chemins de Cygwin et TinyOS pour Eclipse
Maintenant tout est prés pour ouvrir un nouveau projet sous l’IDE Eclipse Dédié à des applications TinyOS, pour cela nous suivant le chemin suivant :
«
File>New>New Project... ».
En sélectionne après « TinyOS>TinyOS Project ».
Figure III.16 : Création d’un nouveau projet TinyOS
Il faut définir « pc » comme « Target » pour compiler notre projet et obtenir un exécutable qui soit utile pour la simulation sur PC.
ELBOUGHDIRI Abdessalem
63
CHAPITRE III
Conception et implémentation
III.5 Implémentation en NesC: III.5.1 Code de l'application à déployer sur le capteur puits:
Figure III.17 : composantes du code à déployer sur le capteur puits
Le fichier « GenericBase.nc
»:
configuration GenericBase { } implementation { components Main, GenericBaseM, RadioCRCPacket as Comm, UARTNoCRCPacket, LedsC;
Main.StdControl -> GenericBaseM; GenericBaseM.UARTControl -> UARTNoCRCPacket; GenericBaseM.UARTSend -> UARTNoCRCPacket; GenericBaseM.UARTReceive -> UARTNoCRCPacket; GenericBaseM.RadioControl -> Comm; GenericBaseM.RadioSend -> Comm; GenericBaseM.RadioReceive -> Comm; GenericBaseM.Leds -> LedsC; }
Le fichier module GenericBaseM { provides interface StdControl; uses { interface StdControl as UARTControl; interface BareSendMsg as UARTSend; interface ReceiveMsg as UARTReceive; interface StdControl as RadioControl; interface BareSendMsg as RadioSend; interface ReceiveMsg as RadioReceive;
ELBOUGHDIRI Abdessalem
64
CHAPITRE III
Conception et implémentation
interface Leds;
} } implementation { TOS_Msg buffer; TOS_MsgPtr ourBuffer; bool sendPending;
command result_t StdControl.init() { result_t ok1, ok2, ok3;
ourBuffer = &buffer; sendPending = TRUE; ok1 = call UARTControl.init(); ok2 = call RadioControl.init(); ok3 = call Leds.init(); sendPending = FALSE; dbg(DBG_BOOT, "GenericBase initialized\n"); return rcombine3(ok1, ok2, ok3);
} command result_t StdControl.start() { result_t ok1, ok2;
ok1 = call UARTControl.start(); ok2 = call RadioControl.start(); return rcombine(ok1, ok2);
} command result_t StdControl.stop() { result_t ok1, ok2;
ok1 = call UARTControl.stop(); ok2 = call RadioControl.stop(); return rcombine(ok1, ok2);
} TOS_MsgPtr receive(TOS_MsgPtr received, bool fromUART) { TOS_MsgPtr nextReceiveBuffer = received; dbg(DBG_USR1, "GenericBase received %s packet\n", fromUART ? "UART" : "radio"); if ((!sendPending) && (received->group == (TOS_AM_GROUP & 0xff))) { result_t ok; nextReceiveBuffer = ourBuffer; ourBuffer = received; dbg(DBG_USR1, "GenericBase forwarding packet to %s\n", fromUART ? "radio" : "UART"); if (fromUART)
ELBOUGHDIRI Abdessalem
65
CHAPITRE III
Conception et implémentation
{ call Leds.redToggle(); ok = call RadioSend.send(received); } else { call Leds.greenToggle(); received->addr = TOS_UART_ADDR; ok = call UARTSend.send(received); } if (ok != FAIL) { dbg(DBG_USR1, "GenericBase send pending\n"); sendPending = TRUE; } else { call Leds.yellowToggle(); } } return nextReceiveBuffer; }
result_t sendDone(TOS_MsgPtr sent, result_t success) { if(ourBuffer == sent) { dbg(DBG_USR1, "GenericBase send buffer free\n"); if (success == FAIL) call Leds.yellowToggle(); sendPending = FALSE; } return SUCCESS; } event TOS_MsgPtr RadioReceive.receive(TOS_MsgPtr data) { if (data->crc) { return receive(data, FALSE); } else { return data; } } event TOS_MsgPtr UARTReceive.receive(TOS_MsgPtr data) { return receive(data, TRUE); } event result_t UARTSend.sendDone(TOS_MsgPtr msg, result_t success) { return sendDone(msg, success); } event result_t RadioSend.sendDone(TOS_MsgPtr msg, result_t success) { return sendDone(msg, success); }
}
ELBOUGHDIRI Abdessalem
66
CHAPITRE III
Conception et implémentation
III.5.2 Code de l'application à déployer sur les capteurs collecteur:
Figure III.18 : composantes du code à déployer sur les capteurs collecteurs
Le fichier « SenseToRfm.nc
»
configuration SenseToRfm { } implementation { components Main, SenseToInt, IntToRfm, TimerC, Photo as Sensor;
Main.StdControl -> SenseToInt; Main.StdControl -> IntToRfm; SenseToInt.Timer -> TimerC.Timer[unique("Timer")]; SenseToInt.TimerControl -> TimerC; SenseToInt.ADC -> Sensor; SenseToInt.ADCControl -> Sensor; SenseToInt.IntOutput -> IntToRfm; }
III.6 Simulation: Notre modèle d’expérimentation est établi sur 10 nœuds, dispersés aléatoirement sur une Surface carrée de 100 m². Nous assumons que tous les nœuds ont une position fixe durant toute la période de simulation. Dans la figure IV.19, TinyViz nous donne une image sur le comportement du réseau. ELBOUGHDIRI Abdessalem
67
CHAPITRE III
Conception et implémentation
Figure III.19 : Simulation de l’application sur TinyViz
III.7 Conclusion : La simulation nous a bien montrée les différents trafics entre les nœuds colleteurs et le nœud puits, avec un schéma qui représente le lien entre eux. Cette simulation nous a permis de validé notre travaille et notre modèle de réseau de capteur sans fil.
ELBOUGHDIRI Abdessalem
68
Conclusion générale
CONCLUSION GENERALE
Les réseaux des capteurs sans fil
constituent sans doute, un développement
technologique majeur apportant des solutions aux différents problèmes dans plusieurs domaines d’applications liés à la sécurité, la santé, l’agronomie, la domotique, etc. Dans le cadre de l’étude des réseaux de capteurs, nous étions amenés à modéliser des applications TinyOS. Il nous fallut tout d’abord comprendre le mécanisme de fonctionnement de ce minime système d’exploitation TinyOS, dégager l’ordonnance et la priorité entre les différents types de commande afin d’apporter après des solutions à cette modélisation. Pour y arriver, nous avons réussi à bien comprendre notre système en modélisant un système sur TinyOS et le valider par la suite par une simulation. Une perspective possible à ce projet serait sans doute la modélisation des applications plus complexes, en tenant compte des différents domaines d’application et leur besoins.
ELBOUGHDIRI Abdessalem
69