UNIVERSITE DE MONASTIR
MEMOIRE
Prsent pour lobtention du diplme de :
MASTERE
Spcialit : Technique de communication radiofrquence Par :
ELBOUGHDIRI ABDESSALEM
Sujet :
Soutenu le. Juin 2011, devant le jury compos : Pr. Pr Pr. Prsident Membre Membre (Encadreur)
A mon pre, ma mre A mes frres et mes surs A toute ma famille et mes amis
Remerciements
Je tiens exprimer mes vifs remerciements envers toutes les personnes qui ont contribu au bon droulement de ce travail. En particulier, jexprime ma gratitude mon encadreur M. Med Atri pour ses qualits professionnelles et humaines. Enfin, jadresse mes remerciements toute lquipe de la station de gaz Feriana pour leur accueil chaleureux et leur sympathie.
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 mdicales : .............................................................................................. 34 I.4.7 Applications domestiques : .......................................................................................... 34 I.4.8 Applications de traabilit et de localisation : ........................................................... 35 I.4.9 Applications lies la scurit : ...................................................................................35 I.5 Contrainte dun rseau de capteurs sans fil : .................................................................... 35 I.5.1 Dure de vie du rseau : ............................................................................................... 35 I.5.2 Ressources limites : ..................................................................................................... 36 I.5.3 Bande passante limite : ............................................................................................... 36 I.5.4 La scalabilit : .............................................................................................................. 36 I.5.5 Topologie dynamique : ................................................................................................. 36 I.5.6 Agrgation de donne: .................................................................................................. 36 I.5.7 Le cout de production : ................................................................................................. 37 I.6 Conclusion : ............................................................................................................................... 37 CHAPITRE II : Le systme dexploitation TinyOS ................................................................ 38 II.1 Introduction : ......................................................................................................................... 38 II.2 Prsentation de TinyOS : ..................................................................................................... 38 II.2.1 Proprits : ................................................................................................................... 39 II.2.2 Caractristiques de TinyOS : .................................................................................... 40 II.2.3 Allocation de la mmoire : ........................................................................................ 41 II.3 Structure logicielle : .............................................................................................................. 42 II.4 Modle dexcution de TinyOS : ........................................................................................ 43 II.4.1 Programmation par vnement : ............................................................................... 43 II.4.2 Tches : ........................................................................................................................ 43 II.4.3 Description de lordonnanceur 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 caractristiques 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 donnes : ..................................................................................................... 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 implmentation ..................................................................... 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'activits : ..................................................................................... 58 III.3.3 Les diagrammes de squence : .................................................................................. 59 III.4 prparation de lenvironnement de travail : ....................................................................60 III.5 Implmentation en NesC : ................................................................................................... 64 III.5.1 Code de l'application dployer sur le capteur puits : ......................................... 64 III.5.2 Code de l'application dployer sur les capteurs collecteur : .............................. 67 III.6 Simulation : ............................................................................................................................ 67 III.7 Conclusion : ............................................................................................................................ 68 Conclusion gnrale : ...................................................................................................................... 69 Bibliographie : .................................................................................................................................... 70
ELBOUGHDIRI Abdessalem
ELBOUGHDIRI Abdessalem
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 squence entre ladministrateur et un capteur puits ................. 59 Figure III.11 : Diagramme de squence entre un capteur puits et un capteur collecteur ...... 60 Figure III.12 : choix des options dinstallation de TinyOS ..................................................... 61 Figure III.13 : Installation de Cygwin ..................................................................................... 61 Figure III.14 : Ajout du plugin Yeti 2 Eclipse ...................................................................... 62 Figure III.15 : Dfinition des chemins de Cygwin et TinyOS pour Eclipse ........................... 63 Figure III.16 : Cration dun nouveau projet TinyOS ............................................................. 63 Figure III.17 : composantes du code dployer sur le capteur puits ..................................... 64 Figure III.18 : composantes du code dployer sur les capteurs collecteurs ........................ 67 Figure III.19 : Simulation de lapplication sur TinyViz .......................................................... 68
ELBOUGHDIRI Abdessalem
ELBOUGHDIRI Abdessalem
Introduction gnrale
INTRODUCTION GENERALE
Depuis leur cration, les rseaux de communication sans fil ont connu un succs sans cesse croissant au sein des communauts scientifiques et industrielles. Grce ses divers avantages, cette technologie a pu s'instaurer comme acteur incontournable dans les architectures rseaux actuelles. Le mdia hertzien offre en effet des proprits uniques, qui peuvent tre rsumes en trois points : la facilit du dploiement, l'ubiquit de l'information et le cot rduit d'installation. Au cours de son volution, le paradigme sans fil a vu natre diverses architectures drives, telles que : les rseaux cellulaires, les rseaux locaux sans fils et autres. Durant cette dernire dcennie, une architecture nouvelle a vu le jour : les rseaux de capteurs sans fil. Ce type de rseaux rsulte d'une fusion de deux ples de l'informatique moderne : les systmes embarqus et les communications sans fil. Un rseau de capteurs sans fil (RCSF), ou "Wireless Sensor Network" (WSN), est compos d'un ensemble d'units de traitements embarques, appeles "motes", communiquant via des liens sans fil. Le but gnral d'un WSN est la collecte d'un ensemble de paramtres de l'environnement entourant les motes, telles que la temprature ou la pression de l'atmosphre, afin de les acheminer vers des points de traitement. Les RCSF sont souvent considrs comme tant les successeurs des rseaux ad hoc. En effet, les RCSF partagent avec les MANET (Mobile Ad hoc NETworks) plusieurs proprits en commun, telles que l'absence d'infrastructure et les communications sans fil. Mais l'une des diffrences cls entre les deux architectures est le domaine d'application. Contrairement aux rseaux MANET, qui n'ont pas pu connatre un vrai succs, les RCSF ont su attirer un nombre croissant d'industriels, vu leur ralisme et leur apport concret.
ELBOUGHDIRI Abdessalem 8
Introduction gnrale
En effet, le besoin d'un suivie continu d'un environnement donn est assez courant dans diverses activits de la socit. Les processus industriels, les applications militaires de tracking, le monitoring d'habitat, ainsi que l'agriculture de prcision ne sont que quelques exemples d'une panoplie vaste et varie d'applications possibles du suivi continu offert par les RCSF. Grce ce potentiel riche en applications, les RCSF on su se dmarquer 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 cot et leur dploiement dans des zones parfois hostiles, les motes sont assez fragiles et vulnrables diverses formes de dfaillances : cassure, faible nergie, ... etc. Ces problmes rendent les RCSF des systmes fragilit inne, qui doit tre considre comme une proprit normale du rseau.
ELBOUGHDIRI Abdessalem
CHAPITRE I
CHAPITRE
PRESENTATION DES RESEAUX DE CAPTEURS SANS FIL
I.1 Introduction :
En 1860, le physicien James Clerk Maxwell a prvu lexistence de la propagation des ondes lectromagntiques, qui on t expliques la premire fois par le physicien allemand Heinrich Rudolf Hertz en 1888. C'tait juste le dbut d'une longue liste d'achvements par d'autres scientifiques et ingnieurs en plus de 100 ans de la communication sans fil. [I.1] Aujourdhui lessor des technologies sans fil offre de nouvelles perspectives dans le domaine de tlcommunication. En comparaison avec lenvironnement filaire,
lenvironnement sans fil permet aux utilisateurs une souplesse daccs et une facilite de manipulation de linformation travers des units de calcule mobiles (PC portable, PDA, capteur, ). Dans ce chapitre, nous prsenterons en premier lieu les rseaux sans fil en gnral. Nous dtaillerons en second lieu leur dcomposition en rseaux avec infrastructure (rseaux cellulaires) et sans infrastructure (rseaux Ad Hoc). Nous entamerons par la suite les RCSF en prsentant leurs caractristiques et leurs technologies toute en passant par leurs architectures de communication et protocolaire, puis aborderons les domaines dapplications des RCSF. Pour terminer, nous dcrirons les contraintes dun rseau de capteurs sans fil.
ELBOUGHDIRI Abdessalem
10
CHAPITRE I
I.2.1 Dfinition :
Un rseau sans fil (Wireless Network) est, comme son nom lindique, un rseau dans lequel les terminaux peuvent communiquer sans liaison filaire. Les terminaux du rseau se dplacent librement, tandis que le systme doit assurer toutes les fonctionnalits et tous les services dun rseau classique. Il peut tre associ un rseau de tlcommunication pour raliser des interconnexions entre nuds. La notion de nuds se restreint sur les extrmits dune connexion. Elle peut contenir diffrents 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 rseau des sites dont le cblage serait trop couteux raliser dans sa totalit, voire mme impossible. En effet, la mise en place des rseaux sans fil nexige pas de lourds amnagements des infrastructures comme cest le cas dans les rseaux filaires (creusement de tranches pour acheminer les cbles, quipement des btiments en cblage, goulottes et connecteurs, etc.). Nanmoins, ils prsentent des inconvnients tant donn quils sont caractriss par une faible puissance dmission et quils noffrent pas le mme niveau de scurit que les rseaux cbls, vu la nature contraignante de lenvironnement sans fil, qui leur impose plusieurs dfis que doivent surmonter les units mobiles. Les rseaux avec cbles nont pas disparu avec lapparition des rseaux sans fil. Par consquent, ces deux types de rseaux cohabitent en donnant naissance aux rseaux hybrides. La norme la plus utilise actuellement pour les rseaux sans fil est la norme IEEE802.11, mieux connue sous le nom de Wi-Fi. Le rayonnement gographique des ondes est relativement limit tant donn la faible puissance dmission des solutions matrielles actuelles. Pour cette raison, les rseaux sans fil se sont avant tout dvelopps comme rseaux internes, propres un btiment, soit comme rseau dentreprise, soit comme rseau domestique.
ELBOUGHDIRI Abdessalem
11
CHAPITRE I
Nanmoins, des projets de ralisation de rseaux grande chelle ont vue le jour, notamment le WiMAX.
[I.2]
12
ELBOUGHDIRI Abdessalem
CHAPITRE I
ELBOUGHDIRI Abdessalem
13
CHAPITRE I
Les liaisons infrarouges : Elles permettent de crer des liaisons sans fil de quelques mtres avec des dbits pouvant monter quelques mgabits par seconde. Cette technologie est largement utilise dans la domotique (tlcommandes), elle souffre toutefois des perturbations dues aux interfrences lumineuses.
ELBOUGHDIRI Abdessalem
CHAPITRE I
GPRS
WiMAX
GPS
RCSF
ELBOUGHDIRI Abdessalem
15
CHAPITRE I
(SB)
(SM)
La configuration standard d'un systme de communication cellulaire est un maillage de cellules hexagonales. Initialement, une rgion peut tre couverte uniquement par une seule cellule. Quand la comptition devient importante pour l'allocation des canaux, la cellule est gnralement divise en sept cellules plus petites. Cette subdivision peut tre rpte et l'on parle alors de systmes micro-cellulaires. Les cellules adjacentes dans le maillage doivent utiliser des frquences diffrentes ce qui permet dviter les interfrences entre elles, contrairement a celles qui sont situes sur les cotes opposs du maillage et qui peuvent utiliser la mme frquence sans risque d'interfrence. Pour les cellules de faibles tailles (possdant un petit nombre de nuds), la bande passante augmente. Par contre, pour les cellules de grandes tailles, lmission de donnes est limite.
f2 f3 f1 f4 f5
Figure I.5 : Principe de rutilisation de frquence.
f7 f1 f6
ELBOUGHDIRI Abdessalem
16
CHAPITRE I
I.2.4.2.1 Dfinition :
Un rseau sans-fil ad hoc (ou MANET, pour Mobile Ad hoc NETwork) est forme par un ensemble d'htes qui s'organisent seuls et de manire totalement dcentralise, formant ainsi un rseau autonome et dynamique ne reposant sur aucune infrastructure filaire. Ces htes peuvent tre fixes ou mobiles. Selon ces hypothses, tout ensemble d'objets munis d'une interface de communication adquate est susceptible de spontanment former un tel rseau. Aucune infrastructure n'tant disponible, ces objets ont donc dcouvrir dynamiquement leur environnement. Un rseau ad hoc tant avant tout un rseau sans-fil, les objets communiquent entre eux par le biais d'une interface radio. Ces communications sont donc soumises aux phnomnes physiques qui rgissent les ondes radio, telle qu'une forte attnuation du signal avec la distance. Ainsi, seuls les htes 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 mcanisme 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 reu par tous les rcepteurs suffisamment proches de lui.
ELBOUGHDIRI Abdessalem
17
CHAPITRE I
ELBOUGHDIRI Abdessalem
18
CHAPITRE I
infrastructure fixe pralable, a pour but la collecte de donnes de l'environnement, leur traitement et leur transmission vers le monde extrieur. Un capteur est un mini-dispositif lectronique utilis pour dtecter ou mesurer une quantit physique et la convertir en un signal lectronique pour la communique. En d'autres termes, les capteurs sont des dispositifs qui traduisent des aspects de la ralit matrielle en reprsentations comprhensibles et traitables par des ordinateurs. [I.5]
ELBOUGHDIRI Abdessalem
19
CHAPITRE I
CHAPITRE I
Les microcontrleurs utiliss dans le cadre de rseaux de capteurs sont faible consommation d'nergie. Leurs frquences sont assez faibles, moins de 10 MHz pour une consommation de l'ordre de 1 mW. Une autre caractristique est la taille de leur mmoire qui est de l'ordre de 10 Ko de RAM pour les donnes et de 10 Ko de ROM pour les programmes [I.7]. Cette mmoire consomme la majeure partie de l'nergie alloue au microcontrleur. Outre le traitement des donnes, le microcontrleur commande galement toutes les autres units notamment le systme de transmission.
ELBOUGHDIRI Abdessalem
21
CHAPITRE I
Les ressources limites des nuds font que les rseaux de capteurs sans fil ont des diffrences dans leur fonctionnement, leur scurit et leur fiabilit, selon leur application. De nouveaux protocoles de communication et dauto-organisation doivent tre dvelopps en fonction des besoins des applications puisque les caractristiques du rseau varient en fonction de lapplication. Par exemple, certaines applications considrent que les nuds, une fois dploys, sont fixes, dautres considrent quils sont mobiles. Le rseau peut tre homogne ou htrogne (diffrents types de capteurs et de nuds ou non). Il peut avoir un seul puits, ou plusieurs. En dfinitive, il y a beaucoup de scnarios envisageables et des protocoles gnriques ne pourront pas tre efficaces dans tous les cas. La tendance est au dveloppement de protocoles ddis une application particulire.
22
ELBOUGHDIRI Abdessalem
CHAPITRE I
ELBOUGHDIRI Abdessalem
23
CHAPITRE I
ELBOUGHDIRI Abdessalem
24
CHAPITRE I
Cependant, comme le protocole de transport universel est TCP (Transmission Control Protocol), les RCSF doivent donc possder, lors dune communication avec un rseau externe, une interface TCP-spliting pour vrifier la compatibilit entre ces deux rseaux communicants.
CHAPITRE I
CHAPITRE I
RCSF. De plus, labsence dune scurit physique dans lenvironnement hostile o ils sont dploys expose les nuds un danger qui tend vers la falsification de linformation. En effet, les nuds capteurs eux-mmes sont des points de vulnrabilit du rseau car ils peuvent tre modifis, remplacs ou supprims.
[I.8]
ELBOUGHDIRI Abdessalem
27
CHAPITRE I
Nud
Image
RAM (kb)
WeC
0.5
916
10
Rene
0.5
916
10
Rene2
16
916
10
Dot
16
916
10
Mica
128
868
10/40
Mica2
16
128
433/868/916
38.4
Micaz
16
128
2400
250
ELBOUGHDIRI Abdessalem
28
CHAPITRE I
Cricket
16
128
433
38.4
EyesIFX
60
868
115
TelosB/Tmote
16
48
10
2400
250
SHIMMER
48
10
2400
250
Sun SOPT
16-60
2 MB
256
2400
250
BTnode
128
64
433-915
Varie
IRIS
16
128
2400
250
ELBOUGHDIRI Abdessalem
29
CHAPITRE I
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
Varie
Netbridge N100
266
8 MB
32 MB
Varie
Varie
[I.8]
ELBOUGHDIRI Abdessalem
30
CHAPITRE I
ELBOUGHDIRI Abdessalem
31
CHAPITRE I
ELBOUGHDIRI Abdessalem
32
CHAPITRE I
construction, et le contrle d'accs. Cependant, le cot associ au dploiement des rseaux de capteurs cbls limite la possibilit d'application de ces systmes. D'ailleurs, mme si un systme de capteur ont t dploys un ensemble industriel, l'volution de ce systme coterait presque autant qu'un nouveau systme. En plus des systmes de contrle base de capteur, la surveillance manuelle a t galement utilise dans des applications industrielles pour la maintenance prventive. La surveillance aux milieux industriels est gnralement excute par le personnel expriment utilisant les analyseurs tenus dans la main qui sont rassembls d'un site central pour l'analyse. Les systmes manuels ont limit l'exactitude et exigent le personnel. Au lieu de cela, Les RCSF sont une solution alternative prometteuse pour ces systmes dus leur facilit de dploiement, granularit leve, et de grande prcision fourni par les nuds des capteurs sans fil. [I.8]
ELBOUGHDIRI Abdessalem
33
CHAPITRE I
ELBOUGHDIRI Abdessalem
34
CHAPITRE I
[I.10]
ELBOUGHDIRI Abdessalem
35
CHAPITRE I
I.5.4 La scalabilit:
Le nombre de nuds dploys pour une application peut atteindre des milliers. Dans ce cas, le rseau doit fonctionner avec des densits de capteurs trs grandes. Un nombre aussi important de nuds engendre beaucoup de transmissions inter nodales et ncessite que la station de base ou le nud puis soit quipe de mmoire suffisante pour stocker et grer les informations reues.
ELBOUGHDIRI Abdessalem
36
CHAPITRE I
I.6 Conclusion :
Dans ce chapitre, nous avons prsent les rseaux sans fil en gnral. Ils sont gnralement dcomposs selon deux modes : rseaux avec infrastructure ou centraliss (cellulaires) et rseaux sans infrastructure ou dcentraliss (Ad Hoc). Nous avons dcrit le capteur, ses fonctionnalits et son architecture. Nous avons cit les caractristiques dun rseau de capteurs et prsent quelques domaines applications. Nous avons dcrit ensuite les RCSF qui sont apparents aux rseaux Ad Hoc. Ces rseaux connaissent un grand essor grce la multitude dapplications quils offrent ainsi que leur grande mobilit et aussi, grce aux rcents dveloppements concernant la miniaturisation des composants lectroniques. Dans le chapitre suivant, nous allons prsenter la plateforme TinyOS (Systme
dexploitation pour les rseaux de capteur sans fil) ainsi que son architecture et mode dexcution et le langage de programmation NesC utilis pour ce systme.
ELBOUGHDIRI Abdessalem
37
CHAPITRE II
CHAPITRE
II
ELBOUGHDIRI Abdessalem
38
CHAPITRE II
Pour autant, la bibliothque des composants de TinyOS est particulirement complte, puisquon y retrouve des protocoles rseaux, des pilotes de capteurs, et des outils dacquisition de donnes. Un programme sexcutant sur TinyOS est constitu d'une slection de composants systmes et de composants dvelopps spcifiquement pour l'application laquelle il sera destin (mesure de temprature, du taux dhumidit). TinyOS sappuie sur un fonctionnement vnementiel, c'est dire quil ne devient actif qu lapparition de certains vnements, par exemple larrive dun message radio. Le reste du temps, le capteur se trouve en tat de veille, garantissant une dure de vie maximale connaissant les faibles ressources nergtiques des capteurs. Ce type de fonctionnement permet une meilleure adaptation la nature alatoire de la communication sans fil entre capteurs.
ELBOUGHDIRI Abdessalem
39
CHAPITRE II
Langage : Comme nous l'avons voqu plus haut, TinyOS a t programm en langage NesC que nous allons dtailler plus loin. Premptif : Le caractre premptif d'un systme d'exploitation prcise si celui-ci permet l'interruption d'une tche en cours. TinyOS ne gre pas ce mcanisme de premption entre les tches mais donne la priorit aux interruptions matrielles. Ainsi, les tches entreelles ne s'interrompent pas mais une interruption peut stopper l'excution d'une tche. Temps rel : Lorsqu'un systme est dit temps rel celui-ci gre des niveaux de priorit dans ses tches permettant de respecter des chances donnes par son environnement. Dans le cas d'un systme strict, aucune chance ne tolre de dpassement contrairement un systme temps rel mou. TinyOS se situe au-del de ce second type car il n'est pas prvu pour avoir un fonctionnement temps rel. Consommation : TinyOS a t conu pour rduire au maximum la consommation en nergie dun nud capteur. Ainsi, lorsque aucune tche nest active, il se met automatiquement en mode veille.
Concurrence : utilise une architecture oriente vnement Modularit : Application compose de composants OS + Application compils en un seul excutable
Communication :
40
ELBOUGHDIRI Abdessalem
CHAPITRE II
La mmoire libre : pour le reste du stockage temporaire. La gestion de la mmoire possde de plus quelques proprits. Ainsi, il n'y a pas d'allocation dynamique de mmoire et pas de pointeurs de fonctions. Bien sur cela simplifie grandement l'implmentation. Par ailleurs, il n'existe pas de mcanisme de protection de la mmoire sous TinyOS ce qui rend le systme particulirement vulnrable aux crash et corruptions de la mmoire.
ELBOUGHDIRI Abdessalem
41
CHAPITRE II
Les vnements sont prioritaires par rapport aux tches et peuvent interrompre la tache en cours d'excution. Ils permettent de faire le lien entre les interruptions matrielles (pression d'un bouton, changement d'tat d'une entre, . . .) et les couches logicielles que constituent les taches.
ELBOUGHDIRI Abdessalem
42
CHAPITRE II
Utilisation
Travaux de longue dure Excution dune fonctionnalit prcise dans un autre composant Equivalent logiciel une interruption matrielle
Evnement
II.4.2 Tches :
Un des facteurs limitant la programmation par vnement est la longue excution des tches qui peut interrompre dautres programmes importants. Si lexcution dun vnement ne finit jamais, toutes les autres fonctions vont tre interrompues. Pour viter ce problme, TinyOS fourni un mcanisme dexcution appel tche. Une tche est un bout de programme
ELBOUGHDIRI Abdessalem 43
CHAPITRE II
qui sexcute jusqu la fin sans interfrer avec les autres vnements. Les tches sont utilises pour effectuer la plupart des blocs dinstruction dune application. A lappel dune tche, celle-ci va prendre place dans une file dattente de type FIFO mais elle ne sera excut que lorsque il ny a plus dvnements. En plus les tches peuvent tre interrompues tout moment par des vnements. Dautre part, il ny a pas de mcanisme de premption entre les tches et une tache active sexcute en entier. Ce mode de fonctionnement permet de bannir les oprations pouvant bloquer le systme. Par ailleurs, lorsque la file dattente des taches est vide, le systme dexploitation met en veille le dispositif jusquau lancement de la prochaine interruption (on retrouve le fonctionnement Event-driven).
Par ailleurs, entre les tches, un niveau de priorit est dfini permettant de classer les tches, tout en respectant la priorit des interruptions (ou vnements). Lors de larrive dune nouvelle tache, celle-ci sera place dans la file dattente en fonction de sa priorit (plus elle est grande, plus le placement est proche de la sortie). Dans le cas ou la file dattente est pleine, la tche dont la priorit est la plus faible est enleve de la FIFO.
ELBOUGHDIRI Abdessalem
44
CHAPITRE II
Mote, processeur, RAM et Flash : On appelle gnralement Mote la carte physique utilisant TinyOS pour fonctionner. Celle-ci a pour cur le bloc constitu du processeur et des mmoires RAM et Flash. Cet ensemble est la base du calcul binaire et du stockage, la fois temporaire pour les donnes et dfinitif pour le systme TinyOS. Radio et antenne : TinyOS est prvu pour mettre en place des rseaux sans fils, les quipements tudis sont donc gnralement quips 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 prvu pour mettre en place des rseaux de capteurs, on retrouve donc des quipement bards de diffrents types de dtecteurs et autres entres. Batterie : Comme tout dispositif embarqu, ceux utilisant TinyOS sont pourvus d'une alimentation autonome telle qu'une batterie.
ELBOUGHDIRI Abdessalem
CHAPITRE II
Windows : un guide propose l'installation de tous les principaux outils ncessaires au bon fonctionnement du systme, notamment Cygwin (couche d'mulation de l'API Linux) qui permet d'avoir une interface Unix sous Windows. Le JDK Java 1.4 ou ultrieure de Sun est ncessaire afin d'effectuer la procdure d'installation. GNU/Linux : des packages RPM sont proposs au tlchargement, 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 ncessaire. Par la suite, des packages supplmentaires peuvent tre ajouts en passant par le site SourceForge, qui met disposition le code open source de TinyOS et d'un ensemble de programmes ddis.
ELBOUGHDIRI Abdessalem
46
CHAPITRE II
Le langage NesC possde 3 types de fichiers : module, configuration et interface : Module : ils constituent les briques lmentaires de code et implmentent une ou plusieurs interfaces. Une application peut faire appel des fichiers de configuration pour regrouper les fonctionnalits des modules. Configuration : cest un fichier qui permet de faire le lien entre tous les composants.
Interfaces : cest un fichier dcrivant les commandes et les vnements proposs par
le composant qui les implmente. Lutilisation des mots clefs Use et Provide au dbut dun composant permet de savoir respectivement si celui-ci fait appel une fonction de linterface ou redfini son code.
Figure II.4 : processus de compilation pour une application TinyOS crite en NesC
ELBOUGHDIRI Abdessalem
47
CHAPITRE II
II.7.2.1 Interface :
Une interface dfinie les interactions entre deux composants. Les interfaces sont bidirectionnelles, elles spcifient un ensemble de fonctions implmenter par les composants fournisseurs de l'interface (commands), et un ensemble implmenter 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 matriel), 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 vnement : //Appeler une commande call Send.send(1, sizeof(Message), &msg1); //Signaler un event signal Send.sendDone(&msg1, SUCCESS);
II.7.2.2 Module :
Un module est un composant qui implmente une ou plusieurs interfaces et peut utiliser une ou plusieurs interfaces. Cette partie du code est gnralement plus tendue et cest dans celle-ci que lon programme rellement le comportement quon souhaite voir ralis par lapplication. Cette partie l est son tour divise en trois sous-sections : Provides, Uses, Implementation. La premire 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 linterface StdControl. La sous-section uses informe le compilateur que nous allons faire usage dune interface (on pourra donc effectuer des appels aux mthodes de cette interface). Pour faire cela, on a besoin de respecter quelques rgles : 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
composant qui la fournit. Finalement, utiliser une interface oblige implicitement grer les vnements pouvant se produire du fait davoir utilis cette interface prcise. La sous-section implementation , est celle qui contiendra toutes les mthodes ncessaires 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 quelle doit mettre en uvre pour les interfaces qui nous fournissons. Les vnements quelle doit mettre en uvre venant des interfaces que nous utilisons.
II.7.2.3 Configuration :
Cest cet endroit que lon dclare les autres composants dont se servira lapplication. Cette possibilit offerte par le langage permet de faire de la programmation modulaire et de rutiliser des composants pralablement dfinis. Dans nesC, deux composants sont relis ensemble en les connectant (wiring). Les interfaces du composant utilisateur sont relies (wired) aux mmes interfaces du composant fournisseur. Il existe 3 possibilits de connexion (wiring statements) dans nesC: endpoint1 = endpoint2 endpoint1 -> endpoint2 endpoint1 <- endpoint2 (quivalent: endpoint2 -> endpoint1)
Les lments connects 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
CHAPITRE II
Les fonctions event sont des fonctions qui sont appeles quand on relvera un signal dans le systme, elles possdent principalement la mme philosophie que la programmation oriente vnements, de sorte que, lorsque le composant reoit un vnement, on effectue linvocation de cette fonction. Il existe une mthode pour pouvoir invoquer manuellement ce type de fonctions : signal interface . nomEvenement
ELBOUGHDIRI Abdessalem
51
CHAPITRE II
II.8.1 TOSSIM :
TOSSIM (TinyOS SIMulator) est un simulateur discret bas sur la programmation par vnement et qui a t conu et dsign pour simuler les rseaux de capteurs sans fil qui utilise la plateforme TinyOS. Le principale but de TOSSIM est de crer une simulation trs proche de ce qui ce passe dans ces rseaux dans le monde rel. TOSSIM simule le comportement des applications de TinyOS un niveau trs bas. Le rseau est simul au niveau des bits et chaque interruption dans le systme est capture. TOSSIM fourni 2 modles de radios pour la communication. Le modle par dfaut est celui simple . Les paquets sont transmis dans le rseau avec aucune erreur et ils sont reus par chaque nud. Avec ce modle il est ainsi possible que deux nuds diffrents peuvent envoyer un paquet en mme temps avec la consquence que ces deux paquets seront alors dtruit cause du chevauchement des signaux. Le deuxime modle est le modle lossy . Dans ce modle les nuds sont placs dans un graphe direct form dun couple (a, b) ce qui signifie quun paquet envoy par le nud a peut tre reu par le nud b. TOSSIM est quip aussi dun simulateur graphique TinyViz. Cette application est quipe par plusieurs API plugins qui permet dajouter plusieurs fonctions notre simulateur comme par exemple contrler les entres de notre radio ou bien suivre la dpense dnergie en utilisant un autre simulateur qui sappelle PowerTOSSIM.
II.8.2 PowerTOSSIM :
PowerTOSSIM est lextension de TOSSIM qui contient un modle de consommation dnergie. Pour les valeurs de consommation, les auteurs se sont bass sur le Mica2. Ils ont suppos connaitre les consommations des diffrents composants de ce nud suivant leurs tats. Grce au modle de simulation bas sur TinyOS, on connat immdiatement ltat des composants puisque les changements dtats correspondent des vnements dans TinyOS et donc dans TOSSIM. Par consquent, PowerTOSSIM permet davoir des rsultats trs proches de la ralit sur le plan de la consommation dnergie. Enfin, les simulateurs TOSSIM et PowerTOSSIM ne conviennent que pour des applications crites en TinyOS.
ELBOUGHDIRI Abdessalem
52
CHAPITRE II
II.8.3 TinyViz :
Pour une comprhension moins complexe de lactivit dun rseau, TOSSIM peut tre utilis avec une interface graphique, TinyViz, permettant de visualiser de manire intuitive le comportement de chaque capteur au sein du rseau. TinyViz est une application graphique qui donne un aperu de notre rseau de capteurs tout instant, ainsi que des divers messages qu'ils mettent. Il permet de dterminer un dlai entre chaque itration des capteurs afin de permettre une analyse pas pas du bon droulement des actions.
II.9 Conclusion :
Dans ce chapitre, nous avons tudi larchitecture du systme TinyOS ; nous avons examin son mode dexcution et son mode dordonnancement des diffrents types daction qui sont vnement, commande et tche. Nous avons aussi prsent le langage NesC ainsi que le simulateur TOSSIM ainsi que PowerTOSSIM. Dans le chapitre suivant, nous allons concevoir modliser un rseau de capteur sans fil avec lenvironnement TinyOS.
ELBOUGHDIRI Abdessalem
53
CHAPITRE III
Conception et implmentation
CHAPITRE
CONCEPTION ET IMPLEMENTATION
III
III.1 Introduction :
Dans le but de concevoir une application sous la plateforme TinyOS, il sest avr ncessaire de prendre en mesure ltude de notre cas spcifique par des outils est des moyens bass sur la modlisation. Pour ce l, nous adoptons UML comme un outil pour modlis les diffrentes parties de notre application, puis on essai dimplmenter notre modle on NesC. Par la suite une simulation sera ncessaire pour valid notre travaille.
UML fournit une panoplie d'outils permettant de reprsenter l'ensemble des lments du monde objet (classes, objets, ...) ainsi que les liens qui les relie. Toutefois, tant donn qu'une seule reprsentation est trop subjective, UML fournit un moyen astucieux permettant de reprsenter diverses projections d'une mme reprsentation grce 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 prsente donc les diagrammes de cas d'utilisation, d'tats, d'activits et de squences.
ELBOUGHDIRI Abdessalem 54
CHAPITRE III
Conception et implmentation
ELBOUGHDIRI Abdessalem
55
CHAPITRE III
Conception et implmentation
ELBOUGHDIRI Abdessalem
56
CHAPITRE III
Conception et implmentation
ELBOUGHDIRI Abdessalem
57
CHAPITRE III
Conception et implmentation
ELBOUGHDIRI Abdessalem
58
CHAPITRE III
Conception et implmentation
ELBOUGHDIRI Abdessalem
59
CHAPITRE III
Conception et implmentation
Pour linstallation de Cygwin TinyOS et le compilateur NesC nous avons utilise un pack dinstallation qui comporte ces trois composantes et tous ce qui va avec
ELBOUGHDIRI Abdessalem
60
CHAPITRE III
Conception et implmentation
ELBOUGHDIRI Abdessalem
61
CHAPITRE III
Conception et implmentation
Pour le choix de linstallation de Cygwin nous utilisons C:\ Comme racine affin de faciliter la recherche des PATH pour Eclipse, TinyOS sera automatiquement intgr dans Cygwin dans le sous-rpertoire C:\cygwin\opt\tinyos-1.x .
Pour linstallation de lIDE Eclipse, il suffit de tlcharger une version dEclipse orient modeling situ ladresse suivante : http://www.eclipse.org/downloads/ Aprs avoir dcompress le fichier tlcharg, on lance Eclipse partir du sousrpertoire \eclipse\ . Affin de paramtrer Eclipse pour quil fonctionne avec une perspective TinyOS, on doit lui ajout le plugin Yeti 2, et ceci partir du menu help en suivant le dmarche 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 fentre dajout du plugin Yeti 2 ainsi que la slection de ses diffrentes composantes.
Sous le menu Window > Open Perspective > Other... On slectionne la perspective TinyOS et puis sous le menu window > preference on procde dfinir le chemin de Cygwin et TinyOS pour Eclipse.
ELBOUGHDIRI Abdessalem
62
CHAPITRE III
Conception et implmentation
Maintenant tout est prs pour ouvrir un nouveau projet sous lIDE Eclipse Ddi des applications TinyOS, pour cela nous suivant le chemin suivant : File>New>New Project... . En slectionne aprs TinyOS>TinyOS Project .
Il faut dfinir pc comme Target pour compiler notre projet et obtenir un excutable qui soit utile pour la simulation sur PC.
ELBOUGHDIRI Abdessalem
63
CHAPITRE III
Conception et implmentation
III.5 Implmentation en NesC: III.5.1 Code de l'application dployer 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
interface Leds; } } implementation { TOS_Msg buffer; TOS_MsgPtr ourBuffer; bool sendPending;
Conception et implmentation
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
{ 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; }
Conception et implmentation
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 implmentation
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 modle dexprimentation est tabli sur 10 nuds, disperss alatoirement sur une Surface carre de 100 m. Nous assumons que tous les nuds ont une position fixe durant toute la priode de simulation. Dans la figure IV.19, TinyViz nous donne une image sur le comportement du rseau.
ELBOUGHDIRI Abdessalem 67
CHAPITRE III
Conception et implmentation
III.7 Conclusion :
La simulation nous a bien montre les diffrents trafics entre les nuds colleteurs et le nud puits, avec un schma qui reprsente le lien entre eux. Cette simulation nous a permis de valid notre travaille et notre modle de rseau de capteur sans fil.
ELBOUGHDIRI Abdessalem
68
Conclusion gnrale
CONCLUSION GENERALE
Les rseaux des capteurs sans fil constituent sans doute, un dveloppement
technologique majeur apportant des solutions aux diffrents problmes dans plusieurs domaines dapplications lis la scurit, la sant, lagronomie, la domotique, etc. Dans le cadre de ltude des rseaux de capteurs, nous tions amens modliser des applications TinyOS. Il nous fallut tout dabord comprendre le mcanisme de fonctionnement de ce minime systme dexploitation TinyOS, dgager lordonnance et la priorit entre les diffrents types de commande afin dapporter aprs des solutions cette modlisation. Pour y arriver, nous avons russi bien comprendre notre systme en modlisant un systme sur TinyOS et le valider par la suite par une simulation. Une perspective possible ce projet serait sans doute la modlisation des applications plus complexes, en tenant compte des diffrents domaines dapplication et leur besoins.
ELBOUGHDIRI Abdessalem
69
Rfrences
Bibliographie
[I.1] BOUKERCHE, Azzedine: Handbook of algorithms for wireless networking and mobile
computing, Boca Raton London New York: Taylor & Francis Group, 2006.
[I.2] http://technoci.ivoire-blog.com/archive/2011/01/17/les-reseaux-sans-fil.html [I.3] Pujolle, G: Les rseaux Editions 2008 , ditions Eyrolles, 2008. [I.4] http://www.commentcamarche.net [I.5] Veljko, Milutinovic. Ivan, Stojmenovic. Liljana, Gavrilovska .Srdjan, Krco. Application
and Multidisciplinary Aspects of Wireless Sensor Networks ,Springer-Verlag London
Limited, 2011. [I.6] Jun, Zheng. Abbas, Jamalipour : WIRELESS SENSOR NETWORKS A Networking
Perspective, John Wiley & Sons, Inc. Hoboken, New Jersey : IEEE Press,2009.
[I.7] K, Holger . Andreas, Willig :Protocols and Architectures for Wireless Sensor Networks,
Wiley, 2005.
[I.8] Ian F, Akyildiz. Mehmet, Can Vuran : Wireless Sensor Networks, John Wiley &
Sons,Printed and bound in Singapore by Markono Print Media Pte Ltd, Singapore : Ian F.
Akyildiz, Georgia Institute of Technology, USA,2010. [I.9] http://fr.wikipedia.org/wiki/Rseau_de_capteurs_sans_fil [I.10] Kazem,Sohraby. Daniel, Minoli. Taieb, Znati:WIRELESS SENSOR NETWORKS
Technology, Protocols, and Applications, John Wiley & Sons, Inc. Hoboken, New Jersey: 2007.
ELBOUGHDIRI Abdessalem
70