iX 10/2018
S. 76
Report
Internet of Things
Aufmacherbild

IoT-Cloud-Dienste von Microsoft, Amazon und Google

Stützräder in der Wolke

Komplett von Hand entworfene IoT-Systeme mögen besonders effizient sein, hinsichtlich der Kosten liegen jedoch vorgefertigte Module vorn. Dafür bieten Amazon, Google und Microsoft in ihren Cloud-Diensten IoT-Funktionen, die dieser Artikel vergleicht.

Allen IoT-Diensten gemein ist, dass sie sich von manuell realisierten Architekturen deutlich unterscheiden. Stattdessen setzen die Cloud-Anbieter darauf, die Geräte mit einer Einlaufstelle zu verbinden, die die Informationen sammelt und danach an hauseigene Services weiterleitet, etwa Maschine Learning oder Event-Busse. Klassische zentrale Server spielen in dieser schönen neuen Welt nur eine untergeordnete Rolle – wer die IoT-Daten mit einem lokalen Programm verarbeiten will, hat wenig Freude.

Alljährlich befragt die IoT Working Group der Eclipse Foundation Entwickler zu diversen Eckdaten ihrer IoT-Projekte, unter anderem zur Nutzung von Cloud-Diensten ([a], siehe ix.de/ix1810076). Google musste zwischen 2017 und 2018 Haare lassen – sein Marktanteil sank von 20,4 % auf 18,8 %. AWS ist mit 51,8 % der King of the Hill, während Azures Anteil auf 31,21 % anstieg. Allerdings sind diese Erkenntnisse mit Vorsicht zu genießen: Die Antworten stammten 2018 von 500 Teilnehmern, 2017 waren es noch 200 mehr.

Linux dominiert die Prozessrechner

IoT-Systemverbünde bestehen aus einer Gruppe von Endgeräten (Nodes), die meist recht leistungsschwach sind. Am bequemsten ist sicher die Nutzung fertiger Prozessrechner wie Raspberry Pi und Co. – hier lässt sich das Hantieren mit aufwendig integrierbaren SoCs vereinfachen. Weder Android Things noch Windows 10 for IoT konnten in diesem Bereich bisher viel erreichen – ist ein Prozessrechner am Start, so setzt man auf Linux.

Leider sind Einplatinencomputer kein Universalheilmittel. Sie verbrauchen viel Strom, Stand-by-Modi fehlen und die Echtzeitfähigkeiten lassen zu wünschen übrig. Deshalb kann es sich auch für Kleinserien lohnen, eigene Boards zu bauen. Das sind dann meist aber keine Prozessrechner-Derivate, sondern kleinere Systeme, etwa auf Basis diverser Mikrocontroller – ST, Renesas, TI, Microchip und Konsorten bieten heutzutage viel Leistung fürs Geld.

Aufgrund fehlenden Speicherschutzes und wenig RAM spielt Linux in diesem Bereich nur eine untergeordnete Rolle. Stattdessen setzt man auf dedizierte Echtzeitbetriebssysteme, von denen iX einige vorgestellt hat [b]. Ihnen gemein ist eine geringere Latenz, erkauft durch kleineren Funktionsumfang der mitgelieferten Bibliotheken. Fast alle großen Betriebssystemanbieter offerieren mittlerweile Erweiterungen, die Cloud-Dienste einbinden.

Die im nächsten Abschnitt besprochenen Integrationsserver arbeiten mit standardisierten Protokollen. Deshalb kann man Systeme auf WLAN-Modulen wie dem ATWINC1500 aufbauen. Entwickler löten diese als ESP32-artiges „Dickschichtmodul“ vorliegende WiFi-to-SPI-Brücke auf die Platine; der vorhandene Mikrocontroller nimmt per SPI (Serial Peripheral Interface) Kontakt zum Kommunikationsprozessor auf dem Modul auf. Das Modul agiert dann als Abstraktionsschicht, die sich um Protokollauswertung und Ähnliches kümmert. Microchip zeigt online einige Beispiele [c].

Echtzeitbetriebssystem von Amazon

Cloud-Anbieter schauen den Mikrocontroller-Experimenten ihrer Kunden im Allgemeinen desinteressiert zu – solange man das Protokoll implementiert, ist alles gut. Amazon tanzt hier allerdings aus der Reihe. Durch die Übernahme von FreeRTOS sicherte es sich ein Alleinstellungsmerkmal. Der Klassiker für Echtzeitbetriebssysteme schlechthin ist direkt mit AWS verbunden. Die einzig wichtige Frage ist, ob man eigene Geräte lieber direkt mit den AWS-Servern kommunizieren lässt oder mit einer der später besprochenen Edge-Varianten indirekt anbindet.

Microsoft geht mit Azure Sphere einen interessanten Sonderweg, der im Moment allerdings noch kaum im Markt angekommen ist. Für einen Prozessrechner kombiniert es einen unter Linux laufenden ARM-Prozessor mit einem Echtzeitkern, um so sowohl Echtzeitanforderungen als auch komplexe Aufgaben lösen zu können. Hauseigene ARM-CPUs – noch gibt es nur den MT3620AN aus dem Hause MediaTek – treten in Kombination mit einem adaptierten Linux-Kernel auf.

Das für Ende 2018 angekündigte Development Kit erlaubt erste Einblicke in die Hardwarekonfiguration des Prozessrechners à la Microsoft. Gerüchteweise hat der Haupt-A7-Prozessor 4 MByte RAM und einen Takt von 500 MHz, den beiden für Echtzeitaufgaben vorgesehenen Cortex-M4F-Cores steht rund 1 MByte RAM zur Verfügung.