# IEEE 802.15.4

Der Standard IEEE 802.15.4 beschreibt ein Übertragungsprotokoll für Wireless Personal Area Networks (WPAN). Er definiert die untersten beiden Schichten des OSI-Modells, den Bitübertragungs- und den MAC-Layer. Höhere Protokollebenen mit Funktionen zum Routing und einer Anwendungsschnittstelle obliegen anderen Standards für Funknetze wie ZigBee oder 6LoWPAN. Wesentliche Entwicklungsziele für das Protokoll sind geringe Leistungsaufnahme für einen langen Betrieb über Batterieversorgung, kostengünstige Hardware, sichere Übertragung, Nutzung der lizenzfreien ISM-Bänder und Parallelbetrieb mit anderen Sendern auf diesen Frequenzen, insbesondere WLAN und Bluetooth. Durch diese Eigenschaften eignet sich der Standard IEEE 802.15.4 vor allem für drahtlose Sensornetze (WSN) und für direkt am Körper getragene Sensoren und Aktoren (WBAN, Wireless Body Area Network).

## Grundlegendes

Ende der 1990er Jahre wurde ein Bedarf für einen einfachen Standard zur drahtlosen Datenübertragung für Geräte mit geringer Leistungsaufnahme und niedriger Datenübertragungsrate gesehen. Die damals verfügbaren Standards IEEE 802.11 und Bluetooth waren zu komplex und besaßen einen zu großen Energiebedarf, um sie mit kostengünstigen Bauteilen implementieren zu können. Bei der Entwicklung von IEEE 802.15.4 besaß folglich nicht eine hohe Datenübertragungsrate, sondern das Energiemanagement und die Einfachheit des standardisierten Protokolls höchste Priorität.
Charakteristisch für die Knoten eines IEEE-802.15.4-Netzes sind die langen Ruhephasen, wodurch ein Knoten die meiste Zeit in einem energiesparenden Betriebszustand verweilen kann. Sobald er Daten senden oder empfangen möchte, kann er in lediglich 15 ms aufwachen, anschließend die Kommunikation abwickeln und sich wieder schlafen legen. Dadurch können batteriebetriebene Netzknoten typische Laufzeiten von sechs Monaten bis zu zwei Jahren erreichen.

### Topologien

Der IEEE 802.15.4 sieht zwei Typen von Netzknoten mit jeweils unterschiedlichem Funktionsumfang vor: Die „Reduced Function Devices“ (RFD) und die „Full Function Devices“ (FFD). Ein RFD besitzt nur eine Teilmenge des standardisierten Funktionsumfangs, wodurch ihm nur die Kommunikation mit FFDs möglich ist, er jedoch auch einfacher und kostengünstiger entwickelt werden kann. RFDs sind typisch Sensoren oder Aktoren im Netzwerk, die nur sehr selten Daten senden oder empfangen, keine Verwaltungsaufgaben übernehmen und so die meiste Zeit in einem stromsparenden Zustand verweilen. FFDs hingegen besitzen den vollen Funktionsumfang und können sowohl mit RFDs als auch mit anderen FFDs kommunizieren. Ein FFD pro Netz übernimmt die spezielle Funktion des PAN-Koordinators. Er legt den PAN-Identifier fest, der das Netzwerk von anderen IEEE-802.15.4-Netzen in Funkreichweite abgrenzt. Des Weiteren übernimmt er im Slotted Mode die Synchronisation aller Netzknoten. Ein Netz kann bis zu 254 Knoten besitzen.
Der Standard definiert aufbauend auf die genannten Knotentypen drei verschiedene Netztopologien:
* Stern. In einem Stern kommunizieren alle Knoten direkt mit dem Koordinator. Der Koordinator ist in solch einer Konstellation gewöhnlich ein leistungsfähiges Gerät mit Anbindung ans Stromnetz, während die anderen Knoten batteriebetrieben sind.
* Peer-to-Peer. In diesem Netz gibt es zwar ebenfalls einen Koordinator, jedoch können die Knoten auch direkt untereinander kommunizieren, sofern sie sich in gegenseitiger Reichweite befinden.
* Baumstruktur (Cluster Tree). RFDs repräsentieren hier die Blätter eines Baumes. Sie sind verbunden mit FFDs, die für einen Teil des Netzes die Funktion eines Koordinators übernehmen. Die FFDs selbst sind wiederum direkt oder indirekt über weitere FFDs mit Koordinatorfunktion mit dem PAN-Koordinator des gesamten Netzes verbunden. Die entstandene Baumstruktur mit dem PAN-Koordinator als Wurzel stellt eine Mischung der ersten beiden Topologien dar. Mit den Möglichkeiten des Standards allein ist jedoch keine vollständige Vermaschung und das Weiterleiten von Nachrichten (Routing) möglich.
Da der Standard keine Vermittlungsschicht (Network Layer) definiert, müssen Funktionen wie Routing durch höhere Schichten anderer Protokolle realisiert werden, die auf IEEE 802.15.4 aufsetzen. Damit sind echte vermaschte Netze möglich, in denen die FFDs als Repeater dienen und jeder Knoten über Zwischenstationen mit einem anderen kommunizieren kann, sogar RFDs mit anderen RFDs.

