Articles

Zigbee

Il existe trois classes de périphériques Zigbee :

  • Coordinateur Zigbee (ZC): Le périphérique le plus capable, le coordinateur forme la racine de l’arborescence du réseau et peut relier d’autres réseaux. Il y a précisément un coordinateur Zigbee dans chaque réseau car c’est l’appareil qui a démarré le réseau à l’origine (la spécification Zigbee LightLink permet également un fonctionnement sans coordinateur Zigbee, ce qui le rend plus utilisable pour les produits ménagers prêts à l’emploi). Il stocke des informations sur le réseau, y compris en tant que centre de confiance et référentiel pour les clés de sécurité.
  • Routeur Zigbee (ZR): En plus d’exécuter une fonction d’application, un routeur peut agir comme un routeur intermédiaire, transmettant des données à partir d’autres périphériques.
  • Zigbee end device (ZED): Contient juste assez de fonctionnalités pour parler au nœud parent (le coordinateur ou un routeur) ; il ne peut pas relayer les données d’autres périphériques. Cette relation permet au nœud d’être endormi une grande partie du temps, ce qui donne une longue durée de vie de la batterie. Un ZED nécessite le moins de mémoire et peut donc être moins coûteux à fabriquer qu’un ZR ou un ZC.

Les protocoles Zigbee actuels prennent en charge les réseaux activés par balise et non activés par balise. Dans les réseaux non activés par balise, un mécanisme d’accès au canal CSMA/CA non connecté est utilisé. Dans ce type de réseau, les routeurs Zigbee ont généralement leurs récepteurs actifs en continu, nécessitant une alimentation supplémentaire. Cependant, cela permet des réseaux hétérogènes dans lesquels certains appareils reçoivent en continu tandis que d’autres transmettent lorsque cela est nécessaire. L’exemple typique d’un réseau hétérogène est un interrupteur d’éclairage sans fil: Le nœud Zigbee de la lampe peut recevoir en permanence car il est alimenté de manière fiable par l’alimentation secteur de la lampe, tandis qu’un interrupteur d’éclairage alimenté par batterie resterait endormi jusqu’à ce que l’interrupteur soit lancé. Auquel cas, l’interrupteur se réveille, envoie une commande à la lampe, reçoit un accusé de réception et se met en veille. Dans un tel réseau, le nœud lamp sera au moins un routeur Zigbee, sinon le coordinateur Zigbee ; le nœud de commutation est généralement un périphérique final Zigbee. Dans les réseaux compatibles avec les balises, les routeurs Zigbee transmettent des balises périodiques pour confirmer leur présence à d’autres nœuds de réseau. Les nœuds peuvent dormir entre les balises, prolongeant ainsi la durée de vie de leur batterie. Les intervalles des balises dépendent du débit de données; ils peuvent aller de 15,36 millisecondes à 251,65824 secondes à 250 kbit / s, de 24 millisecondes à 393,216 secondes à 40 kbit / s et de 48 millisecondes à 786,432 secondes à 20 kbit / s. Les longs intervalles des balises nécessitent une synchronisation précise, ce qui peut être coûteux à mettre en œuvre dans des produits à faible coût.

En général, les protocoles Zigbee minimisent le temps d’allumage de la radio, afin de réduire la consommation d’énergie. Dans les réseaux de balisage, les nœuds doivent uniquement être actifs pendant la transmission d’une balise. Dans les réseaux non compatibles avec les balises, la consommation d’énergie est résolument asymétrique: certains appareils sont toujours actifs tandis que d’autres passent la plupart de leur temps à dormir.

À l’exception de Smart Energy Profile 2.0, les appareils Zigbee doivent être conformes à la norme LR-WPAN (Low-rate Wireless Personal Area Network) IEEE 802.15.4-2003. La norme spécifie les couches de protocole inférieures — la couche physique (PHY) et la partie de contrôle d’accès au support de la couche de liaison de données. Le mode d’accès de base au canal est l’accès multiple à détection de porteuse avec évitement de collision (CSMA/CA). Autrement dit, les nœuds communiquent d’une manière quelque peu analogue à la façon dont les humains conversent: un nœud vérifie brièvement que les autres nœuds ne parlent pas avant de commencer. Le CSMA/CA n’est pas utilisé dans trois exceptions notables :

  • Les accusés de réception des messages
  • Les balises sont envoyées selon un calendrier fixe.
  • Les périphériques des réseaux compatibles avec les balises qui ont des exigences en temps réel à faible latence peuvent également utiliser des plages horaires garanties.

