La norme IEEE 802.15.4
Si la norme 802.11 est dans la pratique uniquement utilisée par le
WiFi,
la norme 802.15.4 concernant les réseaux personnels est la base d'autres normes,
en particulier le ZigBee,
ISA100.11a, WirelessHART, MiWi, 6LoWPAN, TinyOS, Unison RTOS, DSPnano RTOS and Contiki ...
Aussi une page spéciale lui est dévolue pour la présenter.
Le 802.15.4 fait partie de la famille des LR WPAN (Low Rate Wireless Personal Area Network)
les réseaux personnels à bas débit.
La norme spécifie uniquement les couches basses, matérielles:
la couche physique, de liaison et réseau. Du coup, d'autres standards spécifient les couches hautes,
par exemple le ZigBee.
Les principales caractéristiques du 802.15.4 sont:
- la formation d'un réseau de type étoile ou maillé,
- l'allocation d'une adresse de 16 bits ou de 64 bits,
- l'utilisation de CSMA/CA pour communiquer,
- la faible consommation d'énergie,
- la détection d'énergie (ED),
- l'indication de la qualité de la liaison (LQI),
Deux types de dispositifs sont définis par l'IEEE:
- FFD Full Function Device: dispositif ayant toutes les fonctions possibles.
Le FFD peut assurer trois rôles dans un réseau : coordinateur PAN, routeur ou dispositif
relié à un capteur (plus petite fonction possible, appelé dispositif de fin).
- RFD Reduced Function Device: dispositif ayant des fonctions limitées.
Le RFD est prévu pour des applications simples (signaler l'état d'un capteur,
contrôler l'activation d'un actionneur). Il est considéré comme un dispositif "de fin" (end device),
dans le sens où il n'est pas essentiel au réseau.
Pour communiquer sur un même réseau, un FFD (au moins) et des RFD
doivent utiliser le même canal physique parmi ceux définis selon la bande de fréquence choisie.
Le FFD peut dialoguer avec des RFD et des FFD, tandis que le RFD dialogue avec un FFD uniquement.
Les fréquences et types de modulation
Le standard de 2003 spécifie 3 bandes de fréquences possibles, mais d'autres sont aussi considérées:
Après avoir défini 4 niveaux physiques possible en 2006 (= des types de modulation différents),
deux nouveaux niveaux physiques sont ajoutés en 2007 (802.15.4a):
- UWB: Direct-sequence ultra-wideband, dans 3 régions: < 1 GHz, entre 3 et 5 GHz
et entre 6 et 10 GHz.
- CSS Chirp Spread Spectrum, alloué dans la bande des 2.4 GHz.
En 2009, les 802.15.4c et 802.15.4d ont encore ajouté d'autres niveaux physiques:
un dans la bande des 780 MHz utilisant le O-QPSK ou le MPSK,
une autre dans les 950 MHz utilisant le GFSK ou le BPSK.
Conclusion: la multitude de possibilités sur les différentes fréquences et différents
types de modulation peut faire peur quand on va parler d'interopérabilité des produits
construits sur cette norme. Mais il faut le voir sous l'angle "si vous voulez utiliser
du 968MHz et tel type de modulation, alors on vous propose de faire de cette manière".
Il faut -évidemment- que les normes construites sur cette norme limitent voire
imposent un seul type de fréquence + modulation, sinon cela va devenir très compliqué...
Comme une seule bande est worldwide, attendez vous à ce que la bande des 2.4 GHz
soit très encombrée à terme (le WiFi l'utilise aussi...).
Couche d'accès au médium (MAC)
Pour les courageux, voici quelques détails concernant le fonctionnement, en particulier avec
tous ces dispositifs voulant communiquer en même temps, n'étant pas tous forcément à portée,
il a bien fallu émettre quelques règles du jeu...
L'ensemble des participants forment un réseau pouvant
avoir diverses topologies, et échangent des trames (frames),
unité de base d'échange d'information. Il existe 4 types de trames:
- données (data)
- acquittement (acknowledgment)
- balise (beacon)
- trame de commande MAC (MAC command frames)
Les caractéristiques de la couche MAC sont la gestion des balises,
l'accès au canal, la gestion des GTS (Guaranteed Time Slot), la validation des trames, etc.
La couche MAC permet aussi d'utiliser des mécanismes de sécurité lié à l'implémentation des applications.
Il existe cependant deux modes de fonctionnement de la couche MAC
selon le type de topologie utilisé et le besoin en débit garanti, à savoir :
- le mode non-beacon utilisant CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance),
- le mode beacon, avec l'envoi à période régulière d'une balise pour synchroniser les dispositifs,
garantissant un débit au capteur ayant un GTS.
Réseau dit "non-beacon"
Il existe une méthode de réseau "sans balise" (non-beacon).
Cela signifie que le coordinateur reste par défaut dans l'état d'attente de données.
Le dispositif qui veut transmettre regarde si le canal est libre.
Si c'est le cas, alors il transmet sinon il attend une période aléatoire.
Lorsque le coordinateur a des données à transmettre à un dispositif,
il attend que le dispositif rentre en contact et lui demande les données.
Le coordinateur envoie alors un accusé de réception de la requête.
Si des données sont en suspens, le coordinateur transmet les données en utilisant le même principe (CSMA/CA).
S'il n'y a pas de données en suspens, le coordinateur envoie une trame de données vide (longueur 0). Le dispositif accuse réception des données.
Le mode non-beacon est généralement utilisé pour les capteurs (type interrupteur)
qui dorment la majorité du temps (99 %). Quand un événement se passe,
les capteurs se réveillent instantanément et envoient une trame d'alerte.
Le coordinateur dans ce type de réseau doit être alimenté sur secteur, car il ne dort jamais:
il est par défaut dans l'état d'écoute d'une trame d'événement ou de présence.
Dans ce type de réseau, le coordinateur n’émet pas de balise et empêche toute synchronisation des dispositifs.
Cette solution a pour avantage d’optimiser l’autonomie des batteries des capteurs
et d’utiliser le canal uniquement lorsqu’il est nécessaire de transmettre des données utiles.
Par contre du fait de CSMA/CA, l’accès au canal n’est pas garanti dans une période donnée
(tout dépend de la densité du réseau et du nombre de dispositifs voulant transmettre en même temps).
Réseau avec envoi de balise, dit "beacon"
L'objectif d'un réseau fonctionnant avec l'envoi périodique d'une balise est
de synchroniser les dispositifs avec le coordinateur. Dans un réseau IEEE 802.15.4,
tous les dispositifs (y compris le coordinateur) fonctionnent de façon indépendante.
Par contre pour communiquer sur le réseau, ils doivent savoir à quel moment se réveiller pour transmettre.
Pour cela il est nécessaire qu'ils se synchronisent par rapport au réveil du coordinateur
(ou d'un routeur) comme il est responsable du routage des données à travers le réseau.
Lors de la réception d'une balise, tous les dispositifs sont informés de la durée de la superframe
(période d'activité du coordinateur) et à quel moment ils peuvent transmettre des données.
Ils recevront aussi une indication à partir de quel moment le coordinateur rentre en hibernation
et pour quelle durée. Les dispositifs savent alors quand ils peuvent rentrer en hibernation ou transmettre.
L'envoi régulier d'un beacon permet de resynchroniser l'ensemble des dispositifs
et d'informer des changements dans la superframe (par exemple la réservation d'un GTS).
De plus, le beacon d'un coordinateur ou d'un routeur est transmis sans utiliser CSMA/CA.
En effet, tous les dispositifs doivent se réveiller quelques instants avant l'émission du beacon
et sont mis en attente de cette trame pour se synchroniser. Le dispositif écoute la balise du réseau,
se resynchronise sur la balise et transmet des trames de données en utilisant les slots de la superframe.
Les fin de slots sont alignées lors de la transmission d'une balise.
Description de la CAP et CFP
Dans ce mode de fonctionnement le coordinateur a une période d'activité
et une periode d'hibernation permettant d'économiser de l'énergie.
La superframe est en fait la période d'activité du coordinateur qui mesure 16 slots de temps.
Celle-ci se divise en deux parties :
- la CAP (Contention Access Period) similaire au mode sans beacon :
tous les dispositifs peuvent transmettre de façon aléatoire,
mais en respectant la durée d'un slot (une transmission ne peut pas démarrer au milieu d'un slot),
- la CFP (Contention Free Period) permettant de garantir l'accès au canal
à un dispositif pendant une durée déterminée en nombre de slots, appelée GTS (Guarantee Time Slot).
Tous les dispositifs voulant communiquer pendant la CAP (contention access period)
entre deux balises sont mis en concurrence avec les autres en utilisant CSMA/CA.
Comme les capteurs peuvent émettre uniquement à partir d’un nouveau slot,
l’intervalle de temps entre deux tentatives d’accès au canal sera aligné sur les slots.
La transmission est cependant limité par la taille de la CAP. Si le dispositif n'a pas pu
émettre pendant la CAP, il devra attendre la prochaine superframe pour accéder au canal.
De même, si le nombre de slots nécessaire à la transmission de données est plus important
que le nombre de slots restant dans la CAP, alors le dispositif devra différer l'envoi à la prochaine superframe.
Toutes les transactions doivent être terminées avant le prochain beacon du réseau.
Le coordinateur peut dédier des portions de la superframe à des applications.
Ces portions sont appelées guaranteed time slots (GTS). Les GTS forment le CFP (contention free period).
Ces slots sont réservés en partant du dernier slot de la superframe et en revenant vers le beacon.
Le coordinateur peut allouer jusqu'à sept GTS. Un GTS peut occuper plus d'un slot.
Mais une portion suffisante du CAP doit être réservée pour prévoir l'arrivée de nouveaux dispositifs dans le réseau.
Utilisation de la CFP et des GTS
L'allocation d'un GTS fait suite à une demande de la part d'un dispositif pendant la CAP.
L'information sur la réservation d'un GTS (et l'affectation du GTS dans la CFP)
est inscrite dans la prochaine balise, avec l'adresse du dispositif concerné, la durée du GTS et le slot de départ.
Un intervalle de temps est alors alloué pour chaque GTS d'après la méthode FIFO,
et ils sont "placés" en partant de la fin de la superframe.
La libération d'un GTS se fait soit par demande de la part du dispositif,
soit parce que le coordinateur n'arrive plus à joindre le dispositif.
Configuration de la balise et de la durée d'activité du coordinateur
Le coordinateur détermine l'ordre de la balise et de la superframe (durée d'activité)
pour chaque dispositif du réseau. L'objectif est de permettre aux nœuds d'un réseau
de "dormir" pour économiser de l'énergie. La configuration de la balise permet
de prévoir les intervalles d'activité de la superframe de chaque dispositif pour qu'il n'y ait pas de recouvrement.
Une balise est envoyée de façon périodique et elle est définie par le coordinateur.
La durée de la superframe et la période d'envoi de la balise varie entre 15.38ms et 252s.
La période d'inactivité est définie comme la différence entre l'intervalle
entre l'émission de deux balises et la durée de la superframe.
Voir la page sur les normes 802.xx
pour les liens sur le groupe de travail IEEE et les standards.