### Standardisierte Schnittstellen

IEEE 802.15.4 definiert die untersten beiden Schichten des OSI-Referenzmodells. Höhere Schichten werden durch andere Standards wie ZigBee realisiert. Die einzelnen Schichten realisieren bestimmte Funktionen, wozu sie Dienste der nächst unteren Schicht in Anspruch nehmen. Die eigenen Funktionen stellen sie wiederum als Dienst den darüber liegenden Schichten zur Verfügung. Die Schnittstellen zwischen den Schichten heißen Service Access Point. Die genaue Implementierung der Funktionen kann durch jeden Hersteller unterschiedlich erfolgen, jedoch ist der zur Verfügung stehende Funktions- bzw. Dienstumfang fest vorgeschrieben. Dadurch stellt der Standard sicher, dass die Kommunikation zwischen Geräten auch mit Implementierungen verschiedener Hersteller reibungslos funktioniert.

## Bitübertragungsschicht
### Frequenzbänder und Datenraten

Für die Funkübertragung stehen die ISM-Bänder 868/915 MHz (Europa bzw. USA) und 2,45 GHz (nahezu weltweit) zur Verfügung. Aufgrund der unterschiedlichen Frequenzen kann durch die Hardware jeweils nur ein Band genutzt werden. Die Verbreitung der Funkmodule für das 2,45-GHz-Band ist sehr groß, nur wenige nutzen das 868/915-MHz-Band.
| Kanalparameter | Kanalparameter | Kanalparameter | Kanalparameter | Kanalparameter | Datenparameter (2003) | Datenparameter (2003) | Datenparameter (2003) | Spreizparameter (2003) | Spreizparameter (2003) |
| Frequenzband | Bandbreite | Kanalabstand | Kanalnummer | Region | Datenrate (brutto) | Symbolrate | Symbole | Chirprate | Modulation |
| 868–868,6 MHz | 300 kHz | | 0 | Europa | 20 kBit/s | 20 kBaud | binär | 300 kchirps/s | BPSK |
| 902–928 MHz | 600 kHz | 2 MHz | 1–10 | USA | 40 kBit/s | 40 kBaud | binär | 600 kchirps/s | BPSK |
| 2400–2483,5 MHz | 2 MHz | 5 MHz | 11–26 | weltweit | 250 kBit/s | 62,5 kBaud | 16 orthogonal | 2 Mchirps/s | Offset-QPSK |
Zur Reduzierung der Störempfindlichkeit wird das Frequenzspreizverfahren DSSS eingesetzt. Im 868-MHz-Frequenzband stellt jedes Symbol auf Grund des verwendeten Modulationsverfahrens ein Bit dar und wird auf einen 15 Chirps langen Code umgesetzt. Bei einer Chirprate von 300 kchirps/s ergibt das eine Datenrate von 20 kBit/s. Im 915-MHz-Frequenzband ist die Chirprate mit 600 kchirps/s doppelt so hoch, wodurch sich eine Datenrate von 40 kBit/s ergibt. Im 2,45-GHz-Frequenzband wird eine Modulation mit 4 Bit/Symbol, eine Symbolspreizung auf 32 Chirps und eine Chirprate von 2 Mchirps/s verwendet, was zu einer Datenrate von 250 kBit/s führt. Die verwendeten Modulationsverfahren wurden gewählt, weil sie ein ausgewogenes Verhältnis zwischen Einfachheit und Robustheit aufweisen.
Da das Längenfeld 7 Bit groß ist, kann ein Datenpaket 0 bis 127 Byte beinhalten. Für Datentypen die mehr als ein Byte umfassen, erfolgt die Byte-Reihenfolge nach dem Prinzip „niedrigstwertiges Byte (Little-Endian) zuerst“. Die Reichweite beträgt im Außenbereich maximal 100 Meter und innen 30 Meter.
Weiterentwicklung:
* Im Jahr 2006 hob eine überarbeitete Version des Standards die Datenraten vom 868-MHz-Band exklusiv mit der Parallel Spread Spectrum Technologie (PSSS) auf 250 kBit/s und vom 915-MHz-Band u. a. auch mit PSSS ebenfalls auf 250 kBit/s an.
* Im August 2007 wurden mit dem Zusatz IEEE 802.15.4a zwei weitere Übertragungsverfahren für die Bitübertragungsschicht hinzugefügt. Das erste ist ein Ultrabreitbandverfahren (UWB), das auf Frequenzen unter 1 GHz, zwischen 3 und 5 GHz sowie zwischen 6 und 10 GHz überträgt. Das andere ist das Chirp Spread Spectrum-Verfahren (CSS) welches im 2,45-GHz-Band arbeitet und eine Möglichkeit zur Lokalisierung im Netz bietet. Diese Weiterentwicklung wurde mit der Fassung IEEE 802.15.4-2011 im Jahr 2011 offiziell standardisiert.

