• Aucun résultat trouvé

CHAPITRE 1 PRÉSENTATION DU PROJET ET DÉFINITION DE L’APPLICATION

1.7 Protocole de communication ZigBee

Avant de poursuivre ce mémoire, il semble important de clarifier de quel type de communication les animats seront dotés. Bien que cela puisse paraître prématuré dans l’analyse, nous avons choisi d’utiliser une communication sans fil basée sur la norme 802.15.4 et utilisant la stack ZigBee-Pro. Ce protocole de communication a été choisi principalement pour les trois raisons suivantes : tout d’abord celui-ci a été conçu avec comme objectif de proposer une solution peu énergivore. D’autre part, le protocole ZigBee revêt une notoriété grandissante en ce sens que de plus en plus de périphériques l’utilisent directement ou de façon dérivée. Ceci constitue une caractéristique intéressante pour notre projet car les animats ne devraient pas être cantonnés à une « espèce » que l’on aurait bien voulu concevoir mais la colonie devrait pouvoir bénéficier d’une multitude de singularités. Par suite, le fait de pouvoir utiliser n’importe quel périphérique utilisant le protocole ZigBee est une richesse pour notre application en ce sens qu’un capteur de température pourra être vu comme un animat à part entière ayant comme particularité une incapacité à se mouvoir contrebalancée par une forte précision de mesure de la température. Enfin, la dernière des trois raisons les plus importantes nous ayant conduit à choisir ce protocole est la possibilité de pouvoir avoir plusieurs types de réseaux comme nous allons le voir. Notamment cela pourra permettre par exemple à un animat de pouvoir communiquer avec un autre sans avoir à passer par un routeur ou autre coordinateur de réseau. Parmi d’autres, ces trois raisons nous ont conduits à choisir ZigBee comme protocole de communication. Dans ce qui suit, nous proposons de donner une brève description de ce protocole.

Qu’est-ce que ZigBee?

C’est un standard de communication permettant la mise en place et la gestion de réseaux sans-fil. Pour ce faire, ZigBee utilise la norme IEEE 802.15.4 [25] qui opère dans les bandes radio

Industrial, Scientific and Medical (ISM) de fréquences 868 MHz, 915 MHz et 2.4 GHz. Un

amalgame est souvent fait entre ZigBee et la norme IEEE 802.15.4. Alors que la première définit principalement tout ce qui a un rapport avec la gestion du réseau et l’application, la norme IEEE.802.15.4 définit quant à elle les couches de bas niveau comme la gestion de l’adressage et celle de l’émetteur-récepteur radio. La Figure 1-1 ci-dessous, résume les différentes couches :

Figure 1-1. Définition des couches pour le protocole ZigBee et la norme IEEE802.15.4 Certains des objectifs principaux de ZigBee sont de proposer un protocole stable, peu couteux et à basse consommation qui puisse être facilement implémenté dans des applications embarquées que ce soit pour la domotique ou pour des applications à caractère plus industriel. Par ailleurs, bien qu’ayant connu des débuts difficiles, ce protocole semble aujourd’hui s’imposer dans des applications de la vie de tous les jours comme le suggère la Figure 1-2 disponible sur le site de la

Figure 1-2. Types d'applications pour le protocole ZigBee [16]

En revanche, contrairement au Wi-Fi par exemple, le protocole ZigBee ne permet que de faibles bandes passantes. Les taux de transfert dépendent de la fréquence de la porteuse et de la modulation comme rappelé dans le Tableau 1.2 inspiré du travail de [27]. Il est important de noter que l’utilisation des fréquences ci-dessous n’est autorisée que sur certaines parties de la planète et qu’il est donc nécessaire de se renseigner sur la législation en vigueur.

Tableau 1.2 Caractéristiques physiques du protocole ZigBee

PHY (MHz)

Bande de fréquences

(Mhz)

Paramètres de diffusion Paramètres de données Taux de pulse (kchip/s) Modulation Taux de transfert (kb/s) Taux de symboles (ksymboles/s) Symboles 868/915 868 – 868.6 300 BPSK 20 20 Binaire 902 - 928 600 BPSK 40 40 Binaire 868/915 (optionnel) 868 – 868.6 400 ASK 250 12.5 20-bit PSSS 902 - 928 1600 ASK 250 50 5-bit PSSS 868/915 (optionnel)

