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:

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:

PaysFréquenceCanauxDébitCommentaires
worldwide2400 à 2483.5 MHz16 canaux de 5 MHz 250 kbit/s - fréquence la plus répandue.
- OQPSK à 2 bit par symbole (pour les intimes).
Amériques
Australie
902 à 928 MHz10 canaux en 2003
puis 30 en 2006
40 kbit/s
250 kbit/s en 2006
- en 2006, 4 niveaux physiques sont définis, avec des codages particuliers, et même un échange dynamique avec la bande des 868 MHz.
Europe968 à 968.6 MHz1 canal en 2003
puis 3 en 2006
20 kbit/s
100 kbit/s en 2006
- idem 915 MHz.
China314 à 316 MHz
China430 à 434 MHz
China779 à 787 MHz
Japan950 à 956 MHz

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

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:

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 :

IEEE 802.15.4 operational modes

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 :

IEEE_802.15.4 exemple de superframe

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.


  • 802.15.4 sur Wikipedia (principale référence)
  • 802.15.4 sur Wikipedia en anglais