Vers une plate-forme efficace en énergie pour les

Transcription

Vers une plate-forme efficace en énergie pour les
No d’ordre : 3480
THÈSE
présentée
DEVANT L’UNIVERSITÉ DE RENNES 1
pour obtenir
le grade de :
DOCTEUR DE L’UNIVERSITÉ DE RENNES 1
Mention :
Traitement du Signal et Télécommunication
par
Mickaël Cartron
Équipe d’accueil : R2D2 - Institut de Recherche en Informatique et Systèmes Aléatoires
École Doctorale :
Composante
Universitaire :
Mathématiques, Télécommunications, Informatique, Signal, Systèmes, Electronique
École Nationale Supérieure de Sciences Appliquées et de Technologie
Vers une plate-forme efficace en énergie pour les réseaux de
capteurs sans fil
Soutenue le 18 décembre 2006 devant la commission d’examen
COMPOSITION DU JURY :
MM.
J.-F. Diouris
M. Auguin
P. Garda
P. Quinton
O. Berder
O. Sentieys
Professeur à l’École Polytechnique de l’Université
de Nantes
Directeur de Recherche CNRS à l’I3S Nice
Professeur à l’Université Pierre et Marie Curie
Professeur à l’Université de Rennes 1
Maı̂tre de Conférences à l’Université de Rennes 1
Professeur à l’Université de Rennes 1
Rapporteur
Rapporteur
Examinateur
Examinateur
Examinateur
Directeur de Thèse
Résumé
Les réseaux de capteurs constituent un thème de recherche très dynamique actuellement,
tiré vers le haut d’une part par l’opportunité de développer des applications novatrices liées
à la position géographique des éléments du réseau, et d’autre part, plus généralement, par le
challenge de la conception d’objets communicants entièrement autonomes. Le but de ce travail
est de parvenir à définir des solutions architecturales opérationnelles capables de maximiser
l’autonomie des nœuds du réseau.
Pour parvenir à ce but, les travaux de recherche qui ont été menés ont pour objectif dans
un premier temps de cerner les besoins de ces réseaux de capteurs en termes de performances,
de complexité de calcul, de mémoire nécessaire, en s’appuyant sur des analyses de scénarios
précis et réalistes.
Dans un second temps, une plate-forme de nœud générique est décrite à partir de l’analyse
préalable des besoins, des couches les plus proches du matériel jusqu’aux couches applicatives
les plus élevées. Cet environnement intégré fortement réglable offre une vision totale des traitements au sein des nœuds et autorise par là-même les optimisations ”cross-layer”. En particulier,
les différents traitements liés à la communication sont identifiés sous forme d’éléments génériques. Des modèles de performances ont été définis pour ces composants déclinés sous forme
de chaı̂ne de communication, dans le but d’en déterminer des points de fonctionnement optimaux du point de vue de l’efficacité énergétique. De même, la technique d’accès au média
MAPLAP/RICER a été optimisée. Ces travaux ont été réalisés sur un logiciel de simulation
développé au sein du laboratoire.
La conception d’architecture et d’algorithmes à faible consommation nécessite des outils
performants et une vision particulière. C’est pourquoi dans un troisième temps, l’évaluation de
la consommation énergétique a été abordée par différentes approches correspondant à différentes
phases de la conception. Des solutions ont été développées pour évaluer des choix logiciels
et matériels d’un point de vue du coût énergétique. Notre approche est basée sur le traçage
d’exécution de code, simple et fondée sur un autre cadre de programmation événementiel général
et portable.
i
ii
Abstract
Sensor networks are a very dynamic domain of research due, on the one hand, to the
opportunity to develop innovative applications that are linked to a specific environment, and
on the other hand to the challenge of designing totally automonous communicating objects. The
aim of this work is to define architectural operational solutions able to maximize the lifetime
of these sensor networks.
In order to reach this goal, the work that has been led aims to define the needs of performance, processing complexity, and memory, solving particular sensor networks applicative
scenarios.
Then, a generic sensor node platform is described according to the application constraints
analysis, from the lower-level hardware processing to the higher-level applicative tasks. This
highly adjustable integrated environment gives a global vision of the processing of the nodes,
which gives the means to study cross-layer optimizations. In particular, wireless communication
processings have been analytically described as generic elements of a communication system in
order to evaluate and optimize the energy efficiency. This work has been realized on a simulation
program that has been developed in our laboratory.
Low power architectural and algorithmic design requires high performance tools and a
particular vision. For this reason, the energy consumption evaluation has been studied, for
all differents steps of the design, and solutions have been given for the evaluation of energy
consumption and performance of hardware and software designs. The approach described is
based on code execution tracing on a general and portable event-driven system.
iii
iv
Remerciements
Cette thèse a été effectuée au sein de l’équipe R2D2 (Reconfigurable and Retargetable Digital
Devices) de l’IRISA (Institut de Recherche en Informatique et Systèmes Aléatoires), et cofinancée la région Bretagne, je souhaite leur adresser mes sincères remerciements.
Je tiens à remercier très vivement mon directeur de thèse Olivier Sentieys pour m’avoir suivi
et soutenu dans ce parcours, pour m’avoir conseillé et encouragé et pour m’avoir fait partager
son expérience et ses connaissances.
Merci également à Olivier Berder pour son soutien sans limite en particulier pendant la phase
de rédaction de cette thèse.
Un très grand merci à tous les gens qui m’ont accompagné et qui ont contribué au développement du prototype de la plate-forme de réseau de capteurs, Vincent Gervaise, Vinciane Bronner,
Fabrice Barriez, Javier Longares, Paali Tandia, Ludovick Lepauloux et Nicolas Mechouk.
Je remercie également nos interlocuteurs de la société Aphycare pour le matériel des plateformes du prototype, mais aussi pour leurs conseils avisés et le partage de leur précieux savoirfaire dans la conception de systèmes de communication radio.
Je remercie tous les membres de l’IRISA, le personnel technique et le personnel administratif
de l’ENSSAT pour avoir contribué, de près ou de loin, à ce travail.
Je remercie également les membres du jury, MM. Patrice Quinton, Jean-François Diouris, Michel Auguin et Patrick Garda.
Enfin, je remercie très chaleureusement tous mes proches, ma famille et mes amis pour leur
soutien et leurs encouragements.
v
Table des matières
Résumé
i
Abstract
iii
Introduction
5
1 Analyse et modélisation du trafic dans les réseaux de capteurs
13
1.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.2
Protocoles de routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.2.1
Stratégie de transmission multi-étapes . . . . . . . . . . . . . . . . . . .
15
1.2.2
Routage pro-actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.2.3
Routage réactif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.2.4
Routage géographique . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.2.5
Connaissance du positionnement géographique . . . . . . . . . . . . . .
21
1.3
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
1.4
Scénarios typiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
1.4.1
Échantillonnage périodique avec rapatriement automatique . . . . . . .
24
1.4.2
Surveillance à intervalle de temps constant avec rapatriement en cas de
1.5
réalisation d’une condition particulière . . . . . . . . . . . . . . . . . . .
25
1.4.3
Schéma d’interrogation ponctuelle initiée par la station de base . . . . .
26
1.4.4
Applications hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
1.4.5
Position de la station de base . . . . . . . . . . . . . . . . . . . . . . . .
27
Technique de modélisation du trafic . . . . . . . . . . . . . . . . . . . . . . . .
28
1.5.1
Modélisation de la topologie et échelle du réseau . . . . . . . . . . . . .
28
1.5.2
Modélisation du trafic au niveau application . . . . . . . . . . . . . . . .
28
1.5.3
Modélisation du trafic au niveau réseau . . . . . . . . . . . . . . . . . .
29
1.5.4
Modèles de trafic de référence des principaux schémas applicatifs . . . .
29
1
2
TABLE DES MATIÈRES
1.5.5
Modèle de trafic de l’échantillonnage périodique avec rapatriement automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.6
Modèle de trafic de la surveillance à intervalle de temps constant avec
rapatriement en cas de réalisation d’une condition particulière
1.5.7
1.6
30
. . . . .
30
Modèle de trafic de l’interrogation ponctuelle initiée par la station de base 30
Modélisation des performances conjointes des niveaux liaison et physique
. . .
32
1.6.1
Expressions de la consommation énergétique . . . . . . . . . . . . . . .
32
1.6.2
Description du système de communication . . . . . . . . . . . . . . . . .
34
1.6.3
Modélisation fonctionnelle et énergétique du problème . . . . . . . . . .
36
1.7
Résultats de performances entre deux capteurs en liaison directe . . . . . . . .
38
1.8
Extension aux niveaux supérieurs et évaluation de performance globale . . . . .
39
1.9
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
2 Architectures et traitements pour des réseaux de capteurs
43
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
2.2
Architecture des capteurs communicants . . . . . . . . . . . . . . . . . . . . . .
45
2.2.1
Plate-forme générique . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
2.2.2
Récupération d’énergie . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
2.2.3
Systèmes d’exploitation événementiels . . . . . . . . . . . . . . . . . . .
47
2.2.4
TinyOS et le langage de description nesC . . . . . . . . . . . . . . . . .
51
2.2.5
Modèle en couche d’interconnexions de systèmes . . . . . . . . . . . . .
55
Infrastructure logicielle de la pile de protocole développée . . . . . . . . . . . .
58
2.3.1
Niveau application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
2.3.2
Niveau réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
2.3.3
Niveau liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
2.3.4
Ordonnancement des tâches . . . . . . . . . . . . . . . . . . . . . . . . .
65
2.3.5
Optimisation des buffers des SAP . . . . . . . . . . . . . . . . . . . . . .
65
Modes de transmission et vecteurs de l’information . . . . . . . . . . . . . . . .
67
2.4.1
Modes de transmission dans un contexte de réseau de capteurs . . . . .
67
2.4.2
Structure des trames . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
2.3
2.4
2.5
Simulateur
2.5.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Description des éléments spécifiques à l’implémentation virtuelle en simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
2.5.2
Asynchronisme et simulation . . . . . . . . . . . . . . . . . . . . . . . .
74
2.5.3
Avantages et limites de l’implémentation ”simulation” . . . . . . . . . .
75
TABLE DES MATIÈRES
2.6
3
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Évaluation de la consommation et optimisation du prototype
76
79
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
3.2
Description de la plate-forme R2D2 . . . . . . . . . . . . . . . . . . . . . . . . .
83
3.2.1
Description du matériel . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
3.2.2
Protocoles d’accès au médium . . . . . . . . . . . . . . . . . . . . . . . .
84
3.3
3.4
Evaluation de l’énergie par traçage d’exécution de code
. . . . . . . . . . . . .
88
3.3.1
Traçage d’exécution dans un système événementiel . . . . . . . . . . . .
89
3.3.2
Identification des cycles d’ordonnancement caractéristiques . . . . . . .
92
3.3.3
Caractérisation en consommation des cycles d’ordonnancement . . . . .
97
Evaluation de l’énergie par une approche analytique . . . . . . . . . . . . . . .
98
3.4.1
Estimation analytique de la répartition des cycles d’ordonnancement . .
99
3.4.2
Événements anormaux des communications et coût énergétique . . . . . 101
3.4.3
Résultats d’évaluation de consommation d’énergie . . . . . . . . . . . . 106
3.5
Optimisation énergétique : exemple de l’intervalle de réveil. . . . . . . . . . . . 107
3.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Conclusion
111
Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4
Introduction
Introduction
Les évolutions dans le domaine des réseaux sans fils et dans celui des processeurs nous
permettent d’imaginer des réseaux denses, sans fils entre des nœuds hétérogènes et ayant pour
rôles de collecter des données d’un environnement et de les diffuser au sein du réseau. Ce type
de réseaux de capteurs pourrait avoir de très diverses applications. On pourrait prendre pour
exemple un réseau de capteurs de température, de lumière et de présence qui serait installé dans
un bâtiment et qui aurait pour rôle de contrôler les dépenses en énergie pour le chauffage et
l’éclairage. L’utilisateur final peut disposer des informations générées par les capteurs à l’aide
de la ou des stations de base qui sont les interfaces homme-machine du réseau de capteurs.
Les réseaux de capteurs étant constitués de nombreux nœuds, ils sont en mesure de tirer
parti de la densité du réseau et des redondances pour apporter de la tolérance aux pannes et
de la précision. La taille réduite des capteurs favorise en outre le déploiement en nombre de ces
derniers.
Les contraintes qui s’appliquent aux capteurs communicants se distinguent d’autres objets
communicants par de nombreux éléments. Si on compare les réseaux de capteurs avec les réseaux
locaux sans fil WLAN, on constate des différences majeures. Du point de vue du débit de
données, alors qu’il est de l’ordre de la dizaine de mégabits par seconde dans le cas des WLAN,
il est typiquement inférieur au kilobit par seconde dans le cas des réseaux de capteurs. La
taille des paquets de données échangés ne nécessite pas plus d’une centaine de bits dans le
cas des réseaux de capteurs, alors qu’elle dépasse le millier de bits dans le cas des WLAN.
En termes de distance de communication, les réseaux de capteurs communiquent à très courte
distance de l’ordre de la dizaine de mètres, alors que pour d’autres types de réseaux sans fils,
la distance de communication recherchée peut être de l’ordre du kilomètre, par exemple dans
le cas de la téléphonie cellulaire. Les réseaux WLAN privilégient les communications dans le
sens descendant, c’est-à-dire d’un serveur central vers des objets satellites ou ne favorisent pas
de sens particulier de communication. Dans le cas des réseaux de capteurs, la communication
est plutôt majoritairement montante, les nœuds étant les sources d’information et la station de
base le puits de données. En termes de mobilité, les réseaux WLAN doivent impérativement
5
6
Introduction
considérer la mobilité des objets communicants, à la différence des réseaux de capteurs plus
fondamentalement statiques.
Toutes ces différences en termes de besoins en performance peuvent être exploitées à bon
escient pour augmenter l’autonomie des capteurs. Car c’est là le point le plus crucial, alors que
la durée des batteries est de l’ordre de plusieurs heures en WLAN, les réseaux de capteurs visent
des autonomies bien plus élevées, de l’ordre de plusieurs années. Ce point est particulièrement
important si on considère le remplacement des batteries ou leur recharge manuelle comme impossible. Il est en effet difficilement imaginable d’effectuer ce genre de remplacement pour tous
les capteurs d’un réseau qui peut en comporter des milliers, qui plus est dans un environnement
éventuellement difficile d’accès, comme dans les plafonds ou les murs de bâtiments, ou si les
capteurs sont dispersés dans la nature.
Afin d’avoir une idée de la difficulté de conception d’après ces contraintes, on peut mettre
en regard la capacité embarquée typique de nœuds communicants de dimension et de poids
réduits et la consommation des nœuds. Fixons arbitrairement la quantité d’énergie embarquée
à 20000 Joules, ce qui est typique des implémentations les plus courantes. En ce qui concerne
les données de consommation d’un composant de communication commercial assez répandu,
le Chipcon CC1020, la courbe de consommation en fonction de la puissance d’émission fournie
est représentée à la figure 1. En sélectionnant la puissance d’émission minimum, cette consommation d’énergie est donc d’environ 42 mW (14 mA sous une tension d’alimentation de 3 V).
De plus les données constructeur indiquent que la consommation d’énergie en mode de réception est de 17,3 mA, ce qui représente une consommation d’environ 51,9 mW sous une tension
d’alimentation de 3V. En faisant l’approximation d’ignorer les autres systèmes, on trouve alors
les résultats suivants :
– dans le cas d’une réception continue, la durée de vie est bornée à 115 heures au plus,
– dans le cas d’une émission continue, la durée de vie est bornée à 142 heures au plus.
Ces valeurs, calculées simplement, montrent bien que le système d’accès au médium doit
être particulier car on peut dire qu’il est exclu d’employer un système dont la réception est
continuellement active sans quoi les objectifs d’autonomie visés par le cahier des charges ne
pourront pas être atteints.
Compte tenu des caractéristiques particulières des réseaux de capteurs, il est clair que la
conception ne saurait se calquer sur les techniques existantes utilisées pour les WLAN. A des
caractéristiques spécifiques, on doit également associer une méthodologie de conception spécifique. En l’occurence, la durée de vie très élevée visée pour les réseaux de capteurs nécessite
des précautions de conception particulièrement rigoureuses et l’évaluation énergétique est un
Introduction
7
Fig. 1: Consommation d’énergie en émission en fonction de la puissance d’émission.
élément qui doit être très intimement lié à toutes les étapes de la conception. A l’aide de
cet éclairage, le travail consiste ensuite à tenir compte des besoins en performance différents
comparés à des réseaux WLAN ou cellulaires pour trouver des compromis différents entre la
performance ”pure” et la consommation énergétique. Ces recherches de compromis doivent se
faire à tous les niveaux du traitement et en particulier dans les couches de protocole réseau. Par
exemple, on constate que les besoins en termes de débits sont plutôt faibles dans un contexte
de réseau de capteurs et cela doit être pris en compte pour éviter tout surdimensionnement des
émetteurs et des récepteurs.
De nombreuses équipes de recherche mènent depuis quelques années des travaux sur les
réseaux de capteurs, la plupart du temps liés à des réalisations réelles de capteurs communicants.
Dans le secteur industriel, on peut noter les travaux de normalisation autour de la norme IEEE
802.15 dont le champ de compétence vise les réseaux WPAN (Wireless Personal Area Network),
c’est-à-dire les réseaux sans fil à faible portée. Ce groupe de travail est divisé en quatre sousgroupes, et le plus adapté pour les réseaux de capteurs est le groupe IEEE 802.15.4 existant
depuis 2003 seulement et qui se focalise sur les WPAN à bas débit et à durée de vie élevée.
En parallèle de ce groupe, le groupe IEEE 802.15.4a répond aux mêmes besoins mais en se
basant sur la technologie Ultra-Wide Band (UWB), aussi connue sous le nom d’Ultra Large
Bande (ULB) en français. La norme Zigbee également émergente depuis peu de temps, dans le
courant de l’année 2004, a été construite sur la base du IEEE 802.15.4. Elle définit les couches
8
Introduction
supérieures et propose un système transparent de mise en réseau d’objets communicants.
Dans le monde de la recherche académique, il serait difficile de citer tous les acteurs, mais il
est néamoins incontournable de citer les projets suivants :
– µAMPS (MIT) [57],
– PicoRadio (Berkeley) [67],
– WINS (UCLA) [3],
– SmartDust (Berkeley) [83],
– WiseNet (CSEM) [22].
L’objectif général de cette thèse est de proposer une solution alternative aux systèmes cités
précédemment et, dans la mesure du possible, plus performante. Pour parvenir à cet objectif,
une phase préalable d’étude des besoins, des comportements et des caractéristiques spécifiques
des réseaux de capteurs a été réalisée. Puisque l’objectif est l’optimisation de systèmes de
réseaux de capteurs, nous avons cherché à en établir des modèles de performance et de consommation. Dans un premier temps, nous avons étudié les couches basses de communications dans
le but d’optimiser une liaison directe entre capteurs. La seule modélisation de ces couches
basses, qui s’étendent de la couche physique à la couche liaison, correspondant à un nombre
très élevé de paramètres, il a fallu trier ces derniers en plusieurs catégories. Certains paramètres
ne sont pas réellement des paramètres sur lesquels il est possible d’agir, parce qu’ils traduisent
les caractéristiques typiques d’un réseau de capteurs, tels que les distances entre les nœuds,
ou encore le débit de données nécessaire. Ces paramètres traduisant un scénario de réseau de
capteurs sont figés. Certains paramètres traduisant des choix technologiques sont également
considérés comme figés. Enfin, certains paramètres a priori inconnus sont en revanche l’objet
de l’optimisation, et en particulier la puissance d’émission. Dès lors, notre approche a consisté,
sur une base très analytique, à déterminer des points de fonctionnement optimaux pour ces
couches basses.
Ces résultats sont ensuite mis en relief par l’étude de la façon dont l’information transite
au sein du réseau de capteurs. Cette étape a consisté en l’étude d’applications de réseaux
de capteurs, mais également de protocoles de routages et des aspects de topologie, pour en
déduire des modèles de trafic de données. En appliquant les résultats d’optimisation obtenus
pour une communication directe entre deux capteurs à l’ensemble des communications d’un
trafic représentatif d’applications réalistes, nous avons pu étendre des résultats non plus à des
communications point-à-point directes, mais à une modélisation plus réaliste de réseaux de
capteurs.
Cependant, les modèles analytiques de consommation et de performance employés jusqu’alors
Introduction
9
Fig. 2: Organigramme du projet de recherche R2D2 sur les réseaux de capteurs
ont montré leurs limites. En effet, l’absence de réel modèle de technique d’accès au médium ne
permettait pas de rendre compte de certains éléments de performance comme les collisions de
paquets. De plus, les modèles de consommations très théoriques employés jusqu’alors supposaient une implémentation sur un circuit dédié, ce qui ne traduisait pas bien la réalité actuelle
des réseaux de capteurs. Par exemple, typiquement, les algorithmes de correction d’erreur et
de réémission automatique sont plutôt implémentés à l’aide de programmes s’exécutant sur des
microcontrôleurs faible consommation.
En faisant ce constat, nous avons décidé de pousser plus avant la qualité de nos modèles
de performances et de consommation. Certains travaux estiment la consommation d’énergie à
partir du traçage d’exécution de code réel [45] [74] [88]. Cette approche rend mieux compte des
réalités de l’implémentation des traitements sur des microcontrôleurs. Pour réaliser cela, il a
fallu concevoir un logiciel de réseau de capteurs optimisé, à l’aide de l’analyse applicative déjà
réalisée précédemment.
Dès lors nous avons adopté une méthodologie de conception en trois étapes, comme cela est
illustré par l’organigramme de la figure 2.
La première étape consiste en la définition du besoin, pour pouvoir imaginer réaliser des
structures de traitements qui correspondent parfaitement aux contraintes imposées par les
couches supérieures en matière de mémoire, de débits, d’échelle et de densité du réseau et
en tenant compte de la nature des événements issus des capteurs embarqués. Cette étape
10
Introduction
Fig. 3: Photo de la plate-forme du prototype de réseau de capteurs R2D2
réutilise en grande partie l’étude déjà réalisée sur les trafics de données lors des premiers
travaux d’optimisation d’une liaison entre objets en communication directe.
La deuxième étape consiste à définir les traitements mis en évidence à l’étape précédente et
ne dépendant pas du matériel choisi, sous forme d’un logiciel écrit en C à l’aide d’un cadre de
programmation moderne et adapté aux fortes contraintes de mémoire embarquée. Nous nous
sommes orientés vers une définition des traitements à l’aide de la bibliothèque des protothreads,
qui est à la base du système embarqué Contiki [20]. Un grand soin a été porté à distinguer
les traitements dépendant du matériel choisi des traitements indépendants de ces choix. De
même, les traitements dépendant de l’application ont été clairement distingués des traitements
indépendants de l’application. Dès lors, la conception du logiciel a été dictée par un cahier des
charges fondé sur une maximisation de la part des traitements indépendants de l’application et
de la cible matérielle, et sur une minimisation de l’utilisation mémoire. En adaptant le driver
de communication employant des files de messages Unix, nous avons compilé le logiciel vers
des capteurs ”virtuels” sous forme de processus Unix, communicant entre eux par un canal
virtuel constitué de files de messages IPC. Cela a permis de valider le logiciel et en particulier
le protocole de routage employé.
La troisième étape de conception du logiciel consiste à sélectionner une plateforme et décliner
les éléments dépendant du matériel. Lors de cette étape se pose alors le problème de la sélection
du protocole d’accès au médium en fonction des ressources offertes en termes de nombres de
canaux disponibles et de débits atteignables. Notre propre plate-forme a été développée à partir
de composants disponibles, équivalents en termes de consommation à d’autres implémentations,
mais ce fut une étape indispensable pour mettre au point la modélisation et l’optimisation de
la consommation.
Les contributions de ce travail ont consisté en l’analyse conjointe peformance/énergie d’une
liaison entre objets communicant, associé à une analyse des traitements applicatifs pour étendre
les résultats à un réseau complet. Devant les défauts mis en évidence par cette évaluation, une
nouvelle méthode d’évaluation a été réalisée en commençant par la définition d’un logiciel
Introduction
11
portable pour une plateforme générique qui a été identifiée. Ce logiciel a été défini sur un
cadre de programmation événementiel. Les tâches ont été programmées de telle sorte que les
traitements indépendants du matériel et de l’application soient prédominants. Ensuite, nous
avons décliné ce logiciel pour une plate-forme basée sur un microcontrôleur TI MSP 430 et
d’un composant de communication Chipcon CC1020. L’évaluation de la consommation de cette
plateforme en fonctionnement a alors été effectuée par un procédé de traçage d’exécution ce qui
a permis de mettre en évidence les causes majeures de consommation. Enfin, des optimisations
ont été réalisées sur cette plate-forme dans le but d’en augmenter l’autonomie, en partculier par
une étude du paramètre de l’intervalle de réveil, lié à la couche d’accès au médium employée.
Ce document se divise en trois chapitres. Le premier chapitre présente la modélisation et
l’optimisation conjointe performance/énergie d’un réseau de capteurs. Cette étude analytique
comporte deux grandes étapes. Tout d’abord, une analyse de trafic de l’information typique
d’un réseau de capteurs est réalisée. Pour cela, les protocoles de routages employés au sein de
réseaux de capteurs sont présentés. Ensuite, on s’intéresse à la modélisation d’une liaison entre
deux capteurs en liaison directe dans le but de minimiser la communication de données entre
ces deux nœuds. Puis, on réalise l’extension à un réseau entier à l’aide de l’analyse de trafic
préalable.
Le deuxième chapitre présente ensuite la conception d’un logiciel de réseau de capteurs pour
une plateforme générique. La description de ce logiciel est une solution pour pallier au manque
de réalisme relatif au modèle du premier chapitre. Le cahier des charges de ce logiciel impose
une séparation des traitements dépendant du matériel, de ceux indépendants du matériel. De
même, les traitements dépendant de l’application choisie doivent se distinguer des traitements
communs. Enfin, des efforts particuliers sont pris pour minimiser la taille du programme.
Le troisième chapitre présente le portage de l’application vers un prototype de plate-forme
candidate constituée d’un microcontrôleur basse consommation TI MSP430 et du composant
radio ChipCon CC1020. La problématique de l’accès au médium se pose alors et quelques éléments bibliographiques seront apportés, en décrivant plus particulièrement la technique RICER
[53], employée dans le prototype R2D2. L’évaluation énergétique de cette solution est ensuite
réalisée et des conclusions sont données quant à cette implémentation. Puis le problème de
l’optimisation de l’intervalle de réveil, qui est un paramètre très important de la couche d’accès
au médium, est abordé et des solutions sont données pour maximiser la durée de vie du réseau
de capteurs.
Enfin, le chapitre de conclusion et perspectives indiquera la direction à suivre pour la réalisation d’une plateforme aux caractéristiques adaptées dans le but d’un accroissement des
12
performances et de la durée de vie.
Introduction
Chapitre 1
Analyse et modélisation du trafic
dans les réseaux de capteurs
Contents
1.1
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.2
Protocoles de routage . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.2.1
Stratégie de transmission multi-étapes . . . . . . . . . . . . . . . . . .
15
1.2.2
Routage pro-actif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
1.2.3
Routage réactif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.2.4
Routage géographique . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
1.2.5
Connaissance du positionnement géographique . . . . . . . . . . . . .
21
1.3
Applications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
1.4
Scénarios typiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
1.5
1.4.1
Échantillonnage périodique avec rapatriement automatique . . . . . .
1.4.2
Surveillance à intervalle de temps constant avec rapatriement en cas de
24
réalisation d’une condition particulière . . . . . . . . . . . . . . . . . .
25
1.4.3
Schéma d’interrogation ponctuelle initiée par la station de base . . . .
26
1.4.4
Applications hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
1.4.5
Position de la station de base . . . . . . . . . . . . . . . . . . . . . . .
27
Technique de modélisation du trafic . . . . . . . . . . . . . . . . . .
28
1.5.1
Modélisation de la topologie et échelle du réseau . . . . . . . . . . . .
28
1.5.2
Modélisation du trafic au niveau application . . . . . . . . . . . . . . .
28
1.5.3
Modélisation du trafic au niveau réseau . . . . . . . . . . . . . . . . .
29
1.5.4
Modèles de trafic de référence des principaux schémas applicatifs . . .
29
1.5.5
Modèle de trafic de l’échantillonnage périodique avec rapatriement automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
30
14
Analyse et modélisation du trafic dans les réseaux de capteurs
1.5.6
Modèle de trafic de la surveillance à intervalle de temps constant avec
rapatriement en cas de réalisation d’une condition particulière
1.5.7
. . . .
30
Modèle de trafic de l’interrogation ponctuelle initiée par la station de
base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.6
Modélisation des performances conjointes des niveaux liaison et
physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
32
1.6.1
Expressions de la consommation énergétique . . . . . . . . . . . . . .
32
1.6.2
Description du système de communication . . . . . . . . . . . . . . . .
34
1.6.3
Modélisation fonctionnelle et énergétique du problème . . . . . . . . .
36
1.7
Résultats de performances entre deux capteurs en liaison directe
1.8
Extension aux niveaux supérieurs et évaluation de performance
1.9
30
38
globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
Conclusion
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction
Dans ce premier chapitre, nous allons dans un premier temps analyser les schémas de trafic
de données au sein de réseaux de capteurs. Pour cela, nous évoquerons dans une première
section la problématique du routage au sein d’un réseau ad hoc, qui par définition ne dispose
pas d’infrastructure centrale pour son administration. L’intérêt du routage multi-étapes dans
un but de préservation de l’énergie sera expliqué. Ensuite, seront présentés les routages ad hoc
pro-actif, réactif et les cas un peu particuliers des techniques de routage géographique.
Dans une deuxième section, nous présenterons les applications typiques des réseaux de capteurs et tenterons d’en déduire comment l’information transite dans le réseau de capteurs en
fonction de plusieurs familles d’applications.
Une troisième section aura pour objectif de se focaliser sur la modélisation d’une liaison
de données entre deux capteurs seulement : un émetteur et un récepteur. Nous chercherons à
optimiser une communication entre ces deux capteurs. Pour cela, un modèle conjoint performance/énergie sera employé.
Enfin, nous donnerons des résultats de cette évaluation, étendue à un réseau entier.
1.2
Protocoles de routage
La fonction de routage peut se définir comme la façon d’acheminer de l’information d’une
source à un destinataire à travers un réseau de connexions donné. Un bon routage doit être
capable d’acheminer les informations
1.2 Protocoles de routage
15
– avec une latence faible,
– en utilisant peu d’énergie, donc en utilisant les meilleures liaisons de données,
– en minimisant la charge du réseau, afin de maximiser la quantité totale d’informations
pouvant être transmises sur le réseau dans son ensemble,
– en étant fiable, et en particulier en étant tolérant aux pannes de nœuds du réseau.
Les réseaux de capteurs font partie de la classe des réseaux ad hoc. Ces réseaux ad hoc sont des
réseaux d’objets potentiellement nombreux qui ne nécessitent pas d’infrastructure fixe pour
fonctionner. Les éléments du réseaux doivent donc être en mesure de s’auto-organiser pour
pouvoir communiquer. Tous les éléments du réseau assurent donc la fonction de routage de
l’information au sein du réseau ad hoc. Les protocoles de routage sont au cœur de la recherche
sur les réseaux ad-hoc.
1.2.1
Stratégie de transmission multi-étapes
Dans le cas des réseaux ad hoc sans fil, les éléments du réseau sont autonomes et afin de
sauvegarder de l’énergie, ils emploient des techniques de routage multi-étapes. Ces techniques
de routage consistent à réaliser une transmission de données entre un émetteur et un récepteur
en utilisant éventuellement des capteurs intermédiaires tels des relais si la distance entre la
source et le destinataire du message est trop importante.
Cette technique part du principe qu’une communication sans fil à longue distance est plus
coûteuse énergétiquement parlant que plusieurs communications à courte distance.
Dans le cas d’une onde sphérique traduisant la méthode de propagation radio réalisée au
moyen d’une antenne omnidirectionnelle, un modèle simpliste de canal consiste à considérer
que la puissance totale de l’onde est une constante sur la totalité de la surface. Si on fait abstraction de l’atténuation typique du milieu de propagation, c’est-à-dire de l’énergie absorbée
par le milieu de propagation, on est alors dans le cas idéal. Dans ce cas de propagation omnidirectionnelle, puisque la surface du front d’onde augmente avec la distance parcourue, la
puissance est alors de plus en plus diluée à mesure que la distance augmente et cette dilution
est appelée affaiblissement. Dans le cas d’un milieu idéal et d’une propagation sphérique, en
posant O le point à la source de l’onde, r la distance à laquelle on mesure la puissance de l’onde,
psource la puissance totale observable à une distance nulle (r = 0) de la source, s = 4.πr2 la
surface de la sphère et λ la longueur d’onde du signal transmis, la puissance du signal p(r) peut
16
Analyse et modélisation du trafic dans les réseaux de capteurs
s’exprimer par la relation suivante
p(r) ≈
λ2
λ2
.psource =
.psource
4.s
16.πr2
(1.1)
cette relation est une approximation correcte pour des faibles distances ou pour une propagation
libre sur un canal idéal sans phénomène d’atténuation [15]. Pour mieux traduire la réalité et en
particulier pour un environnement en intérieur, il faut tenir compte de la présence d’obstacles
sources d’atténuation, et de réflexions multiples. Le modèle précédemment donné ne convient
alors plus du tout. Bien qu’il soit difficile de définir un modèle universel étant donnée la diversité
d’environnements, il est possible de tirer des règles générales à partir de résultats de test sur
des canaux divers [32] [37] [5] [10]. En considérant que l’expression précédente est valide à 1
mètre de distance p(1), on peut alors modéliser la puissance pour des distances plus élevées par
P (r) = p(1).r−α
(1.2)
avec α appelé coefficient d’affaiblissement. En effet, ce modèle est mieux adapté aux distances
plus grandes. On peut noter à ce titre que ce terme de coefficient d’affaiblissement est ici utilisé
un peu abusivement étant donné qu’il exprime la combinaison des deux mécanismes physiques
réduisant la puissance du signal, à savoir l’affaiblissement et l’atténuation par le milieu de propagation. Le coefficient d’affaiblissement α est également sensé représenter des caractéristiques
d’un environnement pouvant éventuellement comporter des obstacles comme les murs des bâtiments. Par exemple, on a l’habitude de considérer que pour un environnement intérieur et
pour des distances inférieures à 10 mètres, α est typiquement compris entre 2 et 4 [32] [17].
Ce qu’on peut dire à partir de cette modélisation, largement employée dans les publications
sur les réseaux de capteurs, est que l’affaiblissement des signaux suivant une loi en r−α , elle
va pénaliser beaucoup les transmissions sur de longues distances. Pour des grandes distances
source-destinataire, on suppose qu’à partir d’une certaine distance r, la somme de l’énergie
dépensée Etot ( Nr ) pour la transmission d’un paquet de données par un ensemble de N transmissions de distance
r
N
est inférieure à l’énergie dépensée au cours d’une seule communication
de distance r ou encore
N.Etot (
r
) < Etot (r)
N
(1.3)
pour un r dépassant un certain seuil. En termes d’énergie, cela peut donc se révéler plus
intéressant de réaliser des transmissions en plusieurs étapes, à partir du moment où l’application
1.2 Protocoles de routage
17
est capable de tolérer des latences supplémentaires, étant donné qu’on peut considérer que la
latence est proportionnelle au nombre d’étapes de transmissions. Dans le cas des réseaux de
capteurs, certaines applications peuvent autoriser des latences élevées et c’est la raison pour
laquelle le routage multi-étapes est primordial.
Ce mode de routage a été employé dans le prototype développé au laboratoire.
1.2.2
Routage pro-actif
Les protocoles de routages pro-actifs constituent une catégorie de routage ad hoc dans laquelle
chaque élément du réseau cherche à établir des tables de routages valides en permanence. Pour
ce faire, ces protocoles pro-actifs dialoguent en permanence même si aucun transfert de données
n’est demandé. Pour généraliser, les performances du routage pro-actif se caractérisent par
– les latences les plus faibles, puisque les applications souhaitant émettre peuvent supposer
l’existence de routes à jour et valides,
– une consommation d’énergie importante et une utilisation importante de la bande passante,
dues au fait que le protocole de mise à jour des routes est employé en permanence, même
si les routes ne sont jamais exploitées,
– une utilisation importante de mémoire vive, due à la nécessité de mémoriser sur le long
terme les tables de routages, y compris pour les routes peu ou pas utilisées.
Parmi cette famille de routages ad hoc pro-actifs on retrouve de nombreuses versions, répertoriées ci-après :
– OLSR (Optimized Link State Routing Protocol) [36],
– CGSR (Clusterhead Gateway Switch Routing protocol) [14],
– DBF (Distributed Bellman-Ford Routing Protocol) [6] ,
– DSDV (Highly Dynamic Destination-Sequenced Distance Vector routing protocol) [63] ,
– Guesswork [62] ,
– IARP (Intrazone Routing Protocol) [31],
– LCA (Linked Cluster Architecture)[26],
– STAR (Source Tree Adaptive Routing Protocol) [25],
– TBRPF (Topology Dissemination based on Reverse-Path Forwarding Routing Protocol)
[59],
– WRP (Wireless Routing Protocol) [58].
18
Analyse et modélisation du trafic dans les réseaux de capteurs
1.2.3
Routage réactif
La famille des routages réactifs réunit les techniques de routages pour lesquelles les routes
sont déterminées uniquement au moment où une transmission de données doit être réalisée. La
transmission se déroule en deux phases ; dans la première phase a lieu la recherche de route et
dans la deuxième phase a lieu le transfert de données. Dans ce cas, ce qu’on entend par le terme
de ”route” est l’intégralité des nœuds intermédiaires qui vont constituer les différentes étapes
des paquets de données. Les principales caractéristiques de performance des routages réactifs
sont
– une latence plus élevée que dans le cas d’un routage pro-actif, due au fait que chaque
transmission est précédée de la phase de recherche de route,
– une consommation d’énergie contrôlée et qui correspond aux routes effectivement utilisées
par les informations échangées,
– une utilisation de la mémoire évoluant avec l’utilisation réelle des informations échangées.
De nombreux protocoles pouvant être qualifiés de réactifs sont listés ci-après :
– Ad-hoc On-demand Distance Vector [64],
– Ant-based Routing Algorithm for Mobile Ad-Hoc Networks [28],
– Admission Control enabled On demand Routing (ACOR) [41],
– Associativity-Based Routing [80],
– Backup Source Routing [76],
– CacHing And MultiPath routing [82],
– Dynamic Source Routing [39],
– Implicit Source Routing [34],
– Dynamic NIx-Vector Routing [46],
– Flow Oriented Routing [24],
– GB (Gafni-Bertsekas) [23],
– IERP (partie réactive du protocole ZRP) [30] ,
– LBR (Link life Based routing) [54],
– LMR (Lightweight Mobile Routing protocol) [16] ,
– MOR - Multipath On-demand Routing Protocol [7] ,
– MPRDV (Multipoint Relay Distance Vector protocol) [2] ,
– RDMAR (Relative-Distance Micro-discovery Ad hoc Routing protocol) [1],
– SSR (Signal Stability Routing protocol) [18],
– TORA (Temporally-Ordered Routing Algorithm routing protocol) [61],
– PLBR (Preferred link based routing) [75].
1.2 Protocoles de routage
1.2.4
19
Routage géographique
Le routage géographique est un routage qu’on peut qualifier de ad hoc puisqu’il ne nécessite
pas l’existence d’une quelconque infrastructure fixe. Cependant, le mode de fonctionnement des
techniques de routage géographique est très différent des routages ad hoc présentés précédemment, par le fait qu’une notion supplémentaire est supposée connue : la position géographique
des éléments du réseau. En effet, dans le cas général des routages ad hoc, la disposition géographique n’est pas en tant que telle supposée nécessaire, alors qu’elle est au cœur de la technique
de routage géographique. Le routage géographique est constitué de plusieurs mécanismes :
– l’autopositionnement est une fonctionnalité qui permet à un nœud du réseau de connaı̂tre
sa position géographique,
– l’apprentissage de la topologie du réseau (éventuellement partiel),
– le routage à proprement parler, qui exploite les informations d’autopositionnement et de
topologie précédemment évaluées.
Dans le cas des réseaux de capteurs, le routage géographique est tout particulièrement intéressant étant donné qu’on bénéficie d’un réseau relativement figé, à la mobilité soit nulle, soit
très faible. En effet, dans ce cas la phase d’autopositionnement n’est exécutée que lors de la
mise en place du réseau, et l’apprentissage de la topologie du réseau est réalisé rarement et
uniquement pour envisager les pannes éventuelles des nœuds alentour. On se trouve alors dans
une situation très favorable qui permet de réduire la masse d’informations échangées dans le
but de rendre opérationnel le système de routage.
De plus, la masse de données devant être mémorisée par les nœuds du réseau est également
réduite, puisqu’il est possible de fonctionner avec assez peu d’information traduisant une topologie locale, pour extrapoler les routes éloignées à l’aide d’une direction globale. Cela ne peut
bien sûr fonctionner correctement que si la densité des nœuds est suffisante et si il n’existe pas
de configurations topologiques problématiques comme par exemple celle qui est montrée sur la
figure 1.1.
Les principales caractéristiques de performance des routages géographiques sont :
– une latence comparable à du routage pro-actif, car les informations d’auto-positionnement
et de voisinage sont accessibles à tout moment ;
– une consommation d’énergie limitée grâce au fait que les informations de topologie ne
nécessitent pas des mises à jour constantes dans le cas où la mobilité est très faible ou
nulle. A l’extrême, l’autopositionnement pourrait n’être invoqué qu’à la mise en place
d’un capteur, la mise à jour de la topologie locale restant nécessaire pour intégrer les
nouveaux capteurs et exclure les capteurs connaissant des défaillances ;
20
Analyse et modélisation du trafic dans les réseaux de capteurs
Fig. 1.1: Exemple de topologie problématique dans le cas du routage géographique. La source
doit router ses messages non pas vers la direction géographique du nœud destination, mais dans
le sens opposé, puisque c’est le seul chemin valide existant.
– une utilisation de la mémoire la plus limitée, puisque seule une connaissance très localisée
du réseau est nécessaire, le routage vers les capteurs les plus éloignés se faisant à l’aide de
la direction globale du nœud destination ;
– une qualité de service qui n’est pas assurée à 100 %, puisque les routes ne sont pas établies
parfaitement par le nœud source ; les routes sont déterminées partiellement au fur et à
mesure de la progression des données.
Ce dernier point concernant la qualité de service est contrebalancé par une forte densité de
nœuds et une repartition homogène des nœuds pour éviter des situations comme celle illustrée
par la figure 1.1.
Quelques exemples de ces routages géographiques dans la littérature sont listés ci-après :
– BGR (Blind Geographic Routing) [85],
– DREAM (Distance Routing Effect Algorithm for Mobility) [4],
– GLS(Grid) (Geographic Location Service) [49],
– LAR (Location-Aided Routing protocol) [43],
– GPSAL (GPS Ant-Like Routing Algorithm) [11],
– ZHLS (Zone-Based Hierarchical Link State Routing) [38],
– GPSR (Greedy Perimeter Stateless Routing) [40],
– Terminode Routing (Terminode local routing and Terminode Remote Routing) [8],
– LBM (Location Based Multicast) [43],
– GeoGRID [50],
1.2 Protocoles de routage
21
– GeoTORA [42],
– MBGR [9],
Le routage géographique présente donc des avantages particulièrement intéressants pour les
réseaux de capteurs, d’autant plus que les contraintes importantes nécessaires pour que le
routage géographique puisse être exploitable sont réunies (très faible mobilité et densité élevée).
En pratique, il est difficile de considérer une mobilité nulle de tout le réseau, puisque cela
réduirait de façon radicale les applications envisageables. Cependant, le gain qui pourrait être
obtenu par le fait de pouvoir supposer l’immobilité de tous les nœuds du réseau, ou tout du
moins la majeure partie, pourrait permettre de réaliser des gains significatifs en termes de
consommation d’énergie.
C’est la raison pour laquelle il est souhaitable de pouvoir envisager qu’une partie du réseau
de capteurs puisse être mobile. Dans notre prototype, nous avons opté pour une combinaison
de capteurs fixes et de capteurs mobiles avec une plus grande proportion de capteurs fixes.
1.2.5
Connaissance du positionnement géographique
Comme cela a déjà été évoqué plus haut, la plupart des méthodes de routage utilisent des
informations sur le positionnement géographique des nœuds. De plus, ce positionnement géographique n’est pas seulement utile au routage, mais aussi à la pertinence des messages typiques
au sein de réseaux de capteurs [17, 8]. Par exemple, dans le cas de capteurs de température dans
un bâtiment, si la température n’est pas en correspondance avec le lieu où elle a été mesurée,
l’information est de peu d’intérêt.
Une première façon simple pour chaque nœud de déterminer sa position géographique peut
être le positionnement global à l’aide de la technologie GPS. Cette solution semble intéressante puisque l’infrastructure est déjà déployée. Mais ce système a ses limites et si on peut
effectivement l’envisager en extérieur, il donne de très mauvais résultats en intérieur.
D’autres idées sont évoquées dans divers articles [8, 72](projet Terminode) [81](projet PicoRadio).
Toutes les solutions proposées présupposent l’existence de nœuds dont le positionnement
géographique relatif est préalablement connu et fonctionnent à l’aide de triangulations [72].
Méthodes de mesures relatives et triangulations
Pour déterminer les positions géographiques relatives des différents capteurs, il existe, outre
la technologie GPS, trois familles de mesures [56].
Les méthodes ToA (time of arrival) utilisent les instants d’arrivée de signaux de type radio
22
Analyse et modélisation du trafic dans les réseaux de capteurs
ou sonore, ainsi que les données sur les vitesses de propagation de ces signaux pour calculer
les distances entre les capteurs. On peut distinguer plusieurs déclinaisons de ces méthodes :
mesure du temps de propagation aller, du temps de propagation aller-retour avec réflexion
active ou passive, ou encore différence de temps de propagation entre groupes de capteurs.
Le GPS peut être considéré comme une méthode ToA, puisqu’elle utilise les différences de
temps de propagation TDoA. Pour une application dans les réseaux de capteurs, les signaux
de type radio semblent plus adaptés, malgré le fait que le temps de propagation à mesurer est
extrêmement court, de l’ordre de 10 ns pour 3 m.
Les méthodes AoA (angle of arrival) sont basées sur les directions des signaux. Ces directions sont mesurées par les capteurs à l’aide de réseaux d’antennes. Les temps d’arrivée d’un
signal aux différentes antennes sont ensuite comparés pour déterminer la provenance de l’onde.
L’inconvénient principal de ces méthodes est la nécessité de disposer de plusieurs antennes de
réception pour un capteur, entraı̂nant des coûts énergétiques supplémentaires. De plus, les récepteurs doivent pouvoir distinguer des déphasages extrêmement faibles dans le cas des ondes
radios, ce qui a un impact direct sur la consommation.
La dernière méthode est basée sur la mesure de l’amplitude des signaux reçus. Cette méthode
nécessite la connaissance des caractéristiques des pertes dues à la propagation des signaux dans
le milieu, ainsi qu’une bonne connaissance des caractéristiques des systèmes d’émission et de
réception. Bien que les mesures de distances faites avec cette méthode soient assez imprécises
(les erreurs peuvent être de l’ordre de 50 %), la méthode est cependant intéressante puisqu’elle
ne nécessite pas autant de rapidité de traitement que les deux autres, et peut être utilisée avec
un matériel simple (une seule antenne suffit), contrairement à la méthode de mesure d’angles.
Pour l’application aux réseaux de capteurs qui ont des contraintes énergétiques fortes, ce choix
semble être le plus intéressant des trois. De plus, le concept de réseau de capteurs implique
une forte densité de capteurs ; on peut donc espérer qu’il y ait de la redondance pour faire les
calculs de triangulations, ce qui pourrait atténuer l’effet des erreurs de mesures de distances.
Les trois méthodes ont toutes des difficultés avec le problème des réflexions multiples des
ondes : des imprécisions sur l’angle d’incidence, le temps de propagation et la puissance mesurée
sont évidentes. De plus, dans le cas de la mesure de la puissance des signaux, la présence
d’obstacles comme des murs ou des meubles peut générer des distorsions importantes dans les
cartes issues de la triangulation. C’est la raison pour laquelle les algorithmes de positionnement
qui vont utiliser ces résultats doivent impérativement avoir une grande tolérance d’erreur.
1.3 Applications
1.3
23
Applications
Un réseau de capteurs sans-fils est constitué de composants autonomes intégrés, connectés
ensemble par liaisons radiofréquences, capables de mesurer des paramètres physiques dans des
environnements variés et de se coordonner en vue de remplir une fonction applicative spécifique. Cette nouvelle approche de contrôle et de suivi trouve de nombreuses applications, dans
des domaines variés. Dans le domaine agricole, on peut imaginer des réseaux de capteurs surveillant des données liées à la météo, à la surveillance des cultures, notamment les maladies,
l’humidité, la pollution, etc.. Dans le domaine de la construction et du bâtiment, on peut penser
à des systèmes de surveillance du vieillissement des édifices. Dans le domaine des transports,
notamment le transport routier, des réseaux de capteurs pourraient diffuser des informations de
portée locale sur les conditions de circulation, les alertes, et permettre d’améliorer la sécurité.
Dans le domaine militaire, des suggestions d’applications ont été données, par exemple pour le
suivi des mouvements de l’ennemi, il peut être intéressant de déployer un réseau de capteurs qui
réaliserait la surveillance en ”arrosant” une zone de capteurs à l’aide d’avions ou d’hélicoptères.
On peut aussi penser à la surveillance chimique et bactériologique. Dans le domaine de la sécurité civile, les réseaux de capteurs pourraient jouer un rôle primordial pendant des catastrophes
naturelles, notamment après des séismes : il pourrait être intéressant de déployer des réseaux
de capteurs pour détecter la présence de vie humaine, de fuites de gaz ou autre pour secourir
ou protéger les populations. Enfin certains ont émis l’idée de déployer des réseaux de capteurs
sur des planètes du système solaire, comme un moyen relativement simple à mettre en oeuvre
pour récupérer diverses données. Le cadre applicatif privilégié est celui des capteurs nécessitant
un déploiement important en nombre d’unités, impliquant une réduction importante des coûts
et de l’énergie électrique consommée.
Ce travail de thèse sur les réseaux de capteurs a été articulé autour de la définition précise des
besoins applicatifs pour mieux adapter les traitements nécessaires. En connaissant mieux les
besoins applicatifs, il serait alors possible d’optimiser le logiciel et le matériel d’un point de vue
de l’efficacité énergétique. Ainsi, il serait intéressant de pouvoir estimer les quantités de données échangées par les applications elles-mêmes, mais également par les protocoles utilisés pour
entretenir les informations de routage ou encore ceux utilisés pour l’évaluation de la position
géographique des capteurs. Les quantités de données échangées doivent permettre de dimensionner au mieux les caractéristiques des systèmes de transmission numérique employés par
la couche physique, notamment les débits minimaux que doivent pouvoir assurer ces éléments,
ainsi que les latences maximales acceptables. De plus, il faut avoir une idée de la complexité des
24
Analyse et modélisation du trafic dans les réseaux de capteurs
traitements à réaliser pour pouvoir choisir des composants adaptés. Ces performances incluent
des notions de complexité des algorithmes, d’utilisation mémoire. À ce titre, la consommation
de la mémoire est un élément important de la consommation totale d’énergie en particulier à
cause de la consommation liée à l’énergie statique qui est perdue, y compris pendant les phases
d’inactivité, celles-ci pouvant occuper la majeure partie du temps.
1.4
Scénarios typiques
À partir des applications présentées précédemment, l’objectif est d’extraire des mécanismes
réseau de base dans le but de concevoir un système répondant juste à ces besoins. L’approche
est en effet différente de l’utilisation d’une norme réseau préexistante, sans tenir compte des
contraintes aussi spécifiques que celles qui peuvent être trouvées dans le domaine des réseaux
de capteurs.
Avant d’entrer dans les détails d’améliorations des différentes couches de traitements une
par une, l’idée est d’envisager les échanges d’information au niveau applicatif dans un premier
temps, pour cerner les réels besoins et mettre en évidence les traitements strictement nécessaires.
Quelques travaux [79] [35] [33] ont exposé leur analyse des mouvements d’information dans des
réseaux de capteurs. On peut distinguer plusieurs types de réseaux de capteurs. On retrouve
parmi ces schémas génériques de nombreux types de fonctionnements, dont certains d’entre eux
sont développés dans les sections suivantes. Parmi eux seront présentés plus particulièrement :
– le maintien des informations d’autopositionnement,
– le maintien des informations de routage,
– l’échantillonnage à intervalle de temps constant avec rapatriement automatique vers la
station de base,
– la surveillance par échantillonnage à intervalle de temps constant avec rapatriement en cas
de réalisation d’une condition particulière, l’exemple typique est l’alerte consécutive à un
événement particulier,
– la surveillance par interrogation ponctuelle.
1.4.1
Échantillonnage périodique avec rapatriement automatique
Le premier scénario est un réseau fixe de surveillance dans lequel les capteurs communicants
n’ont aucun rôle d’interprétation des données. Les décisions à prendre quant aux valeurs de
mesure des capteurs sont calculées au niveau de la station de base exclusivement. Le schéma
de la figure 1.2 illustre ce type d’application. Chaque capteur a les fonctions suivantes :
1.4 Scénarios typiques
25
Fig. 1.2: Schéma d’un échantillonnage à intervalle de temps constant avec rapatriement automatique vers la station de base.
1. le maintien des informations d’autopositionnement,
2. le maintien des informations de routage,
3. un processus périodique qui effectue des mesures à intervalle constant,
4. une génération de rapport de mesure systématique à destination de la station de base se
diffusant en mode multi-étapes dans l’hypothèse où la station de base est hors de portée
de communication.
1.4.2
Surveillance à intervalle de temps constant avec rapatriement en cas
de réalisation d’une condition particulière
Un second scénario consiste pour le réseau de capteurs à réaliser des mesures en permanence,
associé à un filtrage correspondant à une interprétation des données mesurées localement. Suite
à ce traitement, chaque capteur peut prendre l’initiative de générer un message à destination
de la station de base. Ce message peut être interprété la plupart du temps comme un message
d’alerte. Ce type de fonctionnement applicatif est assez commun et utilisé dans des applications
d’alertes tels que la détection d’incendie ou encore la détection de présence. Chaque capteur
doit réaliser :
1. le maintien des informations d’autopositionnement,
2. le maintien des informations de routage,
3. un processus périodique qui effectue des mesures à intervalle constant,
4. un traitement de filtrage qui interprète les données mesurées,
5. des générations d’alerte le cas échéant en direction de la station de base.
Ce type d’application peut être représenté par la figure 1.3.
26
Analyse et modélisation du trafic dans les réseaux de capteurs
Fig. 1.3: Schéma de surveillance à intervalle de temps constant avec rapatriement en cas de
réalisation d’une condition particulière.
1.4.3
Schéma d’interrogation ponctuelle initiée par la station de base
Dans un troisième scénario, les mesures ne sont plus effectuées à l’initiative des capteurs,
mais découlent d’un ordre spécifique émis par la station de base. Les événements de mesures
ne sont pas initiés directement par les capteurs, mais déclenchés exclusivement par la réception
d’ordres en provenance de la station de base. Cette situation est celle qui permet de limiter le
plus la consommation d’énergie ainsi que l’utilisation du canal dans le cas où les requêtes sont
suffisamment rares. Chaque capteur doit exécuter :
1. le maintien des informations d’autopositionnement
2. le maintien des informations de routage
3. une tâche de fond capable de recevoir les ordres de mesures de la part de la station de
base,
4. une mesure, ponctuellement, à la réception d’un ordre de mesure,
5. un rapport de mesure, ponctuellement, à destination de la station de base en employant
un schéma de propagation multi-étapes.
La figure 1.4 illustre ce comportement.
1.4.4
Applications hybrides
Ces cas de figures peuvent éventuellement coexister, voire même se combiner. Par exemple,
de nombreux travaux sur les applications mettent en évidence des fonctionnement sous forme de
clusters. Dans ces situations, les capteurs se regroupent par paquets, le critère de regroupement
étant la proximité géographique. Une hiérarchie peut s’établir au sein même de ces clusters pour
1.4 Scénarios typiques
27
Fig. 1.4: Schéma d’une surveillance par interrogation ponctuelle initiée par la station de base.
tenter de cumuler les avantages des différentes stratégies, l’un des capteurs du cluster jouant
en quelque sorte le rôle de station de base locale.
En procédant par des techniques de ce genre, on peut par exemple considérer que les capteurs
emploient une technique d’échantillonnage périodique avec rapatriement automatique vers la
tête de cluster, les têtes de clusters employant à leur échelle une technique de surveillance à
intervalle constant avec rapatriement vers la station de base en cas de réalisation d’une condition
particulière.
1.4.5
Position de la station de base
Toutes ces catégories applicatives peuvent éventuellement être modulées par des critères
supplémentaires liés à la station de base, ou plutôt aux stations de bases, à savoir leur nombre
au sein du réseau et leur position relative par rapport aux capteurs du réseau. La situation
de la station de base à une position centrale dans le réseau est favorable, puisque la distance
moyenne entre les capteurs et la station de base sera minimisée, ce qui permet également de
minimiser le nombre d’étapes moyen pour des transferts entre la station de base et les capteurs
dans les sens ascendant et descendant. De plus, une position centrale de la station de base
permet une meilleure répartition de l’utilisation du canal.
Cependant, dans de nombreux cas, la station de base se retouve plutôt en périphérie du
réseau ce qui a des conséquences sur les performances globales et sur l’énergie globalement
dépensée.
28
Analyse et modélisation du trafic dans les réseaux de capteurs
1.5
Technique de modélisation du trafic
La modélisation du trafic est nécessaire pour pouvoir simuler des réseaux de capteurs en
fonctionnement. Cela est très important puisque cela permet au concepteur d’évaluer ses choix
de conception avant toute implémentation réelle. Au niveau initial de la conception, il s’agit de
faire varier des éléments tels que :
1. la topologie du réseau, c’est-à-dire la disposition des capteurs les uns par rapport aux
autres ;
2. l’échelle du réseau, c’est-à-dire une valeur qui définit les distances entre les capteurs. Ceci
est important puisque les notions de rayon d’émisison, de densité du réseau et de nombre
moyen de voisins en découlent directement ;
3. les quantités d’informations qui transistent entre chacun des nœuds.
La réalisation de modèle peut être sur mesure, quand par exemple on connaı̂t exactement la
topologie finale du réseau et les mécanismes des applications. Les modèles peuvent également
être génériques, tirés de l’étude des paradigmes applicatifs tels que ceux décrits en section 1.4.
1.5.1
Modélisation de la topologie et échelle du réseau
La modélisation sous forme de matrice de la topologie du réseau et du trafic permet une
programmation simplifiée à l’aide de logiciels de simulation tels que Mathworks Matlab, qui
est le logiciel que nous avons utilisé pour les diverses simulations. La topologie du réseau
est modélisée à l’aide d’un tableau de trois ou quatre colonnes selon que l’on considère un
réseau plan ou tridimensionnel. La première colonne contient les identifiants des nœuds sous
forme d’entiers naturels non nuls. Cet identifiant est très arbitraire et ne sera réellement utile
que dans le cadre d’une simulation, puisqu’un nœud peut complètement être identifié à l’aide
de ses seules coordonnées géographiques. L’introduction d’une notion d’ordre dans l’ensemble
des nœuds est cependant utile pour faire fonctionner un certain nombre d’algorithmes, c’est la
raison pour laquelle cet identifiant est utilisé. Les colonnes suivantes contiennent les coordonnées
cartésiennes x, y, et éventuellement z des capteurs dans un repère orthonormé dont l’unité est
le mètre. Le nombre de nœuds du réseau est noté N .
1.5.2
Modélisation du trafic au niveau application
Le trafic au niveau application s’entend par l’énumération du nombre de paquets d’une
certaine taille taille paquet pour chaque couple émetteur-récepteur du réseau. Les éventuels
1.5 Technique de modélisation du trafic
29
capteurs utilisés comme relais ne sont pas comptabilisés dans cette énumération. On se situe au niveau applicatif uniquement de la pile de protocole, donc la notion de routage y est
transparente, ainsi que les intermédiaires réquisitionnés pour acheminer l’information jusqu’au
destinataire.
Le trafic au niveau application est représenté par une matrice carrée d’entiers à deux dimensions Vi,j de taille N 2 dans laquelle est stocké le nombre de transmissions effectuées entre une
application quelconque de l’émetteur i et une application quelconque du récepteur j.
1.5.3
Modélisation du trafic au niveau réseau
Le trafic au niveau réseau est plus utile que celui au niveau des applications, puisqu’il traduit
mieux les ressources qui sont réquisitionnées lors de la communication entre deux applications
distantes. Cependant, obtenir des modèles réalistes est plus difficile, puisque cela implique de
définir le fonctionnement des protocoles de routage. La classe particulière des protocoles de
routage géographique est une catégorie qui nous intéresse tout particulièrement, comme cela a
été développé dans la section 1.2. Cette étude se limite aux réseaux fixes ou à mobilité très faible,
cohabitant avec un nombre limité de capteurs mobiles. Ces conditions particulières autorisent
donc le routage géographique.
Dans ce cas particulier, il est possible de transformer le trafic au niveau application en trafic
au niveau réseau.
Notons Rcomm le rayon de communication maximum, A le capteur émetteur à une étape
donnée de la propagation du message, Ci le i-ième voisin de A, B le nœud destination. Dans
le cas d’un routage géographique simple, il est possible de considérer que le meilleur choix du
prochain capteur est le capteur Ci qui minimise la distance Ci B.
Par cette analyse relativement simple, il est alors possible de convertir un modèle de trafic
au niveau application en un modèle de trafic au niveau réseau relativement réaliste.
1.5.4
Modèles de trafic de référence des principaux schémas applicatifs
Nous avons travaillé sur des modèles de trafic de référence pour pouvoir estimer la consommation d’énergie du réseau de capteurs. Nous avons employé un réseau constitué arbitrairement
de 26 nœuds disposés comme sur la figure 1.5. Le capteur de coordonnées (0 ;0) est ici une
station de base.
30
Analyse et modélisation du trafic dans les réseaux de capteurs
Fig. 1.5: Réseau de réference utilisé dans les simulations de consommation énergétique.
1.5.5
Modèle de trafic de l’échantillonnage périodique avec rapatriement
automatique
Pour les simulations, nous utilisons le modèle de trafic réseau, sous forme de la matrice de
volume V de données échangées pendant une durée d’observation longue :
V = Tobs .Fech .
N
X
MSdesc(i)
(1.4)
i=1
avec Tobs , la durée d’observation, Fech , la fréquence d’échantillonnage, et MSdesc(i) la matrice
carrée de dimension N 2 exprimant les messages échangés pour communiquer du nœud i vers
la station de base en mode multi-saut.
1.5.6
Modèle de trafic de la surveillance à intervalle de temps constant avec
rapatriement en cas de réalisation d’une condition particulière
En notant MSdesc(i) telle que précédemment, et E(i) le vecteur décrivant le nombre d’événements critiques ayant été observés par le nœud i pendant la durée d’observation Tobs , on a
alors la matrice de volume
V =
N
X
E(i).MSdesc(i)
(1.5)
i=1
cette équation étant valable pour une durée d’observation Tobs suffisamment longue.
1.5.7
Modèle de trafic de l’interrogation ponctuelle initiée par la station de
base
En utilisant la notation MSdesc(i) définie précédemment, on définit de même MSasc(i) la
matrice carrée de dimension N 2 exprimant les messages échangés pour communiquer de la
1.5 Technique de modélisation du trafic
31
station de base vers un nœud i en mode multi-saut, ce qui permet de définir la phase de
requête initiale. On note également F (i), le vecteur de taille N d’interrogation des capteurs,
qui permet d’exprimer combien de fois la mesure du nœud i a été réclamée par la station de
base pendant la durée d’observation Tobs . On a alors la matrice de volume de données
V =
N
X
F (i). MSasc(i) + MSdesc(i)
i=1
et ce pour une durée d’observation Tobs suffisamment longue.
(1.6)
32
1.6
Analyse et modélisation du trafic dans les réseaux de capteurs
Modélisation des performances conjointes des niveaux liaison et physique
À présent que les aspects du trafic réseau ont été présentés en détail, nous nous intéressons
maintenant exclusivement à une communication entre un émetteur et un récepteur en communication directe. L’objectif étant de déterminer un point optimal par rapport à la consommation
énergétique.
Les objectifs de l’étude sont multiples : il faut exprimer l’énergie consommée par bit transmis
en fonction des paramètres choisis dans le but de mettre en évidence une configuration des
paramètres du système permettant d’obtenir un minimum en termes d’énergie par bit transmis.
Ces résultats pourront être ensuite utilisés pour donner les moyens à une application de définir
ses besoins en termes de qualité de transmission ou de taux de transmission et d’intervenir ainsi
directement sur la puissance d’émission, les tailles de paquets, et d’autres paramètres via une
interface système adéquate. Des travaux similaires on déjà été menés dans [47] et [66]. L’article
[47] combine les corrections d’erreurs et la ré-émission automatique, mais envisage uniquement
une cible processeur, et s’appuie sur des modèles de consommation assez grossiers, sans prendre
en compte l’énergie statique dans le calcul. Mais dans le contexte d’un réseau de capteurs, cette
hypothèse ne peut être maintenue. L’article [66] s’appuie sur la norme IEEE 802.11a, et cherche
à adapter au mieux les paramètres de choix de codage et de puissance d’émission, pour diminuer
l’énergie sous diverses contraintes d’applications. Par contre, l’énergie due aux ré-émissions n’est
pas prise en compte.
1.6.1
Expressions de la consommation énergétique
Pour évaluer la puissance consommée par un traitement, on peut utiliser trois méthodes.
Dans le cas général on peut donner l’expression suivante, en négligeant les pertes statiques :
2
Edyn = Eop .Nopérations = a.Cs .Aop .Vdd
[J]
(1.7)
avec Edyn qui représente l’énergie dynamique de l’algorithme, Eop l’énergie consommée pour
une opération “moyenne”, Nopérations le nombre d’opérations de l’algorithme, a l’activité du
circuit, Aop la surface de l’opérateur “moyen” et Vdd la tension d’alimentation.
Si on souhaite raffiner l’évaluation de la consommation, il faut alors prendre en compte la
puissance statique. La part de la puissance statique est d’ailleurs loin d’être négligeable dans
un contexte comme celui d’un réseau de capteurs où le taux d’activité est très faible. En effet,
des travaux [13] [65] ont mis en évidence le fait que l’énergie statique tend à devenir de plus en
1.6 Modélisation des performances conjointes des niveaux liaison et physique
33
Fig. 1.6: État des circuits d’un nœud en fonction du temps
Fig. 1.7: Comparaison des parts dynamique et statique de la puissance en fonction du taux
d’activité. La puissance dynamique en activité est fixée à 40 mW et la puissance statique est
fixée à 0.1 mW.
plus prédominante dans la consommation énergétique globale avec l’évolution technologique.
De plus, ce phénomène est amplifié dans le cas de système à faible activité comme les réseaux
de capteurs. En effet, en considérant les caractéristiques de fonctionnement on peut considérer
que les circuits sont inactifs pendant la majeure partie du temps. L’activité des réseaux de
capteurs adopte un comportement que l’on pourrait qualifier de sporadique comme l’illustre
la figure 1.6 qui montre l’alternance entre des périodes d’activité et les périodes d’inactivité.
Les temps d’activités apparaissent de façon sporadique en fonction des moments de réveil des
capteurs que ces derniers soient initiés par les capteurs eux-même ou par une cause externe,
comme un événement observé par un capteur ou un réveil dû à la partie radio.
En définissant le taux d’activité par le rapport entre le temps passé en périodes d’activité
et le temps total, on peut faire varier ce paramètre comme sur la figure 1.7 et mettre ainsi en
évidence la prédominance de la part due à la consommation statique sous faible taux d’activité.
Dans ce cas, il faut introduire un terme de puissance statique dans l’expression de l’énergie de
l’algorithme. Ealgo est l’énergie consommée pour exécuter une fois l’algorithme considéré, Pstat
34
Analyse et modélisation du trafic dans les réseaux de capteurs
et Pdyn sont respectivement la puissance statique totale et la puissance dynamique totale du
circuit réalisant le traitement, Talgo est le temps d’exécution de l’algorithme à l’aide du circuit
considéré, Fclk représente la fréquence de l’horloge, Nopérateurs est le nombre d’opérateurs utilisés
pour le calcul et β est un coefficient de consommation statique par unité de surface.
Ealgo = (Pstat + Pdyn ).Talgo
[J]
Ealgo = (β.Aop .Nopérateurs + Pdyn ).Talgo
Talgo ≥
Nopérations
Nopérateurs .Fclk
(1.8)
[J]
(1.9)
[s]
(1.10)
Ce qui nous permet d’exprimer une borne inférieure pour l’expression de l’énergie de l’algorithme :
Ealgo ≥ Nopérations .
β.Aop
+ Eop
Fclk
[J]
(1.11)
Cette expression qui correspond à une description haut niveau est certes un peu grossière,
mais elle est cependant riche d’enseignements quant aux directions architecturales à prendre
pour réaliser un système réellement basse consommation. De plus ce modèle est bien adapté
pour avoir une idée de la consommation d’un gros système. Cependant, si on souhaite plus de
précision, il faut alors définir exactement le matériel employé pour chaque bloc de traitement.
Dans ce cas, la puissance consommée pendant l’exécution de l’algorithme peut s’exprimer :
Palgo =
X
j∈Df