Network layerEdit

Les principales fonctions de la couche réseau sont de permettre l’utilisation correcte de la sous-couche MAC et de fournir une interface appropriée pour une utilisation par la couche supérieure suivante, à savoir la couche application. Ses capacités et sa structure sont celles généralement associées à de telles couches réseau, y compris le routage. La fonction de la couche réseau est exactement comme elle sonne; Elle traite des fonctions réseau telles que la connexion, la déconnexion et la configuration des réseaux. Il ajoutera un réseau, allouera des adresses et ajoutera et supprimera certains périphériques. Cette couche utilise des topologies d’étoiles, de mailles et d’arbres. Il ajoute une interface à la couche d’application.

D’une part, l’entité de données crée et gère des unités de données de couche réseau à partir de la charge utile de la couche application et effectue un routage selon la topologie courante. D’autre part, il y a le contrôle de couche, qui est utilisé pour gérer la configuration de nouveaux périphériques et établir de nouveaux réseaux: il peut déterminer si un périphérique voisin appartient au réseau et découvre de nouveaux voisins et routeurs. La commande peut également détecter la présence d’un récepteur, ce qui permet une communication directe et une synchronisation MAC.

Le protocole de routage utilisé par la couche réseau est AODV. Dans AODV, pour trouver le périphérique de destination, AODV diffuse une demande de route à tous ses voisins. Les voisins diffusent ensuite la demande à leurs voisins jusqu’à ce que la destination soit atteinte. Une fois la destination atteinte, il envoie sa réponse d’itinéraire via une transmission monodiffusion en suivant le chemin le moins coûteux vers la source. Une fois que la source reçoit la réponse, elle mettra à jour sa table de routage pour l’adresse de destination du prochain saut dans le chemin et le coût du chemin.

Application layerEdit

La couche application est la couche de plus haut niveau définie par la spécification et constitue l’interface efficace du système Zigbee pour ses utilisateurs finaux. Il comprend la majorité des composants ajoutés par la spécification Zigbee: ZDO et ses procédures de gestion, ainsi que les objets d’application définis par le fabricant, sont considérés comme faisant partie de cette couche. Cette couche lie des tables, envoie des messages entre des périphériques liés, gère les adresses de groupe, réassemble des paquets et transporte également des données. Il est responsable de fournir un service aux profils d’appareils Zigbee.

Composants principauxmodifier

Le ZDO (Zigbee device object), un protocole de la pile de protocoles Zigbee, est responsable de la gestion globale des périphériques, des clés de sécurité et des stratégies. Il est chargé de définir le rôle d’un périphérique en tant que coordinateur ou terminal, comme mentionné ci-dessus, mais aussi de découvrir de nouveaux périphériques (one-hop) sur le réseau et d’identifier les services proposés. Il peut ensuite établir des liens sécurisés avec des périphériques externes et répondre aux demandes contraignantes en conséquence.

La sous-couche de support d’application (APS) est l’autre composant standard principal de la couche, et en tant que telle, elle offre une interface et des services de contrôle bien définis. Il fonctionne comme un pont entre la couche réseau et les autres éléments de la couche application: il conserve des tables de liaison à jour sous la forme d’une base de données, qui peut être utilisée pour trouver des appareils appropriés en fonction des services nécessaires et de ceux proposés par les différents appareils. En tant qu’union entre les deux couches spécifiées, il achemine également les messages à travers les couches de la pile de protocoles.

Modèles de communicationsedit

Modèle de communication de haut niveau Zigbee

Une application peut être constituée d’objets communicants qui coopèrent pour effectuer les tâches souhaitées. L’objectif de Zigbee est de répartir le travail entre de nombreux appareils différents qui résident dans des nœuds Zigbee individuels qui à leur tour forment un réseau (ce travail sera généralement en grande partie local à chaque appareil, par exemple, le contrôle de chaque appareil électroménager).

