Suchen

Systemdesign Designtipps für die Softwareentwicklung von Wearables

| Autor / Redakteur: Warren Kurisu * / Franz Graser

Entwickler stehen beim Design von tragbaren Geräten für das Internet der Dinge vor komplexen Anforderungen. Der Beitrag beschreibt welche das sind und wie sich diese Aufgaben lösen lassen.

Firmen zum Thema

Bild 1: Wearables und das Internet der Dinge – So viele Produkte, so viele Möglichkeiten. Was wird die Zukunft bringen?
Bild 1: Wearables und das Internet der Dinge – So viele Produkte, so viele Möglichkeiten. Was wird die Zukunft bringen?
(Bilder: Mentor Graphics)

Bevor wir die Anforderungen von Wearables im IoT näher betrachten, ist es hilfreich, die Terminologie zu definieren. Ein „Wearable“ ist ein Produkt, das lokale Daten sammelt, speichert, verarbeitet und hilft, Entscheidungen zu treffen.

Wearables sind für die Datenaggregation, Datenanalyse, das Remote-Management und die Entscheidungsfindung mit einem Gateway, der Cloud oder mit beiden verbunden. Wearables können auch für eine bestimmte Anwendung, zum Beispiel einen Herzmonitor, entwickelt werden. Diese Endprodukte konsolidieren Funktionen und können voll funktionsfähige Anwendungsplattformen sein.

Für das „Internet der Dinge“ gibt es viele Definitionen. Für diesen Artikel bedeutet IoT im Großen und Ganzen ein über das Internet verbundenes Netzwerk physikalischer Geräte, die Daten oder Informationen an mit dem Internet verbundene Server zur Datenaggregation, Speicherung, Business-Intelligence, Entscheidungsfindung sowie Verwaltung der verbundenen Geräte übertragen.

Momentan erleben wir einen explosionsartigen Anstieg bei anspruchsvollen vernetzten Gegenständen. Das Wearable-Segment allein umfasst intelligente Uhren, Fitness- und Aktivitäten-Tracker, Zuckermessgeräte, implantierte Herzmonitore, Augmented-Reality-Brillen, intelligente Helme und Einlegsohlen, Produkte zur persönlichen Standortbestimmung und vieles mehr (Bild 1).

Die Zukunft dieser zunehmend leistungsfähigeren und vernetzten Wearables ist grenzenlos. Der Trend ist eindeutig: Bei Wearables werden nicht nur die Funktionalität und die Erwartungen der Endanwender steigen, sondern auch die Leistungsfähigkeit, Batterielebensdauer und Zuverlässigkeit.

Konnektivität verlangt hohe Sicherheit

Da vernetzte Wearables immer komplexer werden, fließen private Informationen zunehmend in sie hinein und durch sie hindurch. Tragbare Systeme müssen in einen vertrauenswürdigen Zustand booten, Daten sicher gesammelt und gespeichert werden und die Datenkommunikationspfade zu den Gateways und in die Cloud ebenfalls gesichert sein.

Um die Codegröße zu verringern und die Leistungsfähigkeit zu steigern, sollte die Lösung die Vorteile sicherer Boot-Techniken nutzen und hardwareunterstützte Sicherheitsmechanismen wie Trusted Execution Environments (TEEs) und Crypto-Security-Engines verwenden.

Um die Versprechen von komplexen vernetzten Wearables zu realisieren, muss die Hardware die Power- und Leistungsanforderungen erfüllen. Glücklicherweise liefern Halbleiterhersteller spezielle Hardware, mit der sich derzeitige und zukünftige Generationen von Wearables realisieren lassen.

Beispiele für diese Art von Engagement sind Freescales Wearables Reference Platform (WaRP) und Inedas Dhanush Wearable Processing Unit (WPU). Heutige Wearables werden so konzipiert und mit immer kleineren Prozess-Geometrien gefertigt, dass sie minimale Abmessungen und geringe Leistungsaufnahme erzielen.

Sie enthalten homogene und heterogene Multicore-Anwendungsprozessoren und Mikrocontroller für maximale Flexibilität und bieten Support für Grafiken und Displays zusammen mit zahlreichen Optionen für Konnektivität, Speichermanagement, Sicherheit und vieles mehr.

Skalierbarkeit ist Grundvoraussetzung

Wettbewerbs- und Time-to-Market-Druck erzwingen eine Lösung, die die grundlegenden Features und Funktionen bietet, damit Unternehmen ihren knappen Entwicklungsressourcen für den Aufbau differenzierter Anwendungen nutzen können. – Im Gegensatz zu den Softwareplattformen, auf denen sich diese Anwendungen befinden.

