28 mars 2017

ZigBee

ZigBee est un protocole de haut niveau permettant la communication de petites radios, à consommation réduite, basée sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (Wireless Personal Area Networks : WPANs).

Les spécifications de ZigBee sont disponibles auprès des membres de la communauté industrielle ZigBee Alliance.

Cette technologie a pour but la communication de courte distance telle que le propose déjà la technologie Bluetooth, tout en étant moins chère et plus simple. À titre d’exemple, les nœuds ZigBee classiques nécessitent environ 10 % du code nécessaire à la mise en œuvre de nœuds Bluetooth ou de réseaux sans fil, et les nœuds ZigBee les plus élémentaires peuvent ainsi descendre jusqu’à 2 % !

La spécification initiale de ZigBee propose un protocole lent dont le rayon d’action est relativement faible, mais dont la fiabilité est assez élevée, le prix de revient faible et la consommation considérablement réduite.

On retrouve donc ce protocole dans des « environnements embarqués » où la consommation est un critère de sélection. Ainsi, la domotique et les nombreux capteurs et télécommandes qu’elle implémente apprécie particulièrement ce protocole en plein essor et dont la configuration du réseau maillée se fait automatiquement en fonction de l’ajout ou de la suppression de nœuds. On retrouve aussi ZigBee dans les contrôles industriels, les applications médicales, les détecteurs de fumée et d’intrusion et dans la télécommande de la freebox v6.

Protocole Zigbee Bluetooth Wi-Fi
IEEE 802.15.4 802.15.1 802.11a/b/g/n/n-draft
Besoins mémoire 4-32 Kb 250 Kb + 1 Mb +
Autonomie avec pile Années Jours Heures
Nombre de nœuds 65?000+ 7 32
Vitesse de transfert 250 Kb/s 1 Mb/s 11-54-108-320 Mb/s
Portée 100 m 10-100 m 300 m

 

Les nœuds sont conçus pour fonctionner plusieurs mois (jusqu’à dix ans pour les moins consommant) en autonomie complète grâce à une simple pile alcaline de 1,5 V.

L’essence même d’un protocole est de donner un cadre de fonctionnement à une communication. Ainsi, l’IEEE définit dans le cadre de sa norme IEEE 802.15.4 le cadre de ce protocole pour les couches basses (physique et mac).

Il est donc nécessaire d’implémenter les couches de plus haut niveau (réseau et applicatif dans notre cas) afin que ce modèle soit parfaitement fonctionnel. Les protocoles ZigBee peuvent donc fonctionner, en théorie, sur plusieurs supports mac mais sont en général présentes pour le média 802.15.4. C’est la ZigBee Alliance qui s’occupe de cette partie du protocole en fournissant une stack (ou pile) de référence. Celle-ci est réservée aux membres de l’alliance qui doivent l’implémenter dans leurs solutions.

Si l’on désire mettre en place un dispositif pouvant se connecter à un réseau ZigBee, il faudra suivre l’un des trois cas suivants :

  • Soit faire partie de la ZigBee Alliance et donc bénéficier de ses apports technologiques, notamment concernant cette stack de communication. Il faut savoir que l’inscription à cette structure coute environ 3 500 $ pour une entreprise.
  • Soit reprendre un produit développé par l’un des membres de la ZigBee Alliance et disposer de la stack, spécifique à ce produit, développée par le constructeur choisi.
  • Soit développer sa propre stack en accord avec les dernières spécifications disponibles. Cela représente bien entendu un travail très important qui doit s’adapter au système (hardware et software) retenu pour mettre en place le dispositif. Si ce développement est effectué à des fins commerciales, il devra être validé par la ZigBee Alliance.

Au niveau de la couche réseau, le routage est soit direct, soit indirect.
Le routage est direct lorsqu’un dispositif voulant transmettre des données connaît l’adresse réseau du destinataire. Cette adresse est donc transmise dans la trame pour atteindre et agir sur le dispositif prévu.

Dans le cas contraire, le routage indirect se fait lorsqu’un dispositif ne connaît pas l’adresse du destinataire. Un équipement de type routeur ou coordinateur fait la relation avec le vrai destinataire d’après la table de routage et la table de découvertes des routes.
Un dispositif qui n’a pas les capacités de routage (ZED) doit router les données suivant le routage hiérarchique (il remonte l’arbre).

