réseaux de capteurs sans fil
Post on 28-Dec-2015
138 Views
Preview:
TRANSCRIPT
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ésident Pr Membre Pr. Membre (Encadreur)
Laboratoire ……………………… (Code : MESRST ……/UR/LR…………….)
N° d’ordre :
A mon père, à ma mère
A mes frères et mes sœurs
A toute ma famille et mes amis
3
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 ma gratitude à mon encadreur Mr. Med Atri pour ses qualités professionnelles et humaines.
Enfin, j’adresse mes remerciements à toute l’équipe de la station de turbine à gaz de
Feriana pour leur accueil chaleureux et leur sympathie.
4
ELBOUGHDIRI Abdessalem
Table des matières Remerciement ...................................................................................................................................... 3 Introduction générale ........................................................................................................................ 10 CHAPITRE I : Présentation des Réseaux de Capteurs Sans Fil ........................................ 12 I.1 Introduction : ............................................................................................................................ 12 I.2 Les réseaux sans fil : ................................................................................................................ 13
I.2.1 Définition : ..................................................................................................................... 13 I.2.2 Caractéristiques des réseaux sans fil : ........................................................................ 14 I.2.3 Les catégories des réseaux sans fil : ........................................................................... 14
I.2.3.1 Le réseau personnel sans fil (WPAN) : ....................................................... 15 I.2.3.2 Le réseau local sans fil (WLAN) : ............................................................... 16 I.2.3.3 Le réseau métropolitain sans fil (WMAN): ................................................ 16 I.2.3.4 Le réseau étendu sans fil (WWAN): ........................................................... 16
I.2.4 Les classes des réseaux sans fil : ................................................................................. 17 I.2.4.1 Les réseaux cellulaires : ................................................................................ 17 I.2.4.2 Les réseaux ad Hoc : .................................................................................... 19
I.2.4.2.1 Définition : ...................................................................................... 19 I.2.4.2.2 Caractéristiques des réseaux Ad Hoc : ........................................ 20
I.3 Présentation d’un réseau de capteurs sans fil: ................................................................. 20 I.3.1 Anatomie d’un nœud de capteur : .............................................................................. 21
I.3.1.1 L'unité de captage: ......................................................................................... 22 I.3.1.2 L'unité de traitement des données : ............................................................. 22 I.3.1.3 L'unité de communication : .......................................................................... 23 I.3.1.4 L’unité de puissance : .................................................................................... 23
I.3.2 Architecture d’un réseau de capteurs sans fil : .......................................................... 25 I.3.2.1 Architecture de communication : ................................................................. 25 I.3.2.2 Architecture protocolaire : ............................................................................ 25
I.3.2.2.1 La couche physique : ..................................................................... 26 I.3.2.2.2 La couche de liaison de données : ................................................ 28 I.3.2.2.3 La couche réseau : .......................................................................... 26 I.3.2.2.4 La couche transport : ...................................................................... 26 I.3.2.2.5 La couche application : .................................................................. 27 I.3.2.2.6 Le niveau de gestion d’énergie : ................................................... 27 I.3.2.2.7 Le niveau de gestion de mobilité : ............................................... 27 I.3.2.2.8 Le niveau de gestion des taches : ................................................. 27
I.3.3 Caractéristique des réseaux de capteurs sans fil: ...................................................... 28 I.3.4 Technologie des capteurs : ........................................................................................... 29
I.4 Application des réseaux de capteurs sans fil : ................................................................... 33 I.4.1 Applications environnementales : ............................................................................... 34
5
ELBOUGHDIRI Abdessalem
I.4.2 Applications écologiques : ........................................................................................... 34 I.4.3 Applications militaires : ............................................................................................... 35 I.4.4 Applications industriels : ............................................................................................. 35 I.4.5 Applications commerciales : ........................................................................................ 35 I.4.6 Applications médicales : .............................................................................................. 36 I.4.7 Applications domestiques : .......................................................................................... 36 I.4.8 Applications de traçabilité et de localisation : ........................................................... 37 I.4.9 Applications liées à la sécurité : ...................................................................................37
I.5 Contrainte d’un réseau de capteurs sans fil : .................................................................... 37 I.5.1 Durée de vie du réseau : ............................................................................................... 37 I.5.2 Ressources limitées : ..................................................................................................... 38 I.5.3 Bande passante limitée : ............................................................................................... 38 I.5.4 La scalabilité : .............................................................................................................. 38 I.5.5 Topologie dynamique : ................................................................................................. 38 I.5.6 Agrégation de donnée: .................................................................................................. 38 I.5.7 Le cout de production : ................................................................................................. 39
I.6 Conclusion : ............................................................................................................................... 39
CHAPITRE II : Le système d’exploitation TinyOS ................................................................ 40 II.1 Introduction : ......................................................................................................................... 40 II.2 Présentation de TinyOS : ..................................................................................................... 40
II.2.1 Propriétés : ................................................................................................................... 41 II.2.2 Caractéristiques de TinyOS : .................................................................................... 42 II.2.3 Allocation de la mémoire : ........................................................................................ 43
II.3 Structure logicielle : .............................................................................................................. 44 II.4 Modèle d’exécution de TinyOS : ........................................................................................ 45
II.4.1 Programmation par évènement : ............................................................................... 45 II.4.2 Tâches : ........................................................................................................................ 45 II.4.3 Description de l’ordonnanceur TinyOS : ................................................................ 46
II.5 Cibles possibles pour TinyOS : .......................................................................................... 46 II.6 Package TinyOS : ...................................................................................................................47 II.7 Description du langage NesC : ........................................................................................... 48
II.7.1 Les Principaux caractéristiques de NesC : .............................................................. 49 II.7.2 Les fichiers dans NesC : ............................................................................................ 50
II.7.2.1 Interface : ...................................................................................................... 50 II.7.2.2 Module : ........................................................................................................ 50 II.7.2.3 Configuration : ..............................................................................................51
II.7.3 Types de données : ..................................................................................................... 52 II.7.4 Types de fonctions en NesC : ................................................................................... 52
II.8 Simulation : TOSSIM, PowerTOSSIM et TinyViz : .................................................... 54 II.8.1 TOSSIM : ..................................................................................................................... 54 II.8.2 PowerTOSSIM : ......................................................................................................... 54 II.8.3 TinyViz : ...................................................................................................................... 55
II.9 Conclusion : ............................................................................................................................ 55
6
ELBOUGHDIRI Abdessalem
CHAPITRE III : Conception et implémentation ..................................................................... 56 III.1 Introduction : ......................................................................................................................... 56 III.2 Les diagrammes statiques : ................................................................................................. 57
III.2.1 Les diagrammes de cas d'utilisation : ....................................................................... 57 III.2.2 Le diagramme des classes : ....................................................................................... 59
III.3 Les diagrammes dynamiques : ........................................................................................... 59 III.3.1 Les diagrammes d'états : ............................................................................................ 59 III.3.2 Les diagrammes d'activités : ..................................................................................... 60 III.3.3 Les diagrammes de séquence : .................................................................................. 61
III.4 préparation de l’environnement de travail : ....................................................................62 III.5 Implémentation en NesC : ................................................................................................... 66
III.5.1 Code de l'application à déployer sur le capteur puits : ......................................... 66 III.5.2 Code de l'application à déployer sur les capteurs collecteur : .............................. 69
III.6 Simulation : ............................................................................................................................ 69 III.7 Conclusion : ............................................................................................................................ 70 Conclusion générale : ...................................................................................................................... 71 Bibliographie : .................................................................................................................................... 72
7
ELBOUGHDIRI Abdessalem
Table des figures Figure I.1 : Les catégories des réseaux sans fil ....................................................................... 14
Figure I.2 : Principales normes des réseaux sans fils .............................................................. 15
Figure I.3 : Classes des réseaux sans fil .................................................................................. 17
Figure I.4 : Modèle des réseaux cellulaires ............................................................................. 18
Figure I.5 : Principe de réutilisation de fréquence .................................................................. 18
Figure I.6 : Modèle des réseaux Ad Hoc ................................................................................. 19
Figure I.7 : Anatomie générale d’un nœud de capteur ............................................................ 22
Figure I.8 : Architecture d'un réseau de capteurs .................................................................... 24
Figure I.9 : Pile protocolaire dans les réseaux de capteurs sans fils ....................................... 25
Figure I.10 : Progression des technologies de capteurs à travers le temps ............................. 29
Figure I.11 : Consommation d’énergie dans un nœud de capteur sans fil .............................. 37
Figure II.1 : Organisation de la mémoire dans TinyOS .......................................................... 43
Figure II.2 : Interactions internes au système TinyOS ............................................................ 44
Figure II.3 : Architecture générale des cibles utilisant TinyOS .............................................. 47
Figure II.4 : processus de compilation pour une application TinyOS écrite en NesC ............ 49
Figure II.5 : Syntaxe d'un module ........................................................................................... 51
Figure II.6 : Architecture d’une application NesC .................................................................. 53
Figure III.1 : Cas d'utilisation haut niveau .............................................................................. 57
Figure III.2 : Cas d'utilisation pour le capteur puits ................................................................ 57
Figure III.3 : Cas d'utilisation pour les nœuds de capteur collecteur ...................................... 58
Figure III.4 : Diagramme de cas d'utilisation pour les capteurs .............................................. 58
Figure III.5 : Diagramme des classes du réseau de capteur sans fil ........................................ 59
Figure III.6 : Diagramme d'états d'un nœud capteur Collecteur ............................................. 59
Figure III.7 : Diagramme d'états d'un nœud capteur puits ...................................................... 60
8
ELBOUGHDIRI Abdessalem
Figure III.8 : Diagramme d'activité pour un capteur collecteur .............................................. 60
Figure III.9 : Diagramme d'activité pour un capteur puits ...................................................... 61
Figure III.10: Diagramme de séquence entre l’administrateur et un capteur puits ................. 61
Figure III.11 : Diagramme de séquence entre un capteur puits et un capteur collecteur ...... 62
Figure III.12 : choix des options d’installation de TinyOS ..................................................... 63
Figure III.13 : Installation de Cygwin ..................................................................................... 63
Figure III.14 : Ajout du plugin Yeti 2 à Eclipse ...................................................................... 64
Figure III.15 : Définition des chemins de Cygwin et TinyOS pour Eclipse ........................... 65
Figure III.16 : Création d’un nouveau projet TinyOS ............................................................. 65
Figure III.17 : composantes du code à déployer sur le capteur puits ..................................... 66
Figure III.18 : composantes du code à déployer sur les capteurs collecteurs ........................ 69
Figure III.19 : Simulation de l’application sur TinyViz .......................................................... 70
Table des tableaux Tableau I.1: Technologies des capteurs .................................................................................. 30
Tableau II.1: Propriété de TinyOS .......................................................................................... 42
Tableau II.2 : différents actions dans TinyOS ......................................................................... 45
9
ELBOUGHDIRI Abdessalem
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
Introduction générale
10
ELBOUGHDIRI Abdessalem
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.
Introduction générale
11
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
12
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I
PRESENTATION DES RESEAUX DE CAPTEURS SANS FIL
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
13
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
14
ELBOUGHDIRI Abdessalem
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. [I.2]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
15
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
16
ELBOUGHDIRI Abdessalem
• 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]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
17
ELBOUGHDIRI Abdessalem
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.
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.
Réseaux sans fil
Réseaux avec infrastructure (Cellulaire)
GPRS WiMAX GPS RCSF
Réseaux sans infrastructure (Ad Hoc)
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
18
ELBOUGHDIRI Abdessalem
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.
Figure I.5 : Principe de réutilisation de fréquence.
(SM)
(SB)
f1 f1
f2
f3
f4
f5
f6
f7
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
19
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
20
ELBOUGHDIRI Abdessalem
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
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
21
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
22
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
23
ELBOUGHDIRI Abdessalem
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 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 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 Ah fonctionnant à 1.5 V. [I.7]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
24
ELBOUGHDIRI Abdessalem
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 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, dans le cas d’un réseau à grande é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 de protocoles dédiés à une application particulière.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
25
ELBOUGHDIRI Abdessalem
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 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.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.
Figure I.9 : Pile protocolaire dans les réseaux de capteurs sans fils.
Application
Transport
Réseau
Liaison des données
Physique
Plan de gestion de l’énergie
Plan de gestion de la mobilité
Plan de gestion des taches
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
26
ELBOUGHDIRI Abdessalem
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 saut-
par-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é.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
27
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
28
ELBOUGHDIRI Abdessalem
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
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
29
ELBOUGHDIRI Abdessalem
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. [I.8]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
30
ELBOUGHDIRI Abdessalem
Nœud Image
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
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
31
ELBOUGHDIRI Abdessalem
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
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
32
ELBOUGHDIRI Abdessalem
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
Netbridge N-
100
266 8 MB 32
MB Variée Variée
Tableau I.1: Technologies des capteurs. [I.8]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
33
ELBOUGHDIRI Abdessalem
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.).
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
34
ELBOUGHDIRI Abdessalem
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 États-
Unis, 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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
35
ELBOUGHDIRI Abdessalem
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]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
36
ELBOUGHDIRI Abdessalem
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 micro-
capteurs 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]
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
37
ELBOUGHDIRI Abdessalem
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.
Figure I.11 : Consommation d’énergie dans un nœud de capteur sans fil. [I.10]
0
2
4
6
8
10
12
14
16
18
Traitements Emissions Réceptions Ecoute Mise en Veille Captage
Co
nso
mm
ati
on
d’é
ne
rgie
(mW
)
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
38
ELBOUGHDIRI Abdessalem
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.
CHAPITRE I Présentation des Réseaux de Capteurs Sans Fil
39
ELBOUGHDIRI Abdessalem
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.
CHAPITRE II Le système d’exploitation TinyOS
40
ELBOUGHDIRI Abdessalem
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.
CHAPITRE II
LE SYSTEME D’EXPLOITATION TINY OS.
CHAPITRE II Le système d’exploitation TinyOS
41
ELBOUGHDIRI Abdessalem
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.
CHAPITRE II Le système d’exploitation TinyOS
42
ELBOUGHDIRI Abdessalem
• 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 entre-
elles 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 :
CHAPITRE II Le système d’exploitation TinyOS
43
ELBOUGHDIRI Abdessalem
� 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
CHAPITRE II Le système d’exploitation TinyOS
44
ELBOUGHDIRI Abdessalem
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.
CHAPITRE II Le système d’exploitation TinyOS
45
ELBOUGHDIRI Abdessalem
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 Utilisation
Tâche 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
CHAPITRE II Le système d’exploitation TinyOS
46
ELBOUGHDIRI Abdessalem
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.
CHAPITRE II Le système d’exploitation TinyOS
47
ELBOUGHDIRI Abdessalem
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).
CHAPITRE II Le système d’exploitation TinyOS
48
ELBOUGHDIRI Abdessalem
• 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.
CHAPITRE II Le système d’exploitation TinyOS
49
ELBOUGHDIRI Abdessalem
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
CHAPITRE II Le système d’exploitation TinyOS
50
ELBOUGHDIRI Abdessalem
II.7.2 Les fichiers dans NesC : Les fichiers de NesC sont classés en trois types : Interfaces, modules et configurations.
II.7.2.1 Interface : 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 :
• Appeler une commande et signaler un événement :
II.7.2.2 Module : 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
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
call Send.send(1, sizeof(Message), &msg1);
//Signaler un event
signal Send.sendDone(&msg1, SUCCESS);
CHAPITRE II Le système d’exploitation TinyOS
51
ELBOUGHDIRI Abdessalem
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.3 Configuration : 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.
CHAPITRE II Le système d’exploitation TinyOS
52
ELBOUGHDIRI Abdessalem
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 :
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 :
Immédiatement après son invocation, l’exécution du programme qui l’a invoqué se
poursuit.
call interface . nomFonction
post interface . nomTache
CHAPITRE II Le système d’exploitation TinyOS
53
ELBOUGHDIRI Abdessalem
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 :
Figure II.6 : Architecture d’une application NesC
signal interface . nomEvenement
CHAPITRE II Le système d’exploitation TinyOS
54
ELBOUGHDIRI Abdessalem
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.
CHAPITRE II Le système d’exploitation TinyOS
55
ELBOUGHDIRI Abdessalem
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.
CHAPITRE III Conception et implémentation
56
ELBOUGHDIRI Abdessalem
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.
CHAPITRE III
CONCEPTION ET
IMPLEMENTATION
CHAPITRE III Conception et implémentation
57
ELBOUGHDIRI Abdessalem
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
CHAPITRE III Conception et implémentation
58
ELBOUGHDIRI Abdessalem
Figure III.3 : Cas d'utilisation pour les nœuds de capteur collecteur
Figure III.4 : Diagramme de cas d'utilisation pour les capteurs
CHAPITRE III Conception et implémentation
59
ELBOUGHDIRI Abdessalem
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
CHAPITRE III Conception et implémentation
60
ELBOUGHDIRI Abdessalem
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
CHAPITRE III Conception et implémentation
61
ELBOUGHDIRI Abdessalem
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
CHAPITRE III Conception et implémentation
62
ELBOUGHDIRI Abdessalem
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]
CHAPITRE III Conception et implémentation
63
ELBOUGHDIRI Abdessalem
Figure III.12 : choix des options d’installation de TinyOS
Figure III.13 : Installation de Cygwin
CHAPITRE III Conception et implémentation
64
ELBOUGHDIRI Abdessalem
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 sous-
ré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.
CHAPITRE III Conception et implémentation
65
ELBOUGHDIRI Abdessalem
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.
CHAPITRE III Conception et implémentation
66
ELBOUGHDIRI Abdessalem
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;
CHAPITRE III Conception et implémentation
67
ELBOUGHDIRI Abdessalem
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)
CHAPITRE III Conception et implémentation
68
ELBOUGHDIRI Abdessalem
{ 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); } }
CHAPITRE III Conception et implémentation
69
ELBOUGHDIRI Abdessalem
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.
CHAPITRE III Conception et implémentation
70
ELBOUGHDIRI Abdessalem
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.
Conclusion générale
71
ELBOUGHDIRI Abdessalem
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.
Références
72
ELBOUGHDIRI Abdessalem
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 réseaux 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/Réseau_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. [III.1] TinyOS Team, “Tinyos.” [Online].Disponible: www.tinyos.net
top related