### Sendeleistung

Die typische Sendeleistung eines Transceivers beträgt 0 dBm (1 mW) und die Empfindlichkeit liegt unter −90 dBm. Auch wenn das vorgegebene Modell der Pfadverluste für Gebäude gilt, zeigt die Praxis, dass oft nur ein Drittel der angegebenen Reichweite möglich ist.
    $L(in\ dB)=58,5+33\cdot \lg \left({\frac {d}{8m}}\right)\ ;\ d>8m$
IEEE 802.15.4 wurde für den Parallelbetrieb mit WLAN und Bluetooth ausgelegt. Praxis-Tests zeigten im 2,45-GHz-Band Probleme bei der Koexistenz von IEEE 802.15.4 mit WLAN und Bluetooth. Bei Bluetooth erweist sich das seit der Version 1.2 eingeführte adaptive Frequenzhopping, das WLAN ausweicht, aber dafür die verbleibenden Frequenzen häufiger belegt, als Störer. WLAN macht durch den stark gewachsenen Datenverkehr Probleme. Die Aussagekraft dieser Ergebnisse wird von der ZigBee Alliance angezweifelt und durch eine Verträglichkeitsstudie ein Gegenbeweis angetreten.

### Hardware

Die Größe der Antenne im 2,45-GHz-Band kann sehr klein ausfallen, ein Modul mit Antenne, Transceiver und Mikroprozessor hat etwa die Abmessungen von zwei Ein-Euro-Münzen. Die Nutzung der für WLAN entwickelten Knickantennen ist auch möglich.
Die unterstehende Grafik zeigt das Blockschaltbild eines Transceiver-Chips, dem die Hardware der meisten Hersteller entspricht. Lediglich das Heruntersetzen auf die Zwischenfrequenz erfolgt mit analogen Bauteilen, die De-/Modulation geschieht digital. Die Übertragung erfolgt in Paketen und ein Puffer speichert eingehende oder zu sendende Daten. Es sind nahezu keine externen Bauteile erforderlich abgesehen von einem Schwingquarz und Stützkondensatoren.