La table de routage contient les données sur les destinataires. Il s’agit de l’adresse de destination de la route et le prochain dispositif à atteindre pour se « rapprocher » du destinataire.

La table de découverte d’une route contient les informations sur les sources du message. Elle stocke l’adresse d’origine du dispositif qui a fait la demande et l’adresse du dispositif qui va transmettre les données en tant qu’intermédiaire (entre la source et la destination). Elle contient aussi les coûts de transmission entre la source jusqu’au nœud actuel et du nœud jusqu’au destinataire. Elle peut donc adapter la route pour être plus performante en mettant à jour les adresses à utiliser.

Le choix d’une route, lorsque plusieurs routeurs en parallèle relaient l’information, se fait par rapport au routeur (ou coordinateur) au niveau du deuxième nœud au minimum. Lors de la demande de création de route, la table va recevoir plusieurs demandes à partir de la même adresse d’origine. Elle va alors comparer les « coûts » de transmission pour choisir le chemin ayant le coût le plus faible.

L’algorithme de routage suggéré par la ZigBee Alliance pour les réseaux maillés est AODV (Ad hoc On-Demand Vector Routing). C’est un protocole de routage dit « réactif » : une route est établie uniquement sur demande. L’avantage est qu’il ne charge pas le trafic.

Le routage au niveau applicatif se fait grâce à la table de liaison, contenu dans le coordinateur ou un routeur.

Les liaisons permettent de créer des liens logiques entre des dispositifs d’application complémentaires et des éléments de fins (capteurs). La table de liaison permet aussi d’associer à un attribut d’un dispositif en entrée plusieurs attributs de dispositifs en sortie ou l’inverse. La table de liaison est implémentée dans le coordinateur ZigBee. Le choix de ce dispositif vient du fait que le coordinateur ZigBee est nécessaire au réseau. Le second intérêt est, vu que le coordinateur est indispensable au réseau, qu’il doit être (en général) alimenté par le secteur. Ces deux raisons font que la table de liaison sera toujours accessible.

La table de liaison se repose sur trois critères normalisés par la ZigBee Alliance :

  • le profil

Un profil permet de créer une application interopérable et distribuée. Il s’agit donc de définir des formats de messages et le traitement des actions pour permettre à des dispositifs de demander, transmettre des données et savoir les interpréter.

Les profils sont développés par les entreprises pour permettre de répondre à des besoins spécifiques. Par exemple, le premier profil existant est fait pour gérer les lampes et des interrupteurs (home control lighting). Ce profil permet six types d’échanges de messages de contrôle.

Les profils permettent de créer aussi une norme autour de chaque application pour permettre l’interopérabilité des systèmes.

  • le cluster

Les clusters sont associés avec des flots de données entrant ou sortant. Les identificateurs de clusters sont uniques dans un profil. Les clusters permettent de lier deux dispositifs par l’association d’un cluster en entrée et d’un cluster en sortie en supposant qu’ils appartiennent au même profil. En fait deux dispositifs sont liés s’ils partagent le même besoin (côté récepteur) et la même ressource (côté émetteur). La table de liaison (binding table) contient pour chaque cluster un identifiant pour le définir (sur 8 bits) et l’adresse des deux dispositifs (source et destination).

  • l’attribut

Un attribut définit un capteur ou un actionneur. C’est l’élément qui décrit de façon la plus précise l’utilisation du dispositif (par exemple un capteur de mouvement, un buzzer, une lampe, etc.).

La table de liaison est la couche applicative qui permet de gérer la table de routage et la table de découverte de routes. C’est elle qui va permettre d’associer le relevé d’un capteur sur un dispositif à une action spécifique sur un autre dispositif à travers toutes les couches du protocole ZigBee. C’est une façon de simplifier l’accès lorsque le réseau contient beaucoup de connexions et de dispositifs : la reconnaissance entre les dispositifs qui dialoguent se fait par rapport à leurs « familles » (les profils et clusters) et leurs qualités (les attributs) communes.

Source Wikipédia

2016 - Tous droits protégés - Domotique Info