6LoWPAN-Open-Source-Projekt: emb::6 mit Thread-Erweiterung

Die portable C-Implementierung des 6LoWPAN-Protokolls „emb::6“ wird aktuell um das Thread-Protokoll erweitert. Die grundlegenden Kommunikationsfunktionen sind bereits integriert – an der vollständigen Thread-Implementierung kann noch mitgewirkt werden.

Die fortschreitende Vernetzung mikroelektronischer Systeme zu sogenannten Cyber-Physical Systems (CPS) hat insbesondere die Entwicklung zahlreicher Protokolle für den Nahbereichsfunk vorangetrieben. Auch in den Privathaushalten nimmt das Verlangen nach einem übergreifend vernetzten, interoperablen und intelligenten Zuhause stetig zu. Neben dem bereits bekannten ZigBee-Protokoll haben sich noch weitere Funktechniken, wie z.B. Z-Wave und Bluetooth in der Heimautomatisierung etabliert.

Eine maßgebliche Entwicklung der letzten Jahre stellt hierbei die Einführung des 6LoWPAN-Standards und das damit verbundene Header-Kompressionsverfahren dar. Dieses ermöglicht die effiziente Übertragung von IPv6-Paketen auch über IEEE 802.15.4-basierte Netzwerke und schafft somit die Grundlage für eine durchgehende Vernetzung. Zudem können existierende, auf IP basierende Anwendungen mit wenig Aufwand übernommen und integriert werden. Allerdings bestehen weiterhin Barrieren bei der durchgängigen Kompatibilität unterschiedlicher Geräte. So definiert der 6LoWPAN-Standard zwar die Kommunikation der IP-Datenpakete an sich, beschreibt aber beispielsweise nicht die Routing-Protokolle oder die Kommissionierung der Geräte.

Um diesen potenziellen Inkompatibilitäten entgegen zu wirken, hat die im Juli 2014 gegründete Thread Group [1] einen eigenen Standard definiert, der zum Teil existierende Kommunikationsprotokolle vereinigt. Die daraus resultierende Spezifikation des Thread-Protokolls zielt auf Smart-Home-Anwendungen ab, wobei der Schwerpunkt auf Sicherheit und Interoperabilität liegt. Thread ermöglicht es, mehrere verschiedene Kommunikationsschnittstellen in jedem Gerät zu nutzen, wodurch die jeweilige technische Grenze auf Schnittstellenebene durchbrochen wird. Nativ müssen alle Teilnehmer in einem Thread-Netzwerk den IEEE 802.15.4 Standard (2,4 GHz) erfüllen, da etwaige Netzwerkkonfigurationsnachrichten über diese Schnittstelle ausgetauscht werden. Um eine IPv6-basierte Ende-zu-Ende Kommunikation zu ermöglichen, wird die 6LoWPAN-Funktechnik eingesetzt. Es ist aber auch möglich, den Thread-Datenverkehr über WLAN oder Bluetooth auszutauschen.

6LoWPAN-Impelementierung künftig mit Thread

Dem IEEE 802.15.4-Standard folgt auch der Open-Source Stack emb::6 [2], der am Institut für verlässliche Embedded Systems und Kommunikationselektronik (ivESK) der Hochschule Offenburg entwickelt und bereits in der Elektronik [3] vorgestellt wurde. Seither haben dieses Projekt und die Implementierung zahlreiche Neuerungen erfahren und werden derzeit um die Unterstützung des Thread-Protokolls erweitert. Als ein auf Contiki basierender 6LoWPAN-Kommunikationsstapel, dessen Implementierung in reinem „C“ vorliegt, erlaubt emb::6 die Ausführung komplett ohne Betriebssystem und ohne Abhängigkeiten. Durch den Einsatz von Board Support Packages (BSP) und Hardware-Abstraktionsschichten (HAL – Hardware Abstraction Layer) wird eine einfache Portierbarkeit auf unterschiedliche Mikrocontroller- und Transceiver-Plattformen ermöglicht. Der emb::6-Protokollstapel deckt alle Schichten des OSI-Modells ab und stellt neben der Netzwerkfunktion zahlreiche Basisfunktionen, wie Timer, Puffer-Management und Speicherverwaltung sowie diverse Applikationsschichten und Beispielanwendungen bereit. Allerdings bestanden auch hier bisher die oben genannten Kompatibilitätsprobleme, die nun mit Hilfe des Thread-Protokolls umgangen werden sollen.

Den Aufbau der aktuellen emb::6-Protokollimplementierung inklusive Thread veranschaulicht die Grafik (Bild 1). Um eine grundlegende Thread-basierte Kommunikation zwischen Geräten zu ermöglichen, wurden zunächst die Funktionen des so genannten Mesh-Link-Establishment (MLE) und der Netzwerkschicht implementiert.