Software-Entwickler finden zwar ein äußerst leistungsfähiges Hardware-Fundament, auf dem sie ihre tragbaren Endprodukte aufbauen können, sie stehen jedoch vor der ziemlich schwierigen Aufgabe, die Software entwickeln, skalieren und testen zu müssen, die diese Produkte ermöglicht.

Da Unternehmen an der Differenzierung und schnellen Markteinführung ihrer tragbaren Produkte arbeiten, wird von Software-Entwicklern eine skalierbare Lösung erwartet, die alle wichtigen Funktionsmerkmale enthält, von sehr einfachen bis hin zu sehr komplexen. Die Gesamtlösung muss nicht nur kleine Speicher aufweisen und Prozessoranforderungen erfüllen, sondern auch modular sein, um die Funktionen nach Konnektivität, Grafiken und Portabilität skalieren zu können und leistungsfähige Multicore-Prozessoren mit konsolidierter Funktionalität unterzubringen.

Ein gutes Beispiel hierfür ist die Konsolidierung eines medizinischen Geräts, das nicht nur den Blutdruck misst, sondern auch andere lebenswichtige Organe überwacht, die Verbindung zu einer Infusionspumpe herstellt, Hospiz-Mitarbeitern eine grafische und akustische Schnittstelle zur Verfügung stellt und mit dem Labor, Krankenhaus und Ärzten über das Internet oder Mobilfunknetz kommuniziert.

Batteriebetriebene Wearables erfordern Fähigkeiten zum Verwalten der Energiezustände von CPU und Anwendung. Aktuelle System-on-Chip- (SoC) Designs bieten Low-Power-Funktionen wie Leerlauf- und Sleep-Modi, dynamische Spannungsfrequenzskalierung (DVFS) und Ruhezustand. Doch die Komplexität zur Implementierung der Low-Power-Funktionen in die Hardware verbraucht mitunter wertvolle Entwicklungszeit und verhindert oft, dass Anwendungsentwickler energieeffizienten Code generieren.

Die Verwendung eines Power-Management-Frameworks

Bild 2: Im Mittelpunkt eines Power-Management-Frameworks befindet sich der Gerätemanager, der während des Wechsels in einen Low-Power-Zustand den Übergang aller Geräte koordiniert
Bild 2: Im Mittelpunkt eines Power-Management-Frameworks befindet sich der Gerätemanager, der während des Wechsels in einen Low-Power-Zustand den Übergang aller Geräte koordiniert
(Bilder: Mentor Graphics)

Ebenso wie moderne Softwarearchitekturen Hardwarefunktionen durch Gerätetreiber abstrahieren, bietet ein Power-Management-Framework (Bild 2) allen Systemgeräten, die mit Hilfe von intuitiven API-Aufrufen gesteuert werden, einen strukturierten Mechanismus. Jede Veränderung eines Gerätes, die sich auf andere Geräte auswirkt, führt zu einem koordinierten Übergang über alle involvierten Systeme.

Mit einem Power-Management-Framework können Embedded-Softwareentwickler effektiven Code für Wearable-Produkte schreiben, der die Power-Anforderungen erfüllt und den Code nicht weiter aufbläht oder den Speicherbedarf vergrößert. Ein Power-Management-Framework erlaubt Entwicklern, die Power-Spezifikationen früh im Designzyklus zu berücksichtigen. Code kann geschrieben werden, um den Speicherbedarf und die Leistungsaufnahme zu verringern und er kann während des Entwicklungsprozesses getestet werden, um sicherzustellen, dass die Power-Anforderungen erfüllt werden.

Wearables benötigen eine leistungsfähige Hardware, die die Integration von Multicore-Prozessoren in die Platzverhältnisse von Wearables unterstützt. Diese Multicore-Prozessoren beinhalten neben den Mikrocontrollerkernen noch Anwendungskerne für energieeffizienten Betrieb. Systemarchitekturen beginnen, heterogene Betriebsumgebungen auf diesen heterogenen Multicore-Prozessoren ablaufen zu lassen.

Betriebssysteme können eine Mischung aus Allzweck-Betriebssystemen wie Linux oder Android enthalten, die neben einem Echtzeitbetriebssystem (Real-time Operating System, RTOS) wie das Nucleus RTOS oder sogar Bare-Metal-Umgebungen laufen.

Herausforderungen heterogener Multicore-Umgebungen

Bild 3: Der Interprozess-Kommunikationskanal (IPC) gestattet die Datenübertragung zwischen dem Master-Betriebssystem (Core 0) und dem Remote-Betriebssystem (Core 1) unter Berücksichtigung von Pufferzuweisung, Priorisierung der Nutzdaten und Konfiguration von Gerätebäumen
Bild 3: Der Interprozess-Kommunikationskanal (IPC) gestattet die Datenübertragung zwischen dem Master-Betriebssystem (Core 0) und dem Remote-Betriebssystem (Core 1) unter Berücksichtigung von Pufferzuweisung, Priorisierung der Nutzdaten und Konfiguration von Gerätebäumen
(Bilder: Mentor Graphics)