868 – 868.6 400 O-QPSK 100 25 16-ary Orthogonal 902 - 928 1000 O-QPSK 250 62.5 16-ary Orthogonal 2450 2400 – 2483.5 2000 O-QPSK 250 62.5 16-ary Orthogonal

Quels sont les types de nœuds et de réseaux?

La norme IEEE802.15.4 définit deux types de nœuds dépendamment de leur capacité ou non à pouvoir démarrer un réseau personnel : les FFD et RFD. Le protocole ZigBee, quant à lui, définit trois différents types de nœuds que l’on peut retrouver dans un réseau : le coordinateur, les routeurs et les ES (dispositifs à l’extrémité du réseau dans le cas d’un arbre). La documentation détaillée peut être trouvée dans [25] et [26]. Le coordinateur est chargé de mettre en place et de gérer le réseau. Les routeurs récupèrent et redistribuent l’information. Enfin les ES sont les dispositifs chargés de générer l’information utile (capteurs…). En théorie, chaque nœud pourrait passer d’un type à l’autre dynamiquement. Néanmoins en pratique, on profite du fait que les ES réalisent des tâches plus simples que les routeurs, qui eux-mêmes réalisent des tâches plus

simples que le coordinateur, pour pouvoir diminuer l’utilisation de la mémoire programme. Il n’est donc plus nécessaire de charger l’intégralité du code mais le réseau perd en adaptabilité. Le protocole ZigBee permet une grande diversité de type de réseau. En effet, il est possible de mettre en place des réseaux de type point-à-point (peer-to-peer), en étoile (star), en grappes (clusters) ou étoilé (mesh). Compte tenu de leur programme plus complet, seuls les FFD peuvent communiquer entre eux. Par conséquent, le type de réseau est lié aux types de nœuds utilisés. La Figure 1-3 donne un exemple de réseau que l’on peut obtenir.

Figure 1-3. Différents types de réseau ZigBee

Certaines limitations s’appliquent quant à l’interruption de l’alimentation des routeurs et du coordinateur. Pour notre application, le coordinateur sera directement connecté à un PC et il est acceptable de considérer qu’il sera alimenté par une source de tension continue et inépuisable. Pour que les animats puissent communiquer entre eux, il semble nécessaire qu’ils soient des routeurs. Par conséquent, les contraintes d’alimentations de ces derniers devront être prises en compte dans la suite de l’étude.

Quelle est la forme de la trame? Comment sont adressés les nœuds?

Le format standard d’une trame est donné dans le Tableau 1.3. Celui-ci peut se décomposer en trois parties distinctes dont le détail est donné dans [25]:

 L’entête

 Le contenu

 Le contrôle : code de détection d’erreurs

Tableau 1.3. Format de la trame

Partie Entête Contenu Contrôle

Octets 2 1 0/2 0/2/8 0/2 0/2/8 0/5/6/10/14 Variable 2 Détails Contrôle de la trame Numéro de Séquence Identifiant du PAN de destination Adresse de destination Identifiant du PAN source Adresse de la source Entête de sécurité auxiliaire Contenu de la trame FCS

Au niveau du réseau, les nœuds peuvent être identifiés individuellement par différentes adresses. Tout d’abord chaque nœud a une adresse MAC de 64 bits unique. Les 24 premiers bits constituent le OUI et sont vendus par IEEE. Les 40 bits restant sont fournis par le manufacturier du nœud ZigBee qui doit s’assurer que ce dernier n’a pas déjà été attribué. Cette adresse est généralement utilisée pour rejoindre le réseau. Par la suite, c’est une adresse réseau de 16 bits qui est utilisée. Initialement celle-ci était choisie dépendamment de la position du nœud dans le réseau. Avec le protocole ZigBee Pro, cette adresse est choisie aléatoirement par le nœud qui cherche à joindre le réseau. Si celle-ci est déjà prise, on résout le conflit en utilisant l’adresse MAC. D’autre part, le protocole ZigBee permet d’établir des communications d’un nœud vers un autre (unicast), vers tous les nœuds d’un réseau (broadcast) et vers des sous-groupes du réseau (multicast). De plus amples détails peuvent être trouvés dans [25, 26] et [28, 29].