Die Firma Cambridge Silicon Radio, die inzwischen zu Qualcomm gehört, hat Bluetooth Low Energy (BLE / Bluetooth Smart) um eine weitere Übertragungsschicht ergänzt: Mit CSR-Mesh lassen sich mehrere BLE-Geräte ohne zusätzliche Gateways zu einem Netzwerk verbinden. Jeder Netzwerkknoten kann Nachrichten weiterleiten und vergrößert damit die Netzwerkreichweite. Bei dieser Implementierung können Hersteller jetzt auch individuelle Daten transparent durch das Mesh-Netzwerk schicken, um das Funktionsmodell unkompliziert zu erweitern.
Viele BLE-Ready-Chips, BLE-Module und komplette Beleuchtungssteuerungen unterstützen das CSR-Mesh-Protokoll im Single- und Dual-Modus. Durch den Bluetooth-Standard sind insbesondere Smartphones oder Tablets in die Lage, per App als Fernbedienung zu agieren, etwa um die Gebäudebeleuchtung zu steuern. Wenn ein Anwender viele Lampen steuern will und versucht, sein Smartphone mit allen Bluetooth-fähigen Lampen einzeln zu koppeln, stößt der reine Bluetooth-4.0-Standard schnell an seine Grenzen. Wenn es darum geht, ein Gruppenszenario aus Helligkeit, Farbe und Leuchteffekt per Smartphone zu steuern, kommt CSR-Mesh ins Spiel.
Eckdaten
Mit dem auf Bluetooth 4.0 aufsetzenden Software-Layer CSR-Mesh ist es möglich, vernetzte Bluetooth-Smart-Objekte ohne zusätzliche Gateways zu steuern. Das Protokoll eignet sich ideal zur Beleuchtungssteuerung in Gebäuden.
Architektur
CSR-Mesh erweitert den Bluetooth-4.0-Standard um eine Nachrichten-Übermittlungsfunktion. Auch andere Träger wie UDP/IP oder der GATT-Layer aus dem klassischen Bluetooth lassen sich integrieren. Voraussetzung für einen solchen Träger (Bearer) ist, dass er Nachrichten an andere Teilnehmer senden und von dort wieder empfangen kann. Bluetooth 4.0 nutzt hierzu das verbindungslose Advertising und versendet kurze Nachrichten auf bis zu drei speziellen Advertising-Kanälen innerhalb des Frequenzbandes von 2,4 GHz. Wie auch bei iBeacon-Sendern liegen die Kanäle in einem möglichst großen Abstand zum Wi-Fi-Band und erreichen somit eine hohe Störfestigkeit.
Gleichzeitig müssen andere Teilnehmer im Scanning-Mode in der Lage sein, Nachrichten innerhalb bestimmter Zeitfenster zu empfangen. Sobald sich Sende- und Empfangszeitfenster überlappen, kann eine Nachricht erfolgreich übertragen werden. Die Meldungen wandern dann in Form von 25 Byte großen Service-Data-Advertising-Paketen durch das Netzwerk.
Jedes Bluetooth-Device besitzt eine 128 Bit große UUID (Universally Unique Identifier), mit der es sich weltweit eindeutig identifizieren lässt. Das CSR-Mesh-Netzwerk verwendet stattdessen eine 16 Bit große Device-ID. Somit liegt die theoretisch mögliche Anzahl der Netzwerkteilnehmer bei 65.536, in der Praxis erweisen sich etwa 1000 Teilnehmern als sinnvoll. Jeder einzelne Knoten kann auch unterschiedlichen Gruppen zugeordnet sein und sich darüber ansprechen lassen. Ob ein Teilnehmer gerade als Sender, Empfänger oder Relais fungiert, ist situationsabhängig und wird in der Architektur des CSR-Mesh-Protokolls widergespiegelt (Bild 2).
Sicherer Mesh-Transport-Layer
Der Mesh-Transport-Layer übermittelt die Nachrichten durch das Netzwerk, ohne dass sich Teilnehmer beim Senden und Empfangen um die Vorgehensweise kümmern müssen. Die Nachrichten sind mit einem Netzwerkschlüssel chiffriert. Der Transport-Layer überprüft die Nachricht anhand eines Authentifizierungscodes. Falls sie gültig ist, leitet die Transportschicht die Nutzdaten an die nächste Schicht weiter. Soll er die Nachricht weitergeben, dann prüft der Knoten den Time-to-Live-Zähler: ist der TTL-Wert noch nicht auf Null, dekrementiert der Knoten den Zähler um Eins und versendet die Nachricht erneut. Da mehrere Teilnehmer die gleiche Nachricht weiterreichen können, gibt es keinen speziellen Router, dessen Ausfall ein Netzwerk lahmlegen würde. Auch erhöhen die vielen Netzwerkknoten die Reichweite von Bluetooth Smart, wie Bild 3 zeigt.
Nachrichten, die durch den Transport-Layer hindurch gingen, werden entweder vom Mesh Association Protokoll (MASP) oder vom Mesh Control Protokoll (MCP) aufgenommen (Bild 2). MASP dient dazu, Teilnehmer in ein Netzwerk einzubinden. Dazu bedarf es eines speziellen Konfigurationsteilnehmers, in den meisten Fällen ein Smartphone oder Tablet. Dieses muss den Netzwerkschlüssel kennen und ihn dem neuen Teilnehmer auf sichere Weise übermitteln. Zudem weist es dem neuen Teilnehmer seine 16-Bit-Device-ID zu.
Ist der neue Teilnehmer dem Netzwerk zugeordnet, kann er Nachrichten mittels MCP empfangen und senden. Dabei handelt es sich um Kontroll- und Statusnachrichten. Diese enthalten eine fortlaufende Paketnummer, eine Sende- und Empfangsadresse, einen Operationscode, die Nutzdaten und einen optionalen Transaction-Identifier. Der Operationscode hängt vom Modell ab, das dem Teilnehmer zugeordnet ist. Daraus ergibt sich dann auch die Interpretation der übertragenen Nutzdaten und der Einsatz eines Transaction-Identifiers.
Jeder Teilnehmer mit einer Device-ID vergibt selbst die fortlaufenden Paketnummern. Das verhindert, dass das Netzwerk durch einfache Wiederholung von Paketen durch einen externen Störer überlastet wird. Zudem übernimmt das MCP auch die Verschlüsselung der Nachrichten. Wenn eine zuverlässige Übermittlung gefragt ist, muss der Sender auf eine Bestätigung des Empfängers warten, die den selben Transaction-Identifier enthält. Solange die Bestätigung ausbleibt, wiederholt der Sender seine Nachricht mit neuer fortlaufender Paketnummer, aber identischem Transaction-Identifier, bis eine Maximalzeit überschritten wird. Die neue Paketnummer stellt sicher, dass das Netzwerk die Nachricht weiterreicht.
Netzwerkteilnehmer über Modelle steuern
Die Modelle definieren die möglichen Zustände und das Verhalten eines Teilnehmers. Sie sind in sich abgeschlossen, ein Teilnehmer kann aber auch durch mehrere Modelle beschrieben werden. Auch die Konfiguration eines Teilnehmers erfolgt mittels Konfigurationsmodell, welches unter anderem die Modellversionen beinhaltet, die dem Teilnehmer künftig zugeordnet sind. So kann zum Beispiel eine LED-Leuchte das Modell „Power“ zum Ein- und Ausschalten erhalten sowie das Modell „Light“ für Helligkeitskontrolle und Einstellung der RGB-Farbe.
Der Operationscode einer Nachricht definiert je nach Modell den Aufbau der Nutzdaten. Dabei benötigen Operationen, die den Zustand eines Teilnehmers ändern, meist eine Bestätigung – der Operationscode impliziert also die Nutzung eines Transactions-Identifiers. Damit eine CSR-Mesh-Implementierung Lichtanwendungen unterstützt, enthält sie beispielsweise die Modelle Light, Power, Switch und Battery sowie Verwaltungsmodelle wie Config, Firmware und Group. In der Gebäudeautomatisierung werden zum Beispiel Heizung, Kühlung, Klimaanlagen, Haushaltsgeräte, Rollladen, Türen und vieles mehr unterstützt.
Das Data-Stream-Modell
Die neueste Version von CSR-Mesh führt ein Data-Stream-Modell ein (Bild 4), das die Übermittlung freier Daten erlaubt, ohne an ein anderes Modell gebunden zu sein. Damit lassen sich transparent Daten oder kunden- sowie produktspezifische Kommandos weiterleiten. Zunächst werden drei Nachrichtentypen definiert, die das Senden (DATA_STREAM_SEND), die Bestätigung (DATA_STREAM_RECEIVED) und das Beenden (DATA_STREAM_FLUSHED) eines Datentransfers beschreiben. Jedem Nachrichtentyp ist ein entsprechender Operationscode zugeordnet.
Eine Übertragung, bei der keine Wiederholung notwendig ist, ist in Bild 5 zu sehen. Die Send-Nachricht enthält einen Zähler, der bei Null beginnt und die Nummer des ersten Bytes in den zu übermittelnden Daten enthält. So ist die „1“ aus der ersten Nachricht das nullte Byte, die „9“ aus der zweiten Nachricht das achte Byte und das „h“ aus der dritten Nachricht das 16. Byte. Die Received-Nachricht enthält lediglich die Nummer des letzten empfangenen Bytes (8, 16 und 24), wobei die Zählung bei 1 beginnt. Den Abschluss bildet die Flush-Nachricht des Senders, der die letzte Übermittlung anzeigt, die der Empfänger durch eine eigene Flush-Nachricht quittiert.
In Bild 6 kommt die erste Bestätigung mit „8“, ein Zeichen, dass nur das erste Paket empfangen wurde. Der Sender wiederholt daraufhin das zweite Paket („9abcdefgh“), gefolgt vom dritten Paket. Hier kommt es zu einer Zeitüberschreitung, was zur Wiederholung des letzten Paketes führt. Nach der passenden Received-Rückmeldung wird die Übermittlung wieder durch die Flush-Nachrichten beendet.
Unterstützung für Entwickler
Für die Entwicklung eigener CSR-Mesh-Applikationen bietet das aktuelle Entwicklungskit von Qualcomm Hardware, Software, Dokumentation und Beispielapplikationen inklusiv C-Quellcode. Von den ersten Versuchen hin zu einem Produkt unterstützt Atlantik Elektronik seine Kunden beim Entwickeln von Hard- und Software sowie im Bereich Apps für Smartphones oder Tablets unter iOS oder Android. Neben den einzelnen CSR101x-Chips sind auch vollständig zertifizierte BLE-Module wie BTM101 oder BC118 verfügbar, welche diese Chips verwenden und daher mit der gleichen Software funktionieren. Das beschleunigt auf Kundenseite die Projektrealisierung.
Für Beleuchtungsprojekte geht die Unterstützung noch einen Schritt weiter, denn hier bietet Atlantik Elektronik Services die Produkte der Blue-Lite-Control-Familie BLC101 zur Beleuchtungssteuerung, die neben der BLE-Schnittstelle auch eine geeignete Spannungsversorgung (AC oder DC) und die Ausgänge für eine Steuerung der Lampen und Leuchten über PWM oder DALI enthalten.
(jwa/lei)