Die Komplexität, die durch diese Architekturen entsteht, führt zu einer völlig neuen Art von Problemen hinsichtlich Entwicklung, Debugging und Optimierung eines Systems. Mit einem umfassenden Power-Management-Framework können Entwickler die vielen Herausforderungen bei heterogenen Multicore-Umgebungen managen. In erster Linie sind das Interprozesskommunikation (Inter-Process Communication, IPC) und Remote-Processor-Lifecycle-Management.

Interprozesskommunikation: Sobald das Master-Prozessor-Betriebssystem und der Anwendungs-Stack laufen, benötigen viele Wearable-Anwendungsfälle die Kommunikation mit anderen Teilen des Systems. Das Power-Management-Framework von Mentor Graphics bietet zum Aufbau eines Kommunikationskanals zwischen Master-Betriebssystem und den Remote-Betriebssystemen eine Implementierung (proprietäre Lizenz) eines Open-Source-Remote-Processor-Messaging-Features (rpmsg). So werden die Daten zwischen den beiden in einem Interprozessor-Kommunikationskanal (Bild 3) übertragen. Ein wichtiger Vorteil dieses Ansatzes ist die Möglichkeit, den Energiezustand der Slave-Cores von einem Master-Core aus zu steuern. Ungenutzte Cores und Anwendungen müssen nicht ausgeführt werden, wenn es der Anwendungsfall nicht erfordert.

Remote-Processor-Lifecycle-Management: Die Kontrolle über einen Remote-Prozessor zu übernehmen und dann ein Betriebssystem (oder einen Anwendungs-Stack) innerhalb dieses Remote-Prozessors zu starten oder zu stoppen, wird als Remote-Processor-Lifecycle-Management bezeichnet. Die Linux-Gemeinde hat zum Managen dieser Art von Szenarien ein Remote-Prozessor-Framework (remoteproc) in eine Open-Source-Umgebung aufgenommen und Mentor Graphics hat diese Technologie in sein Power-Management-Framework integriert.

Bild 4: Remote-Processor-Lifecycle-Management erlaubt es dem Master-Betriebssystem (Core 0), andere Betriebssysteme auf weitere Kerne zu bringen
Bild 4: Remote-Processor-Lifecycle-Management erlaubt es dem Master-Betriebssystem (Core 0), andere Betriebssysteme auf weitere Kerne zu bringen
(Bilder: Mentor Graphics)

Mentors remoteproc-Funktion (Bild 4) erlaubt die Interoperabilität zwischen unterschiedlichen Betriebssystemen wie Mentor Embedded Linux, Nucleus RTOS und Bare-Metal-Umgebungen. Ein wesentlicher Vorteil dieser Technologien ist die verringerte Leistungsaufnahme. Wenn er nicht gebraucht wird, bleibt der Remote-Prozessor in einem Low-Power-Zustand. Das ist eine entscheidende Design-Anforderung.

IoT-Kommunikation und Protokolle

Wearables lassen sich über ein Gateway oder über die Cloud miteinander verbinden. Dafür müssen sie sowohl Standards unterstützen wie Wi-Fi, Bluetooth und/oder Bluetooth Low Energy (BLE) als auch Standards wie 6LowPAN und Thread. Für die Kommunikation zwischen Produkt und Gateway sowie zwischen Produkt und Cloud könnten Wearables auch Support für IoT-Protokolle wie CoAP, MQTT und XMPP bieten. Wie andere Funktionen müssen diese innerhalb und außerhalb der Lösung skalierbar sein, um die spezifischen Anforderungen von Wearables zu erfüllen.

Fazit: Die Zeit ist reif für Wearables

Die Welt der IoT-Wearables wächst von Tag zu Tag. Gute Rahmenbedingungen für Geschäftsmöglichkeiten bestehen dank der Kapazität der Internet- und Wireless-Bandbreite zusammen mit den Fortschritten bei Prozessoren und Geräten, der Standardisierung von IoT- und Kommunikationsprotokollen und effizienten Power-Management-Lösungen.

Unternehmen, die Wearables entwickeln, profitieren von einer hochskalierbaren Embedded-Entwicklungsplattform. Sie deckt die Anforderungen von kleinen ressourcenbeschränkten Systemen bis zu komplexeren Produkten ab, die heterogene Betriebssystemumgebungen auf homogenen oder heterogenen Architekturen unterstützen.

Dieser Beitrag ist ursprünglich auf unserem Schwesterportal Elektronikpraxis.de erschienen.

* Warren Kurisu verantwortet bei Mentor Graphics das Embedded-Laufzeitplattform-Business, unter anderem für das Nucleus-Betriebssystem.

(ID:44415953)