• Aucun résultat trouvé

Chapitre V. Simulation de la robustesse RadioFréquences de KNX-RF sous OMNet++

V.2. Description du Framework MiXiM

MiXiM [119] est un framework créé pour la modélisation des réseaux sans fil fixes et mobiles

(réseaux de capteurs sans fil, réseaux BAN : Body Area Netwoks, réseaux VANet : Vehicular Ad-Hoc

Network, réseaux cellulaires, etc.). Il propose des modèles détaillés de propagation d’ondes radio,

d’estimation d’interférences, de consommation d'énergie et plusieurs protocoles pour la couche MAC

(e.g. Zigbee). MiXiM est le fruit de la fusion de plusieurs frameworks développés pour OMNeT++ :

 ChSim développé par l’université de Paderborn.

 MAC Simulator développé par l’université technique de Delft.

 Mobility framework développé par l’université technique de Berlin.

 Positif framework développé par l’université technique Delft.

Outre les avantages de chacun de ces simulateurs, MiXiM introduit des extensions uniques

comme le support complet de la 3D et la possibilité de simuler des réseaux comptant jusqu’à 1000

nœuds tout en ayant une faible utilisation de la mémoire.

Dans une communication entre deux produits, chaque paquet émis passe à travers les différentes

couches OSI de l'émetteur et du récepteur où des événements sont créés à chaque passage. Malgré que

MiXiM soit un framework puissant, il ne bénéficie pas d’un support adéquat de la communauté de

recherche et la documentation disponible est difficile à comprendre. Aussi, il existe peu de tutoriels et

la modélisation est assez complexe et requiert une excellente maîtrise du langage C++. Dans ce qui

suit, nous allons décrire quelques-uns des principaux modules qui composent un réseau modélisé sur

MiXiM.

V.2.1.Le module « Node »

Un exemple de module Node est illustré dans la Figure V-3. Sur MiXiM, toutes les couches OSI

d’un nœud peuvent être modélisées. Dans notre cas, seules les couches permettant de modéliser les

réseaux WSN nous intéressent, à savoir : la couche d'application (appl), la couche réseau (netw), la

couche liaison (MAC) et la couche physique (PHY). La couche physique et la couche MAC sont

regroupées dans un seul module appelé Network Interface Card (NIC). Les couches sont reliées entre

elles par deux paires de ports OMNet, la première véhicule les messages de données et la deuxième

véhicule les messages de contrôles. Le module de mobilité est responsable des mouvements des

nœuds. Le module de batterie est utilisé pour modéliser la consommation d’énergie. Le module « arp »

gère la résolution d'adresses (ARP), à savoir la traduction entre les adresses réseau et les adresses

MAC. Le module « Stats » fournit une interface générale pour la collecte des données statistiques

d'une simulation.

Figure V-3 : La structure générale d’un réseau, d'un nœud et de son NIC sur OMNet++

V.2.2.Le module NIC (Network Interface Card):

V.2.2.1.La couche Physique

La couche PHY est la partie centrale d'un nœud sans fil dans MiXiM. Elle est responsable de la

transmission et la réception des messages, la détection de collision, le calcul d'erreur binaire, et de la

commutation de l’état de la radio (Rx, Tx, Sleep, etc.). Elle est en outre responsable de l'application

des modèles de canal de propagation utilisées dans les simulations. La couche physique MiXiM est

divisée en trois parties :

Base-PhyLayer: fournit les interfaces avec la couche MAC et les couches physiques des

autres nœuds.

AnalogueModels: est responsable de la simulation des atténuations appliquées sur le

signal, comme le Shadowing, le Fading et les atténuations en espace libre (Path Loss). Une

couche physique peut contenir un nombre arbitraire d'AnalogueModels. La classe

AnalogueModel contient la fonction appelée filterSignal() qui prend comme argument le

signal à traiter [123] et s’applique à la réception du signal. Les modèles de "AnalogueModels"

sont spécifiés dans des fichiers de configuration appelés « config.xml ».

Decider: est responsable de l’évaluation et de la classification du signal reçu. En effet, il

détermine si le signal doit être considéré comme un signal utile, un signal d’interférence ou

juste du bruit. Il est également responsable de la démodulation des messages reçus et du calcul

d'erreurs binaires. Le décideur fournit des informations sur l'état actuel du canal (libre ou

occupé) grâce au RSSI. Un ou plusieurs décideurs peuvent être définis dans le même fichier

config.xml.

Les différentes classes qui constituent le module de la couche physique MiXiM et les modules qui

en héritent sont détaillées dans l’Annexe 2.

V.2.2.2.La couche MAC

Concernant la couche MAC, elle s’occupe de fixer la puissance, le débit et le préambule du signal

à transmettre avant de l’envoyer vers la couche physique. Elle récupère également l’état du canal en

utilisant la fonction phy->getChannelState( ) qui détermine si le canal est IDLE ou pas. Cette

fonction retourne la valeur du RSSI calculé par le décideur (Decider) de la couche physique.

Plusieurs protocoles MAC ont déjà été implémenté sur MiXiM, notamment les protocoles

B-MAC, L-B-MAC, T-MAC et les couches MAC des deux protocoles IEEE 802.15.4 et IEEE 802.11.

V.2.2.3.Le processus d’émission et de réception dans le module NIC

Les paquets arrivent de la couche supérieure, la couche réseau, et entrent dans la couche MAC.

