Internet der Dinge

Wie die richtigen Tools das intelligente IoT-Design erleichtern

Seite: 3/3

Firma zum Thema

Stack Services: Die Stack Services (im Stack blau dargestellt) sind hinsichtlich der Funktionalität die abstraktesten Ebenen. Sie stellen einen standardisierten und hardwareunabhängigen Zugang zu den Diensten bereit und sorgen so für die Portierbarkeit einer Applikation. Wenn die Anwendung etwa einen generischen TCP/IP-Dienst nutzt, bleibt sie unverändert, auch wenn Ethernet durch PPP und eine serielle Lösung ersetzt wird. Eine portable TCP/IP-Applikation arbeitet also absolut identisch, gleich, ob sie an eine UART- oder eine EMAC-Peripherie angebunden wird, denn um die Einzelheiten kümmert sich die Software Platform.

Software Services: Einige Dienste sind statischer Natur und nicht für die Instanziierung vorgesehen. Sie besitzen keine (direkte) Beziehung zu Peripheriefunktionen oder anderen Diensten und richten gängige Funktionen wie das POSIX-Multithreading, CMSIS, Software-Timer oder den Interruptmanagement-Support ein. Die Software Services können ebenfalls automatisch hinzugefügt werden, wenn sie von anderen Diensten benötigt werden (Bild 2).

Bildergalerie
Bildergalerie mit 6 Bildern

Die Software Platform lässt sich leicht integrieren

Es sind nur wenige Arbeitsgänge erforderlich, um die Software Platform in ein auf Eclipse basierendes TASKING-ARM-Cortex-Tools-Projekt zu integrieren. Als erstes muss das Software-Platform-Dokument zum Projekt hinzugefügt werden. Die benötigten Software Services und Device Stacks werden im „Add“-Menü durch Setzen des zugehörigen Häkchens angefügt (siehe Bild 3).

Ist im Software-Platform-Dokument ein Device Stack angeklickt, können die für das Device verfügbaren Stacks mithilfe der Optionen „Grow stack up“ oder „Grow stack down“ ausgewählt werden. Bild 4 zeigt die Stack-Elemente für das USART-Interface. Durch Ändern der Optionen in der Properties-Ansicht lassen sich die Device Stacks konfigurieren. Exemplarisch zeigt Bild 5 die Konfigurations-Optionen des Ethernet-MAC-Treibers. Nachdem die Software Platform konfiguriert ist, werden alle zu den verwendeten Devices gehörenden C- und Header-Dateien dem Eclipse-Projekt hinzugefügt. Werden Device-Parameter geändert, lassen sich die Projektdateien durch Anklicken des „Generate Code“-Buttons aktualisieren.

Aus dem Quellcode des Embedded-Projekts heraus können die Funktionen der Software Platform genau wie jede andere C-Funktion aufgerufen werden. Die Zuweisung der Funktionen, ihrer Parameter sowie etwaiger Datenstrukturen werden in einer Online-Hilfe zum API erläutert. Bild 6 (auf elektronikpraxis.de, Sucheingabe: 42937181) zeigt eine Aufstellung der verfügbaren Funktionen und Strukturen für die HTTP-Konfiguration.

Komponenten des Software Platform Builders

Das Software Platform Repository enthält eine ganze Reihe von Komponenten, die speziell für das Erstellen von IoT-Applikationen von Interesse sind. Da das gesamte Internet auf TCP/IP-Netzwerken basiert, erscheint ein TCP/IP Stack Service als eine notwendige Voraussetzung für die Kommunikation per Internet. Dabei kann das TCP/IP-Protokoll auf eine Ethernet-Schicht aufsetzen. Ebenso besteht jedoch die Möglichkeit der drahtlosen Kommunikation mithilfe eines WiFi USB Sticks oder einer seriellen Verbindung mit dem Point-to-Point Protocol (PPP). Hierbei kann es sich um eine Modemverbindung, eine GSM-Datenverbindung oder sogar um eine GPRS-Verbindung handeln.

Oberhalb des TCP/IP-Stacks kann der HTTP-Stack-Service hinzugefügt werden, der im IoT-Kontext oft für Representational State Transfers (REST) genutzt wird. Ein weiterer Vorteil des HTTP-Services ist die Unterstützung von HTTP Secure (HTTPS) für eine sichere Kommunikation sensibler Informationen. Die Verschlüsselung dient zudem der sicheren Identifikation eines Netzwerk-Servers, damit genau bekannt ist, mit welcher Gegenstelle jeweils kommuniziert wird. Einige offene APIs wie das neueste Twitter-API, akzeptieren nur noch eine abgesicherte Kommunikation.

Wichtig ist auch die Datendarstellung. Beide Seiten sollten die Daten korrekt interpretieren können. Für diesen Zweck wird häufig XML verwendet, auch wenn dies kaum die beste Wahl für Embedded-Geräte sein dürfte. Bei kleinen Geräten ist es oft günstiger, das JSON-Format (JavaScript Object Notation) zum strukturierten Senden von Daten zu verwenden. Das Repository enthält ein Streaming JSON API (im SAX-Stil), das sehr nützlich ist, wenn komplexe JSON-Strukturen ohne großen Speicherbedarf analysiert werden sollen.

* Harrold Spier ist Senior Software Engineer,

* Ulrich Kloidt ist Senior Support Engineer, beide bei Altium Europe.

(ID:42937181)