WICED-Plattform Softwareplattform für drahtlose Konnektivität in Embedded-Geräten

Autor / Redakteur: Vikram Ramanna * / Sebastian Gerstl

Mit einer einheitlichen Plattform aus Hardware, Software, Anwendungsbeispielen und Werkzeugen lässt sich die Entwicklung für IoT-fähige Produkte erheblich vereinfachen und beschleunigen.

Firmen zum Thema

Von der WICED-Plattform unterstützte Hardwarearchitekturen. Die Entwicklung von Embedded-Internet-Applikationen benötigt eine einheitliche Entwicklungsplattform für Hard- und Software, um schnell energieeffiziente, leistungsstarke Applikationen zur Marktreife bringen zu können.
Von der WICED-Plattform unterstützte Hardwarearchitekturen. Die Entwicklung von Embedded-Internet-Applikationen benötigt eine einheitliche Entwicklungsplattform für Hard- und Software, um schnell energieeffiziente, leistungsstarke Applikationen zur Marktreife bringen zu können.
(Bild: Cypress)

Das Internet der Dinge (IoT) ist für viele OEM im Bereich Elektronik sehr verlockend, denn die Möglichkeit, ihre Produkte online zu bringen, ist nun in greifbarer Nähe. In fast jedem Haushalt und Büro in der westlichen Welt gibt es einen Wi-Fi-Router, und über eine einfache Bluetooth- oder Bluetooth-Smart-Verbindung können Geräte mit Abermillionen ständig eingeschalteter Smartphones und Tablets verbunden werden.

Doch auch wenn bereits eine allgegenwärtige Funkinfrastruktur für das IoT existiert, bedeutet das noch nicht, dass sich eine zuverlässige drahtlose Internet-Konnektivität für Embedded-Geräte einfach herstellen lässt. In gewisser Weise ist der Funkteil für den Entwickler von Embedded-Geräten das geringste Problem. Es ist die Software, die besonderer Aufmerksamkeit bedarf, wie wir in diesem Artikel darlegen werden.

Bildergalerie

Embedded Internet braucht eine Entwicklungsplattform

Wi-Fi und Bluetooth – als Classic Bluetooth und Bluetooth Low Energy – sind bei weitem die verbreitetste Art, IoT-Geräte im Haushalt, im Büro, in Fabriken und im öffentlichen Raum mit dem Internet zu verbinden. Denn die drahtlose Infrastruktur hinter Wi-Fi und Bluetooth ist heute allgegenwärtig. Keine andere Funktechnologie bietet auch nur entfernt die gleiche Abdeckung und Verfügbarkeit.

Das hat viele Hersteller elektronischer Bauteile dazu veranlasst, eine breite Auswahl an Wi-Fi- und Bluetooth-Chipsätzen, HF-Mikrocontrollern, Modulen und sogar kompletten Standard-Wi-Fi-Gateways auf den Markt zu bringen. Heute sind die Komponenten für eine Embedded-Internet-Konnektivität in IoT-Geräten leicht verfügbar und vergleichsweise preiswert. Doch die Auswahl einer Funkkomponente ist natürlich nur der Anfang einer erfolgreichen Systementwicklung mit Wi-Fi oder Bluetooth.

Der schwierigste und zeitaufwendigste Teil bei einem IoT-Projekt ist gewöhnlich die Softwareentwicklung. Beim Einsatz von Wi-Fi oder Bluetooth für die Verbindung zum Internet muss die Software wahrscheinlich mehrere Anwendungsprotokolle wie HTTP, SMTP, NTP und MQTT für die Kommunikation mit Web- und Anwendungsservern über das Internet unterstützen. Insbesondere bei Consumer-Geräten muss für die Interoperabilität mit kompatiblen Geräten häufig eine untere Ebene implementiert werden. Beispiele hierfür sind Apples Homekit Accessory Protocol (HAP) oder Googles „Works with Nest“ System (siehe Bild 1).

Eine hohe Sicherheit ist heute bei allen mit dem Internet verbundenen Geräten unverzichtbar, um den Datenschutz für die Daten und Interaktionen des Anwenders zu gewährleisten und unbefugtes Eindringen in das Netzwerk über ein IoT-Gerät zu verhindern. Hierzu muss der Entwickler eines IoT-Geräts die neusten Sicherheitstechnologien für das Internet, beispielsweise Transport Layer Security (TLS) 1.2 oder andere sichere Protokolle implementieren, um Transaktionen und den Nachrichtenaustausch zwischen dem Gerät und der Cloud über die Secure Sockets Layer (SSL) zu gewährleisten.