## MAC-Layer

Von der Sicherungsschicht nach dem OSI-Referenzmodell definiert der IEEE-802.15.4-Standard mit dem MAC-Layer nur die untere Teilschicht. Auf die Implementierung des LLC-Layer wird an dieser Stelle verzichtet. Da der MAC-Layer wesentlich durch Software realisiert wird, verringert sich dadurch der Umfang des Protokoll-Stacks. Somit bildet der MAC-Layer das obere Ende von IEEE 802.15.4. Der ZigBee-Standard setzt direkt auf diese Schicht auf. (Die „symbol period“ stellt die Basis für alle Zeitangaben dar. Im 2,45-GHz-Band beträgt diese 16 µs. Die Werte für den MAC-Layer beziehen sich alle auf die Vorgaben für das 2,45-GHz-Band.)

### CSMA/CA

Für die Kollisionsvermeidung beim Zugriff auf das Medium kommt ein CSMA/CA-Algorithmus zur Anwendung. Vor dem Senden prüft der Transmitter, ob ein anderes Gerät auf dem Kanal gerade sendet, indem die Signalstärke von der Antenne gemessen wird. Ist der Kanal frei, beginnt die Datenübertragung; andernfalls wartet das Gerät eine zufällige Zeitspanne und führt einen erneuten Kanalfrei-Test durch. Schlägt der Kanalfrei-Test mehrmals fehl, bricht der Algorithmus die Übertragung mit der Fehlermeldung „Kanal belegt“ ab. Zur Übertragungssicherung kann vom Empfänger ein ACK-Paket gefordert werden. Bleibt die Bestätigung auf eine Nachricht aus, bedeutet das einen Übertragungsfehler – das Paket wird erneut gesendet. Geschieht dies mehrfach endet der Sendeversuch mit dem Fehler „NOACK“; der Empfänger ist nicht erreichbar. Für das Senden von ACK-Paketen ist kein CSMA/CA-Algorithmus erforderlich, sondern es wird direkt nach dem Empfangen einer Nachricht abgeschickt.
Aus der Fehlermeldung nach einem erfolglosen Übertragungsversuch kann die darüberliegende Schicht mehrere Schlüsse ziehen. „NOACK“ bedeutet, dass die Gegenstelle nicht mehr im Empfangsbereich ist. Aus „Kanal belegt“ folgt, dass der genutzte Kanal überlastet ist und ggf. gewechselt werden sollte.
Der CSMA/CA-Algorithmus legt fest, dass der Random-Backoff bereits vor dem ersten Kanalfrei-Test erfolgt, womit die effektive Datenrate erheblich sinkt. Die Wartezeit vor dem ersten Übertragungsversuch im 2,45-GHz-Band liegt zwischen 0 und 2,24 ms. Schlägt der Kanalfrei-Test fehl, kann diese bis auf 9,92 ms anwachsen. Hinzu kommen weitere Verzögerungen, wenn vom Empfänger kein ACK kommt. Die folgende Formel basiert auf den Vorgaben des Standards und berechnet die Backoff-Zeit.
    ${\text{Backoff period}}=\left(2^{BE}-1\right)\cdot {\text{Unit backoff period}}\cdot {\text{Symbol period}}$
    ${\text{Max. backoff period}}=\left(2^{5}-1\right)\cdot 20\cdot 16\mu s=9920\mu s$
    ${\text{Min. backoff period}}=\left(2^{3}-1\right)\cdot 20\cdot 16\mu s=2240\mu s$
Das Timeout für das ACK-Paket beträgt 864 µs (Symbol period · AckWaitDuration) und darf frühestens 192 µs nach Erhalt der vollständigen Nachricht erfolgen.

### Übertragungsverfahren