C'est au niveau de cette couche que la puissance de transmission (TX-power) et le débit de

transmission sont définis. Ensuite, ces paquets sont encapsulés pour devenir des « Macpkt ». En

descendant vers la couche physique, les Macpkt sont encapsulés dans ce que l’on appelle des trames

aériennes "Airfraimes" en faisant appel à la fonction CreateSignal( ) qui définit la représentation

physique du signal qui sera transmis sur le canal de propagation radio. Ce signal va contenir en plus

des informations sur le début de la trame et la durée de transmission, sa puissance et son débit.

Figure V-4 : La procédure d'émission et de réception au niveau de NIC

Un clone de la trame AirFrame est envoyé à chaque nœud se trouvant à la portée de l’émetteur.

Les couches physiques de ces nœuds reçoivent le signal qui sera traité par AnalogueModels pour

simuler les effets du canal de propagation (e.g. atténuations, fading). Dans un modèle, il peut y avoir

plusieurs AnalogueModels qui s’appliquent à la fois sur un signal. La puissance de réception

(RX-power) est alors calculée en multipliant les modèles de propagation par la puissance de transmission

(TX-power). En fonction de la puissance de réception résultante, le décideur (Decider) de la couche

physique peut distinguer un signal d’un bruit, et peut calculer le SNR et donc le taux d’erreurs binaires

selon la modulation utilisée.

V.2.3.Le module « Mobility »

MiXiM peut modéliser le mouvement de tout objet que ce soit un nœud ou un obstacle. Chaque

fois que la position d’un objet change, tous les objets du réseau en sont informés pour mettre à jour les

paramètres physiques comme la distance entre les nœuds, la puissance du signal reçu, etc. La mobilité

est un processus continu, cependant un ajustement de l'intervalle de mouvement doit être fait pour

avoir un bon compromis entre le temps de calcul et l’exactitude des résultats. Une collision des objets

peut avoir lieu et change la trajectoire de l’objet de plusieurs façons en fonction du modèle de mobilité

choisit (angle réfléchis, angle aléatoire, etc.). Dans ces travaux, le modèle de mobilité utilisé est le

modèle statique, ce qui signifie que les nœuds ne changent pas de position pendant la simulation.

V.2.4.Le module « Battery »

Le module Battery s’occupe de la modélisation de la consommation d'énergie induite par

l’activité du nœud. Le module permet de spécifier les caractéristiques de la batterie (capacité, tension,

nombre de piles, etc.) pour chaque nœud et de déterminer périodiquement son état en utilisant les

fonctions estimateResidual() et getVoltage(). La version courante de MiXiM propose seulement un

modèle linéaire de la consommation de la batterie en utilisant le module SimpleBattery. Ce module

maintient une table en mettant à jour la capacité résiduelle du nœud au fur et à mesure que la

simulation se déroule et ce en utilisant l’équation :

𝐶 = 𝐶 − ∑ 𝐼

𝑑

𝑑

. ∆𝑡. 𝑉

𝑛𝑜𝑚𝑖𝑛𝑎𝑙

(V-1)

Où 𝐶 est la capacité résiduelle de la batterie, ∆t l’intervalle de temps depuis le dernier update, I

d

le courant consommé et V

nominal

la tension d’alimentation qui est assumée constante jusqu’à la

décharge de la batterie. Dans ces travaux, la consommation de la batterie des nœuds KNX-RF n’a pas

été simulée avec MiXiM car cela sort du cadre de cette thèse.

V.2.5.Le module « Connection Manager »

Le module responsable de l'établissement des connexions entre les nœuds s'appelle

"ConnectionManager". La perte de la connectivité peut être due à la mobilité (par exemple des nœuds

se déplacent et s’éloignent trop) ou due à un changement de puissance de transmission ou une panne

de nœud. Afin de réduire la complexité de calcul dans MiXiM, les nœuds sont connectés seulement

quand ils sont à l'intérieur d’une distance appelée Distance Maximale d'Interférence (DMI), une fois

ils dépassent cette distance les connexions sont rompues. La DMI correspond à la distance maximale

dans laquelle un nœud peut encore éventuellement perturber un nœud voisin. A noter que la distance

maximale d'interférence ne détermine pas la portée maximale du produit. En effet, le fait que deux

produits soient connectés par le ConnectionManager ne garantit pas que tous les signaux reçus par le

récepteur soient correctes (limite de portée).

𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑀𝑖𝑛𝑖𝑚𝑢𝑚 𝑑′𝐼𝑛𝑡𝑒𝑟𝑓é𝑟é𝑛𝑐𝑒 = (16 ∗ 𝜋

2

𝜆∗ 𝑃

2

∗ 𝑃

𝑚𝑎𝑥

𝑟𝑒ç𝑢𝑒 𝑀𝑖𝑛𝑖𝑚𝑢𝑚

)

1/𝛼

(V-2)

Où : α : Coefficient de Path Loss minimal, λ : Longueur d’onde et

𝑃

𝑟𝑒ç𝑢𝑒 𝑀𝑖𝑛𝑖𝑚𝑢𝑚

: Le niveau minimal pour recevoir le signal

Les informations récupérées sur la connexion des nœuds sont transmises à la couche Physique

(BasePhyLayer) car elles sont nécessaires à la transmission des signaux AirFarme sur le canal radio.