Detailliertes Wissen zu diesen Kommunikations- und Sicherheitsprotokollen ist bei den Entwicklern von Embedded-Geräten nur wenig verbreitet. Daher brauchen die meisten OEM Hilfe bei der Implementierung in ihren Produkten. Manche Hersteller von Standard-Chipsätzen für Wi-Fi oder Bluetooth stellen einfache TCP/IP-Stacks zur Verfügung, doch es dürfte selten vorkommen, dass alle oben beschriebenen Kommunikations- und Sicherheitselemente bei einer HF-Komponente mitgeliefert werden.

Das ist noch nicht alles. Um für ein geordnetes Zusammenspiel der Anwendungs-, Sicherheits- und Kommunikationsebenen zu sorgen, benötigt die Systemarchitektur ein Betriebssystem (OS), das Funktionen wie die Vergabe der Prioritäten und die Speicherzuweisung übernimmt. Die bevorzugte OS-Option für ein Embedded-Gerät ist gewöhnlich ein Echtzeit-OS (RTOS), das schnell und deterministisch arbeitet und nur wenig Speicher belegt. Damit wachsen die Entwicklungsaufgaben noch weiter, denn nun schließen sie die Integration eines RTOS mit der zugrunde liegenden Funkhardware sowie den Sicherheits-, Kommunikations- und Anwendungsschichten, die noch über dem RTOS liegen, ein.

Auswahl der notwendigen Hardwarekomponenten

All das sollte einen Eindruck vom Umfang der Aufgaben vermitteln, die bei der Softwareentwicklung für eine drahtlose Internet-Konnektivität anfallen. Da der Aufwand ganz erheblich ist, muss der Entwickler zwei wichtige Fragen berücksichtigen, bevor er sich an die Auswahl der Hardwarekomponenten macht:

  • Gibt es eine produktive Entwicklungsumgebung, die den Entwickler während des gesamten Projekts, vom Betriebssystem über die Protokollschicht bis zur Anwendungsebene, unterstützt?
  • Was passiert nach dem Ende des Projekts? Kann die Software des Geräts im nächsten und weiteren IoT-Projekten wiederverwendet werden?

Die Antworten auf diese Fragen beeinflussen direkt die Auswahl der HF-Hardware durch das Entwicklungsteam, denn sie entscheiden darüber, ob das Projektteam Zugang zu den benötigten Softwareentwicklungsressourcen hat. Und diese Entscheidung kann langfristige Auswirkungen haben, wenn Code aus einem aktuellen Projekt bei späteren Projekten wiederverwendet werden kann. Diese zukünftigen Projekte könnten jedoch neue Hardware verwenden oder auch mit weiterentwickelten Wi-Fi- oder Bluetooth-Spezifikationen arbeiten. Wenn das ursprüngliche Projekt keinen eingebauten Mechanismus für die Portabilität der Software umfasst, kann die Wiederverwendung mit neuer Hardware unmöglich sein.

Ein SDK für verschiedene Kombinationsfälle

Diese beiden Problemfälle werden von der WICED-Plattform (Wireless Internet Connectivity for Embedded Devices) von Cypress adressiert. Grundlage dieser Plattform ist das WICED Software Entwicklungskit (SDK). Mit dem SDK implementierte Software läuft auf einer Vielzahl verschiedener WICED-HF-Module von Cypress. Diese Module gibt es für Wi-Fi, für Wi-Fi + Classic Bluetooth sowie für Classic Bluetooth + Bluetooth Low Energy. Außerdem unterstützt das WICED SDK verschiedene Mikrocontrollerfamilien unterschiedlicher Hersteller:

  • Cypress-Serie FM4
  • STMicroelectronics-Serien STM32F2 und STM32F4
  • Microchip AT91SAM4S16B
  • NXP Semiconductors Serien Kinetis K61 und LPC17xx, LPC18xx

Aufgabe des SDK (siehe Bild 2) ist es, die Entwicklung des Softwareelements für ein onlinefähiges Gerät zu vereinfachen und zu beschleunigen. Dazu bietet es eine Kombination aus:

  • APIs (Application Programming Interfaces) und Treibern
  • Nativer Unterstützung für die Echtzeitbetriebssysteme ThreadX, NuttX und FreeRTOS. Die Entwickler können auch andere Echtzeitbetriebssysteme auf die WICED-Plattform portieren. ThreadX wird zusammen mit WICED in Form von Binärdateien zur lizenzfreien Verwendung und Weitergabe geliefert.
  • Nativer Unterstützung von produktionsfertigen Versionen der Netzwerk-Stacks NetX, NetXDuo und LwIP. Andere TCP/IP-Stacks lassen sich auf WICED leicht portieren. NetX und NetXDuo werden mit WICED in Form von Binärdateien zur lizenzfreien Verwendung und Weitergabe geliefert.
  • Produktionsfertigen Sicherheitsstacks
  • Integrierten, lizenzierten Bibliotheken zur Implementierung von Drittanbietersoftware wie dem HomeKit-Protokoll von Apple
  • Integrierter Unterstützung von IoT-Cloud-Plattformen wie Amazon AWS und IBM BlueMix.