Der Standard definiert zwei Übertragungsverfahren. Im sogenannten Unslotted Mode versenden die Netzteilnehmer ihre Daten asynchron. Im Slotted Mode synchronisiert der PAN-Koordinator die Zugriffe, indem er die Übertragungszeiträume in sogenannte Superframes einteilt.

#### Unslotted Mode (nonbeacon-enabled)

Vor jedem Sendevorgang überprüft ein Teilnehmer per CSMA/CA, ob der Kanal belegt ist und sendet seine Daten, sobald er frei wird. Optional kann er im gesendeten Paket angeben, ob er eine Antwort (ACK) wünscht, anhand derer er überprüfen kann, ob das Paket korrekt ankam oder die Übertragung gestört wurde. Dieser Modus erfordert keinerlei Verwaltungsaufwand durch den PAN-Koordinator.
Unterschieden wird zwischen 3 Kommunikationsszenarien:
* Daten von Teilnehmer an PAN-Koordinator. Koordinator empfängt Daten und sendet, wenn angegeben, ein ACK. Um die Daten empfangen zu können, muss sich der Koordinator stets empfangsbereit halten und darf sich nicht in einen energiesparenden Modus kurzzeitig schlafen legen.
* Daten von Teilnehmer an Teilnehmer (Peer-to-Peer-Topologie). Wie im ersten Szenario muss sich der Empfänger stets empfangsbereit halten.
* Daten von PAN-Koordinator an Teilnehmer. Teilnehmer fragt regelmäßig nach, ob Daten für ihn beim Koordinator liegen. Dieser antwortet (ACK) und sendet die Daten, wenn welche vorliegen, oder ein leeres Datenpaket, wenn er keine Daten für den Teilnehmer besitzt. Siehe rechte Abbildung. Auch hier bleibt der Koordinator stets empfangsbereit.
Bezogen auf den Energiebedarf muss in diesem Modus folglich ein Knoten, für gewöhnlich der PAN-Koordinator, immer empfangsbereit sein, während die anderen Knoten die meiste Zeit Energie sparen können.

#### Slotted Mode (beacon-enabled)

Im Slotted Mode teilt der PAN-Koordinator die Übertragungszeiträume in sogenannte Superframes ein. Deren Struktur ist im rechten Bild erkennbar. Begrenzt wird ein Superframe durch zwei Beacons (dt. Signalfeuer). Der Koordinator sendet die Beacons in festgelegten Intervallen (ohne CSMA/CA), damit sich die Teilnehmer auf den Anfang des Superframes synchronisieren können. Die Länge des Superframes wird mit dem Parameter BI (Beacon Intervall) angegeben. Dieser berechnet sich über den Parameter BO (Beacon Offset) wie folgt:
    $BI=2^{BO}\cdot {\text{Num superframe slots}}\cdot {\text{Base superframe duration}}\cdot {\text{Symbol period}}$
    $BI=2^{BO}\cdot 16\cdot 60\cdot 16\,\mathrm {\mu s} =2^{BO}\cdot 15\,\mathrm {ms}$
BO kann Werte zwischen 0 und 14 annehmen. Ein Wert von 15 bedeutet, dass der Superframe ignoriert werden soll. Die Länge eines Superframes kann folglich zwischen 15 ms und 246 s betragen. Über den Parameter SO (Superframe Order) wird der Superframe in eine aktive und eine inaktive Phase eingeteilt. Der aktive Zeitraum (SD = Superframe Duration) berechnet sich nach der gleichen Formel wie vorher, nur wird BO durch SO ersetzt:
    $SD=2^{SO}\cdot 15\,\mathrm {ms}$
