ZigBee

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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 : WPAN).

Ratifiées le 14 décembre 2004, les spécifications de ZigBee 1.0 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% [réf. nécessaire] 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%. [réf. nécessaire]

En 2006, une estimation du coût unitaire pour un nœud ZigBee[réf. nécessaire] a révélé un prix de 1.10$ par unité dans le cadre d’une production en très grand nombre. Il faut ajouter le prix du microcontrôleur qui commande le circuit, ce qui augmente légèrement le prix. À titre de comparaison, la technologie Bluetooth, lancée en 1998, annonçait à cette époque un prix unitaire de production compris entre 4 et 6 $, maintenant redescendu à moins de 3 $.

ZigBee par rapport à d'autres protocoles sans fil[modifier | modifier le code]

Comparaison des protocoles Zigbee, Bluetooth et Wi-Fi
Caractéristique Zigbee Bluetooth Wi-Fi
IEEE 802.15.4 802.15.1 802.11a/b/g/n/n-draft
Besoins mémoire 4-32 ko 250 ko + 1 Mo +
Autonomie avec pile Années Mois Heures
Nombre de nœuds 65 000+ 7 32
Vitesse de transfert 250 kb/s 1 Mb/s 11-54-108-320-1000 Mb/s
Portée (environ) 100 m 10 m 300 m

Historique[modifier | modifier le code]

  • 1998 : Dès l’arrivée des technologies sans fil Wi-Fi et Bluetooth, les premières ébauches de réseaux de type ZigBee firent leur apparition dans le cadre d’applications où les technologies précédentes n’étaient pas utilisables. En particulier, de nombreuses recherches ont été menées sur des réseaux s’organisant automatiquement et composés de petites radios. La technologie Bluetooth a beaucoup inspiré le protocole ZigBee.
  • Mai 2003 : Le standard IEEE 802.15.4 est annoncé (souvent associé à tort au protocole ZigBee).
  • Eté 2003 : Philips semiconductors décide d’abandonner le regroupement autour de ZigBee au sein de la ZigBee Alliance. C’est un coup dur pour le projet qui ne bénéficie plus du soutien de ce grand groupe.
  • Octobre 2004 : La ZigBee Alliance annonce que le nombre d’inscriptions a doublé pour arriver à plus d’une centaine d’entreprises dans 22 pays.
  • 14 décembre 2004 : Ratification des premières spécifications de ZigBee.
  • 13 juin 2005 : La ZigBee Alliance publie les premières spécifications officielles de la version ZigBee 1.0 qui sont désormais disponibles en libre téléchargement.

Applications[modifier | modifier le code]

Un XBee

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écient particulièrement ce protocole en plein essor et dont la configuration du réseau maillé 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.

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

Fréquences utilisés[modifier | modifier le code]

Le protocole 802.15.4 utilisé par ZigBee définit 3 bandes de fréquences utilisables :

Bande Disponibilité Nombre de canaux Vitesse maxi théorique
868 MHz Europe 1 20 kbit/s
915 MHz Amériques et Australie 10 40 kbit/s
2.4 GHz Disponible partout 16 250 kbit/s

Présentation de la stack ZigBee[modifier | modifier le code]

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 coûte 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.

Routage des messages[modifier | modifier le code]

Routage au niveau réseau[modifier | modifier le code]

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 PAN 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.

Routage au niveau applicatif[modifier | modifier le code]

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, décrits ci-après :

  • le profil
  • le cluster
  • l'attribut

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.

Profil[modifier | modifier le code]

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.

Cluster[modifier | modifier le code]

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).

Attribut[modifier | modifier le code]

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.).

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]