Das SDK ist kompatibel zur Open-Source-Entwicklungsumgebung (IDE) Eclipse. Es erlaubt den Entwicklern, alle in Eclipse enthaltenen Features zur Entwicklung und zum Debugging von Anwendungen mit den Cypress-HF-Produkten zu nutzen. Die Anwender können es auch mit Eclipse-kompatiblen Plugins aus anderen IDEs, wie der IAR Embedded Workbench, erweitern.

Das SDK erlaubt die schnelle Entwicklung mit dem Internet verbundener Geräte, indem es einen kompletten Rahmen für Kommunikation, Sicherheit, Middleware und Anwendungen bereitstellt. Cypress unterstützt die Entwickler mit einer großen Bibliothek an Anwendungscodebeispielen, um den Anwendern einen schnellen Einstieg in häufig noch nicht vertraute Elemente wie Works With Nest von Google zu erleichtern.

Für eine leichtere Proof-of-Concept-Entwicklung gibt es Arduino-kompatible Entwicklungsboards für alle von Cypress hergestellten WICED HF-Module und HF-Mikrocontroller. Mit der Kombination aus produktionsfertiger Software und nativer Unterstützung der IoT-Cloud-Plattformen mit der Hardware der Entwicklungsboards erhalten die Anwender innerhalb von Minuten nach dem Auspacken und Einschalten des Boards ein Proof-of-Concept, das live mit dem Internet kommuniziert.

Die andere wichtige Frage, die sich Entwickler von Embedded-Geräten zu Beginn eines IoT-Projekts stellen müssen, ist, wie sie die Wiederverwendung des Codes in späteren Projekten ermöglichen wollen. Beim WICED SDK dient hierzu die in Abbildung 2 gezeigte Hardware-Abstraktionsschicht (HAL). Dadurch wird die gesamte Software aus Treibern, Stacks, RTOS und Anwendungen hardwareunabhängig. So kann beispielsweise Code, der für ein WICED Wi-Fi 802.11b Modul erstellt worden ist, in einem weiterentwickelten 802.11n Modul wiederverwendet werden, denn die HAL des SDK wird von beiden Modulen unterstützt.

Das ermöglicht auch den Wechsel der Hardware mitten im Projekt. WICED unterstützt eine Reihe verschiedener Hardwarearchitekturen (siehe Abbildung 3). Während der Prototypenentwicklung könnte es beispielsweise vorkommen, dass das Entwicklungsteam entscheidet, das Wi-Fi-Protokoll nicht mehr auf einem externen Host-Prozessor, sondern auf einem integrierten Wi-Fi-Modul, wie dem CYW43907 mit ARM® Cortex®-R4-Prozessorkern, zu hosten. Auch hier kann die für die erste Architektur entwickelte Software, da sie auf der HAL läuft, in der zweiten Architektur wiederverwendet werden, denn auch dort wird sie auf derselben HAL ausgeführt.

Software bestimmt Hardwareauswahl

Somit sollten bei der Entwicklung von IoT-Geräten die Softwareanforderungen die Auswahl der Hardware bestimmen. Viele Wi-Fi- und Bluetooth-Funkmodule auf dem heutigen Markt bieten hervorragende Leistung und ausgezeichnete Daten aus der Sicht der Hardware. Die Schwierigkeit für den Entwicklungsingenieur besteht darin, sie in eine sichere Softwareumgebung zu integrieren, die die Wiederverwendung des Codes unterstützt.

Die Realisierung der Softwarefunktionen erfordert eine spezielle Softwareplattform, in der die Entwicklung einfach durchzuführen ist, der Code hardwareunabhängig ist und verschiedene Hardwarearchitekturen unterstützt werden. Genau das ist die Idee, die hinter der WICED SDK steht. Durch die ständige Erweiterung des Programms und der Funktionen der WICED-Module, die den Entwicklern zur Verfügung stehen, sorgt Cypress dafür, dass es für so viele künftige IoT-Entwicklungen wie möglich einsetzbar ist.

Der Beitrag erschien ursprünglich auf unserem Partnerportal ELEKTRONIKPRAXIS.

* Vikram Ramanna ist Senior Staff Applications Engineer bei Cypress Semiconductor.

Artikelfiles und Artikellinks

(ID:44772439)