SO kann Werte zwischen 0 und 14 annehmen, muss jedoch ≤ BO sein. Ein Wert von 15 bedeutet, dass der Superframe nach dem Beacon keine aktive Phase besitzt. Die aktive Phase besteht aus 16 gleich langen Time Slots (Zeitschlitzen). Den ersten belegt der Beacon, die restlichen teilen sich auf die Contention Access Period (CAP) und die Contention Free Period (CFP) auf. In der CAP konkurrieren alle sendewilligen Teilnehmer in jedem Slot per CSMA/CA um ihre Daten senden zu können. Die Time Slots der CFP werden vom PAN-Koordinator zu Guaranteed Time Slots (GTS) zusammengefasst und Teilnehmern fest zugeordnet, so dass in dieser Periode kein Wettbewerb per CSMA/CA stattfindet. Ein Teilnehmer, der ein GTS erhält, besitzt einen garantierten Zeitraum, in dem er als einziges Mitglied des Netzwerkes senden darf. GTS bedeutet jedoch nicht, dass ein bestimmter Datendurchsatz garantiert wird oder Echtzeitbedingungen eingehalten werden. GTS regelt nur die Verteilung der Übertragungskapazität innerhalb eines Netzwerks. Ein netzwerkfremder Teilnehmer, der sich nicht an die Time Slots des Superframes hält, kann die Übertragung weiterhin stören. Zudem kann die zugeteilte Übertragungskapazität niedriger als die geforderte sein, wenn die Teilnehmer mehr nachfragen, als der Koordinator verteilen kann.
In der inaktiven Phase kann der PAN-Koordinator in einen stromsparenden Betriebszustand wechseln und die Batterien schonen. Dies ist eine Verbesserung im Vergleich zum Unslotted Mode, der jedoch mit einem höheren Verwaltungsaufwand für die Synchronisation erkauft wird. Für die sendewilligen Teilnehmer erhöht sich der Aufwand durch die Synchronisation nur minimal und sie können weiterhin die meiste Zeit energiesparend verbringen.
Auch hier gibt es die 3 Kommunikationsszenarien:
* Für Datenübertragung vom Teilnehmer zum Koordinator wird versucht, einen freien Slot in der CAP zu erhalten.
* Besitzt der Koordinator Daten für den Teilnehmer, zeigt er dies im ausgesendeten Beacon an. Der Teilnehmer lauscht periodisch nach den Beacons und antwortet schließlich in der CAP, um die Daten abzuholen. Siehe Abbildung.
* Bei Peer-to-Peer synchronisieren sich die Teilnehmer zunächst gegenseitig und übertragen anschließend die Daten.

### Verbindungsaufbau

Bevor ein Gerät mit einem anderen kommunizieren kann, muss ein Kanal dafür gewählt werden. Der Coordinator wählt möglichst einen Kanal ohne Konkurrenzsender, hierzu dient der ED-Scan (Energy-Detect), bei dem die Signalstärke gemessen wird oder Active-Scan, bei dem alle anderen als Coordinator aktiven Geräte durch einen Beacon-Request aufgefordert werden einen Beacon zu versenden. Sucht ein Gerät Anschluss zu einem Coordinator geschieht dies mit einem Active-Scan (nur FFD) oder einem Passiv-Scan (Kanäle auf Beacons abhören).
Damit der Aufbau eines Netzwerks geregelt abläuft, melden sich Endgeräte mit einem Associate-Request bei einem Coordinator an. Dieser wird mit der Zuweisung einer Short-Address bestätigt. Die Wahl der Short-Address ist Aufgabe der höheren Schichten.

## Verschlüsselung und Sicherheit

Der Standard IEEE 802.15.4 bietet Sicherheitsmaßnahmen auf MAC-Ebene durch Message-Integrity-Check und symmetrische Verschlüsselung. Es kann zwischen mehreren Verfahren gewählt werden, die auf CCM und AES basieren. Die Schlüssel werden durch die darüberliegende Schicht festgelegt und anschließend durch den MAC-Layer verwaltet. Die Verschlüsselung wird für jeden Kommunikationspartner separat festgelegt und automatisch vom MAC-Layer angewendet. War ein empfangenes Paket verschlüsselt, zeigt dies ein Parameter in der Indication-Primitive an.
Die Umsetzung der Verschlüsselung variiert leicht zwischen der Version 2003 und 2006.