X
i∈Dsys
nbi,j .Eopi,j .Fj +
X
i∈Dsys

nbi,j .pstati 
[W ]
(1.12)
avec Df l’ensemble des fréquences de fonctionnement, Fj la fréquence de fonctionnement
du domaine j, Dsys l’ensemble des sous-systèmes (e.g. opérateur arithmétique, registre etc.)
fonctionnant à Fj , nbi,j le nombre d’opérateurs de type i fonctionnant à la fréquence du domaine
j, Eopi,j l’énergie dynamique d’une opération du type i et du domaine j et pstati la puissance
statique dépensée par un système de type i sous tension. Nous avons utilisé ce dernier modèle,
plus précis, pour les calculs de consommation des circuits de codage et de décodage de canal.
Quelques valeurs de consommation que nous avons utilisées pour nos calculs sont présentées
dans le tableau 1.1.
1.6.2
Description du système de communication
Canal Le canal choisi pour cette simulation est un canal à bruit blanc gaussien centré additif.
Dans nos simulations, nous avons choisi une puissance de bruit absolue de -90 dBm.
1.6 Modélisation des performances conjointes des niveaux liaison et physique
35
Tab. 1.1: Quelques exemples de valeurs de consommation
Modulation
Élément opi,j
Eopi,j [J]
pstati [W]
Bascule D
Et
Inverseur
Ou-exclusif
Compteur 4 bits
Multiplexeur 2 vers
1
Registre 8 bits
Registre 16 bits
1.08.10−12
0.166.10−9
0.066.10−9
0.026.10−9
0.200.10−9
1.430.10−9
0.122.10−9
0.25.10−12
0.12.10−12
0.48.10−12
5.86.10−12
0.32.10−12
8.59.10−12 1.327.10−9
16.75.10−12 2.655.10−9
La modulation utilisée est de type BPSK (Binary Phase Shift Keying). Sous un
bruit blanc gaussien additif (BBGA) le TEB (taux d’erreur binaire) d’un canal BPSK s’exprime
par la formule ci-dessous.
√
1
T EBBP SK,BBGA = .erfc( RSB)
2
(1.13)
La fonction erfc(x) très souvent employée de communication nnumérique est la fonction d’erreur
compémentaire et elle s’exprime de la façon suivante :
2
erfc(x) = √
π
Z
+∞
2
e−t dt
(1.14)
x
Le rapport signal à bruit (RSB) est déterminé en tenant compte de plusieurs facteurs :
– la puissance du bruit Pbruit au récepteur,
– la puissance d’émission Pem (mesurable à côté de l’antenne),
– la distance D entre les deux antennes des capteurs qui communiquent entre eux,
– le coefficient d’atténuation dans l’air γ,
– la fréquence de la porteuse Fp .
Codage de canal / Forward Error Coding (FEC) Le système peut être doté, ou non
d’un système de correction d’erreur. Cela permet de faire baisser le taux d’erreurs binaire
(TEB) et par conséquent le taux d’erreurs par paquet (TEP). Ainsi, ce système diminue le
risque qu’une retransmission soit nécessaire.
Réémission automatique / Automatic Repeat Request (ARQ)
Il existe de nom-
breuses techniques différentes pour gérer les retransmissions automatiques de paquets. Le plus
simple d’entre eux est le ”wait-and-go”, dans lequel l’émetteur envoie un paquet et attend un
36
Analyse et modélisation du trafic dans les réseaux de capteurs
accusé de réception de la part du récepteur avant d’émettre le paquet suivant. Un paquet est
retransmis si l’accusé n’est pas reçu dans un intervalle de temps, qui correspond à peu près
au temps d’aller-retour (Round Trip Time ou RTT). Un algorithme plus sophistiqué est celui
du ”go-back-N” dans lequel à un instant donné, plusieurs accusés de réception peuvent être
en attente. La taille du pipeline du transmission qui en découle dépend directement du temps
d’aller-retour. Si un accusé de reception n’arrive pas dans l’intervalle de temps voulu, alors
le paquet correspondant et tous ses successeurs sont réémis, ce qui permet de se passer de
buffer au niveau du récepteur. Il existe aussi des variantes plus évoluées du ”go-back-N” qui
sont le CACK (pour Cumulative Acknowledgement) et le SACK (pour Selective Acknowledgement). Avec le CACK, l’accusé de réception comporte le numéro du paquet le plus élevé tel que
tous les paquets précédents ont été correctement reçus. Cette amélioration permet d’obtenir de
meilleures performances dans le sens des retours de paquets, puisque même si quelques accusés
de réceptions sont perdus, les suivants peuvent valider quand même les paquets correspondants.
Le SACK permet, en plus des fonctionnalités du CACK, d’indiquer les paquets récemments
reçus éventuellement non consécutifs. Cela permet à l’émetteur de localiser précisément les
paquets reçus et de ne réémettre que ceux-ci.
L’objectif que nous cherchons à obtenir en utilisant l’ARQ est la transmission la plus fiable
possible, sans contrainte de délais trop stricte. En effet, puisqu’on envisage des transmissions
multi-étapes, une transmission insuffisamment fiable sur une liaison entre deux nœuds induit
rapidement une chute importante de fiabilité après un certain nombre d’étapes.
1.6.3
Modélisation fonctionnelle et énergétique du problème
Une retransmission est nécessaire lorsqu’un paquet transmis comporte au moins une erreur.
Soit lp le nombre d’éléments binaires d’un paquet, TEB le taux d’erreur binaire et nberr le
nombre d’erreurs dans un paquet donné, la probabilité qu’un paquet transmis comporte au
moins une erreur est le taux d’erreur par paquet (TEP) et s’exprime :
TEP = 1 − prob(nberr = 0) = 1 − (1 − TEB)lp
(1.15)
Soit N bP , le nombre de paquets d’information à transmettre et deb le débit binaire de
transmission du système actif, le temps mis pour une transmission réussie du premier coup
d’un paquet d’information s’exprime de la façon suivante :
Tideal =
N bP.lp
deb
[s]
(1.16)
1.6 Modélisation des performances conjointes des niveaux liaison et physique
37
Le temps réel de transmission doit donc tenir compte du pourcentage de temps additionnel
nécessaire pour les retransmissions. Lors d’une tentative d’envoi, le paquet a la probabilité
TEP d’être faux, l’expression du temps réel de transmission est donc :
Treel = Tideal + TEP.Tideal + TEP2 .Tideal + ...
Treel = Tideal .
∞
X
TEPi =
i=0
Tideal
1 − TEP
[s]
(1.17)
(1.18)
Afin de réaliser une optimisation énergétique du système de communication, la grandeur à
étudier est l’énergie par bit transmis avec succès. Celle-ci est définie par l’expression :
Ebit =
Ebit =
P.Treel
P
=
N bP.lp
deb.(1 − TEB)lp
P
deb.(1 −
1
2 .erfc(
√
RSB))lp
[J]
(1.19)
[J]
(1.20)
dans laquelle nous avons considéré une modulation de type BPSK, permettant ainsi d’exprimer
TEB en fonction du rapport signal sur bruit RSB. P est la puissance globale du système
en communication incluant les puissances dynamique et statique consommées par les circuits
numériques et analogiques.
Ptot = Palgo + Panalog + Pamp
[W ]
(1.21)
avec Panalog représentant une constante associée à l’ensemble des circuits analogiques et Pamp
représentant la puissance consommée par le système d’amplification de puissance précédant
l’antenne d’émission.
Pamp doit tenir compte de l’efficacité du système d’amplification et dépend de son régime
de fonctionnement. Nous avons utilisé un modèle exponentiel tel que celui proposé dans [66]
pour représenter cette efficacité. Soit ef f l’efficacité du couple amplificateur/antenne et Pdiff
la puissance du signal diffusé par l’antenne, on a alors, avec A = 0.02 et B = 0.140 :
Pamp = Pdiff .ef f = Pdiff .A. exp(B.10 log10 (Pdiff ))
(1.22)
38
1.7
Analyse et modélisation du trafic dans les réseaux de capteurs
Résultats de performances entre deux capteurs en liaison
directe
L’expression (1.20) permet de tracer l’énergie par bit transmis avec succès en fonction de
paramètres du système de communication. Ces paramètres sont la distance entre les deux
nœuds, le type de canal, la puissance du bruit au niveau du récepteur, la taille des paquets, le
type de système de correction et de réémission automatique et la puissance d’émission.
La figure 1.8 illustre un résultat de simulation de l’énergie par bit utile transmis avec succès
en fonction de la puissance de transmission, sous les conditions expérimentales suivantes :
– distance fixée arbitrairement à 10 mètres
– puissance du bruit de −90 dBm
– taille des paquets de 424 bits (paquets ATM)
L’analyse des courbes nous permet de constater la présence d’un point optimal de fonctionnement. Les trois courbes sont représentées pour différentes techniques de correction d’erreurs.
Aux puissances d’émission faibles, l’énergie par bit utile transmis avec succès décroı̂t. Dans cette
zone, les paquets sont trop souvent erronés et nécessitent des réémissions, ce qui augmente le
temps nécessaire pour la transmission réussie d’une certaine quantité d’information. Sur la
partie droite des courbes, la puissance d’émission est plus élevée ce qui fait chuter le TEP,
et par conséquent la probabilité que des réémissions soient nécessaires. Cependant, l’énergie
par bit utile transmis avec succès augmente avec la puissance d’émission, puisque l’amplificateur d’émission consomme alors plus d’énergie. Le point de fonctionnement optimal se situe
au minimum des courbes. On voit sur l’exemple qu’il est possible de gagner de l’ordre de 30
% d’énergie en choisissant un codage de canal de type Viterbi et en se positionnant au point
optimal comparé à une absence de codage de canal. Ce travail a été validé par une publication
[12].
Sur la figure 1.9, on observe le même type de courbes. Ce qui change par rapport à la version
précédente, c’est que le modèle de consommation a été extrait des données constructeur du
composant commercial ChipCon CC1020. On peut remarquer un palier d’énergie relativement
élevé qui fait que le point optimal de l’énergie par bit transmis avec succès est assez élevé. Ce
composant n’est donc probablement pas un excellent choix pour la couche physique.
1.8 Extension aux niveaux supérieurs et évaluation de performance globale
39
Fig. 1.8: Énergie par bit transmis avec succès en fonction de la puissance d’émission, pour trois
types de FEC et des paquets de taille 424 bits.
Fig. 1.9: Énergie par bit transmis avec succès en fonction de la puissance d’émission, pour
trois types de FEC, des paquets de taille 424 bits et en utilisant un modèle de consommation
correspondant à un composant commercial (Chipcon CC1020).
1.8
Extension aux niveaux supérieurs et évaluation de performance globale
À présent, il s’agit d’étendre les résultats obtenus pour deux nœuds en communication directe
à un réseau entier, à l’aide de l’analyse préalable qui a été décrite précédemment dans ce
chapitre, en considérant par exemple le réseau de la figure 1.5.
La sollicitation des nœuds n’est pas homogène géographiquement. Nous nous intéressons
alors à la durée de vie du capteur le plus sollicité dans trois cas de figures. Dans le premier
cas, tous les noeuds se positionnent à la puissance d’émission de 0 dBm. Dans le deuxième
cas, tous les noeuds se positionnent à une puissance d’émission fixe qui correspond à l’optimal
√
pour la distance maximale qui peut avoir à être parcourue, c’est-à-dire P. 2. Dans le troisième
cas, pour chaque transmission, le système est capable de positionner la puissance d’émission au
réglage adapté à la distance entre l’émetteur et le récepteur.
Le tableau 1.2 résume les résultats obtenus pour l’exemple d’un scénario de surveillance par
40
Analyse et modélisation du trafic dans les réseaux de capteurs
interrogation ponctuelle initiée par la station de base. Dans ce cas de figure, la consommation
énergétique de la première technique (la puissance d’émission étant configurée au pire cas)
est considérée comme la référence. La seconde technique, indexée sur le voisin le plus éloigné
permet alors une augmentation de la durée de vie totale d’environ 406 %, alors que l’utilisation
de la troisième technique, dans laquelle la puissance d’émission est effectivement optimale pour
chaque transmission permet d’obtenir des gains de 475 % de durée de vie.
Tab. 1.2: Impact sur la durée de vie du réseau de capteurs avec les trois politiques de réglage
des communications entre nœuds en communication directe
cas 1
Nombre moyen de sollicitations
26.11
Nombre maximal de sollicitations
55
cas 3
Énergie
par
bit
transmis
distance =
S
5.20
2.05
1.60
avec succès (mJ)
distance
=
√
S. 2
5.20
2.05
2.05
1
4.06
4.75
Facteur d’extension de durée de vie
1.9
cas 2
Conclusion
Après avoir décrit les applications possibles et modélisé des scénarios applicatifs réalistes,
il a été réalisé une modélisation conjointe performance/énergie d’une chaı̂ne de communication entre un émetteur et un récepteur donné. La métrique qui a été employée est l’énergie
consommée par bit transmis avec succès. Les courbes obtenues montrent qu’il existent une
configuration optimale de la puissance d’émission en fonction de la distance entre l’émetteur
et le récepteur. En considérant que le nœud est capable de choisir une puissance d’émission
différente pour chacun de ses interlocuteurs proches, il est alors possible d’atteindre des gains
importants en durée de vie comparé à une sélection ”aveugle” d’une puissance d’émission. Cela
est possible à partir du moment où la couche physique peut accéder à la table de voisinage qui
répertorie les positions géographiques des capteurs dans un périmètre proche. Notons que la
table de voisinage contient des informations qui relèvent plus du protocole de routage, mais ceci
est une illustration du fait que la perméabilité inter-niveau (optimisations cross-layer) permet
d’améliorer les performances.
Cependant, ces résultats comportent des défauts puisque la couche d’accès au média n’a pas
été modélisée, alors que cette modélisation est très importante pour avoir une prise en compte
1.9 Conclusion
41
des événements tels que les collisions de données et leurs conséquences sur la consommation
d’énergie. C’est une des raisons pour laquelle il est nécessaire d’employer une méthode d’évaluation beaucoup plus proche de la réalité basée sur une plate-forme réaliste qui est exposée
dans les chapitres suivants.
42
Analyse et modélisation du trafic dans les réseaux de capteurs
Chapitre 2
Architectures et traitements pour
des réseaux de capteurs
Contents
2.1
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
2.2
Architecture des capteurs communicants . . . . . . . . . . . . . . .
45
2.3
2.4
2.5
2.2.1
Plate-forme générique . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
2.2.2
Récupération d’énergie . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
2.2.3
Systèmes d’exploitation événementiels . . . . . . . . . . . . . . . . . .
47
2.2.4
TinyOS et le langage de description nesC . . . . . . . . . . . . . . . .
51
2.2.5
Modèle en couche d’interconnexions de systèmes . . . . . . . . . . . .
55
Infrastructure logicielle de la pile de protocole développée
58
2.3.1
Niveau application . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
2.3.2
Niveau réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
2.3.3
Niveau liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
2.3.4
Ordonnancement des tâches . . . . . . . . . . . . . . . . . . . . . . . .
65
2.3.5
Optimisation des buffers des SAP . . . . . . . . . . . . . . . . . . . . .
65
Modes de transmission et vecteurs de l’information . . . . . . . . .
67
2.4.1
Modes de transmission dans un contexte de réseau de capteurs . . . .
67
2.4.2
Structure des trames . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Simulateur
2.5.1
2.6
. . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Description des éléments spécifiques à l’implémentation virtuelle en
simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
2.5.2
Asynchronisme et simulation . . . . . . . . . . . . . . . . . . . . . . .
74
2.5.3
Avantages et limites de l’implémentation ”simulation” . . . . . . . . .
75
Conclusion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
76
44
Architectures et traitements pour des réseaux de capteurs
Fig. 2.1: Organigramme de la méthodologie suivie pour la conception du prototype de réseau
de capteurs R2D2.
2.1
Introduction
La modélisation analytique de la consommation énergétique qui a été exposée dans le chapitre
précédent a montré un certain nombre de défauts. Parmi ces défauts, l’architecture de calcul
des algorithmes mis en évidence est peu précise et traduit plutôt une implémentation ”fullcustom”. Or ce genre d’architecture n’est pas forcément une solution qui est adaptée aux réseaux
de capteurs puisque les nœuds du réseau sont plus communément implémentés autour d’un
microcontrôleur. Une réflexion sur l’architecture générique réaliste d’un nœud doit donc être
menée pour pouvoir tenter une meilleure évaluation de l’énergie consommée, plus proche de la
réalité. Les travaux qui ont étés menés ont été guidés par la conception du prototype de réseau
de capteurs R2D2. L’étude d’un prototype réel facilite l’évaluation des performances et de la
consommation du réseau de capteurs tout en fournissant des données plus précises permettant
l’obtention de résultats ainsi que de modèles théoriques plus convaincants.
Comme cela a été évoqué au cours de l’introduction, une méthodologie précise a été suivie
pour ce développement. Cette méthodologie est illustrée sur l’organigramme de la figure 2.1.
La première étape consiste à mettre en évidence les différents mécanismes et protocoles indispensables dans un réseau de capteurs.
2.2 Architecture des capteurs communicants
45
Au cours de ce chapitre, nous commencerons par décrire l’architecture générique des nœuds
d’un réseau de capteurs. Ensuite, le choix d’un système d’exploitation pour la plate-forme sera
abordé. Celui-ci doit en effet remplir des objectifs contradictoires de portabilité, de modularité
et d’occupation mémoire minimale et son choix est crucial pour la suite. Les systèmes événementiels sont capables de réunir toutes ces qualités et ils seront présentés, en insistant plus
particulièrement sur l’utilisation du cadre de programmation que constituent les protothreads
[20] (du système événementiel Contiki).
Après avoir décrit l’architecture générique et son système d’exploitation associé, la définition
des traitements d’un capteur sera abordée. Ces traitements sont capables de faire tourner des
applications telles que celles décrites au chapitre 1. Le cahier des charges pour leur conception
impose une forte modularité et doit inclure les mécanismes réseau de base, tels que l’autopositionnement, la connaissance du voisinage, la fonctionnalité de routage. De plus, l’utilisation
de la mémoire doit être la plus limitée possible afin de pouvoir employer le minimum de mémoire. La mémoire est en effet une source importante de consommation d’énergie statique. De
plus, la plus grande portabilité est nécessaire, ceci afin de permettre l’implémentation sur une
grande diversité d’architectures. En particulier, la couche physique est ouverte à de multiples
implémentations, il est même possible de réaliser un réseau de capteurs virtuel sous forme d’un
réseau de processus Unix communicant via un canal sans-fil émulé à partir de files de messages
IPC.
Pour permettre cette diversité d’implémentation, les processus sont distingués en trois catégories : les traitements indépendants du matériel et de l’application, ceux dépendant de
l’application et ceux dépendant du matériel. L’ensemble des traitements indépendants à la fois
du matériel et de l’application seront ensuite décrits.
2.2
2.2.1
Architecture des capteurs communicants
Plate-forme générique
La figure 2.2 présente une plate-forme générique d’un nœud de réseau de capteurs. Celui-ci
comporte bien entendu un certain nombre de capteurs embarqués, associés à des convertisseurs analogiques/numériques en vue de l’interfaçage avec le système numérique. Ensuite, la
plate-forme générique comporte nécessairement un composant de communication pour pouvoir
diffuser les rapports vers le reste du réseau et recevoir des informations des autres éléments. La
plupart du temps, ce composant de communication est bidirectionnel et peut non seulement
46
Architectures et traitements pour des réseaux de capteurs
Fig. 2.2: Plate-forme générique de nœud d’un réseau de capteurs
émettre, mais aussi recevoir des informations. De plus, dans la plupart des cas, ce composant
utilise des communications radio, bien que quelques exceptions existent dans certaines implémentations, notamment Smart Dust [84] où le composant de communication emploie un principe de communication optique par reflexion de faisceau lumineux à l’aide d’un rétro-réflecteur
en coin de cube. La partie contrôle est constituée d’un microcontrôleur basse consommation
avec une capacité en mémoire RAM plutôt limitée ainsi qu’une mémoire flash contenant le
programme. Ce dernier est la plupart du temps construit autour d’un système d’exploitation
adapté pour des réseaux de capteurs, comme par exemple Contiki [19] [21] ou TinyOS [48]. Un
système d’alimentation permet d’alimenter en énergie les différents systèmes. L’alimentation
comprend des batteries et éventuellement un système de conversion de tension si les tensions
d’alimentation des systèmes sont incompatibles entre elles et dans le but de mieux exploiter tous
les états de charge des batteries (pleine charge, charge minimum). Certaines implémentations
incluent un récupérateur d’énergie.
2.2.2
Récupération d’énergie
Depuis l’émergence de la recherche sur les réseaux de capteurs, le défi proposé consistait à
réaliser des objets entièrement autonomes, sans fil, ni pour la communication, ni pour l’alimentation énergétique. En excluant la possibilité de recharger les batteries, car le contexte l’interdit
à cause du nombre de capteurs élevés d’un réseau de capteurs, il était nécessaire d’atteindre
des durée de vie de nœuds communicants les plus élevées possibles. Au vu des évolutions technologiques des architectures basse consommation, il apparaissait possible d’obtenir des durées
de vie correspondant aux durées de déploiement des réseaux de capteurs.
La récupération d’énergie est bien sûr liée au milieu dans lequel les capteurs sont intégrés.
Les récupérateurs solaires tels que les cellules photovoltaı̈ques sont intéressantes en termes
2.2 Architecture des capteurs communicants
47
de puissance générée, mais nécessitent une exposition directe à la lumière et ce pendant des
périodes de temps importantes. Les capteurs intégrés sous la surface du sol ou sous les surfaces
tels que les murs et les plafonds sont a priori incompatibles avec cette option.
Les récupérateurs d’énergie de vibrations ont également un rendement intéressant, mais ne
peuvent pas convenir à toutes les situations. L’intégration des capteurs dans les sols et murs de
bâtiments fréquentés permettre de générer une puissance électrique moyenne issue de vibrations
de l’ordre de 200 µW/cm3 , ce qui commence à être une valeur exploitable.
Le tableau 2.1 résume les solutions possibles pour l’alimentation des systèmes, et en particulier les performances des systèmes de récupération d’énergie.
On peut constater que la puissance moyenne indicative de 1 mW est un objectif vers lequel
il faut tendre en ce qui concerne le budget énergétique.
2.2.3
Systèmes d’exploitation événementiels
Bien que la description des traitements n’implique ni de préciser la cible, ni a fortiori le
système d’exploitation employé, la question de l’ordonnancement des différentes tâches peut
tout de même être posée dès maintenant. En effet, comme il en a déjà été question au début de ce chapitre, l’implémentation centrée sur un microcontrôleur généraliste reste une des
meilleures possibles, du fait des raisons précédemment évoquées. Dans ces conditions, il est
possible d’amorcer une réflexion sur le système permettant de faire cohabiter les traitements
en tenant compte des contraintes fortes des réseaux de capteurs.
La trame logicielle du prototype doit être conçue de façon modulaire pour simplifier le travail
en équipe et la prise en main du logiciel. Dans cette optique, il est nécessaire de s’équiper
d’un système d’exploitation ou tout du moins d’une structure d’ordonnancement permettant
de concevoir les traitements indépendamment les uns des autres. De plus, une telle approche
modulaire simplifie la migration de traitements vers des cibles dédiées. Cependant, l’utilisation
d’un système d’exploitation (SE) consomme des ressources additionnelles en termes de mémoire
de programme, de mémoire vive et de temps de calcul au sein d’une architecture matérielle
légère.
Le système d’ordonnancement doit avoir les propriétés suivantes :
– il doit utiliser le minimum de mémoire, pour en laisser le maximum aux traitements effectifs,
– il doit minimiser le surplus de mémoire associé à chaque thread,
– il doit être aussi portable que possible, pour être implanté sur plusieurs microprocesseurs,
et pouvoir être simulé,
48
Architectures et traitements pour des réseaux de capteurs
Tab. 2.1: Comparaison de générateurs d’énergie par récupération et par stockage d’énergie [70].
(Les effets de pertes sont pris en considération pour les batteries.)
Densité de puissance
Densité de puissance
3
(µW/cm )
(µW/cm3 )
Durée de vie d’un an
Durée de vie de 10 ans
15000 (éclairage direct) 15000 (éclairage direct)
Solaire
(exté- 150 (jour nuageux)
150 (jour nuageux)
rieur)
Solaire
6 (bureau)
6 (bureau)
(intérieur)[71]
Vibrations [71]
200
200
0.003 (sous 75 dBa)
0.003 (sous 75 dBa)
Bruit Acoustique
0.96 (sous 100 dBa)
0.96 (sous 100 dBa)
Variation journa- 10
10
lière de température
Gradient de tem- 15 (gradient de 10˚C)
15 (gradient de 10˚C)
pérature [77]
Energie
de
marche
(chaussures) [44]
Batteries
(non
rechargeables au lithium)
Batteries
(rechargeables au
lithium)
Micromoteur
thermique
(hydrocarbure)
[55]
Pile à combustible
(méthanol)
Pile nucléaire
(uranium)
330
330
45
3.5
7
0
333
33
280
28
6.106
6.105
2.2 Architecture des capteurs communicants
49
– il doit autoriser l’existence d’une mémoire partagée, afin de permettre des optimisations
inter-niveaux,
– il doit pouvoir tenir partie des fonctions de mises en veille prolongé des microcontrôleurs.
Si le terme de système d’exploitation est employé dans le contexte des réseaux de capteurs,
dans la majorité des cas il ne s’agit pas de systèmes d’exploitation ”classiques”. En effet, les
systèmes classiques sont caractérisés par des performances élevées, et par de nombreux services
offerts aux applications. L’objectif d’un système d’exploitation est de faciliter l’accès aux ressources matérielles par les processus applicatifs et de permettre une meilleure portabilité des
applications en rendant l’utilisation des ressources matérielles la plus transparente possible.
Les services qu’il est possible de trouver sont par exemple :
– l’attribution de la ressource ”temps processeur” aux différents processus qui sont en concurrence pour s’exécuter (Cette attribution peut autoriser ou non la préemption du processeur.),
– la gestion des périphériques à l’aide des pilotes de périphériques,
– la gestion de la mémoire partagée pour permettre la communication inter-processus, à
l’aide de sémaphores et de files de messages par exemple,
– l’attribution de la mémoire aux processus,
– la gestion des timers matériels pour rendre transparente leur utilisation par les processus,
– la gestion des chiens de gardes plus communément appelés ”watchdogs” qui permettent
aux processus d’utiliser les ressources matérielles de timers spécifiques pour effectuer des
tâches ou des contrôles périodiques,
– la gestion des entrées/sorties,
– la gestion des fichiers à l’aide d’un système de fichiers,
– la gestion des protocoles réseaux qui peut éventuellement être incluse au sein même du
système d’exploitation,
– la gestion des différents utilisateurs d’une même machine.
On peut classer les systèmes d’exploitation selon de nombreux critères. En particulier, un
système peut être multi-tâches ou mono-tâche. La capacité d’être multi-tâches autorise l’exécution de plusieurs processus ”simultanément” à l’aide d’un seul processeur en attribuant le temps
processeur alternativement à chacun des processus. Ce mécanisme nécessite de gérer dans une
partie de la mémoire un certain nombre d’informations pour chaque processus (ou thread ) en
cours d’exécution. Les différentes informations liées à chaque processus sont :
– l’état du processus, qui peut être en train de s’exécuter (running), prêt à s’exécuter mais
en attente de la ressource processeur (ready), en attente d’une ressource (waiting), etc...,
50
Architectures et traitements pour des réseaux de capteurs
– les valeurs des registres processeur, pour pouvoir sauvegarder et restituer un contexte
d’exécution lors d’une préemption (si ce mécanisme de préemption est disponible) ou plus
généralement à chaque fois qu’un processus rend la ressource processeur. Parmi ces valeurs
on peut aussi compter le pointeur d’exécution, le pointeur de position initiale dans la
mémoire, le pointeur de pile d’exécution, etc...
Il faut également distinguer les systèmes multi-processeurs des systèmes mono-processeurs.
Les systèmes multiprocesseurs sont capables comme leur nom l’indique de gérer l’attribution
de plusieurs processeurs, parfois avec le même espace mémoire. On peut donc dans ce cas trouver simultanément plusieurs processus en état d’exécution. Dans ce cas de figure les processus
peuvent s’exécuter réellement simultanément contrairement aux simples systèmes multi-tâches
où l’exécution s’effectue en ”pseudo-parallèle”. Les systèmes multi-processeurs sont dédiés à des
applications nécessitant des performances très importantes et a priori éloignées des contraintes
de forte autonomie requises dans le cadre des réseaux de capteurs.
Certains systèmes peuvent être qualifiés de systèmes temps-réel. Dans ce cas, cela implique
que le système a été conçu pour prendre en compte des contraintes temporelles d’exécution, et
si besoin garantir l’exécution de certains algorithmes dans des laps de temps définis, dans la
mesure des capacités de ”charge” du processeur.
On peut aussi distinguer deux grandes familles de systèmes d’exploitation, que sont les systèmes orientés threads ou systèmes orientés processus légers et les systèmes orientés événements. La distinction est alors très forte entre ces deux classes de systèmes d’exploitation. Les
systèmes orientés threads sont les systèmes les plus classiques et les plus répandus. A chaque
thread sont associées les informations d’état du thread et de valeur des registres processeur. Le
noyau du système d’exploitation est la partie du système qui, entre autre choses gère l’état des
threads, c’est-à-dire qui doit effectuer la sélection des processus légers qui accèdent au processeur
et qui effectuent les préemptions et les commutations de contexte.
Les systèmes événementiels fonctionnent d’une façon très différente. Dans ce type de système,
le coeur du noyau est constitué d’une boucle événementielle qui contrôle en permanence l’arrivée
d’événements. Les traitements sont réalisés non pas par des threads, mais exclusivement à l’aide
des traitants d’événements qui sont invoqués par la boucle événementielle. Il ne peut pas y avoir
de préemption pendant l’exécution d’un traitant. C’est pourquoi généralement ceux-ci sont de
courte durée et rendent la main rapidement à la boucle événementielle.
La principale difficulté de la réalisation de systèmes événementiels est le codage des trai-
2.2 Architecture des capteurs communicants
51
tants, qui implique de programmer d’une façon radicalement différente d’une programmation
sous forme de threads qui est plus naturelle. De plus, ce type de fonctionnement non concurrentiel ne peut pas être employé dans tous les cas de figure, par exemple pour certaines applications
de calcul scientifique ou encore les systèmes comportant des interfaces d’entrée/sortie associées
à des buffers matériels sous-dimensionnés. Les traitants étant non préemptibles, le fonctionnement peut s’en trouver moins fluide, plus ”haché” que dans un système basé sur des threads,
surtout si certains traitants sont longs. Cependant, ce comportement est particulièrement bien
adapté à des applications de type GUI (Graphic User Interface, pour Interface Graphique
Utilisateur), mais aussi pour les systèmes distribués comme les réseaux de capteurs, où les traitements découlent d’événements précis tels que la réception d’une trame de données ou encore
la détection d’un événement lié au capteur.
Ce qui fait l’intérêt majeur des systèmes événementiels dans des contextes de mémoire fortement contrainte, c’est qu’il n’y a qu’un seul flot d’exécution, contrairement à un système à base
de threads, ce qui signifie qu’il n’y a pas concurrence pour obtenir la ressource processeur. Cette
remarque est très importante, parce que de nombreux problèmes sont ainsi écartés, comme par
exemple les interblocages, les accès multiples à une même variable en mémoire partagée, etc...
Le fait qu’il n’y ait qu’un seul flot d’exécution signifie aussi qu’il n’y a pas de commutations de
contexte, pas de pile d’exécution par threads à gérer, ce qui épargne beaucoup la mémoire nécessaire et constitue un avantage majeur dans le cas de systèmes fortement contraints en mémoire.
2.2.4
TinyOS et le langage de description nesC
Le système TinyOS est de loin le plus utilisé pour les réseaux de capteurs. C’est le système
dédié aux plate-formes de la société CrossBow fondées par des chercheurs de l’Université de
Berkeley et du M.I.T. et qui commercialise depuis 2001 des solutions de réseaux de capteurs
(modules Mica, WeC, Rene, Dot, Mica2, Micaz).
Le système, les bibliothèques et les applications de TinyOS sont écrits en nesC, un nouveau
langage de description pour la programmation structurée d’applications, adapté aux systèmes
embarqués et donc en particulier aux réseaux de capteurs. La syntaxe de nesC ressemble à la
syntaxe du C, mais elle autorise en plus l’exécution compétitive ainsi que des mécanismes pour
structurer, nommer et lier des modules logiciels. Cela permet de faciliter le développement de
modules logiciels qui peuvent être facilement assemblés les uns avec les autres.
TinyOS et son langage de programmation nesC sont construits autour de deux concepts
majeurs : des composants logiciels ayant des interfaces bi-directionnelles bien définies et un
52
Architectures et traitements pour des réseaux de capteurs
Fig. 2.3: Exemple de partie d’application nesC constituée de deux composants.
module moduleN {
provides {
/*interface permettant d’initialiser ce composant*/
interface Init;
/*interface permettant d’allumer ou d’éteindre un composant*/
interface StdControl;
/*interface permettant d’accéder au service principal rendu par ce composant*/
interface ServiceN; }
uses{
/*interface permettant d’allumer ou d’éteindre un composant*/
interface StdControl as moduleNinf;
/*interface de service utilisé par ce composant*/
interface ServiceNinf as moduleNinf;
}
}
Fig. 2.4: Partie déclaration en nesC du composant moduleN.
modèle concurrentiel d’exécution, basé sur des tâches et des traitements d’événements matériels
Une application nesC est constituée d’un ou de plusieurs composants reliés ensemble et qui
forment un exécutable. Sur l’exemple de la figure 2.3, deux composants sont représentés :
moduleN et moduleNinf, le premier utilisant les services fournis par le second. Un composant
fournit et emploie des interfaces qui sont leurs seuls points d’accès et qui sont systématiquement
bi-directionnelles. Un même composant peut fournir plusieurs interfaces, de même qu’il peut
utiliser plusieurs interfaces d’autres composants. Sur la figure 2.4 est représentée la partie de
déclaration des interfaces du code du composant appelé moduleN sur la figure 2.3.
On distingue deux types de composants nesC qui sont les modules et les configurations. Les
modules fournissent le code de l’application et des interfaces. Les configurations sont utilisées
pour assembler les composants les uns avec les autres. Chaque application nesC est décrite par
une configuration de haut niveau qui relie ensemble les composants de l’application.
Modèle compétitif.
TinyOS exécute un programme qui consiste en un ensemble de com-
posants système et d’un ensemble de composants dépendant de l’application. Il y a deux flux
d’exécution : les tâches et les traitants d’événements matériels. Les tâches sont des fonctions
dont l’exécution est suspendue. Lorsqu’elles sont ordonnancées, elles se débloquent et s’exécutent jusqu’à leur terminaison. Les tâches ne peuvent pas effectuer de préemption. Les traitants
2.2 Architecture des capteurs communicants
53
d’événements matériels sont exécutés en réponse à une interruption matérielle et s’exécutent
jusqu’à leur terminaison. La différence avec les tâches réside dans le fait que les traitants d’événements matériels peuvent faire de la préemption d’exécution sur une tâche ou un autre traitant
d’événement matériel.
Etant donné que les tâches et les traitants d’événements matériels peuvent subir de la préemption, les programmes en nesC ne se déroulent pas de façon déterministe. Pour fiabiliser les
traitements dans une situation de compétition entre programmes en nesC, il est possible de
gérer des accès exclusifs à la mémoire et il est également possible d’employer des instructions
atomiques1 .
Dans notre exemple choisi (figure 2.4), le code de l’application du composant moduleN (représenté sur la figure 2.5) est constitué d’une tâche qui fait appel à plusieurs services fournis par
le composant moduleNinf. Cette tâche correspond à un traitement linéaire, puisqu’il s’agit de
faire appel de façon séquentielle à trois services du composant moduleNinf (service1, service2,
service3 ). Pourtant, pour ce comportement linéaire simple, nesC oblige à faire une description
sous forme de machine d’états. Chacun des états évolue à la réception d’un signal de retour
envoyé par le composant fournisseur des services lorsque les services ont été réalisés.
Commentaires sur nesC et TinyOS. Plusieurs remarques peuvent être faites sur TinyOS
et le langage nesC au cœur de ce système événementiel. Tout d’abord on constate que la
conception d’un code séquentiel simple nécessite l’emploi d’une structure rigide et complexe.
Certes, la modularité est forte ce qui favorise l’abstraction et la réutilisabilité du code. La
programmation modulaire laisse entendre une réutilisabilité forte des modules pour concevoir
des applications rapidement, cela est effectivement très simple dans le cas d’une réutilisation
des plate-formes développées par les concepteurs de TinyOS (plate-formes Mica2, Micaz, etc.).
Dans le cas d’un portage de TinyOS vers d’autres plate-formes, cela devient alors plus difficile
parce que la programmation en nesC événementielle est particulièrement ardue. Les traitements
doivent le plus souvent être décrits sous forme de machines d’états ce qui n’est pas naturel. Pour
illustrer cela, le code de notre modules d’exemple, qui ne fait qu’invoquer de façon séquentielle
trois sous-procédures, nécessite une machine d’état complète et le code en résultant est très
lourd.
De plus, une application relativement simple nécessite tout de même un grand nombre de
composants simples et le nombre d’interfaces reliant ces composants est rapidement très grand.
Le compilateur qui génère un code exécutable à partir de ce langage de description nesC effectue
1
Les instructions atomiques s’exécutent en une seule fois et ne peuvent pas subir de préemption. Elles permettent de sécuriser des opérations critiques en interdisant toute préemption à l’intérieur des zones indiquées.
54
Architectures et traitements pour des réseaux de capteurs
implementation {
enum{ ETAT0 = 0, ETAT1, ETAT2, ETAT3};
union {
uint8_t flat;
struct {
uint8_t etat : 2; /* état de la machine d’état*/
} bits;
} flag;
/*** Commande d’initialisation de ce composant (interface "Init") ***/
command error_t Init.init() {
flag.flat = ETAT0; }
/*** Commande de démarrage de ce composant (interface "StdControl" ***/
command error_t StdControl.start() {
call serviceNinf.StdControl.start(); }
/*** Commande d’arr^
et ce composant (interface "StdControl") ***/
command error_t StdControl.stop() {
call serviceNinf.stop();
atomic flag.bits.etat = ETAT0; }
/*** T^
ache correspondant au service principal rendu par ce module moduleN ***/
task void ServiceN.service() {
switch(etat) {
case ETAT0:
case ETAT1: call moduleNinf.ServiceNinf.service1();
/*fait appel au service d’un module "de niveau inférieur"*/
return; /*indique les points de la t^
ache où les préemptions sont possibles*/
case ETAT2:
call moduleNinf.ServiceNinf.service2();
return;
case ETAT3:
call moduleNinf.ServiceNinf.service3();
return;
} }
/*** Traitants d’événements matériels ***/
event void moduleNinf.serviceNinf.service1_fait() {
etat=ETAT2; } /*évolution de la machine d’état de la t^
ache principale*/
event void moduleNinf.serviceNinf.service2_fait() {
etat=ETAT3; }
event void moduleNinf.serviceNinf.service3_fait() {
etat=ETAT0;
post ServiceN.service_fait();
/*signale l’accomplissement de la t^
ache principale au module utilisateur de niveau supérieur*/
} }
Fig. 2.5: Partie implémentation en nesC du composant moduleN.
2.2 Architecture des capteurs communicants
55
des opérations automatiques qui ne peuvent permettre d’explorer des optimisations mémoire
les plus fines. C’est le second reproche qu’on peut faire à TinyOS : une sous-optimalité qui est
due à l’utilisation d’un langage de description intermédiaire transformé de façon automatique
par un compilateur.
Nous considérons que TinyOS est fortement lié aux plateformes de la société Crossbow ce
qui leur permet d’offrir un package matériel et logiciel flexible pour l’étude de mécanismes de
haut-niveau, mais nous pensons que la rigidité de la programmation et le fait de se reposer sur
la qualité du compilateur pour l’obtention de codes performants n’est pas le meilleur point de
départ pour la conception d’un système extrêmement contraint en mémoire et en particulier
en mémoire RAM. De plus comme nous ne pensons pas nous fixer dans l’immédiat de cible
matérielle, la complexité de programmation des couches basses sous TinyOS nous a paru être
un choix difficile à assumer pour la suite du développement. Pour ces raisons nous n’avons pas
choisi de développer notre logiciel sur ce système événementiel.
2.2.5
Modèle en couche d’interconnexions de systèmes
Le modèle OSI (Open Systems Interconnection ou Interconnexion de Systèmes Ouverts) défini par l’ISO (International Standardization Organization) en 1984 avait pour objectif de définir
une architecture logicielle de référence, en réponse à une multiplication des solutions propriétaires pour la mise en réseau de systèmes informatiques. Ce modèle avait pour but de définir un
mécanisme permettant une plus grande interopérabilité entre systèmes différents tout en autorisant des évolutions technologiques des médiums de transport de l’information. Le terme de
“système ouvert”, dans ce contexte, signifie un système informatique dont l’architecture interne
est quelconque, mais dont les traitements réseaux respectent des règles d’interopérabilité. Ce
modèle est organisé en 7 couches et respectent un certain nombre de principes stricts. Chaque
couche décrit un protocole indépendant des autres couches, chaque couche fournit des services
à la couche immédiatement supérieure et requiert les services de la couche immédiatement inférieure. Les couches extrèmes fonctionnent de la même façon, la couche supérieure (la couche
application) fournissant un service à un programme ou à un opérateur humain, et la couche
inférieure (couche physique) exploitant le médium de communication.
Les couches de protocole. Le schéma des couches de protocole du modèle OSI est présenté
sur la figure 2.6.
– La couche physique a pour rôle de convertir un signal sous forme binaire en un signal
pouvant être transmis sur le médium de communication (paire de cuivre, une fibre optique,
56
Architectures et traitements pour des réseaux de capteurs
Fig. 2.6: Les 7 couches du modèle OSI.
canal radio fréquence).
– La couche liaison de données gère le contrôle de l’intégrité des données. Elle doit gérer
l’accès au médium, sachant que plusieurs entités se partagent un ou plusieurs canaux de
communication. La couche liaison de données a aussi pour rôle de fiabiliser les communications à l’aide de diverses stratégies possibles basées sur de la détection et de la correction
d’erreurs ainsi sur des réémissions de paquets. Cette couche gère l’envoi et la réception
des messages d’aquittement nécessaire pour fiabiliser les communications. Elle offre à la
couche supérieure des transmissions de données garanties.
– La couche réseau a pour rôle de faire transiter les paquets de données au sein du réseau jusqu’au destinataire final de la communication. Elle gère le routage, mais aussi la
congestion.
– La couche transport est chargée d’assurer la supervision de la couche réseau. Cette couche
transport qui peut prendre l’initiative de réinitialiser des connexions et de reprendre le
transfert des données en cas d’interruption de connexion.
– Cette couche organise et synchronise les échanges entre tâches distantes. Elle réalise le
lien entre les adresses logiques et les adresses physiques des tâches réparties. Elle établit
également une liaison entre deux programmes d’application devant coopérer et commande
leur dialogue. Dans ce dernier cas, ce service d’organisation s’appelle la gestion du jeton.
La couche session permet aussi d’insérer des points de reprise dans le flot de données de
manière à pouvoir reprendre le dialogue après une panne. Une seule session peut ouvrir
et fermer plusieurs connexions, de même que plusieurs sessions peuvent se succéder sur la
même connexion.
2.2 Architecture des capteurs communicants
57
– La couche présentation traite les problèmes liés à la syntaxe et à la sémantique des données transmises. Elle traite l’information de manière à la rendre compatible entre tâches
communicantes. Elle va assurer l’indépendance entre l’utilisateur et le transport de l’information. Par exemple, elle code les données sous un format standard pour que toutes les
machines puissent y lire les mêmes informations. Cette couche présentation peut convertir
des données, les reformater, les crypter ou encore les compresser.
– La couche application est la couche de plus haut niveau. Cette couche est le point de
contact entre l’utilisateur et le réseau. C’est donc elle qui va apporter à l’utilisateur les
services de base offerts par le réseau comme une messagerie, un client FTP (File Transfer
Protocol), etc.
Principe de communication inter-niveau.
Le principe de la communication est le suivant
(Fig. 2.15, page 66) : à un niveau N , les données sont transmises aux entités de même niveau
N à l’aide des services fournis par le point d’accès service (SAP, pour Service Acces Point)
de la couche de niveau N − 1, et selon le protocole de la couche N . Le protocole de niveau
N se traduit par l’adjonction de données spécifiques à ce niveau. Ces données ajoutées par
la couche N sont appelées informations de contrôle de protocole (PCI, pour Protocol Control
Information). Le PCI est juxtaposé aux données provenant de la couche N + 1 qui forment
l’unité de données de service (SDU, pour Service Data Unit). La juxtaposition du PCI et du
SDU forment l’unité de données de protocole (PDU, pour Protocol Data Unit)
Ce modèle OSI peut être interprété de plusieurs façons : il peut d’abord être interprété
comme un cadre général pour tout système de mise en réseau, à l’aide des concepts de couches
et d’utilisation de services de niveau inférieur. D’ailleurs, toutes les normes réseaux existantes
sont calquées sur ce modèle.
Si on le prend à la lettre, cependant, le modèle OSI strict n’a jamais débouché sur des
réalisations industrielles, son intérêt étant plutôt d’ordre académique.
Simplification du modèle dans le contexte des réseaux de capteurs. Au vu de la
grande complexité du modèle OSI et de l’imperméabilité des niveaux interdisant toute forme
d’optimisation inter-niveau, il est nécessaire de ne garder que ce qui est le plus utile dans
l’optique de la définition d’un logiciel de réseau de capteurs. Ce logiciel doit être respectueux
de l’espace mémoire et doit autoriser une perméabilité entre les niveaux au prix d’une réduction
de l’interopérabilité. Ainsi, alors que le modèle OSI est constitué de sept couches, le logiciel
développé n’en comprend que quatre, représentées sur la figure 2.7. Le niveau application inclut
outre les applications ”utilisateur”, les applications communes relevant de mécanismes réseaux
58
Architectures et traitements pour des réseaux de capteurs
Fig. 2.7: Organisation réduite à quatre couches du logiciel développé.
incontournables ans les réseaux de cpateurs tels que l’autopositionnement ou encore la recherche
de voisins. Le niveau réseau prend en charge les opérations de routage au sein du réseau adhoc. Le niveau liaison assure la fiabilité des transferts à l’aide de mécanismes de réémission
automatique et de correction d’erreurs. Enfin, le niveau physique assure les opérations d’accès
au média et d’émission et réception à bas niveau.
2.3
Infrastructure logicielle de la pile de protocole développée
L’architecture générique, le système d’exploitation événementiel et le modèle en couches
ayant été décrits, il s’agit à présent de développer un logiciel qui puisse accepter différentes
déclinaisons matérielles. C’est ce qui va être développé dans les sous-sections suivantes.
La pile de protocole de la plate-forme R2D2 existe en plusieurs versions, toutes basées sur le
même dénominateur commun. La figure 2.8 représente schématiquement l’ensemble des traitements de la plate-forme R2D2. Le code couleur utilisé montre que les traitements sont divisés
en trois catégories.
– Certains traitements dépendent de l’application du réseau de capteur, par exemple, dans
le cas d’un réseau de capteur de surveillance de la température, les traitements propres à
cette application particulière consistent à effectuer des mesures et à générer des rapports
de mesures.
– Certains traitements dépendent du matériel employé, c’est-à-dire qu’ils dépendent de la
couche physique employée, mais aussi des ressources matérielles de bas niveau permettant
de générer une horloge. Dans le cas d’une implémentation basée sur un microcontrôleur,
l’ ”horloge” interne est générée à partir de l’utilisation des timers matériels du microcontrôleur.
2.3 Infrastructure logicielle de la pile de protocole développée
59
Fig. 2.8: Schéma logiciel global de la plate-forme R2D2.
– Enfin, certains traitements sont communs à toutes les applications et toutes les implémentations matérielles.
Lors de la réflexion pour la conception de cette trame logicielle, l’objectif était de faire en sorte
que le plus de traitements possibles ne dépendent ni des choix matériels liés à la couche physique
ou à un type de microcontrôleur particulier, ni de l’application visée. En ce qui concerne les
applications, l’étude préalable des besoins en termes de schémas de routage nécessaire nous
permet de penser que la trame logicielle actuelle est capable de s’adapter à la plupart des
applications.
De plus cette décomposition logicielle est également très ouverte par rapport au matériel sur
lequel il sera porté et permet des implémentations très différentes. Il est à noter que le logiciel est
écrit en C ce qui assure le plus grand panel de choix matériels. Les figures 2.9 et 2.10 illustrent
deux implémentations très différentes, respectivement pour une plate-forme réelle autour d’un
Texas Instrument MSP430 et d’un ChipCon CC1020, et pour une implémentation virtuelle dans
le but de créer des réseaux de processus Unix communicant sur des canaux virtuels réalisés à
partir de files de messages Unix. Cette dernière implémentation a un intérêt dans la phase de
création de l’application, où le concepteur d’application peut faire abstraction des contraintes
60
Architectures et traitements pour des réseaux de capteurs
Fig. 2.9: Déclinaison du logiciel pour une architecture autour d’un TI MSP430 et d’un ChipCon
CC1020 en employant une technique d’accès au médium RICER.
Fig. 2.10: Déclinaison du logiciel pour un réseau de capteurs virtuel, sous système Unix.
de performance du canal pour se consacrer pleinement au développement de son application et
ce sans avoir à passer par la phase de reprogrammation de capteurs ”physiques” qui peut être
une étape très fastidieuse.
Le réseau de capteurs est formé de trois catégories de nœuds. La première catégorie de
nœuds est majoritaire et inclut des capteurs à mobilité très faible ou nulle, avec une énergie
embarquée limitée. Les stations de bases constituent des cas particuliers de la première catégorie
et sont en très petit nombre et supposées illimitées en énergie. Enfin, la troisième catégorie
de nœuds est minoritaire, avec une mobilité et une énergie embarquée éventuellement plus
importantes. La mobilité des nœuds du réseau est très faible, voire nulle, à l’exception des
capteurs spécifiquement mobiles, qui sont des cas particuliers et qui n’ont pas à assurer les
fonctions de routage, par exemple.
2.3 Infrastructure logicielle de la pile de protocole développée
Catégorie
de nœud
Mobilité
Énergie
embarquée
Adressage
Nombre
Tab. 2.2: Catégories
Nœuds
fixes
Mobilité nulle
ou très faible
Très faible
Dépendant de la
position géographique
Élevé
61
des nœuds du réseau de capteurs
Station
Nœuds
de base
mobiles
Mobilité nulle
Mobilité importante
ou très faible
Moyenne
Élevée
Dépendant de la
position géographique
Faible
Indépendant de la
position géographique
Faible
Fig. 2.11: Niveau application du logiciel
2.3.1
Niveau application
Le niveau application du logiciel de réseau de capteur est constitué de plusieurs tâches représentées sur la figure 2.11.
Mécanisme d’autopositionnement. Dans les réseaux de capteurs, le mécanisme d’autopositionnement est nécessaire pour plusieurs raisons. D’une part, les données mesurées par le réseau
de capteurs doivent être localisées dans l’espace (et le temps), pour pouvoir être exploitées par
la suite par les stations de bases. D’autre part, la connaissance de la position géographique
peut être avantagement exploitée pour effectuer du routage géographique, réputé comme étant
un des plus simples et des moins coûteux, mais qui nécessite la connaissance de la position
des capteurs du réseau. Certains réseaux de capteurs sont bien organisés en des réseaux aux
mailles régulières. C’est le cas dans un certain nombre d’applications de surveillance de zone
(domaine militaire, mais aussi études de populations d’animaux, etc. ). Cependant, dans le
cas le plus général les capteurs présentent des organisations moins régulières pour plusieurs
raisons : lorsque la disposition des capteurs calque la configuration des lieux, par exemple un
schéma mixte avec des zone d’intérêt à fortes densité de capteurs et des zones de plus faible
densité de capteurs ayant plus un intérêt en termes d’interconnexion de zones, mais aussi dans
le cas où les capteurs ont été placés par un procédé aléatoire, tel que la diffusion par avion.
Dans le cas d’un réseau irrégulier, un mécanisme d’autopositionnement est indispensable à
62
Architectures et traitements pour des réseaux de capteurs
partir du moment ou le nombre de capteurs devient important. Le principe de fonctionnement
de ce système d’autopositionnement est ouvert à toute technique physique, et nous supposons
simplement qu’il y a un processus qui entretient cette connaissance de la position propre.
Le mécanisme d’autopositionnement a été développé sous forme d’un processus d’autopositionnement
permet au nœud de trouver et si besoin de mettre à jour l’information de sa propre situation
au sein du réseau de capteurs. Cette information est utilisée pour les opérations de routage et
de signature spatiale des échantillons mesurés.
Mécanisme de recherche des voisins. Pour un nœud donné du réseau de capteurs, la connaissance des nœuds voisins proches est importante et doit être déterminée et maintenue à jour. La
connaissance des voisins proches est très importante dans le contexte de réseau de capteurs, en
effet cela rend possible de nombreux mécanismes propres aux réseaux de capteurs, tels que la
création de zones virtuelles sur un critère de proximité. Un voisinage peut agréger des données
localement à l’aide de mécanismes coopératifs dans le but de minimiser les données qui sont
transmises à longue distance en direction des stations de base, par exemple. De même, combiné
au mécanisme d’autopositionnement évoqué au paragraphe précédent, le mécanisme mettant
à jour la connaissance du voisinage permet de réaliser la fonction de routage géographique.
La mémoire étant considérée comme une ressource très critique, en particulier dans la partie
du réseau des nœuds fixes ou l’énergie embarquée est la plus faible (voir tableau 2.2), une
connaissance exhaustive ne peut pas être intégrée pour réaliser la fonction de routage. Dès lors,
la connaissance des voisins proches apparaı̂t comme un minimum pour réaliser la fonction de
routage. Le routage d’une information sur une distance s’étendant au-delà d’un même voisinage exploitera au fur et à mesure de la progression les informations locales limitées des nœuds
utilisés dans la progression. Ce mécanisme de recherche et de maintien de la connaissance du
voisinage est donc fondamental à plusieurs titres et est un des traitements de base présents
dans le prototype R2D2. Son bon fonctionnement permet d’assurer une certaine tolérance aux
pannes des capteurs voisins, mais aussi de prendre en considération des mouvements lents des
voisins.
Ce mécanisme se traduit dans la plateforme que nous avons développée par un processus de
mise à jour du voisinage qui permet au nœud de déterminer et d’entretenir les informations
sur les nœuds dans son voisinage. Ces informations comprennent bien sûr les positions relatives
des voisins et éventuellement des informations complémentaires sur l’état d’énergie estimée
de chaque voisin, pour permettre l’implémentation d’algorithmes de routages respectueux de
l’énergie. Ces informations sont stockées dans un tableau appelé table de voisinage.
2.3 Infrastructure logicielle de la pile de protocole développée
63
Fig. 2.12: Niveau réseau du logiciel
Mécanisme de maintien des informations des stations de base. La connaissance du voisinage
est très importante mais cependant non suffisante pour assurer tous les cas de figure de routage
à longue distance. En effet, si on considère qu’une donnée mesurée a pour destinaire final une
station de base, dans le cas général, cette station de base est éloignée et ne fait par conséquent
pas partie du voisinage du capteur. Il faut donc un mécanisme qui maintienne à jour les adresses
(ou les positions géographiques) des différentes stations de bases présentes dans le réseau.
Ce mécanisme apparaı̂t dans le logiciel développé par le processus d’ écoute de la station
de base qui permet à un nœud du réseau (hormis la station de base) de traiter les ordres en
provenance de la station de base. Ces ordres peuvent être de toute nature, ce peut être des ordres
de mise à jour du voisinage, de réalisation de mesure, de transmission d’informations, etc... Ce
peut être aussi le processus qui met à jour la position de la station de base, puisque dans le cas
général la station de base n’est pas à portée radio du nœud, et elle est donc potentiellement
absente de la table de voisinage. Les informations liées à la station de base, et en particulier sa
position dans le réseau de capteurs, sont stockées dans la zone de stockage notée ”Infos station
de base”.
2.3.2
Niveau réseau
Le niveau réseau du logiciel générique est en charge du routage des informations dans le
réseau. Le schéma de ce niveau du logiciel est représenté sur la figure 2.12.
Mécanismes de routage. Chaque nœud du réseau est à la fois une source d’information, grâce
aux données issues du ou des capteurs embarqués, mais chaque nœud est également un relais
pour les autres nœuds. Autrement dit chaque nœud remplit la fonction de routage au sein du
réseau. Plusieurs modes de routage doivent être disponibles et pour chaque mode de routage,
la procédure est particulière. Ces modes ont été définis après analyse préalable des paradigmes
applicatifs de transports (ces derniers ayant été exposés au cours du chapitre 1). Les méca-
64
Architectures et traitements pour des réseaux de capteurs
Fig. 2.13: Niveau liaison du logiciel
nismes de routage doivent être adaptés à des réseaux de capteurs, c’est-à-dire être robustes,
tolérants aux pannes, dans une certaine mesure tolérants à la mobilité. De plus, le routage doit
pouvoir être effectué sur des réseaux étendus et denses comprenant de nombreux nœuds. Ce
dernier point est délicat, puisque les données utilisées pour effectuer le routage sont bornées
par les capacités de stockage limitées de la mémoire embarquée dans chaque nœud.
Le logiciel développé est organisée de la façon décrite ci-après pour pouvoir remplir ces
fonctions de routages.
Le processus descendant (de la couche application vers la couche liaison) permet d’inclure
dans les trames à émettre les informations de routage nécessaires au bon acheminement des
paquets, en fonction du mode de transmission qui a été séléctionné par les applications en amont.
Ce processus exploite les informations de la table de voisinage pour réaliser ce traitement.
Le processus d’analyse du mode, ascendant (de la couche liaison vers les couches supérieures),
analyse comme son nom l’indique le champ mode des trames reçues, en fonction de quoi il peut
déclencher une réémission de message (cas des modes inondation, diffusion et multi-étapes)
et/ou transmettre le paquet reçu vers les couches supérieures tel un filtrage. Il effectue également
l’interprétation des champs de données de la trame brute à l’aide de cette information du mode.
Le processus d’analyse du type, également ascendant, receptionne les trames non filtrées par le
processus d’analyse du mode et déclenche le processus adéquat grâce à l’information constituée
par le type du message. Plusieurs types différents peuvent être aiguillés vers le même processus
applicatif.
2.3.3
Niveau liaison
Le niveau liaison a pour objectif de fiabiliser les transferts de données. Le schéma de ce
niveau est présenté sur la figure 2.13. Deux mécanismes sont employés en série : un système de
correction d’erreurs (FEC, pour Forward Error Coding) et un système de réémission automa-
2.3 Infrastructure logicielle de la pile de protocole développée
while(1) {
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
}
65
(driverReception) ;
(driverEmission) ;
(simuleHorloge) ;
(liaison) ;
(reseau) ;
(gestionTimers) ;
(gestionREQvois) ;
(ConnaitreVois) ;
(MAJtabVois);
(managePresence);
(vagueREQvois);
Fig. 2.14: Boucle d’ordonnancement.
tique en cas d’impossibilité de reconstituer une trame valide à l’aide du premier mécanisme.
Chaque trame de données comporte 32 bits permettant de stocker de la redondance de donnée.
Les choix sont ouverts quant à la sélection d’un algorithme particulier.
2.3.4
Ordonnancement des tâches
L’ordonnancement des tâche est fixe contrairement à un système gérant le multi-threading.
Il respecte l’ordre d’ordonnancement de la figure 3.11. Ainsi , les traitements se voient proposer
chacun à leur tour l’occasion de s’exécuter. Si toutes les conditions sont réunies, alors un traitement donné s’exécute effectivement. Sinon, la tâche doit rendre la main. La rigidité apparente
de ce genre d’approche permet en fait de se passer d’un véritable ordonnanceur complexe de
tâches, et ce au sacrifice d’un peu de performance, notamment en termes de réactivité.
2.3.5
Optimisation des buffers des SAP
Le modèle OSI présenté à la section 2.2.5 est intéressant à de nombreux point de vue, en
particulier sur l’aspect de l’indépendance stricte entre les niveaux et le principe d’abstraction.
Cependant, en contrepartie, une telle organisation de la couche de protocole donne une certaine
rigidité et surtout une sous-optimalité à l’ensemble en particulier d’un point de vue de la
consommation énergétique. Ce défaut est mis en évidence dans [27] qui propose une plus grande
perméabilité des niveaux pour réaliser des optimisations conjointes ”cross-layer”.
En particulier, la rigidité et la sous-optimalité de niveaux complètements indépendants les uns
des autres se reflète dans le problème des buffers des points d’accès service (SAP). Les différents
niveaux du protocole réseau communiquent via les SAP et utilisent un principe d’encapsulation
des niveaux de protocoles (Fig. 2.15). Considérons la couche de niveau N dans le sens de
66
Architectures et traitements pour des réseaux de capteurs
Fig. 2.15: Principe d’encapsulation des niveaux.
Fig. 2.16: Buffer amélioré avec une redondance nulle.
l’émission de données dans le réseau. La couche N prend en charge des données confiées via le
SAP(N + 1)par la couche N + 1, c’est-à-dire le SDU(N ) (qui peut aussi être noté PDU(N + 1)).
Les données apportées par la couche N sont juxtaposées au SDU(N ) ce qui forme le PDU(N ).
Ce PDU(N ) est ensuite transmis au SAP(N ) afin d’utiliser les services de la couche N − 1.
Concrètement, les données transmises via les SAP sont transmises via des buffers entre les
tâches des différents niveaux. Ce qu’on peut remarquer, c’est qu’il y a une forte redondance
entre les données placées dans le buffer du SAP(N ) et du SAP(N + 1), puisqu’il y a une partie
de l’information qui est identique (à savoir le SDU(N )). Cela se traduit par une utilisation non
optimale des ressources mémoire. Dans le cas d’un système embarqué à faible activité comme
dans un réseau de capteurs, la consommation d’énergie liée à la mémoire est majoritaire, c’est
la raison pour laquelle les ressources mémoire sont limitées au maximum.
Pour améliorer cet aspect, nous avons imaginé un buffer unique pouvant être accédé en lecture et en écriture par n’importe quelle tâche (Fig. 2.16). De cette façon, il devrait être possible
d’éliminer toute redondance non voulue au sein des trames de données. Evidemment, un tel
buffer ne peut pas être utilisé tel quel et des précautions doivent être prises. La ressource que
représente le buffer doit être gérée pour éviter des problèmes d’incohérences, à l’aide de méca-
2.4 Modes de transmission et vecteurs de l’information
67
Fig. 2.17: Les modes de transmission nécessaires pour des réseaux de capteurs
nismes d’exclusion mutuelle. Pour cela, un champ historique est présent en plus pour chaque
ligne de buffer (Fig. 2.16). Ce champ de données additionnel permet d’organiser la séquentialité
des traitements. Chaque couche de protocole effectue une lecture du champ historique ce qui
lui permet de savoir si son PCI peut être calculé (sens descendant) ou bien si le SDU peut être
extrait du PDU (sens ascendant). Le calcul est effectué le cas échéant, et la couche de protocole
doit alors faire évoluer le champ historique pour autoriser les traitements ultérieurs.
2.4
2.4.1
Modes de transmission et vecteurs de l’information
Modes de transmission dans un contexte de réseau de capteurs
Pour pouvoir réaliser l’ensemble des transferts tels que ceux qui ont été présentés au premier
chapitre, certains modes de transmissions devront être présents à la fois pour permettre aux
mécanismes de base de fonctionner (autopositionnement, recherche des voisins), mais également pour fournir au concepteur une boı̂te à outils lui permettant de définir les applications
communicantes. On retrouve ces modes illustrés sur la figure 2.17.
Les tableaux 2.3, 2.4, présentent les modes de routage disponibles dans le prototype R2D2
pour les communications respectivement, entre capteurs fixes uniquement, d’une part, et entre
capteurs fixes et mobiles, d’autre part. Lorsqu’un capteur d’émission génère un message à
émettre dans le réseau de capteurs, il doit employer un mode de transmission parmi ceux qui
sont utilisables.
2.4.2
Structure des trames
Des trames ”sur mesure”. Ce travail de thèse sur les réseaux de capteurs a été articulé
autour de la définition précise des besoins applicatifs pour adapter les traitements nécessaires
au mieux. La définition de la structure des trames échangées est faite ”sur mesure”. Ces trames
de données à ”géométrie variable” permettent d’économiser à la fois la quantité de mémoire
des buffers des capteurs, mais aussi de minimiser les temps nécessaires à l’émission, puisque
l’information à transmettre est réduite.
68
Architectures et traitements pour des réseaux de capteurs
Tab. 2.3: Modes de routage disponibles sur la plate-forme R2D2 pour effectuer des communications entre des capteurs fixes uniquement.
Nom
du Fonctionnement
AcquitInformations du PCI du
mode
de
tement
niveau réseau
routage
Mode direct Permet de communi- Oui
Identifiant de l’émetacquitté
quer avec un nœud fixe
teur, identifiant du capidentifié présent dans le
teur fixe identifié, idenvoisinage
tifiant de trame pour acquittement
Mode
di- Permet de communi- Non
Identifiant de l’émetrect
non quer avec un nœud fixe
teur, identifiant du capacquitté
identifié présent dans le
teur fixe identifié
voisinage
Mode
Permet de communi- Oui
Identifiant de l’émetmultiquer avec un nœud fixe
teur, identifiant du
identifié et quelconque
nœud suivant, identiétapes
fiant du nœud destination, identifiant de
trame
Mode diffu- Permet de transmettre Non
Identifiant de l’émetsion
de l’information à l’enteur, identifiant de
semble des nœuds du
trame
voisinage
Mode inon- Permet de transmettre Non
Identifiant de l’émetdation
de l’information à l’enteur, identifiant de
semble des nœuds du rétrame
seau
2.4 Modes de transmission et vecteurs de l’information
69
Tab. 2.4: Modes de routage disponibles sur la plate-forme R2D2 pour effectuer des communications entre des capteurs fixes et des capteurs mobiles.
Mode de
Emetteur
Récepteur(s) Fonctionnement
AcquitInformations
tement
du PCI
routage
du niveau réseau
Mode
direct Fixe
Mobile
Permet de trans- Oui
Identifiant de
acquitté FM
mettre de l’inforl’émetteur fixe,
mation à un nœud
Identifiant du
mobile identifié
nœud mobile,
identifiant de
trame
Mode
direct Fixe
Mobile
Permet de trans- Non
Identifiant de
non acquitté
mettre de l’inforl’émetteur fixe,
FM
mation à un nœud
identifiant du
mobile identifié
nœud mobile
Mode diffusion Fixe
Mobile
Permet de trans- Non
Identifiant de
FM
mettre de l’inforl’émetteur fixe
mation à tous les
nœuds
mobiles
dans un périmètre
proche
Mode
direct
acquitté MF
Mobile
Fixe
Permet de transmettre de l’information à un nœud
fixe identifié
Oui
Mode
direct
non acquitté
MF
Mobile
Fixe
Non
Mode diffusion
MF
Mobile
Fixe
Permet de transmettre de l’information à un nœud
fixe identifié
Permet de transmettre de l’information à tous les
nœuds fixes dans
un
périmètre
proche
Non
Identifiant
de l’émetteur
mobile, Identifiant du nœud
fixe, identifiant
de trame
Identifiant de
l’émetteur mobile, identifiant
du nœud fixe
Identifiant de
l’émetteur mobile
70
Architectures et traitements pour des réseaux de capteurs
Fig. 2.18: Schéma d’une trame générique
Pour rentrer un peu plus dans les détails, la taille des informations de contrôle de protocole
(PCI) est déterminée à l’avance par un procédé qui permet de minimiser l’occupation mémoire
des informations nécessaires à l’acheminement des messages et pour maximiser l’espace utile
dans une trame de données.
Description d’une trame particulière.
Le format d’une trame et son organisation corres-
pondent à un certain mode de transmission, parmi ceux qui ont été présentés précédemment en
section 2.4.1. La structure des trames dépend des informations requises par le mode de transmission correspondant. La figure 2.18 présente l’organisation d’une trame générique et la figure
2.19 présente la déclinaison de la trame pour le mode multi-étapes. Les structures génériques
sont notées ”mode” et ”type”. Le ”mode” correspond à l’un des modes de routage possibles tels
qu’énoncés dans les tableaux 2.3 et 2.4. A un mode donné sont associés des PCI de niveau réseau
particuliers. On retrouve les informations de PCI correspondant dans la colonne ”informations
du PCI de niveau réseau” des tableaux 2.3 et 2.4 et ces informations se retrouvent dans chaque
trame et ce pour tous les modes de routage. Le champ ”type” est la deuxième structure présente
dans la trame générique. Cette donnée a pour rôle d’associer la trame à un processus de niveau
applicatif particulier afin de pouvoir activer le bon processus à la réception de la trame par le
destinataire final. Le champ ”CRC”, enfin permet de stocker de la redondance d’information,
utile pour faire fonctionner les systèmes de détection et de correction d’erreurs basés sur un
code de redondance cyclique (CRC, pour Cyclic Redundancy Check). Ainsi les champs ”mode”,
”type” et ”CRC” sont présents dans les trames de données qui sont représentées sur les schémas
des figures 2.19, 2.20, 2.21 , 2.22 et 2.23 représentant respectivement les trames déclinées selon
les modes de communication choisis : mode multi-étapes, mode direct acquitté, mode direct
non acquitté, mode indondation et mode diffusion.
Les structures grisées non affectées sont réservées pour les données d’applications et contiennent
les données utiles utilisant le transfert de données. Au contraire de solutions réseaux orientées
2.4 Modes de transmission et vecteurs de l’information
71
Fig. 2.19: Trame générique selon le mode de routage multi-étapes
Fig. 2.20: Trame en mode direct acquitté
OSI dans lesquelles les différentes couches du protocole réseau se présentent sous forme de
boı̂tes noires pour les autres traitements en aval et en amont, la solution proposée ici ne permet
pas de définir les applications en ignorant le fonctionnement des traitements des couches de
traitements réseau. Comme on le constate sur les figures 2.19, 2.20, 2.21 , 2.22 et 2.23, les zones
grisées permettant de stocker des données d’applications utiles ne se situent pas aux mêmes
positions selon le mode de transmission choisi. De plus, les zones disponibles pour le stockage
d’informations utiles ne représentent pas autant d’espace en fonction du mode de routage sélectionné, par exemple le mode de routage multi-étapes qui nécessite le plus d’information de
routage ne peut contenir au mieux que 32 bits d’information utile sur les 128 bits de la trame
totale.
L’exemple des trames de données ici décrites illustre très bien l’idée générale qui est d’identifier l’information strictement nécessaire pour le service de mise en réseau, puis d’affecter la
totalité des bits restant disponibles à de l’information utile. Le tableau 2.5 résume les performances des différents modes de routage du point de vue du ratio quantité d’information utile
sur taille totale de la trame. Une solution plus rigide aurait mené à prendre le cas le pire et à
n’autoriser que 32 bits utiles par trame quel que soit le mode de transmission employé. Cette
amélioration peut également être interprétée comme un exemple d’optimisation cross-layer dans
le sens ou l’application doit connaı̂tre la structure des trames, donc par voie de conséquence les
mécanismes réseaux sous-jacents sont en partie connus par l’application.
72
Architectures et traitements pour des réseaux de capteurs
Fig. 2.21: Trame en mode direct non acquitté
Fig. 2.22: Trame en mode inondation
Fig. 2.23: Trame en mode diffusion
Tab. 2.5: Ratio de l’information utile sur la taille totale des trames
Mode de transmission
Espace
Espace
Ratio
total
utile
mode multi-étape
128
32
0.25
mode direct acquitté
128
48
0.375
mode direct non acquitté
128
56
0.4375
mode inondation
128
64
0.5
mode diffusion
128
72
0.5625
2.5 Simulateur
73
Fig. 2.24: Schéma de l’implémentation en version simulation
2.5
Simulateur
A partir du noyau de base du logiciel implémentant les mécanismes basiques et indépendants
du matériel, plusieurs implémentations sont possibles. Chaque version se décline en adaptant
les composants désormais clairement identifiés comme dépendant du matériel choisi.
Parmi les différentes implémentations qui ont été réalisées au cours de cette thèse, l’une
d’entre elle se démarque puisque elle est entièrement virtuelle. Il s’agit d’un réseau de capteurs
virtuel qui se présente sous forme d’un ensemble de processus logiciels communicant via un
canal virtuel. Le canal virtuel permet d’émuler un canal sans fil jusqu’à un certain niveau de
réalisme. Le réseau virtuel est intéressant pour l’étude de protocoles réseau et applicatifs pour
lesquels il est possible de faire abstraction dans une certaine mesure des particularités et des
défauts du canal de communication entre les capteurs.
2.5.1
Description des éléments spécifiques à l’implémentation virtuelle en
simulation
L’implémentation virtuelle en simulation fait intervenir six entités :
– le pilote d’émission,
– le pilote de réception,
– la file message principale,
– la file de message de l’analyseur réseau,
– l’analyseur réseau,
– l’horloge virtuelle,
– le fichier de description du réseau.
La figure 2.24 met en évidence
74
Architectures et traitements pour des réseaux de capteurs
Fig. 2.25: Fichier de description du réseau de capteurs en version simulation
Le pilote d’émission a pour rôle de consommer les messages ayant été placés dans le buffer
d’émission et de les envoyer aux noeuds voisins via des instructions d’émissions sur la file de
message principal. En parallèle à cet envoi sur la file de message principal, le pilote d’émission
a également pour rôle d’envoyer les messages sur la file de message de l’analyseur réseau, ce qui
permet d’observer de façon centralisée l’ensemble des messages qui sont transmis sur le réseau
de capteurs.
Le pilote de réception a pour rôle de consommer les messages concernant le noeud local et de
placer les messages décodés dans le buffer de réception du noeud où le message sera par la suite
analysé. Le pilote de réception est doté d’un mécanisme permettant de simuler en fonction de
la distance entre l’émetteur et le récepteur des erreurs binaires au sein des trames.
La file de message principal véhicule l’ensemble des messages qui transitent au sein du réseau.
Un système d’identifiant transparent pour le reste du système permet d’identifier le destinataire
d’un message donné.
La file de message de l’analyseur réseau est une copie de l’activité de la file de message
principale, mais les messages sont consommés par l’analyseur réseau dans un but d’observation
centralisée.
L’analyseur réseau consomme tous les messages de la file de message de l’analyseur réseau et
mémorise des informations telles que des statistiques de fonctionnement du réseau, en fonction
des modes de fonctionnement utilisés, des émetteurs ou des récepteurs mis en jeu, etc.
L’horloge virtuelle permet de générer logiciellement un signal temporel utilisé par les différents traitements du noyau de base du logiciel de réseau de capteurs. Elle ”émule” en quelque
sorte un résultat qui aurait été obtenu à partir de timers physiques de microcontrôleur par
l’utilisation de primitives Unix apropriées.
Enfin, le fichier de description du réseau permet de définir le déploiement et la topologie du
réseau de capteur. Un exemple de fichier de description du réseau est présenté sur la figure
2.25.
2.5.2
Asynchronisme et simulation
La version simulation est rendue possible grâce à l’asynchronisme des traitements des noeuds.
Le noyau de base du traitement et par conséquent toutes les versions qui sont basées sur ce
noyau fonctionnent sans aucun présupposé sur l’état d’exécution des autres noeuds du réseau.
2.5 Simulateur
75
La notion de temps existe cependant au sein d’un noeud, notamment pour ce qui est de la
génération d’événements internes. Cet asynchronisme a de nombreux avantages dans notre
contexte. Comme le cadre de programmation choisi est celui des Protothreads et que la préemption n’est pas possible dans ce contexte, cela provoque une exécution globale saccadée ce
qui exclut tout fonctionnement basé sur de la synchronisation inter-noeuds (à l’exception bien
entendu de certaines zones précises au sein du protocole d’accès au média, qui ne rende pas la
main à l’ordonnanceur lors des sections de code critiques). Le fait de considérer l’asynchronisme
des noeuds du réseau permet également de ne pas utiliser de communication spécifiquement
dédiée à cette tâche de synchronisation. Pour la conception d’un réseau de capteurs virtuel,
l’asynchronisme est en outre indispensable étant donné que le réseau est exécuté par une seule
machine dotée d’un système multiprocessus, dans notre cas il s’agit du système Unix. Bien sûr,
les différents processus Unix s’exécutent en pseudo-parallèle, toute notion de synchronisation
entre processus est donc par construction impossible.
Le point particulier de la communication inter-processus, qui nécessite dans l’implémentation
réelle de la synchronisation sur des durées courtes, est géré dans le cas du simulateur par le
recours à une file de message, ce qui est une méthode centralisée et asynchrone qui permet de
faire abstraction de toute synchronisation.
2.5.3
Avantages et limites de l’implémentation ”simulation”
Cette version en simulation du réseau de capteurs offre plusieurs avantages par rapport à la
version réelle.
Tout d’abord, il est possible de simuler un grand nombre de capteurs. Pendant une phase de
conception, cela se révèle être appréciable parce que si le programme change, tous les éléments
du réseau doivent être reprogrammés ce qui est une tâche très fatidieuse au delà de quelques
noeuds.
De plus, le déploiement des noeuds est facilité, puisque virtuel et réalisé conformément à un
fichier de description du réseau.
Le noyau de base est strictement identique aux autres implémentations, ce qui facilite l’évolution du simulateur vers l’implémentation réelle sur des noeuds physiques. Cela est rendu
possible par le fait que les éléments du réseau indépendant de l’implémentation ont été clairement identifiés comme tel.
Comme on dispose d’une exécution physiquement centralisé sur un ordinateur, il est possible
de centraliser la vue des messages échangés dans le réseau virtuel, ce qui est difficile à réaliser
dans un réseau réel qui est distribué physiquement. Cela est fait grâce à l’analyseur réseau.
76
Architectures et traitements pour des réseaux de capteurs
En revanche, ce type d’implémentation présente également certaines limitations.
Tout d’abord, bien qu’il soit possible dans une certaine mesure de prendre en compte des
imperfections dues à la communication entre les noeuds du réseau, le canal de communication
reste simplifié. Par conséquent, l’implémentation vers le simulateur n’est utilisable que pour
étudier des protocoles réseaux et définir des applications.
De plus, bien que les simulations peuvent être réalisées sur de grand nombre de capteurs, le
nombre de noeuds pouvant être simulés est limité par les performances du système sur lequel
la simulation est exécutée.
2.6
Conclusion
Ce chapitre a été l’occasion de définir un logiciel de réseau de capteurs qui respecte des mots
d’ordre de flexibilité quant aux applications possibles, et de portabilité également grande, grâce
à l’emploi du cadre de programmation des protothreads entièrement codés en C standard. Les
mécanismes communs à des applications variées de réseaux de capteurs ont été programmés
dans une partie du programme qui constitue une base commune, quelle que soit l’application et
quel que soit le matériel employé (en particulier quelle que soit la partie radio de ce matériel).
Ainsi, les processus faisant partie de ce noyau commun de traitement sont :
– le processus d’apprentissage du voisinage,
– le processus de communication avec la station de base,
– le processus de gestion des timers, qui permet de gérer des échéances temporelles dans le
but de générer des événements divers, par exemple un ordre de réveil,
– l’ensemble des processus de routage géographique,
– les processus de la couche liaison autorisant la demande de réémission automatique et la
correction d’erreurs.
Plusieurs modes de routages possibles sont disponibles pour répondre aux besoins des applications en fonction de la façon dont l’information doit se diffuser dans le réseau. Ces modes
sont :
– le mode direct acquitté,
– le mode direct non acquitté,
– le mode multi-étapes,
– le mode diffusion,
– le mode inondation.
Les trames ont ensuite été définies avec le plus grand soin pour maximiser l’information utile.
2.6 Conclusion
77
Enfin, une technique de buffer optimisée permet de limiter au maximum l’utilisation mémoire.
Dans le chapitre suivant, l’adaptation de ce logiciel générique à une plate-forme réelle sera
abordée, et l’évaluation de la consommation d’énergie sera réalisée sur la base de mesures de
consommation sur la plate-forme.
78
Architectures et traitements pour des réseaux de capteurs
Chapitre 3
Évaluation de la consommation et
optimisation du prototype
Contents
3.1
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
3.2
Description de la plate-forme R2D2 . . . . . . . . . . . . . . . . . .
83
3.3
3.4
3.1
3.2.1
Description du matériel . . . . . . . . . . . . . . . . . . . . . . . . . .
83
3.2.2
Protocoles d’accès au médium . . . . . . . . . . . . . . . . . . . . . . .
84
Evaluation de l’énergie par traçage d’exécution de code . . . . . .
88
3.3.1
Traçage d’exécution dans un système événementiel . . . . . . . . . . .
89
3.3.2
Identification des cycles d’ordonnancement caractéristiques . . . . . .
92
3.3.3
Caractérisation en consommation des cycles d’ordonnancement . . . .
97
Evaluation de l’énergie par une approche analytique . . . . . . . .
98
3.4.1
Estimation analytique de la répartition des cycles d’ordonnancement .
99
3.4.2
Événements anormaux des communications et coût énergétique . . . . 101
3.4.3
Résultats d’évaluation de consommation d’énergie . . . . . . . . . . . 106
3.5
Optimisation énergétique : exemple de l’intervalle de réveil. . . .
107
3.6
Conclusion
109
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduction
La réalisation de systèmes à faible consommation énergétique est un problème d’actualité
très dynamique dans la recherche en architecture. Pour pouvoir réaliser des systèmes à faible
consommation, un préalable est de disposer d’outils permettant d’estimer la consommation de
différentes solutions afin de sélectionner les meilleures. Des techniques et des outils existent
79
80
Évaluation de la consommation et optimisation du prototype
pour estimer la consommation de systèmes, en particulier dans le cas de systèmes intégrés sur
une même puce.
L’estimation de l’énergie d’un nœud du réseau nécessite au préalable d’identifier les composants consommateurs d’énergie. Cette identification des élements consommateurs d’énergie
débute par l’établissement d’une liste des différents composants constitutifs du système. En
règle générale, le modèle d’énergie de haut-niveau adopté est défini par la somme entre l’énergie de ”calcul” consommée par les divers traitements et l’énergie dédiée à la communication
entre les capteurs.
Cette première décomposition n’est pas extrêmement claire, étant donné que la frontière
entre les traitements et les communications n’est pas facile à mettre en évidence. La part de
communication prend-elle en compte l’intégralité de la gestion de la pile de protocole réseau ?
Cette distinction est possible, mais dans ce cas de nombreux traitements numériques ainsi que
l’exécution de protocoles complexes tels que le routage ou encore la fiabilisation des données
par la couche liaison sont alors inclus dans le terme d’énergie de communication, alors que leur
estimation a plus de similarité avec l’évaluation de la consommation des traitements.
Une deuxième possibilité de décomposition consiste à distinguer les traitements numériques
des traitements analogiques, de la même façon que cela avait été présenté à l’équation 1.21 dans
le premier chapitre, mais cette fois-ci exprimée sous forme de d’énergies et non de puissances :
Etot = Ealgo + Eanalog + Eamp
(3.1)
avec Etot , toujours l’énergie totale, Ealgo l’énergie due aux calculs numériques, Eamp l’énergie
consommée par l’amplificateur d’émission analogique et enfin Eanalog l’énergie due aux traitements analogiques de mise en forme des signaux de communication et toutes autres causes
”analogiques” de consommation. En considérant la plate-forme choisie, le terme Ealgo représente la consommation du processeur et de ses mémoires RAM et flash, ainsi qu’une part de
traitement numérique qui serait incluse dans la partie radio. Le terme Eanalog correspond quant
à lui à l’énergie dépensée par le capteur et le convertisseur analogique-numérique et l’énergie
de la partie radio analogique à l’exception de l’amplificateur. Le terme Eamp est associé à l’amplificateur présent dans la partie radio. Cet élément est à part parce qu’il constitue à lui tout
seul une part importante de la consommation et est fortement variable dans un contexte de
réseau de capteurs où l’énergie est fortement contrainte.
Notre approche pour l’évaluation de la consommation se décompose en trois niveaux d’estimation (fig. 3.1).
3.1 Introduction
81
Fig. 3.1: Trois méthodes d’évaluation de la consommation d’énergie
Le niveau 0 consiste à mesurer le produit courant tension aux bornes de l’alimentation pendant le fonctionnement du système. En notant u(t) la tension instantanée aux bornes de l’alimentation ou de la batterie et i(t) l’intensité instantanée sur une des électrodes de l’alimentation, la puissance instantanée s’exprime alors par p(t) = u(t)i(t). Si on considère T0 l’instant
initial et un instant quelconque T , l’énergie consommée pendant l’intervalle [T0 T ] s’exprime
RT
RT
alors par e(T ) = T0 p(t)dt = T0 u(t)i(t)dt. Cette technique d’évaluation aussi précise et simple
soit-elle, est difficile à appliquer en principe et souffre d’inconviénients majeurs dans la plupart
des cas. Pour réaliser cette mesure, il suffit d’un oscilloscope numérique à mémoire capable de
fournir les données recueillies sous forme de fichiers de données à exploiter par un logiciel de
traitement. Le protocole expérimental est donc relativement simple. Cependant, il faut pouvoir disposer du système matériel réel et complet entièrement défini et opérationnel, ce qui
va à l’encontre d’un besoin de prototypage et d’anticipation nécessaire pour obtenir des sys-
tèmes atteignants les performances d’un cahier des charges donné. Certains travaux centrés sur
des petits systèmes basés sur l’optimisation de systèmes réels complets déjà existants avaient
pour objet la réalisation d’estimations selon cette technique. Les retours d’expérimentations
montrent que l’évaluation est simple et précise et qu’elle ne nécessite pas de matériel haut de
gamme pour les mesures. Cependant, cette technique est fastidieuse et difficile à mettre en
place dans une optique de prototypage et nous ne l’avons pas employée.
L’évaluation de e niveau 1 consiste à effectuer l’analyse à partir du traçage d’exécution de
code. Il s’agit :
1. de classifier les comportements des capteurs sous forme de cycles d’exécution,
2. de mesurer la consommation énergétique pour chacun des cycles d’exécution,
3. de compter ces cycles d’exécution pendant le déroulement d’un programme sur la plate-
82
Évaluation de la consommation et optimisation du prototype
Fig. 3.2: Organigramme de la méthodologie suivie pour la conception du prototype de réseau
de capteurs R2D2.
forme réelle.
L’évaluation de niveau 2 se base sur l’analyse du niveau 1, mais cette fois-ci nous cherchons
à évaluer de façon analytique et statistique les comportements des capteurs. Dans ce cas :
1. la classification des cycles d’exécution est la même que pour le traçage d’exécution de
code,
2. l’évaluation de consommation énergétique pour chacun des cycles d’exécution est en partie
analytique,
3. le nombre des cycles d’exécution est évalué de façon analytique et statistique.
Dans ce chapitre sera présentée la plate-forme du prototype de capteur qui a été développé, et
les traitements qui avaient été identifiés au chapitre précédent comme ”dépendant du matériel”
seront définis, en particulier le système d’accès au médium, point critique pour la consommation d’énergie. Ensuite, nous développerons le traçage d’exécution de code (niveau 1), puis la
méthode d’évaluation analytique et statistique (niveau 2). Enfin, nous appliquerons la dernière
méthode dans un problème d’optimisation énergétique par réglage d’un paramètre important
qui est l’intervalle de réveil, lié à la technique d’accès au média utilisée.
3.2 Description de la plate-forme R2D2
3.2
83
Description de la plate-forme R2D2
La méthodologie suivie dans le cadre de cette thèse est illustrée sur la figure 3.2. La première
étape consiste en la définition du besoin, pour pouvoir imaginer réaliser des structures de traitements qui correspondent parfaitement aux contraintes imposées par les couches supérieures
en matière de mémoire, de débits, d’échelle et de densité du réseau et en tenant compte de
la nature des événements issus des capteurs embarqués. Cette étape a été présentée dans le
chapitre précedent. La deuxième étape consiste à implanter les traitements mis en évidence à
l’étape précédente et ne dépendant pas du matériel choisi. Lors de la troisième étape, il s’agit
de fixer des choix matériels et architecturaux parmi les meilleurs possibles. Ce choix doit bien
entendu être fait en fonction des besoins mis en évidence précédemment. Après quoi les traitements doivent être adaptés à ces architectures dédiées pour terminer la réalisation d’un réseau
de capteurs à la fois opérationnel et performant.
3.2.1
Description du matériel
La cible adaptée doit être simple et polyvalente et peut par exemple être basée sur un microcontrôleur généraliste avec suffisamment de mémoire embarquée, associée à un système de
communication radio simple. La plate-forme R2D2 s’inscrit précisément dans cette logique, et
n’a pas pour ambition d’être optimale, mais elle s’inscrit plutôt dans une étape de validation
initiale des traitements. Par la suite, après avoir mis en évidence les points de la conception
nécessitant le plus de soin, il s’agira de proposer des solutions matérielles plus performantes.
Le prototype, dont la figure 3.3 présente une photographie, a été réalisé à partir de composants commerciaux courants. Les nœuds sont basés sur un micro-contrôleur 16 bits Texas
Instrument MSP430 dans une version comportant 2 ko de mémoire RAM et 60 ko de mémoire
Flash. Ils comportent un capteur de température intégré, 2 interfaces de type UART, 2 timers 16 bits, 2 ”watchdogs” et un convertisseur analogique-numérique associé au capteur de
température (voir le tableau 3.1).
Le composant de communication est un Chipcon CC1020 employant des modulations FSK
(Frequency Shift Keying), GFSK (Gaussian Frequency Shift Keying) ou OOK (On/Off Keying)
dont les caractéristiques précises sont détaillées dans le tableau 3.1.
Le prototype de réseau existant est constitué actuellement de 20 nœuds pouvant intégrer
les capteurs et d’un nœud station de base qui est lui-même constitué d’un capteur complet
couplé à un ordinateur qui fournit un point d’accès à l’utilisateur, pour envoyer des requêtes
et des ordres en direction du réseau de capteurs et pour récupérer et afficher des résultats en
84
Évaluation de la consommation et optimisation du prototype
Fig. 3.3: Photo de la plate-forme du prototype de réseau de capteur R2D2
Fig. 3.4: Architecture réseau du prototype r2d2 de réseau de capteurs
provenance du réseau. La figure 3.4 illustre les choix pris en ce qui concerne l’architecture réseau
avec une construction simple constituée d’une station de base et des 20 nœuds satellites.
3.2.2
Protocoles d’accès au médium
Le fait de se fixer sur un matériel, en particulier la partie radio est l’occasion de fixer un
protocole d’accès au médium. Cette partie est un des traitements les plus délicats à concevoir
et ce particulièrement pour les réseaux sans fil, dû au fait que le canal est partagé par tous
les nœuds communicants. Ce protocole est avant tout construit autour d’un matériel avec ses
caractéristiques spécifiques.
Les réseaux de capteurs se caractérisant par des contraintes énergétiques fortes, les techniques
d’accès au médium doivent être adaptées aux besoins des réseaux de capteurs.
Les raisons des gaspillages énergétiques ont été identifiées [87]. Elles consistent en quatre
facteurs :
1. les collisions, qui obligent l’émetteur, le récepteur, ou les deux à recommencer une opération de réception ou d’émission,
2. l’ overhearing, qui se produit lorsqu’un récepteur receptionne un paquet qui ne lui est pas
destiné,
3.2 Description de la plate-forme R2D2
85
Tab. 3.1: Caractéristiques de la plate-forme R2D2
Microcontroleur
Type
Texas Instrument MSP430
Fréquence de fonctionnement
8 MHz
Tension d’alimentation
entre 2,7 V et 3,6 V
Mémoire RAM
2 ko
Mémoire Flash
60 ko
Convertisseur Analogique Numé- 12 bits SAR (Successive Approximation Register)
rique
Interfaces matérielles UART (Uni- 2
versal Asynchronous Receiver and
Transmitter)
Timers
2 timers 16 bits
Watchdog
2 watchdogs de 8 bits
Capteur
1 capteur de température
Multiplieur matériel
1
Composant Radio
Type
ChipCon CC1020
Modulation
OOK (On/Off Keying), FSK (Frequency Shift Keying)
ou GFSK(Gaussian Frequency Shift Keying)
Tension d’alimentation
entre 2.3 V et 3.6 V
Puissance d’émission
Variable de -20 dBm à +10 dBm
Bande de fréquences utilisables
402 MHz – 470 MHz, 804 MHz – 940 MHz
Sensibilité
-112 dBm pour une largeur de bande de 12.5 kHz
RSSI
Numérique
Taux de transmission maximal
153.6 kBaud
Alimentation
4 batteries 1,2 V
Capteur embarqué
Capteur de température du MSP430
Antenne
Antenne ”quart d’onde” de 8 cm
86
Évaluation de la consommation et optimisation du prototype
3. le volume des informations de contrôle,
4. et enfin l’écoute, hors réception, du canal (idle listening).
Comme cela a déjà été remarqué, les transferts d’informations se font par paquets de taille
faible et à une fréquence également relativement faible. Dès lors, l’utilisation d’une technique
d’accès au médium ”classique”, c’est-à-dire asynchrone et avec une disponibilité permanente
de la réception semble inadaptée [53] puisque dans ces conditions, l’écoute hors réception est
prédominante. En effet, la consommation d’énergie liée uniquement à l’écoute active du canal
de communication est élevée [60]. On peut également se référer au calcul rapide évoqué dans le
chapitre introductif où on avait constaté que le simple fait d’utiliser de l’écoute active à l’aide
d’un composant RF disponible dans le commerce, à savoir le Chipcon CC1020, associé à une
quantité d’énergie embarquée limitée à environ 21600 J 1 , donnait une idée de la borne max de
la durée de vie d’un nœud du réseau de l’ordre de 120 heures. Ce genre de technique d’accès
au médium est donc exclu dans une application de réseaux de capteurs.
L’idée pour diminuer le temps passé en mode écoute hors réception consiste à désactiver le
composant de communication en émission et en réception le plus longtemps possible, et de ne
l’activer que lorsque des transferts d’information ont effectivement lieu. Autrement dit, il s’agit
de minimiser le facteur d’activité du composant de communication, ce qu’on peut définir par le
rapport entre le temps d’activité effective et le temps total. Cependant, la communication entre
nœuds n’est possible qu’à condition que l’émetteur et le récepteur soient actifs simultanément.
Les transferts de données présupposent alors que l’émetteur et le récepteur se synchronisent
ce qui se concrétise sous forme de rendez-vous. L’établissement d’un rendez-vous entre un
émetteur et un récepteur est un traitement supplémentaire qui est à la charge du protocole
d’accès au médium. L’établissement du rendez-vous peut être réalisé de plusieurs façons [51].
– Les algorithmes purement synchrones fonctionnent à l’aide de la connaissance des instants
où les rendez-vous ont lieu. Le mécanisme de synchronisation tend à augmenter de façon
importante la part des informations de contrôle, en particulier si le réseau est étendu. Il
peut éventuellement y avoir de multiples synchronisations à l’échelle de zones, les différentes
zones d’un réseau étendu n’étant pas forcément synchronisées entre elles (protocole TEEM
[78]). Parmi cette classe des algorithmes synchrones, on peut citer S-MAC [87], TEEM [78],
qui est une optimisation de S-MAC, et encore TRAMA [69].
– Avec les algorithmes purement asynchrones, les nœuds du réseau ont la capacité de réveiller
les nœuds avec lesquels ils souhaitent communiquer. Cela suppose la présence d’un matériel
supplémentaire spécifique qui emploie un canal parallèle appelé canal de réveil [29]. Le
1
21600 Joules correspond la quantité d’énergie de 3 batteries de capacité 1600 mAh pour 1.2V.
3.2 Description de la plate-forme R2D2
87
récepteur du canal de réveil a la propriété d’être actif en permanence, contrairement au
canal principal de données. Pour que cela soit intéressant, il faut bien entendu que la
puissance consommée par la reception sur ce canal de réveil soit la plus faible possible,
ce qui n’est réalisable qu’à l’aide de modulations n’autorisant que de très faibles débits.
Evidemment, il est gênant de devoir avoir un système de communication double, c’est le
principal inconvénient de ces techniques purement asynchrones.
– Enfin, avec les algorithmes dits pseudo asynchrones, les nœuds du réseau établissent des
rendez-vous à la demande, mais basés sur un réveil périodique, cette période pouvant être
statique ou dynamique [73], [86]. Les travaux ayant exploré ces systèmes de rendez-vous
pseudo-asynchrones incluent les algorithmes RICER et TICER [53], basés respectivement
sur une réception périodique et sur une émission périodique.
Au cours des travaux sur la plate-forme R2D2 de réseaux de capteurs, nous nous sommes
focalisés plus spécifiquement sur l’algorithme RICER [52] (acronyme pour Receiver-Initiated
CyclEd Receiver), plus récent, et basé sur un système de rendez-vous pseudo asynchrone. Ce
choix a le gros avantage de ne pas nécessiter de système de synchronisation, très difficile à
mettre au point en pratique. De plus, le fait que la période de réveil puisse varier dans une
grande gamme de durées a un intérêt pour la réalisation des optimisations ”cross-layer”.
Le fonctionnement de cette méthode d’accès au médium est illustré par la figure 3.5. Avec
cette technique pseudo-asynchrone, le rendez-vous est initié par le récepteur. Lorsqu’un nœud
sort de son mode de veille, il cherche à se rendre disponible pour une réception éventuelle
de paquet de données. Il fait savoir aux nœuds autour de lui qu’il est disponible par l’envoi
d’une trame de réveil contenant son identifiant. L’émission à proprement parler de cette trame
de réveil est précédée par une période d’écoute du canal servant à éviter les collisions sur le
canal. Après l’envoi de la trame, le nœud passe alors en mode réception pour une certaine
durée pendant laquelle un émetteur peut éventuellement effectuer la communication. Si aucun
émetteur ne s’est manifesté au bout du temps d’attente, alors, le nœud se remet en veille
jusqu’au réveil suivant. Dans l’hypothèse où un émetteur se manifeste, alors la réception a lieu,
suivie par l’émission d’une trame d’acquittement. Du point de vue de l’émetteur, lorsqu’une
trame de données doit être transmise à un destinataire, alors le nœud positionne le système
de communication en mode de réception, jusqu’à la réception d’une trame de réveil. Après la
réception de cette trame, si le récepteur n’est pas identifié comme le bon interlucuteur, alors
la procédure s’interrompt. Sinon, après le respect d’un temps d’attente anti-collision de durée
aléatoire (pour limiter les risques de collisions entre émetteurs), l’émission de la trame a lieu,
suivie de la réception de la trame d’acquittement.
88
Évaluation de la consommation et optimisation du prototype
Fig. 3.5: Protocole de rendez-vous initié par récepteur RICER3 [52]
Pour conclure sur cette technique, on peut dire qu’elle est difficile à appliquer en pratique
pour un certain nombre de raisons. La première raison est la nécessité de se fixer dès le départ
sur une architecture quasiment dédiée, ce qui est l’objectif vers lequel on tend. Cette méthode
d’évaluation serait donc basée sur des essais successifs d’architectures candidates. Pour chacune des architectures candidates, une description architecturale complète est nécessaire ce qui
demande beaucoup de travail. Le deuxième inconvénient est la relative imprécision de la technique car l’évaluation de consommation est faite brique de base par brique de base, ce qui fait
se propager les imprécisions lorsqu’on passe à plus grande échelle sur le système entier. Pour
pallier à cet inconvénient, il convient donc par conséquent de réaliser l’évaluation énergétique
des briques de base de la plus grosse granularité possible.
3.3
Evaluation de l’énergie par traçage d’exécution de code
Le principe d’évaluation de la consommation énergétique par traçage d’exécution est centré
sur une description de code précise et de son exécution sur une plate-forme générique. Tout
d’abord, il est important de remarquer que cette évaluation est rendue possible uniquement si
la plate-forme générique définie précédemment est utilisée. Plus généralement, la technique qui
va être présentée nécessite la présence d’une structure capable d’exécuter du code, à savoir un
microcontrôleur ou plus généralement un microprocesseur.
Cette technique peut se schématiser à l’aide de la figure 3.6. L’élément ”consommation des
cycles d’ordonnancement” inclut les données issues des mesures sur la plate-forme de test. Le
deuxième élément, ”répartition des cycles d’ordonnancement”, contient la trace d’exécution sous
la forme qui sera précisée dans la suite de cette section. En comptant le nombre de cycle de
chaque type, et en multipliant les termes par leur consommation énergétique, on obtient alors
3.3 Evaluation de l’énergie par traçage d’exécution de code
89
Fig. 3.6: Interdépendance des éléments de calcul de consommation (niveau 1).
la consommation totale.
Cette technique d’évaluation consiste donc à tracer l’exécution du code d’un nœud du réseau, intégré dans un environnement fonctionnel, et associé à une application test. D’autres
travaux similaires fondés sur du traçage d’exécution ont été menés, notamment au sein du
projet de plate-forme Crossbow/TinyOs développée à Berkeley [68], ainsi qu’en Allemagne par
l’Université de Tubigen par Landsiedel et al. [45] avec leur projet AEON (Accurate Prediction of Power Consumption), basé sur une extension du fameux système TinyOS, sans oublier
Schnayder et al., à l’Université de Harvard pour la plate-forme Crossbow dans une extension
également affiliée au système TinyOS qui est connue sous le nom de PowerTOSSIM [74].
L’approche que nous présentons est différente cependant, car elle se détache de TinyOS,
pour s’appuyer sur la bibliothèque nommée protothread qui consiste en une bibliothèque de
programation utilisée au coeur du système d’exploitation Contiki. Ce choix de se détacher de
TinyOS a été pris pour des raisons techniques qui ont été présentées au chapitre précédent.
3.3.1
Traçage d’exécution dans un système événementiel
Comme cela a été évoqué au chapitre précédent, les systèmes événementiels constituent un
bon choix pour une application de réseau de capteurs. Le système TinyOS très répandu dans le
domaine des réseaux de capteurs est un système événementiel, tout comme le système Contiki.
Cependant, même si les systèmes événementiels ont ces bonnes propriétés, la question du traçage
d’exécution est un problème particulier. En effet, en considérant les traitements sous forme de
threads, il est plus facile de déterminer les différents traitements qui ont été employés car leur
séquentialité est définie à l’avance, à l’exception des branches conditionnelles d’un programme,
pour lesquelles il faut pouvoir mémoriser les branches qui ont été choisies. À l’inverse, dans
un style de programmation événementiel, les traitements sont écrits de façon éparse et une
même macro-fonctionnalité pourra être une combinaison de nombreux traitants. De plus, les
événements qui surviennent n’ont pas, a priori, de séquentialité évidente, contrairement à un
programme écrit sous forme de threads, ce qui rend le traçage d’exécution plus délicat.
90
Évaluation de la consommation et optimisation du prototype
Le cas des protothreads
La bibliothèque C intitulée ”protothreads” est une réalisation qui s’est révélée particulièrement prometteuse dans les réseaux de capteurs comme en témoignent un certain nombre de
projets de recherche récents qui s’appuient sur cette bibliothèque elle-même récente. À l’aide
de cette bibliothèque, il est possible de cumuler les avantages de performances et de faible
utilisation mémoire propre à la programmation événementielle, tout en gardant les avantages
de la programmation sous forme de threads qui sont principalement une plus grande facilité du
traçage d’exécution et une plus grande facilité de conception des programmes.
Les protothreads sont des fonctions C qui utilisent des instructions ”en code préprocesseur”.
Ce qui fait leur originalité est que le code de la fonction peut être interrompu et repris ultérieurement, un peu comme s’il y avait eu une préemption de la part de l’ordonnanceur d’un
noyau. En réalité, la fonction est ponctuée d’instructions particulières PT WAIT UNTIL qui
peuvent constituer tout autant de points d’arrêts potentiels, et la fonction ne peut pas rendre la
main ailleurs qu’au niveau de ces points d’arrêt. Lorsque la fonction rencontre une instruction
PT WAIT UNTIL, si la condition associée est vraie alors le programme continue son exécution,
si celle-ci est fausse, alors le contexte ”simplifié” est sauvegardé sous forme de la mémorisation
du seul pointeur d’exécution, puis la fonction rend la main à l’ordonnanceur supérieur. Le principe du fonctionnement des instructions en code préprocesseur est détaillé et commenté sur
les figures 3.8 et 3.9. On retrouve dans cette description des éléments appartenant à la fois
au monde de la programmation sous forme de threads, comme la sauvegarde de contexte et la
programmation modulaire, et d’autres éléments qui sont caractéristiques de la programmation
événementielle, à savoir la non préemptibilité, la non concurrence d’exécution et le très faible
surcoût mémoire lié à chaque protothread. Le surcoût mémoire d’un protothread se limite en
effet à la mémorisation du pointeur d’exécution ( (pt)->lc ) ce qui correspond à une taille
variable en fonction de la cible pour laquelle le code est compilé, mais qui représente en général
un ou deux octets sur la plupart des cibles. La boucle d’ordonnancement fixe représentée sur la
figure 3.7 peut être interprétée comme une sorte d’hybride entre un ordonnanceur dynamique
de threads et une boucle événementielle.
A l’aide des protothreads, le traçage d’exécution est grandement facilité. Il n’est cependant possible que si ce cadre de programmation des protothreads est respecté, ce qui est une
contrainte qui n’affecte ni la généralité, ni les performances, puisque ce cadre de programmation
est plutôt un bon choix en soi comme cela a déjà été dit précédemment.
Pour nos expérimentations, nous avons inclus des variables globales pour tracer l’exécution.
3.3 Evaluation de l’énergie par traçage d’exécution de code
91
PT_INIT(protothread_a);
PT_INIT(protothread_b);
PT_INIT(protothread_c);
PT_INIT(protothread_d);
while(1){
PT_SCHEDULE(protothread_a);
PT_SCHEDULE(protothread_b);
PT_SCHEDULE(protothread_c);
PT_SCHEDULE(protothread_d);
}
Fig. 3.7: Boucle d’ordonnancement fixe.
PT_THREAD(protothread_a(struct pt *pt)) {
PT_BEGIN(pt);
while(1){
/* bloc de traitement */
PT_WAIT_UNTIL(pt, ressource_1_disponible);
if (test)
/* bloc de traitement principal*/
else
/* bloc de traitement alternatif*/
PT_WAIT_UNTIL(pt, ressource_2_disponible);
}
PT_END(pt);
}
Fig. 3.8: Exemple de protothread. On peut constater que le codage s’apparente à celui d’un
thread. Il semble être programmé indépendamment des autres traitements comme le témoigne la
présence de la boucle infinie. Pourtant, des instructions blocantes sont présentes et permettent
au protothread de ”rendre la main” à la boucle d’ordonnancement principal pour laisser la
chance aux autres traitements de s’exécuter à leur tour.
92
Évaluation de la consommation et optimisation du prototype
char protothread_a(struct pt *pt) {
switch((pt)->lc) { case 0: ;
while(1){
/* bloc de traitement */
(pt)->lc = __LINE__; case __LINE__: ;
if(!(ressource_1_disponible)) return 0;
if (test)
{/* bloc de traitement principal*/}
else
{/* bloc de traitement alternatif*/}
(pt)->lc = __LINE__; case __LINE__: ;
if(!(ressource_2_disponible)) return 0;
}
(pt)->lc = 0;
return 1;
}
Fig. 3.9: Traduction de protothread a en C standard après traitement par le préprocesseur.
On peut noter l’utilisation de l’instruction switch/case dans une situation non conventionnelle
(le case étant ici à l’intérieur d’une boucle infinie). Cette utilisation non conventionnelle est
néanmoins conforme à l’ANSI C et par conséquent n’importe quel compilateur ANSI C est
capable de compiler un tel code.
Pour entrer plus précisément dans les détails de ce qui a été réalisé, la technique employée est
illustrée par le schéma de la figure 3.10.
3.3.2
Identification des cycles d’ordonnancement caractéristiques
Dans un premier temps, il s’agit de recenser tous les cycles d’ordonnancement pouvant survenir. Cela peut sembler être un point impossible à réaliser mais si on entre dans le détail on
constate qu’il est assez facile de recenser les différentes branches de taitement possibles dont le
nombre n’est pas extrêmement élevé. En effet, il n’y a pas vraiment de traitement de fond dans
les nœuds du réseaux. Les traitements sont consécutifs à des événements précis, comme une
réception de message, ou encore un temps d’attente écoulé qui déclenche des traitements. On
peut prendre l’exemple d’un échantillonnage à l’aide du capteur qui est réalisé à intervalle de
temps constant. L’évolution d’un timer matériel va débloquer des traitements adéquats d’accès
à la valeur du capteur en interrogeant un registre ou en faisant fonctionner un convertisseur
analogique numérique. Eventuellement, cet événement peut en déclencher d’autres, comme par
exemple lorsque l’envoi d’un message d’alerte est nécessaire consécutivement à la valeur mesurée. De même, la réception d’un message va déclencher tous les mécanismes ”ascendants”
de réception, et peut ensuite déclencher des envois de messages (cas d’une retransmission) et
l’activation d’applications locales.
3.3 Evaluation de l’énergie par traçage d’exécution de code
93
Fig. 3.10: Méthode de traçage d’exécution dans le cadre d’une programmation utilisant les
protothreads.
while(1) {
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
PT_SCHEDULE
}
(driverReception) ;
(driverEmission) ;
(simuleHorloge) ;
(liaison) ;
(reseau) ;
(gestionTimers) ;
(gestionREQvois) ;
(ConnaitreVois) ;
(MAJtabVois);
(managePresence);
(vagueREQvois);
Fig. 3.11: Boucle d’ordonnancement réelle.
C’est pourquoi il est possible de dresser une liste exhaustive de tous les comportements
possibles.
Dans un premier temps, analysons plus précisément la boucle d’ordonnancement réelle utilisée (fig. 3.11). La boucle commence par les prototreads contrôlant les entrée/sortie. Le premier
protothread nommé driverReception a pour rôle de tenter de recevoir des messages provenant
des autre éléments du réseau de capteurs. Ce protothread a plusieurs terminaisons possibles :
aucun nœud n’a cherché à envoyer des messages, un nœud a cherché à envoyer un message,
mais il y a eu un problème lors de la réception de ce message, ou un message a été reçu avec
succès. Le résultat de la terminaison peut être stocké dans une variable.
94
Évaluation de la consommation et optimisation du prototype
Certains événements peuvent déclencher l’exécution de traitements plus ou moins complexes,
pouvant nécessiter éventuellement plusieurs cycles d’ordonnancement complets juxtaposés. En
effet, c’est un petit peu la même chose qui se passe si on considère un système d’exploitation
orienté thread : lorsqu’un traitement s’étend en longueur, le noyau peut prendre la décision
d’interrompre un traitement en cours d’exécution. Sans même parler de temps d’exécution
long, l’interruption de l’exécution peut être également initiée par le thread, lorsque par exemple
une ressource peut être attendue de la part d’un traitement issu d’un autre thread.
Avec le cadre de programmation événementiel des protothreads, il en est de même ; et pour
la réalisation d’une opération complexe, les traitements ont besoin d’être exécutés dans un
certain ordre. Pour donner un exemple, supposons que le mécanisme déclenché par la réception
de l’événement nécessite l’enchaı̂nement d’exécution suivant, : protothread A, protothread B,
protothread C, protothread B, protothread A (l’ordre devant impérativement être respecté car
on suppose que chaque traitement utilise des données générées par l’ensemble des traitements
prcédents). Le cadre de programmation des protothreads implique une rigidité supplémentaire
apportée par le fait que l’ordonnancement se fait toujours dans le même ordre. Supposons
le cas le plus simple dans lequel le cycle d’ordonnancement fixe, chaque protothread ne soit
ordonnancé qu’une seule fois, dans l’ordre : protothread A, puis protothread B, puis protothread
C.
2
Dans ce cas de figure, la structure figée des protothreads oblige à exécuter trois cycles
d’ordonnancement entiers. Dans le premier cycle, on fait s’exécuter l’enchaı̂nement protothread
A, protothread B, et protothread C. Dans le deuxième cycle, la séquentialité figée n’autorise pas
le protothread A à être ordonnancé avant le protothread B, donc seul le protothread B peut être
activé à ce cycle. Enfin, lors du troisième cycle, le protothread A est ordonnancé, ce qui met fin
au mécanisme complet.
On peut alors considérer des macro-structures, qui sont des juxtapositions (ou combinaisons)
de plusieurs cycles d’ordonnancement. Prenons l’exemple d’un événement de réception d’un
message ayant été émis en mode multi-étapes. Si le nœud du réseau n’est pas le destinataire
final, la réception du message est suivie par une procédure de réémission. L’enchaı̂nement
d’exécution des protothreads doit alors être :
1. protothread de réception (mac/phy),
2
On pourrait en effet très bien imaginer qu’un traitement particulièrement prioritaire comparé aux autres
puisse être ordonnancé plusieurs fois dans le même cycle d’ordonnancement , pour pallier par exemple au fonctionnement ”saccadé” apporté par le fait que dans un système événementiel, sans préemption possible, ce sont
les traitements qui rendent la main. Par exemple, on pourrait appliquer astucieusement cette technique sur un
protothread qui aurait la responsabilité de lire un buffer d’entrée dont les capacités de stockage seraient très
limitées, ceci afin d’éviter au maximum des pertes de données par écrasement. Dans ce cas on pourrait avoir
des cycles d’ordonnancements fixes du type : protothread A, protothread I/O, protothread B, protothread I/O,
protothread C, protothread I/O, protothread D, etc.
3.3 Evaluation de l’énergie par traçage d’exécution de code
95
2. protothread de liaison,
3. protothread de routage,
4. protothread de liaison,
5. protothread d’émission (mac/phy).
En considérant la boucle d’ordonnancement réelle de la figure 3.11, on constate que les trois
premiers traitements peuvent s’effectuer au sein d’un même cycle d’ordonnancement qui a déjà
été identifié dans le tableau 3.2, sous le nom de ”cycle réception de trame sans erreur et propagation”. Ensuite, un cycle d’ordonnancement est nécessaire pour le protothread de liaison
descendant, c’est celui qui avait précédemment été identifié par l’appellation ”cycle calcul de
trame pour émission phase 2”. Enfin, le protothread d’émission est exécuté au sein d’un troisième cycle d’ordonnancement qui a été identifié par ”cycle émission de trame sans échec”. On
a donc les cycles suivants qui sont consécutifs à l’événement de réception de trame en mode
multi-étapes pour laquelle le nœud n’est pas l’élément final : un ”cycle réception de trame sans
erreur et propagation”, suivi d’un ”cycle calcul de trame pour émission phase 2”, pour finir par
un ”cycle émission de trame sans échec”.
Le tableau 3.2 présente les différents cas de figure qui peuvent se présenter. Dès lors, la
technique de traçage se déroule en 4 temps.
1. Tout d’abord, la première étape est l’énumération des différents cycles typiques qui sont
susceptibles de survenir au cours de l’exécution et le tableau 3.2 est le résultat de cette
analyse. À chacun de ces cycles typiques, on associe un compteur sous forme de variable.
2. Ensuite, il s’agit de mettre en place des drapeaux pour chacun des threads afin de pouvoir
déterminer la terminaison des protothreads. C’est à partir de l’analyse de ces drapeaux
que sera identifié le type de cycle d’ordonnancement.
3. L’analyse de la boucle d’ordonnancement à partir des valeurs des drapeaux de terminaison
se fait conformément aux observations réunies sur le tableau 3.2, et ce à la fin de chaque
cycle d’ordonnancement.
4. Enfin, à la fin de chaque boucle d’ordonnancement, le compteur correspondant au cycle
identifié est alors incrémenté.
Tab. 3.2: Cycles d’ordonnancement typiques sur le prototype
R2D2 de réseau de capteurs
Nom de cycle
Description
96
Évaluation de la consommation et optimisation du prototype
Cycle vide (RAS)
Le cycle le plus fréquent. Aucun événement particulier n’est survenu. Seul le calcul des échéances d’événements est réalisé.
Cycle tentative récep-
Le protothread de réception est activé, mais aucun émetteur ne
tion (RI)
cherche à communiquer (terminaison : pas d’émetteur). Aucun
autre traitement n’est employé dans ce cycle d’ordonnancement.
Cycle
réception
avec
collision (CR)
Le protothread de réception est activé, mais la phase d’écoute avant
l’émission d’une trame de réveil a détecté la présence d’un transfert en cours sur le canal, mettant fin à la procédure (terminaison :
collision). Aucun autre traitement n’est employé dans ce cycle d’ordonnancement.
Cycle
réception
de
trame erronée (RA)
Le protothread de réception est activé et une réception correcte a
lieu (terminaison : reception OK). Le protothread de traitement ascendant de la couche liaison est alors réquisitionné et détecte une
trame corrompue au delà de ses capacités de correction (terminaison : erreur trame). Un paquet d’aquittement négatif est programmé à l’émission ce qui se répercutera sur le cycle d’ordonnancement suivant. Aucun autre traitement n’est employé dans ce
cycle d’ordonnancement.
Cycle
réception
de
Le protothread de réception est activé et une réception correcte a
trame sans erreur et
lieu (terminaison : reception OK). Le protothread de traitement
activation d’application
ascendant de la couche liaison est alors réquisitionné et est en me-
(RC1/
sure de constituer une trame intègre (terminaison : trame OK). Le
RC2/
RC3/
RC4)
protothread effectuant les traitements de la couche réseau est activé et un protothread de niveau applicatif est activé (terminaison :
activation d’application).
Cycle calcul de trame
Le protothread des couches réseau et liaison sont activés dans le
pour émission (CAE)
sens descendant.
Cycle émission de trame
Le protothread d’émission est activé et la trame est émise avec
avec succès (E)
succès (terminaison : émission OK).
Cycle émission de trame
Le protothread d’émission est activé, l’attente du récepteur a lieu,
avec collision avec un
mais un autre émetteur commence à transmettre des informations
autre émetteur (CE)
provoquant une collision mettant fin au protothread en cours (terminaison : collision).
3.3 Evaluation de l’énergie par traçage d’exécution de code
97
Tab. 3.3: Temps d’exécution des différents traitements lors d’un cycle vide
Traitement
temps d’exécution
PT reception
0,044 ms
PT emission
0,034 ms
PT horloges
0,456 ms
PT liaison
0,071 ms
PT reseau
0,106 ms
PT reqvois
0 ms
PT repvois
0 ms
ordonnanceur
0,308 ms
Tab. 3.4: Mesures de temps d’exécution (en ms) effectuées sur le
cycle ex.
RA
RC1
RC2
RC3
RC4
CAE E
réception 78.3
78.3
78.3
78.3
78.3
0.04
0.04
émission
0.03
0.03
0.03
0.03
0.03
0.03
1026
horloges
0.46
0.46
0.46
0.46
0.46
0.46
0.46
liaison
5.0
0.4
0.4
0.4
0.4
5.0
0
réseau
0
0.4
0.4
0.4
0.4
0.4
0
reqvois
0
0
0
0
0.1
0
0
repvois
0
0
0
0.1
0
0
0
ordonn.
0.31
0.31
0.31
0.31
0.31
0.31
0.31
3.3.3
prototype de plate-forme
RI
CR
CE
RAS
66.6
1.5
0.04
0.04
0.03
0.03
3008 0.03
0.46
0.46
0.46
0.46
0.071 0.071 0.071 0.071
0.106 0.106 0.106 0.106
0
0
0
0
0
0
0
0
0.31
0.31
0.31
0.31
Caractérisation en consommation des cycles d’ordonnancement
L’évaluation de consommation énergétique des cycles d’ordonnancement est réalisée par mesure du temps d’exécution de chacune des sous-procédures. Le logiciel intégré comporte des
légères modifications comparé au logiciel normal afin de pouvoir faire s’exécuter chacun des
protothreads dans chacune des terminaisons possibles. De plus, un autre type de modification est apporté pour pourvoir visualiser les débuts et fin des protothreads. Les instants où le
protothread récupère le processeur et où il rend le processeur sont localisés à l’aide de ports
d’entrée-sortie inutilisés par l’application. À l’aide d’un oscilloscope, nous avons ainsi pu déterminer les temps d’exécutions des traitements de la boucle d’ordonnancement.
Le tableau 3.3 présente différentes mesures de temps d’exécution qui ont été réalisées sur
le prototype R2D2, dans le cas de figure particulier du cycle ”vide”, aussi appelé cycle ”RAS”.
Il s’agit d’un cycle pendant lequel tous les processus ont rendu la main immédiatement après
l’avoir obtenu, faute d’avoir une ressource ou un événement. Le cycle ”vide” est donc le cycle
d’ordonnancement le plus simple.
Les tableaux 3.4 et 3.5 donnent les mesures réalisées sur la plate-forme R2D2 pour l’ensemble
des cycles d’ordonnancement typiques identifiés dans le tableau 3.2.
Les temps d’exécution permettent ensuite le calcul de la consommation d’énergie à l’aide de
la consommation des composants de la plate-forme.
98
Évaluation de la consommation et optimisation du prototype
Tab. 3.5: Temps passé avec le composant de communication actif
d’ordonnancement typique
cycle ex.
RA
RC1
RC2
RC3
RC4
CAE E
mode re- 0.05
0.05
0.05
0.05
0.05
0
1
cep.
mode
0.03
0.03
0.03
0.03
0.03
0
0.03
émis.
(P = 0
dBm)
(en ms) pour chaque cycle
RI
0.04
CR
0.01
CE
3.06
RAS
0
0.03
0
0
0
Le microcontrôleur utilisé par la plate-forme est un TI MSP430, et peut fonctionner sous 6
modes correspondant à des activités et des consommations d’énergie différentes, du mode actif
où tous les systèmes sont activés, au mode inactif le plus profond LPM4 où tous les systèmes
annexes sont désactivés, à savoir le convertisseur analogique/numérique, toutes les horloges,
ainsi que le DCO (Digitally Controlled Oscillator, pour oscillateur contrôlé numériquement)
permettant de générer le signal d’horloge. Le mode actif est le seul où le CPU est utilisable et,
d’après la documentation du composant, la consommation est de 0.28 mA, sous une tension
d’alimentation de 2.2 V et une fréquence de fonctionnement de 1 MHz. En extrapolant on
trouve donc un courant consommé de 2 mA sous une tension d’alimentation de 3 V et une
fréquence d’horloge de 4 MHz, ce qui correspond aux conditions expérimentales conformes au
prototype de test R2D2. La puissance consommée instantanée en mode actif est par conséquent
d’environ 6 mW.
Pour le composant radio, on distingue le temps passé en réception de celui passé en émission
et à quelle puissance (cf. tableau 3.5).
Cette méthode d’évaluation est réaliste, cependant elle nécessite de programmer entièrement
le réseau de capteur et de tracer l’exécution pour chaque nœud. Le protocole expérimental est
donc fastidieux à mettre en place. Une alternative à cette évaluation de consommation a donc
été proposée et présentée dans la section suivante.
3.4
Evaluation de l’énergie par une approche analytique
La méthode d’évaluation de l’énergie par une approche analytique et statistique est une
évolution de la méthode de traçage d’exécution.
Elle consiste à estimer les cycles d’ordonnancement typiques par simulation, comme illustré
sur la figure 3.12. La consommation des cycles d’ordonnancement est non plus comptée au cours
d’expérimentations réelles, mais estimée de façon théorique à partir d’informations concernant
3.4 Evaluation de l’énergie par une approche analytique
99
Fig. 3.12: Interdépendance des éléments de calcul de consommation (niveau 2).
la couche MAC, ainsi que des éléments de topologie pour estimer le réglage de la puissance
d’émission qui aurait été choisie par le capteur en fonction de la distance entre émetteur et
récepteur.
De même, la répartition des cycles d’ordonnancement est estimée théoriquement à partir
de l’estimation du nombre de collisions de réveil, du nombre de collisions entre émetteurs, du
nombre de retransmissions nécessaires et de la matrice de volume de données.
3.4.1
Estimation analytique de la répartition des cycles d’ordonnancement
Entrons à présent dans le détail de la méthode d’évaluation analytique de la répartition des
cycles d’ordonnancement.
Ce problème d’estimation fait intervenir de nombreux paramètres. Avant tout, et pour appuyer la description qui suit, le schéma de la figure 3.13 présente les paramètres mis en jeu
dans cette évaluation.
1. La topologie du réseau est décrite par le nombre de nœuds N , d’une part, et par la matrice
de coordonnées des nœuds à partir de laquelle on calcule une matrice de distances D entre
les nœuds. D est une matrice carrée et D(i, j) représente la distance géométrique entre
les nœuds i et j.
2. L’application est modélisée par la matrice de volume de données V , comme cela a été
présenté dans chapitre 2. Ce volume de transfert de données s’entend bien ”au niveau
réseau” et non pas ”au niveau application”, c’est-à-dire que V (i, j) représente le nombre
de trames à émettre de l’émetteur i vers le récepteur j y compris lorsque i, j ou les deux
100
Évaluation de la consommation et optimisation du prototype
Fig. 3.13: Dépendance entre les paramètres utilisés pour estimer une trace d’exécution.
ne sont que des intermédiaires pour une transmission multi-étapes.
3. L’environnement traduit les caractéristiques du canal utilisé. Nous ne retenons que deux
paramètres : la puissance du bruit ambiant observable au niveau d’un récepteur pbruit et
le coefficient d’affaiblissement α.
4. La couche liaison permettant de fiabiliser les transferts de données est caractérisée par
le paramètre de la tolérance aux erreurs (tol). Cette valeur vaut pour les systèmes de
correction d’erreurs basés sur des codes en blocs et elle correspond au nombre d’erreurs
maximal dans une trame de données pouvant être corrigées par le système de décodage.
5. La couche d’accès au médium a également un impact important sur les traces d’exécution
et plus particulièrement les paramètres que sont : la longueur des paquets, le taux de
transmission binaire et l’intervalle de réveil de la technique MAPLAP.
6. Enfin, les paramètres qui nous intéressent plus particulièrement dans la couche physique
sont la fréquence de la porteuse Fp , le gain Gantennes des antennes et le type de la
modulation.
À partir de ces différents paramètres, qui proviennent de tous les niveaux du protocole de
communication, il s’agit d’estimer la répartition des cycles d’ordonnancement. Comme l’illustre
le schéma 3.12, cette répartition dépend de quatre éléments :
– la matrice de volume de donnée V décrivant les transferts de données entre les nœuds du
réseau,
– le nombre de collisions de réveil NCR,
– le nombre de collisions d’émetteurs NCE,
3.4 Evaluation de l’énergie par une approche analytique
101
Fig. 3.14: Cas idéal d’une communication de trame.
– le nombre de retransmissions NR, dues à la présence d’un trop grand nombre d’erreurs
binaires dans les trames reçues,
Dans la section qui suit seront développées les relations mathématiques de dépendance entre
tous ces paramètres.
3.4.2
Événements anormaux des communications et coût énergétique
Pour comprendre ce que peuvent être les défauts de la communication et l’ensemble des
événements ”anormaux” qui peuvent nuire à la consommation énergétique, il faut faire une
analyse temporelle détaillée des comportements de la couche d’accès au médium. La figure
3.14 illustre le déroulement idéal d’un transfert de trame entre un émetteur i et un récepteur
j. On constate qu’une transmission idéale de trame est un enchaı̂nement d’événements selon
une certaine séquentialité. Du point de vue de l’émetteur, une phase initiale consiste à générer
la trame à envoyer en passant par deux sous-phases. La première sous-phase, calcul de trame,
phase 1, permet d’insérer dans la trame le PCI (Protocol Control Information) du niveau réseau
autrement dit les informations de routage. La deuxième sous-phase initiale a pour rôle d’insérer
le PCI du niveau liaison, qui se limite dans notre cas à de la redondance de données dans le but
de faire fonctionner les systèmes de correction d’erreurs. Dans une seconde phase, l’émetteur
prend la décision de réaliser l’émission à l’aide d’un événement interne. Il est supposé que cette
procédure d’émission se déroule sans problème (terminaison ”émission OK”). Enfin, toujours
du point de vue de l’émetteur, la procédure d’émission s’achève par un événement de réception
de l’acquittement avec succès.
Du point de vue du récepteur, on a dans l’ordre un événement de réception de trame évaluée
comme intègre. Cet événement provoque le déclenchement de l’événement de génération de
102
Évaluation de la consommation et optimisation du prototype
Fig. 3.15: Communication de trame affectée d’événements problématiques.
message d’acquittement, qui est une procédure simplifiée de création de trame, et qui ne passe
par conséquent que par la phase calcul de trame, phase 2. Enfin, un événement d’émission est
planifié et on suppose que cette émission se termine par un succès (terminaison ”émission OK”.
À présent que nous avons présenté les événements normaux lors d’une communication, voyons
les événements anormaux gênants. La figure 3.15 nous permet d’illustrer toute la diversité des
cas gênants pouvant se présenter lors d’une communication.
Erreurs binaires non corrigeables. Tout d’abord, il peut y avoir des erreurs binaires non
corrigeables par la couche liaison (voir fig. 3.15). Cela entraı̂ne un rejet de la trame reçue et
nécessite une retransmission de l’information. Les conséquences sont :
– du point de vue de l’émetteur, un cycle supplémentaire d’”émission normale”(EOK) s’ajoute
au total des événements d’une communication normale,
– du point de vue du récepteur, un cycle supplémentaire de ”réception de trame erronnée”(RET) s’ajoute au total des événements d’une communication normale.
La probabilité d’occurence d’un événement d’erreurs binaires non corrigeables entre l’émetteur
i et le récepteur j dépend du paramètre tol indiquant le nombre d’erreurs corrigeables par
le système de correction d’erreurs. Cette probabilité d’occurence dépend également du TEB
(Taux d’erreur binaire) caractérisant le canal et de la taille des paquets échangés lp. La probabilité d’occurence d’un événement d’erreurs binaires non corrigeables Ri,j (tol) s’exprime par
l’équation :
Ri,j (tol) = 1 −
tol
X
k=0
k
.TEBk .(1 − TEB)lp−k
Clp
!
(3.2)
Le nombre moyen d’événements d’erreurs binaires non corrigeables NRi,j ayant lieu pour une
transmission de donnée réussie se calcule de la façon suivante. En notant VNRi,j la variable
3.4 Evaluation de l’énergie par une approche analytique
103
aléatoire discrète traduisant le nombre de tentatives d’émission ayant échoué par émission
finalement réussie entre un émetteur i et un récepteur j. Les probabilités suivantes peuvent
alors être calculées :
p(VNRi,j = 0) = 1 − Ri,j (tol)
(3.3)
p(VNRi,j = 1) = (1 − Ri,j (tol)).Ri,j (tol)
(3.4)
p(VNRi,j = 2) = (1 − Ri,j (tol)).Ri,j (tol)2
(3.5)
et on en déduit le cas général :
p(VNRi,j = k) = (1 − Ri,j (tol)).Ri,j (tol)k
(3.6)
L’espérance mathématique du nombre d’événements non corrigeables pour une transmission
donnée est alors :
E[VNRi,j ] =
∞
X
k.p(VNRi,j = k)
(3.7)
k=0
E[VNRi,j ] = (1 − Ri,j (tol)).
∞
X
k.Ri,j (tol)k
(3.8)
E[VNRi,j ] = (1 − Ri,j (tol)).
Ri,j (tol)
(1 − Ri,j (tol))2
(3.9)
E[VNRi,j ] =
k=0
Ri,j (tol)
1 − Ri,j (tol)
(3.10)
Le nombre moyen d’événements d’erreurs binaires non corrigeables NRi,j est en fait égal à
cette espérance mathématique, donc :
NRi,j = (
Collision de réveil du récepteur.
1
− 1)
1 − Ri,j (tol)
(3.11)
Lors d’un événement de réveil du récepteur, la procédure
de réveil peut s’interrompre prématurément si le canal est détecté comme occupé pendant la
phase d’écoute préalable servant à éviter les collisions. C’est un cas de collision de réveil du
récepteur illustré sur les figures 3.15 et 3.16. Les conséquences d’un tel événement sont :
– du point de vue de l’émetteur, il n’y a pas de conséquence,
– du point de vue du récepteur, un cycle supplémentaire de ”collision à la réception” (CR)
s’ajoute au total des événements d’une communication normale.
Lorsqu’un nœud se réveille, il s’octroie le canal pendant une durée Trev . Si N est le nombre
de nœuds dans le réseau, Tobs le temps d’observation et IntRev l’intervalle de temps entre deux
104
Évaluation de la consommation et optimisation du prototype
Fig. 3.16: Déroulement du protocole d’accès au médium MAPLAP/RICER. Cas d’une collision
d’un récepteur lors de la phase de transmission de la trame de réveil.
réveils successifs d’un même nœud, on en déduit le nombre total de rendez-vous NRDV est :
NRDV = N.
Tobs
IntRev
(3.12)
Le taux d’occupation du canal TxOc est alors :
TxOc =
Trev .N
IntRev
(3.13)
Pour un nœud donné, la probabilité d’occurence CR d’une collision lors d’un événement de
réveil est alors :
CR =
Trev .(N − 1)
IntRev
(3.14)
Le nombre moyen d’événements de collision de réveil du récepteur NCR se calcule comme
cela a été fait pour le nomre moyen d’événements d’erreurs binaires non corrigeables. De la
même façon, on obtient alors l’expression :
CR
1 − CR
(3.15)
Collision de l’émetteur avec un autre émetteur.
Lorsque le récepteur émet une trame
NCR =
de réveil, il peut y avoir plusieurs émetteurs cherchant à communiquer avec lui. Grâce à un
système de temps d’attente aléatoire, un seul des émetteurs parvient à émettre sa trame de
donnée. Tous les autres émetteurs subissent alors une collision de l’émetteur avec un autre
émetteur. Cela est illustré par les figures 3.15 et 3.17. Les conséquences d’un tel événement
sont :
– du point de vue de l’émetteur, un cycle supplémentaire de ”collision de l’émetteur avec un
autre émetteur” (CE) s’ajoute au total des événements d’une communication normale,
– du point de vue du récepteur, il n’y a pas de conséquence.
La loi de probabilité indiquant le nombre d’émetteurs souhaitant répondre à un récepteur se
réveillant peut être modélisée à l’aide d’une loi de Poisson. Soit i le nœud cherchant à émettre
3.4 Evaluation de l’énergie par une approche analytique
105
Fig. 3.17: Déroulement du protocole d’accès au médium MAPLAP/RICER. Cas d’une collision
entre émetteurs lors de la phase de transfert des données.
et j le nœud se réveillant. Vi,j est le nombre de trames émises du capteur i au capteur j pendant
le temps d’observation Tobs et IntRev est l’intervalle de réveil des nœuds. La probabilité µj pour
un nœud donné de chercher à émettre une trame à j pendant le réveil de ce dernier est :
µj =
X
Vi,j .
i6=j
IntRev
Tobs
(3.16)
La probabilité que k nœud cherchent à répondre au nœud j se réveillant est alors, (d’après la
loi de Poisson) :
pj,k = exp(−µj ).
µkj
k!
(3.17)
Finalement, la probabilité CE(j) pour un nœud i de subir une collision d’émetteur avec un
autre émetteur dans une tentative de communication avec j est :
CE(j) =
∞
X
pj,k .
k=2
k−1
k
(3.18)
Par analogie avec les méthodes précédentes, le nombre moyen d’événements de collision de
l’émetteur avec un autre émetteur NCE(j) ayant lieu pour une transmission de donnée réussie
vers le récepteur j est alors donné par l’expression
NCE(j) =
CE(j)
1 − CE(j)
(3.19)
Le schéma de la figure 3.13 illustre les dépendances de données quant à ces événements
anormaux se produisant lors des communications.
106
Évaluation de la consommation et optimisation du prototype
Fig. 3.18: Consommation énergétique par traitement (en joules) pour un capteur un sein d’un
réseau effectuant un entretien périodique de la connaissance du voisinage
3.4.3
Résultats d’évaluation de consommation d’énergie
Des premiers résultats de consommation ont été obtenus sous les conditions suivantes :
– taux de transmission : 4800 bit/s ;
– taille de la trame de réveil : 128 bits ;
– durée d’écoute anti-collision “réveil” : 0.01 s ;
– durée d’attente si aucun émetteur : 0.03 s ;
– taille de la trame de donnée : 128 bits ;
– durée d’écoute anti-collision “données” : 0.015 s ;
– intervalle de réveil : 2 s.
La consommation d’énergie par traitement a été obtenue en confrontant les données de
consommation des cycles d’ordonnancement typiques et les traces d’exécutions. Un exemple de
résultat est montré sur la figure 3.18.
Plusieurs informations peuvent être remarquées : tout d’abord, la consommation du module
radio est majoritaire, mais reste néanmoins maı̂trisée grâce à un système d’accès au média
respectueux de l’énergie. La puissance moyenne totale du composant de communication uniquement est de 4.44 mW.
On peut également noter une part de la consommation dû uniquement à l’ordonnanceur à
base de protothread qui est d’environ 11 %, ce qui est non négligeable, mais néanmoins tout à
fait contrôlé.
L’autonomie ainsi obtenue à l’aide de l’implémentation de ce système d’accès au médium
RICER est estimée à 126 jours, ce qui représente un gain d’un facteur 10 par rapport à une
solution basée sur une couche MAC offrant une disponibilité totale.
3.5 Optimisation énergétique : exemple de l’intervalle de réveil.
107
Fig. 3.19: Consommation énergétique obtenue pour un intervalle de réveil court de 0,18 seconde
et schéma d’occupation du canal. La consommation moyenne est de 1,21 mW, ce qui correspond
à une durée de vie de 0,84 ans.
Fig. 3.20: Consommation énergétique obtenue pour un intervalle de réveil optimal de 3,0 secondes et schéma d’occupation du canal. La consommation moyenne est de 0,151 mW, ce qui
correspond à une durée de vie de 6,7 ans.
3.5
Optimisation énergétique : exemple de l’intervalle de réveil.
L’intervalle de réveil est un paramètre très important de la couche d’accès au médium. Intuitivement, on peut penser que le choix de l’intervalle de réveil permet de choisir le compromis
entre la latence ou la réactivité du réseau et sa durée de vie. En effet, en choisissant un intervalle
de réveil très court, les rendez-vous s’établissent plus fréquemment et permettent d’écouler un
plus grand volume d’information et plus vite. La contrepartie est que le canal est plus occupé
et donc la probabilité augmente de rencontrer des événements anormaux tels que les différents
types de collisions et la consommation d’énergie augmente parce que le temps passé avec le
composant de communication actif augmente. A l’inverse, on peut penser qu’il suffit de choisir
un grand intervalle de réveil pour gagner en durée de vie au sacrifice de la réactivité.
108
Évaluation de la consommation et optimisation du prototype
Fig. 3.21: Consommation énergétique obtenue pour un intervalle de réveil long de 6,0 secondes
et schéma d’occupation du canal. La consommation moyenne est de 0,192 mW, ce qui correspond à une durée de vie de 5,32 ans.
Les figures 3.19, 3.20 et 3.21 présentent trois réglages différents de l’intervalle de réveil.
L’intervalle de réveil est la seule différence de configuration entre les trois simulations et les
matrices de volume de données échangées sont les mêmes, ce qui signifie qu’autant de trames
de données utiles sont échangées dans les trois situation. Par contre le nombre de trames de
réveil pour l’établissement des rendez-vous varie.
La figure 3.19 illustre le choix d’un intervalle de réveil court de 0,18 seconde. La représentation temporelle des rendez-vous montre en effet une utilisation du canal intensive. La
consommation élevée de 1,21 mW correspond à une durée de vie de 0,84 année et la majeure
partie de la consommation d’énergie (92,12 %) est due au mode d’émission du composant de
communication. Cela est dû au fait qu’un grand nombre de trames de réveil sont émises mais
peu aboutissent réellement à des émissions de trames de données.
La figure 3.20 illustre une configuration idéale du point de vue de la consommation énergétique moyenne qui est de 0,151 mW correspondant à une autonomie de 6,7 années, ce qui est
une augmentation d’un facteur 8 pour réaliser la même fonctionnalité. La seule concession qui
est faite concerne la latence qui est augmentée en moyenne de 2,82 secondes. La répartition de
la consommation est plus équilibrée et la part de consommation énergétique due au composant
de communication est contenue avec 73,35 % de la consommation totale.
Enfin, la figure 3.21 montre le cas d’un intervalle de réveil trop long, de 6 secondes. Outre la
latence qui est 5,82 secondes plus élevée que le meilleur cas, la consommation d’énergie globale
est supérieure au cas précédent, puisqu’elle est de 0,192 mW ce qui permet d’atteindre une durée
de vie de 5,32 années. La principale cause de consommation est due au mode de réception du
composant de communication. En effet, le petit schéma du comportement temporel montre que
3.6 Conclusion
109
Fig. 3.22: Puissance moyenne consommée en mW en fonction de l’intervalle de réveil.
le mode de réception est utilisé principalement lors de la phase initiale de l’émission pendant
laquelle le capteur attend le réveil du destinataire des informations.
La figure 3.22 représente la puissance moyenne consommée par les capteurs en fonction de
l’intervalle de réveil et la figure 3.23 montre la durée de vie moyenne en fonction de l’intervalle
de réveil. On visualise le point optimal qui se situe ici pour un intervalle de réveil d’environ 3
secondes. Il est a remarquer que le réglage optimal de l’intervalle de réveil dépend des informations échangées. Encore une fois, son optimisation ne peut être faite sans information sur les
niveaux supérieurs, et en particulier le niveau application. Il est donc très intéressant d’avoir
à disposition les modèles de transferts d’informations qui ont été abordés dans le chapitre 1.
Cela illustre une fois de plus un cas d’optimisation cross-layer.
3.6
Conclusion
Le portage de l’application vers une plate-forme réelle permet de clore le cycle de conception.
Le choix de la couche physique a été l’occasion de s’intéresser aux systèmes d’accès au médium
adaptés aux caractéristiques et aux besoins des réseaux de capteurs. Grâce à des techniques de
rendez-vous, nous avons vu comment faire des économies énergétiques en minimisant le temps
d’écoute hors émission, qui est la principale cause de gaspillage énergétique du composant
de communication. Notre choix s’est porté sur un système d’accès au médium inspiré de la
technique RICER (Receiver-Initiated CyclEd Receiver).
L’étude du prototype réel permet d’aller beaucoup plus loin dans le réalisme de l’évaluation
110
Évaluation de la consommation et optimisation du prototype
Fig. 3.23: Durée de vie moyenne d’un capteur en années en fonction de l’intervalle de réveil.
énergétique, comparée aux méthodes d’évaluation théoriques qui avaient été amorcées au début
de ce travail de thèse et qui apparaissent dans le chapitre 1 où nous ne disposions alors pas de
prototype de capteurs communicants. Les causes de consommation peuvent être indentifiées de
façon plus réaliste et plus détaillée.
Enfin, l’optimisation de l’intervalle de réveil a été présentée dans un certain cas de figure
d’application et de configuration des timings du protocole d’accès au média RICER. Il a été
montré que par une légère augmentation de la latence des communications, il est possible de
multiplier la durée de vie d’un facteur important, mais qu’il est inutile d’augmenter cette latence
au delà d’un certain seuil qui dépend de l’application.
Conclusion
Les objectifs initiaux pour ce travail de thèse étaient d’aboutir à la réalisation d’une plateforme de réseau de capteur efficace en énergie. Le budget énergétique est serré puisqu’il est
nécessaire de concevoir des capteurs communicants dont la consommation énergétique moyenne
est d’environ 100 µW. Dans ces conditions, aucune solution actuelle n’est suffisamment performante pour respecter un tel budget énergétique. Beaucoup de directions étaient possibles
tant le domaine est vaste, puisque le problème pouvait être abordé d’un point de vue de la
communication numérique, de l’architecture, du système, des algorithmes de routage...
Nos contributions sur les réseaux de capteurs ont été dans un premier temps l’étude et l’optimisation d’une chaı̂ne de communication entre deux nœuds communicants en liaison directe.
Ce travail a comporté une permière étape de modélisation d’une chaı̂ne de communication
fortement paramétrable. Les nombreux paramètres ont été séparés en plusieurs catégories :
– les paramètres de scénario dépendant de l’application visée ou de l’environnement dans
lequel le réseau de capteurs est intégré ;
– les paramètres de choix technologiques qui définissent les caractéristiques des choix matériels qui ont été pris. Le fait de fixer ces paramètres a permis de réduire la complexité du
problème d’optimisation ;
– et enfin les paramètres non connus a priori.
Nous nous sommes ensuite focalisés sur l’optimisation de l’efficacité énergétique représentée
par l’énergie par bit transmis avec succès de cette chaı̂ne de communication en nous intéressant
tout particulièrement au choix de la puissance d’émission optimale. En considérant le système
de communication incluant le système de correction d’erreur et en considérant les réémissions
de paquets en cas d’échec de la transmission, il est possible de déterminer un point optimal de
fonctionnement. Cependant, pour permettre au système de se placer à ce point optimal, il faut
pouvoir accéder à l’information de la distance entre l’émetteur et le récepteur. Or, il apparaı̂t
qu’il est tout à fait possible d’accéder à cette information puisque les capteurs implémentent par
ailleurs deux mécanismes servant principalement au routage qui sont l’auto-positionnement des
111
112
Conclusion
nœuds et la connaissance du voisinage. En autorisant les couches de protocole les plus basses
de la couche à accéder à ces informations au même titre que la fonction de routage, il apparaı̂t
alors que des gains significatifs de durée de vie de l’ordre de 400 % peuvent être obtenus sur
un réseau étendu.
La deuxième contribution a été la modélisation des trafics réseau, puisque l’évaluation des
performances et de la consommation des nœuds ne peut pas être précise sans cette information.
Cette analyse des trafics réseau a été réalisée à partir d’une réflexion basée sur des applications
réalistes de réseaux de capteurs. La modélisation des couches liaison et physique qui a été
réalisé au premier point montrent certaines limites. En effet, le protocole d’accès au médium
n’est pas défini ce qui ne permet pas de modéliser des événements tels que les collisions de
données, par exemple. De plus, seuls les traitements de communication sont pris en compte
pour l’évaluation énergétique sans inclure d’autres types de traitements gérés par les capteurs
communicant. C’est la raison pour laquelle il est apparu nécessaire d’avoir une approche moins
théorique et donc plus expérimentale afin d’obtenir des résultats plus fiables et plus réalistes.
Destiné à une plate-forme générique comportant un micro-contrôleur et un composant radio,
un logiciel a été défini avec pour ambition d’être modulaire, portable, indépendant du matériel,
adaptable à de nombreuses applications et aussi limité que possible dans l’utilisation de la
mémoire. Le cadre de programmation de ce logiciel est formé par les protothreads, qui sont au
cœur du système événementiel Contiki.
Enfin, ce logiciel a été porté sur une plate-forme réelle de capteur communicant construit
autour d’un micro-contrôleur TI MSP430 et d’un composant de communication numérique
Chipcon CC1020. Au vu des caractéristiques de composant de communication, le système
d’accès au médium RICER a été sélectionné. Il permet la réalisation de rendez-vous entre
émetteurs et récepteurs à partir d’une liaison radio mono-canal en half-duplex. La description
précise des traitements a abouti à une évaluation de la consommation plus fine, basée sur le
principe du traçage d’exécution.
De cette estimation sont tirés les enseignements pour faire des choix éclairés en vue de la
définition d’une future plate-forme matérielle plus performante.
L’optimiation du paramètre de l’intervalle de réveil dans le but de maximiser la durée de vie
a ensuite été réalisé, et permet d’illuster, la technique d’évaluation de consommation présentée
précédemment.
Perspectives
113
Perspectives
Au vu des résultats de consommation obtenus, il est clair que la plate-forme R2D2 actuelle
n’est pas à même de surpasser en l’état la concurrence à cause principalement de son composant de communication à la consommation trop élevée si on la compare à d’autres réalisations.
Cependant, cela a permis de mettre au point la méthode d’évaluation de la consommation. Ceci
dit, le CC1020 ou d’autres composants de sa famille sont utilisés par les autres laboratoires
concurrents réalisant des plate-formes complètes, à l’exception du CSEM [22], par exemple, qui
travaille spécifiquement sur la conception de matériel de communication plus performant. Les
choix pris concernant ce composant de communication ne sont pas définitifs, et devront évoluer
dans une étape ultérieure.
La couche physique mono-canal peut être avantageusement remplacée par un système de
communication à deux canaux [51], ce qui permettrait d’améliorer la consommation de l’accès au média, en particulier le temps d’écoute, hors réception, (ou idle listening) qui, comme
cela a été présenté au cours du chapitre 3 reste la principale cause de consommation de ces
capteurs communicants. Dans le cas d’un matériel à double canal, l’idée consiste à allouer l’un
des canaux au transfert des données (débit élevé, consommation) et l’autre au contrôle, pour
l’établissement des rendez-vous entre l’émetteur et le récepteur.
Une autre opportunité d’amélioration de la couche physique consiste à réaliser des communications à entrées multiples et sorties multiples distribuées (MIMO, pour Multiple Input Multiple
Output) pour la communication entre zones éloignées. Plutôt que d’effectuer des transmissions
multi-étapes pour réaliser des communications à longue distance, l’idée serait de faire collaborer
des capteurs situés dans une même zone comme un seul émetteur multi-antennes, pour communiquer avec un récepteur multi-antennes lui même constitué de nœuds mono-antenne. Les zones
d’émission et de réception doivent effectuer des opérations de synchronisation supplémentaires
pour pouvoir collaborer. Les applications visées doivent se prêter à un regroupement des capteurs en zones éloignées les unes des autres. Cette voie de recherche est actuellement en cours
d’étude au sein du laboratoire R2D2 (projet CAPTIV) et l’application visée concerne des capteurs intégrés sur des panneaux routiers. Ces capteurs ont un rôle de sécurité et d’information
sur les conditions locales de circulation et permettent de diffuser des alertes et des informations
diverses. Les panneaux routiers étant plus concentrés au niveau des carrefours dans les zones
urbaines, la communication entre carrefours éloignés pourrait utiliser avantageusement ce genre
de communication MIMO.
114
Perspectives
Bibliographie
[1] George Aggelou and Rahim Tafazolli. RDMAR : A Bandwidth-efficient Routing Protocol
for Mobile Ad Hoc Networks. In Proc. of the 2nd ACM International Workshop on Wireless
Mobile Multimedia. ACM, August 1999.
[2] Géraud Allard, Philippe Jacquet, and Laurent Viennot. Ad Hoc Routing With Multipoint
Relaying. In Techniques Algorithmiques, Réseaux et d’Optimisation pour les Télécommunications (AlgoTel 2003, 2003.
[3] G. Asada, M. Dong, T.S. Lin, F. Newberg, G. Pottie, W.J. Kaiser, and H.O. Marcy.
Wireless Integrated Network Sensors : Low Power Systems on a Chip. In Proc. of the 1998
European Solid State Circuit Conference (ESSCIRC’98), 1998.
[4] Stefano Basagni, Irnrich Chlamtac, Violet Syrotiuk, and Barry Woodward. A Distance
Routing Effect Algorithm For Mobility (DREAM). In Proc. of International Conference
on Mobile Computing and Networking (MobiCom’98). ACM/IEEE, October 1998.
[5] Henry Bertoni, Seong-Cheol Kim, and Miklos Stern. Pulse Propagation Characteristics at
2.4 GHz Inside Buildings. IEEE Transaction on Vehicular Technology, 45 :579–592, 1996.
[6] Dimitri Bertsekas and Robert Gallager. Distributed Asynchronous Bellman-Ford Algorithm. In Data Networks, chapter 5.2.4, pages 325–333. Prentice Hall, Englewood Cliffs,
1987.
[7] Edoardo Biagioni and Shu Hui Chen. A Reliability Layer for Ad-Hoc Wireless Sensor
Network Routing. In Proc. of the 37th annual Hawaii International Conference on System
Sciences (HICSS’04). IEEE, 2004.
[8] Ljubica Blazević, Levente Buttyán, Srdjan Capkun, Silvia Giordano, Jean-Pierre Hubaux,
and Jean-Yves Le Boudec. Self-Organization in Mobile Ad Hoc Networks : The Approach
of Terminodes. IEEE Comunications Magazine, 39(6) :166–174, June 2001.
[9] Jeff Boleng, Tracy Camp, and Vishy Tolety. Mesh-based Geocast Routing Protocols in an
Ad Hoc Network. In Proc. of IEEE International Workshop on Parallel and Distributed
Computing Issues in Wireless Networks and Mobile Computing (IPDPS), 2001.
115
116
BIBLIOGRAPHIE
[10] Torkil Brunsvik and Snorre Kjesbu. Radiowave Propagation in Industrial Environments.
In Proc. of 21st International Conference on Industrial Electronics (IECON’00), October
2000.
[11] Daniel Camara and Antonio Alfredo Loureiro. A GPS/Ant-Like Routing Algorithm for Ad
hoc Networks. In Proc. of Wireless Communications and Networking Conference (WCNC
2000), volume 3, pages 1232–1236. IEEE, September 2000.
[12] Mickaël Cartron and Olivier Sentieys. Optimisation énergétique d’un système de communication dédié à un réseau de capteurs. In Actes du 20ème colloque GRETSI : Traitement du
signal et des images, Louvain-la-Neuve, Belgique, septembre 2005. Diffusion universitaire
CIACO, Presses universitaires de Louvain.
[13] Anantha Chandrakasan and Massoud Pedram. Low Power CMOS Design. Kluwer Academic Publishers, 1995.
[14] Ching-Chuan Chiang, Hsiao-Kuang Wu, Winston Liu, and Mario Gerla. Routing in Clustered Multihop Mobile Wireless Networks with Fading Channel. In IEEE Singapore International Conference on Networks, pages 197–211. IEEE, 1997.
[15] Charles Chien. Digital System On A Chip. Kluwer Academic Publishers, 2001.
[16] M. Scott Corson and Anthony Ephremides. A Distributed Routing Algorithm for Mobile Wireless Networks. In Wireless Networks, volume 1, pages 61–81. Kluwer Academic
Publishers, 1995.
[17] Julio da Silva Jr., Jason Shamberger, Josie Ammer, Chunglong Guo, Suetfei Li, Rahul Shah, Tim Tuan, Mike Sheets, Jan Rabaey, Borivoje Nikolic, Alberto SangiovanniVincentelli, and Paul Wright. Design Methodology for PicoRadio Networks. In Design,
Automation and Test in Europe Conference. IEEE/ACM, 2001.
[18] Rohit Dube, Cynthia Rais, Kuang-Yeh Wang, and Satish Tripathi. Signal Stability Based
Adaptive Routing (SSA) for Ad Hoc Mobile Networks. IEEE Personal Communications,
4(1) :36–45, January 1997.
[19] Adam Dunkels, Björn Grönvall, and Thiemo Voigt. Contiki - a Lightweight and Flexible
Operating System for Tiny Networked Sensors. In Proc. of the First IEEE Workshop on
Embedded Networked Sensors 2004, November 2004.
[20] Adam Dunkels, Oliver Schmidt, and Thiemo Voigt. Using Protothreads for Sensor Node
Programming. In Proc. Workshop on Real-World Wireless Sensor Networks, Stockholm,
Sweden, 2005.
BIBLIOGRAPHIE
117
[21] Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. Protothreads : Simplifying
Event-Driven Programming of Memory-Constrained Embedded Systems. In Proc. of the
Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys 2006). ACM,
November 2006.
[22] Christian Enz, Amre El-Hoiydi, Jean-Dominique Decotignie, and Vincent Peiris. WiseNET : An Ultralow Power Wireless Sensor Network Solution. IEEE Comunications
Magazine, 40(4) :62–70, 2004.
[23] Eli Gafni and Dimitri Bertsekas. Distributed Algorithms for Generating Loop-free Routes
in Networks with Frequently Changing Topology. IEEE Transactions on Communication,
29(1) :11–15, January 1981.
[24] Jose Joaquin Garcia-Luna-Aceves. Flow-oriented Protocols for Scalable Wireless Networks.
In ACM International Workshop on Modeling Analysis and Simulation of Wireless and
Mobile Systems (MSWiM, pages 1–6. ACM, 2002.
[25] Jose Joaquin Garcia-Luna-Aceves and Marcelo Spohn. Source-Tree Routing in Wireless
Networks. In IEEE Seventh Annual International Conference on Network Protocols, page
273. IEEE, 1999.
[26] M. Gerla and J. Tsai. Multicluster, mobile, multimedia radio network. ACM Journal of
Wireless Networks, 1(3) :255–265, 1995.
[27] Andrea Goldsmith and Stephen Wicker. Design Challenges for Energy-Constrained Ad
Hoc Wireless Networks. IEEE Wireless Communications, 9(4) :8–27, August 2002.
[28] M. Gunes, U. Sorges, and I. Bouazizi. ARA – The Ant-Colony Based Routing Algorithm
For Manets. In Proc. of International Conference on Parallel Processing Workshops, pages
79–85. IEEE, 2002.
[29] Chen Guo, Charlie Zhong, and Jan Rabaey. Low Power Distributed MAC for Ad Hoc
Sensor Radio Networks. In IEEE Globecom 2001. IEEE, November 2001.
[30] Zygmunt Haas and Marc Pearlman. ZRP : A Hybrid Framework for Routing in Ad Hoc
Networks. In Ad Hoc Networking, chapter 7, pages 221–253. Addison-Wesley Longman
Publishing Co., 2001.
[31] Zygmunt Haas, Marc Pearlman, and Prince Samar. The Intrazone Routing Protocol
(IARP) for Ad Hoc Networks. Technical report, IETF MANET Working Group, July
2002.
118
BIBLIOGRAPHIE
[32] Homayoun Hashemi. Indoor Propagation Modeling. In Wireless Communications in the
21st Century, chapter 8, pages 149–168. IEEE Press Series on Digital & Mobile Communication, 2002.
[33] Wendi Heinzelman. Application-Specific Protocol Architectures for Wireless Networks.
PhD thesis, Massachusetts Institute of Technology, 2000.
[34] Yih-Chun Hu and David Johnson. Implicit Source Routes For On-demand Ad Hoc Network
Routing. In ACM International Symposium on Mobile Ad Hoc Networking and Computing
(MibiHoc. ACM, 2001.
[35] Chalermek Intanagonwiwat, Ramesh Govindan, and Deborah Estrin. Directed Diffusion :
A Scalable and Robust Communication Paradigm for Sensor Networks. In Proc. of 4th
ACM International Conference on Mobile Computing and Networking (Mobicom’98), August 2000.
[36] Philippe Jacquet, Paul Muhlethaler, Amir Qayyum, Anis Laouiti, Laurent Viennot, and
Thomas Clausen. Optimized Link State Routing Protocol. In IEEE INMIC, Pakistan,
December 2001.
[37] Gerard Janssen and Ramjee Prasad. Propagation Measurements in an Indoor Radio Environment at 2.4GHz, 4.75GHz and 11.5GHz. In Proc. of the VTS Conference Frontiers
of Technology, pages 617–620, 1992.
[38] Mario Joa-Ng and I-Tai Lu. A Peer-to Peer Zone-Based Two-Level Link State Routing for
Mobile Ad Hoc Networks. IEEE Journal on Selected Areas In Communication, 17(8) :1415–
1425, August 1999.
[39] David Johnson and David Maltz. Dynamic Source Routing in Ad Hoc Wireless Networks.
In Thomasz Imielinski and Hank Korth, editors, Mobile Computing, volume 353, chapter 5,
pages 153–181. Kluwer Academic Publishers, 1996.
[40] Brad Karp and H.T. Kung. GPSR : Greedy Perimeter Stateless Routing for Wireless
Networks. In International Conference on Mobile Computing and Networking (MobiCom),
pages 243–254. ACM, 2000.
[41] Noureddine Kettaf, Abdelhafid Abouaissa, Thang Vuduong, and Pascal Lorenz. A Cross
Layer Admission Control On-demand Routing Protocol for QoS Applications. International Journal of Computer Science and Network Security (IJCSNS), 6 :98–105, September
2006.
BIBLIOGRAPHIE
119
[42] Young-Bae Ko and Nitin Vaidya. GeoTORA : A Protocol For Geocasting In Mobile
Ad Hoc Networks. In Proc. of the 2000 International Conference on Network Protocols
(ICNP), page 240. IEEE, 2000.
[43] Young-Bae Ko and Nitin Vaidya. Location-Aided Routing (LAR) in Mobile Ad Hoc
Networks. ACM Wireless Networks, 6(4) :307–321, July 2000.
[44] J. Kymissis, C. Kendall, J. Paradiso, and N. Gershenfeld. Parasitic Power Harvesting in
Shoes. In Proc. of th second IEEE International Conference on Wearable Computing, 1998.
[45] Olaf Landsiedel, Klaus Wehrle, and Stefan Götz. Accurate Prediction of Power Consumption in Sensor Networks. In IEEE Workshop on Embedded Networked Sensors, 2005.
[46] Young Lee and George Riley. Dynamic NIx-Vector Routing for Mobile Ad Hoc Networks.
In IEEE Wireless Communications and Networking Conference (WCNC 2005), 2005.
[47] Paul Lettieri, Christina Fragouli, and Mani Srivastava. Low Power Error Control for
Wireless Links. In Mobicom’97, pages 139–150. ACM, 1997.
[48] Philip Levis, Sam Madden, David Gay, Joe Polastre, Robert Szewczyk, Alec Woo, Eric
Brewer, and David Culler. The Emergence of Networking Abstractions and Techniques in
TinyOS. In Proc. of the First USENIX/ACM Symposium on Networked Systems Design
and Implementation (NSDI 2004), March 2004.
[49] Jinyang Li, John Janotti, Douglas de Coutu, David Karger, and Robert Morris. A Scalable
Location Service For Geographic Ad Hoc Routing. In Proc. of the 6th ACM International
Conference on Mobile Computing and Networking (MobiCom 2000), pages 120–130. ACM,
August 2000.
[50] Wen-Hwa Liao, Yu-Chee Tseng, Kuo-Lun Lo, and Jang-Ping Sheu. GeoGRID : A Geocasting Protocol For Mobile Ad Hoc Networks Based on Grid. Journal of Internet Technology,
1 :23–32, 2000.
[51] En-Yi Lin. A comprehensive Study of Power-Efficient Rendez-vous Schemes for Wireless
Sensor Networks. PhD thesis, University of California, Berkeley, 2005.
[52] En-Yi Lin, Jan Rabaey, Sven Wiethoelter, and Adam Wolitz. Receiver Initiated Rendezvous Schemes for Sensor Networks. In Proc. of IEEE Globecom 2005, 2005.
[53] En-Yi Lin, Jan M. Rabaey, and Adam Wolisz. Power-Efficient Rendez-vous Schemes for
Dense Wireless Sensor Networks. In IEEE International Conference on Communications,
2004.
120
BIBLIOGRAPHIE
[54] B. S. Manoj, R. Ananthapadmanabha, and C. Siva Ram Murthy. Link life Based Routing Protocol for Ad hoc Wireless Networks. In IEEE 10th International Conference on
Computer Communications (IC3N 2001). IEEE, October 2001.
[55] Amit Mehra, Xin Zhang, Arturo Ayon, Ian Waitz, Martin Schmidt, and Christopher Spadaccini. A Six-Wafer Combustion System For A Silicon Micro Gas Turbine Engine. Journal
of Microelectromechanical Systems, 9 :517–527, 2000.
[56] William Merrill, Lewis Girod, Jeremy Elson, Kathy Sohrabi, Fredric Newberg, and William
Kaiser. Autonomous Position Location in Distributed, Embedded, Wireless Systems. In
Workshop on Wireless Communications and Networking Conference. IEEE/CAS, 2002.
[57] Rex Min, Manish Bhardwaj, Seong-Hwan Cho, Nathan Ickes, Eugene Shih, Amit Sinha,
Alice Wang, and Anantha Chandrakasan. Energy-Centric Enabling Technologies for Wireless Sensor Networks. IEEE Wireless Communications, 9(4) :28–39, August 2002.
[58] Shree Murthy and Jose Joaquin Garcia-Luna-Aceves. An Efficient Routing Protocol for
WIreless Networks. ACM/Baltzer Journal on Mobile Networks and Applications, Special
Issue on Routing in Mobile Communication Networks, 1(2) :183–197, October 1996.
[59] Richard Ogier, Fred Templin, and Mark Lewis. Topology Dissemination Based on ResersePath Forwarding (TBRPF). In IETF RFC 3684, February 2004.
[60] Brian Otis, Yuen Hui Chee, Richard Lu, Nathan Pletcher, Jan Rabaey, and Simone Gambini. Highly Integrated Ultra-Low Power RF Transceivers for Wireless Sensor Networks.
In Christian Piguet, editor, Low-Power Electronics Design, chapter 31. CRC Press, 2003.
[61] Vincent Park and Scott Corson. A Highly Adaptive Distributed Routing Algorithm for
Mobile Wireless Networks. In Proc. of INFOCOM’97. IEEE, April 1997.
[62] Tom Parker and Koen Langendoen. Guesswork : Robust Routing in an Uncertain World.
In IEEE International Conference on Mobile Ad-hoc and Sensor Systems (MASS 2005).
IEEE, 2005.
[63] C. Perkins and P. Bhagwat. Highly Dynamic Destination-Sequenced Distance Vector
(DTDV) for Mobile Computers. In SIGCOMM 1994 Conference on Communications
Architectures, Protocols and Applications, pages 234–244. ACM, August 1994.
[64] Charles Perkins and Elizabeth Belding-Royer. Ad hoc On-Demand Distance Vector Routing. In Proc. of the 2nd IEEE Workshop on Mobile Computing Systems and Applications,
pages 90–100. IEEE, February 1999.
[65] Christian Piguet, editor. Low-Power Circuit Design. CRC Press, 2005.
BIBLIOGRAPHIE
121
[66] Daji Qiao, Sunghyun Choi, Amjad Soomro, and Kang G. Shin. Energy-Efficient PCF
Operation of IEEE 802.11a Wireless LAN. In Infocom’02. IEEE, 2002.
[67] Jan Rabaey, Josie Ammer, Julio da Silva Jr., Danny Patel, and Shad Roundy. PicoRadio
Supports Ad Hoc Ultra-Low Power Wireless Networking. Computer, 33(7) :42–48, July
2000.
[68] Jan Rabaey, Josie Ammer, Tufan Karalar, Suetfei Li, Brian Otis, Mike Sheets, and Tim
Tuan. PicoRadios for Wireless Sensor Networks — The Next Challenge in Ultra-Low
Power Design. In International Solid-State Circuit Conference. IEEE, 2002.
[69] Venkatesh Rajendran, Katia Obraczka, and Jose Joaquin Garcia-Luna-Aceves. EnergyEfficient,Collision-Free Medium Access Control for Wireless Sensor Networks. In SenSys’03, pages 181–192. ACM, 2003.
[70] Shad Roundy. Energy Scavenging for Wireless Sensor Nodes with a Focus on Vibration to
Electricity Conversion. PhD thesis, University of California, Berkeley, 2003.
[71] Shad Roundy, Dan Steingart, Luc Frechette, Paul Wright, and Jan Rabaey. Power Sources
For Wireless Sensor Networks. In Proc. of EWSN 2004, 2004.
[72] Chris Savarese. Robust Positioning Algorithms for Distributed Ad-Hoc Wireless Sensor
Networks. PhD thesis, University of California, Berkeley, 2002.
[73] Curt Schurgers, Vlasios Tsiatsis, Saurabh Ganeriwal, and Mani Srivastava. Optimizing
Sensor Networks in the Energy-Latency-Density Design Space. IEEE Transactions on
Mobile Computing, 1(1) :70–80, January-March 2002.
[74] Victor Shnayder, Mark Hempstead, Bor rong Chen, Geoff Werner Allen, and Matt Welch.
Simulating the Power Consumption of Large-Scale Sensor Network Applications. In SenSys’04. ACM, 2004.
[75] Rajendra Singh Sisodia, B. S. Manoj, and C. Siva Ram Murthy. A Preferred Link Based Routing Protocol for Ad Hoc Wireless Networks. Journal of Communications and
Networks, 4(1) :14–21, March 2002.
[76] Oliver Yang Song Guo. Performance of Backup Source Routing (BSR) in Mobile Ad Hoc
Networks. In IEEE Wireless Networking Conference, 2002.
[77] Matthias Stordeur and Ingo Stark. Low Power Thermoelectric Generator - Self-sufficient
Energy Supply For Micro Systems. In Proc. of 16th International Conference on Thermoelectrics, pages 575–577, 1997.
122
BIBLIOGRAPHIE
[78] Changsu Suh and Young-Bae Ko. A Traffic Aware, Energy Efficient MAC Protocol for
Wireless Sensor Networks. In IEEE International Symposium on Circuits and Systems,
pages 2975–2978, 2005.
[79] Sameer Tilak, Nael Abu-Ghazaleh, and Wendi Heinzelman. A Taxonomy of Wireles MicroSensors Network Models. ACM Mobile Computing and Communications Review, 1 :1–8,
2002.
[80] Chai-Keong Toh. A Novel Distributed Routing Protocol To Support Ad hoc Mobile Computing. In IEEE 15th Annual International Phoenix Conference on Computers and Communications (IPCCC 1996), pages 480–486. IEEE, 1996.
[81] Yu-Chee Tseng, Shih-Lin Wu, Wen-Hwa Liao, and Chih-Min Chao. Location Awareness
in Ad Hoc Wireless Mobile Networks. Computer, 34(6) :46–52, June 2001.
[82] Alvin Valera, Winston Seah, and S.V. Rao. CHAMP : A Highly-Resilient and EnergyEfficient Routing Protocol for Mobile Ad hoc Networks. In 5th IEEE Conference on Mobile
and Wireless Communications Networks (MWCN 2002), September, 2002. IEEE.
[83] Brett Warneke, Matt Last, Brian Liebowitz, and Kristofer Pister. Smart Dust : Communicating with a Cubic-Millimeter Computer. IEEE Computer, 34(1) :44–51, 2001.
[84] Brett Warneke and Kristofer Pister. An Ultra-Low Energy Microcontroller for Smart Dust
Wireless Sensor Networks. In Proc. of Int’l Solid-State Circuits Conf. 2004, (ISSCC 2004),
February 2004.
[85] Matthias Witt and Volker Turau. BGR : Blind Geographic Routing for Sensor Networks.
In Proc. of the Third Workshop on Intelligent Solutions in Embedded Systems (WISES’05).
GI/IEEE, May 2005.
[86] Wei Ye, John Heidemann, and Deborah Estrin. An Energy-Efficient MAC protocol for
Wireless Sensor Networks. In IEEE Infocom, pages 1567–1576, 2002.
[87] Wei Ye, John Heidemann, and Deborah Estrin. Medium Access Control with Coordinated,
Adaptive Sleeping for Wireless Sensor Networks. Technical report, USC/ISI, January 2003.
[88] Lizhi Charlie Zhong, Jan M. Rabaey, and Adam Wolisz. An Integrated Data-link Energy
Model for Wireless Sensor Networks. In IEEE International Conference on Communications, pages 3777–3783, 2004.
Vers une plate-forme efficace en énergie pour les réseaux de capteurs
sans fil
Thèse de doctorat – 2006 – Mickael CARTRON
Université de Rennes 1 / IRISA
RESUME : Les réseaux de capteurs constituent un thème de recherche très dynamique actuellement, tiré vers
le haut d’une part par l’opportunité de développer des applications novatrices liées à la position géographique
des éléments du réseau, et d’autre part, plus généralement, par le challenge de la conception d’objets
communicants entièrement autonomes. Le but de ce travail est de parvenir à définir des solutions architecturales
opérationnelles capables de maximiser l’autonomie des nœuds du réseau. Pour parvenir à ce but, les travaux de
recherche qui ont été menés ont pour objectif dans un premier temps de cerner les besoins de ces réseaux de
capteurs en termes de performances, de complexité de calcul, de mémoire nécessaire, en s’appuyant sur des
analyses de scénarios précis et réalistes.
Dans un second temps, une plate-forme de nœud générique est décrite à partir de l’analyse préalable des
besoins, des couches les plus proches du matériel jusqu’aux couches applicatives les plus élevées. Cet
environnement intégré fortement réglable offre une vision totale des traitements au sein des nœuds et autorise
par là-même les optimisations ”cross-layer”. En particulier, les différents traitements liés à la communication sont
identifiés sous forme d’éléments génériques. Des modèles de performances ont été définis pour ces
composants déclinés sous forme de chaîne de communication, dans le but d’en déterminer des points de
fonctionnement optimaux du point de vue de l’efficacité énergétique. Ces travaux ont été réalisés sur un logiciel
de simulation développé au sein du laboratoire. La conception d’architecture et d’algorithmes à faible
consommation nécessite des outils performants et une vision particulière. C’est pourquoi dans un troisième
temps, l’évaluation de la consommation énergétique a été abordée par différentes approches correspondant à
différentes phases de la conception. Des solutions ont été développées pour évaluer des choix logiciels et
matériels d’un point de vue du coût énergétique. Notre approche est basée sur le traçage d’exécution de code,
simple et fondée sur un cadre de programmation événementiel général et portable.
MOTS CLES : réseau de capteurs, consommation énergétique, design « cross-layer », systèmes
événementiels
________________________________________________________________________________________________________________
Towards an energy-efficient platform for wireless sensor networks
Ph.D. Thesis – 2006 – Mickaël CARTRON
Université de Rennes 1 / IRISA
ABSTRACT: Sensor networks are a very dynamic domain of research due, on the one hand, to the opportunity
to develop innovative applications that are linked to a specific environment, and on the other hand to the
challenge of designing totally automonous communicating objects. The aim of this work is to define architectural
operational solutions able to maximize the lifetime of these sensor networks.
In order to reach this goal, the work that has been led aims to define the needs of performance, processing
complexity, and memory, solving particular sensor networks applicative scenarios.
Then, a generic sensor node platform is described according to the application constraints analysis, from the
lower-level hardware processing to the higher-level applicative tasks. This highly adjustable integrated
environment gives a global vision of the processing of the nodes, which gives the means to study cross-layer
optimizations. In particular, wireless communication processings have been analytically described in order to
evaluate and optimize the energy efficiency. This work has been realized on a simulation program that has been
developed in our laboratory.
Low power architectural and algorithmic design requires high performance tools and a particular vision. For this
reason, the energy consumption evaluation has been studied, for all differents steps of the design, and solutions
have been given for the evaluation of energy consumption and performance of hardware and software designs.
The approach described is based on code execution tracing on a general and portable event-driven system.
KEY W ORDS: sensor networks, energy consumption, cross-layer design, event-oriented systems