La collection d’objets qui forment le réseau communique en utilisant les facilités fournies par les APS, supervisées par des interfaces ZDO. Le service de données de la couche application suit une structure type demande-confirmation/indication-réponse. Au sein d’un seul appareil, jusqu’à 240 objets d’application peuvent exister, numérotés entre 1 et 240. 0 est réservé pour l’interface de données ZDO et 255 pour la diffusion; la plage 241-254 n’est pas actuellement utilisée mais pourrait l’être à l’avenir.

Deux services sont disponibles pour les objets d’application à utiliser (dans Zigbee 1.0) :

  • Le service de paire clé-valeur (KVP) est destiné à des fins de configuration. Il permet la description, la demande et la modification de l’attribut d’objet via une interface simple basée sur les primitives getting/set et event, certaines autorisant une demande de réponse. La configuration utilise du XML compressé (le XML complet peut être utilisé) pour fournir une solution adaptable et élégante.
  • Le service de messagerie est conçu pour offrir une approche générale du traitement de l’information, évitant la nécessité d’adapter les protocoles d’application et les frais généraux potentiels encourus par KVP. Il permet de transmettre des charges utiles arbitraires sur des trames APS.

L’adressage fait également partie de la couche d’application. Un nœud de réseau se compose d’un émetteur-récepteur radio conforme à la norme 802.15.4 et d’une ou plusieurs descriptions de périphériques (essentiellement des collections d’attributs qui peuvent être interrogés ou définis, ou qui peuvent être surveillés par des événements). L’émetteur-récepteur est la base pour l’adressage, et les dispositifs à l’intérieur d’un nœud sont spécifiés par un identifiant de point final compris entre 1 et 240.

Découverte de la communication et des devices

Pour que les applications communiquent, les dispositifs qui les composent doivent utiliser un protocole d’application commun (types de messages, formats, etc.) ; ces ensembles de conventions sont regroupés en profils. De plus, la liaison est décidée en faisant correspondre des identifiants de cluster d’entrée et de sortie, uniques dans le contexte d’un profil donné et associés à un flux de données entrant ou sortant dans un dispositif. Les tables de liaison contiennent des paires source et destination.

Selon les informations disponibles, la découverte de l’appareil peut suivre différentes méthodes. Lorsque l’adresse réseau est connue, l’adresse IEEE peut être demandée à l’aide d’une communication monodiffusion. Quand ce n’est pas le cas, les pétitions sont diffusées (l’adresse IEEE faisant partie de la charge utile de la réponse). Les périphériques finaux répondront simplement avec l’adresse demandée tandis qu’un coordinateur réseau ou un routeur enverra également les adresses de tous les périphériques qui lui sont associés.

Ce protocole de découverte étendu permet aux périphériques externes de découvrir les périphériques d’un réseau et les services qu’ils offrent, que les points finaux peuvent signaler lorsqu’ils sont interrogés par le périphérique de découverte (qui a précédemment obtenu leurs adresses). Des services de correspondance peuvent également être utilisés.

L’utilisation d’identifiants de cluster impose la liaison d’entités complémentaires utilisant les tables de liaison, qui sont maintenues par les coordinateurs Zigbee, car la table doit toujours être disponible au sein d’un réseau et les coordinateurs sont les plus susceptibles d’avoir une alimentation permanente. Certaines applications peuvent avoir besoin de sauvegardes, gérées par des couches de niveau supérieur. La liaison nécessite un lien de communication établi ; une fois qu’il existe, l’ajout ou non d’un nouveau nœud au réseau est décidé, en fonction des stratégies d’application et de sécurité.

La communication peut avoir lieu juste après l’association. L’adressage direct utilise à la fois l’adresse radio et l’identifiant de point de terminaison, tandis que l’adressage indirect utilise tous les champs pertinents (adresse, point de terminaison, cluster et attribut) et nécessite qu’ils soient envoyés au coordinateur du réseau, qui gère les associations et traduit les demandes de communication. L’adressage indirect est particulièrement utile pour garder certains appareils très simples et minimiser leur besoin de stockage. Outre ces deux méthodes, la diffusion vers tous les terminaux d’un périphérique est disponible et l’adressage de groupe est utilisé pour communiquer avec des groupes de terminaux appartenant à un ensemble de périphériques.