Schwerpunkte

Modularisierung der Systementwicklung

Dividende der Skaleneffekte

17. September 2020, 07:00 Uhr   |  Cliff Ortmeyer, Global Head of Technical Marketing von Farnell

Dividende der Skaleneffekte
© Farnell

Skaleneffekte bei der Arbeit: Dank Smartphone-SoC, konnte das Raspberry-Pi-Konsortium ein weitaus effektiveres Produkt liefern, als mit einem rein für Bildungszwecke entwickelten Design möglich gewesen wäre.

Off-The-Shelf-Hard- und Softwaremodulen haben die Entwicklungsaufgaben verändert. So ist beispielsweise die Integration von Open-Source- und proprietären Funktionen stärker in den Fokus gerückt. Neue Angebote bringen jetzt alles einfacher zusammen.

In der Entwicklung von Elektronikgeräten hat eine stille Revolution stattgefunden. Mit der fortschreitenden Integrationsdichte von Schaltkreisen (ganz entsprechend dem Mooreschen Gesetz) sind Entwickler Stück für Stück von der hauptsächlich auf Bauelement- und Schaltungsebene stattfindenden Entwicklung zum stärkeren Einsatz von Platinen, Modulen und Subsystemen übergegangen. Der Vorteil war eine enorme Effizienzsteigerung in der Elektronikentwicklung. Dieser Wandel findet jetzt auch im Softwarebereich statt, wo Entwickler vermehrt auf wiederverwendbare Module setzen, anstatt hauptsächlich selbstgeschriebenen Code zu nutzen.

Die Umstellung auf modulares Design hat zahlreiche Vorteile. Einer davon ist die leichtere Teilhabe an den Skaleneffekten, die sich aus der Verwendung von Plattformen ergeben, die viele Kunden anlocken. Industrielle Anwender haben bereits langjährige Erfahrung mit modularen Geräten. Die Standards Versa Module Eurocard (VME) und CompactPCI ermöglichten Integratoren und OEMs, die auf Märkten mit geringem Volumen tätig sind, die Verwendung von Hochleistungsrechnern. Sie konnten die Funktionen eines Computers umfassender anpassen, ohne Zeit und Aufwand in die Entwicklung von High-End-Leiterplatten investieren zu müssen. Seitdem haben die mit dem Mooreschen Gesetz beschriebenen Prozesse für unglaubliche Zugewinne an Funktionalität gesorgt und gleichzeitig die Kosten einzelner Teile reduziert. Der Raspberry-Pi-Einplatinencomputer ist dafür ein Schlüsselbeispiel.

Durch Ausnutzung der Skaleneffekte, die mit einer Smartphone-System-on-a-Chip-Plattform einhergehen, konnte das hinter dem Raspberry Pi stehende Konsortium ein weitaus effektiveres Produkt liefern, als dies mit einem ursprünglich für Bildungszwecke entwickelten Design möglich gewesen wäre. Die NRE-Kosten (Non-Recurrent Engineering), die dem Chip-Hersteller entstanden sind, wurden vom primären Zielmarkt mühelos aufgenommen, und die Zielbenutzer des Raspberry Pi erhalten einen viel höheren Mehrwert. Dieser Kostenvorteil wurde an den Industriesektor weitergegeben. Integratoren und OEMs haben die Modularität der Raspberry-Pi-Plattform genutzt und mithilfe des HAT-Erweiterungsbusses ihre eigenen benutzerdefinierten Schnittstellenmodule hinzugefügt.

Durch die Verwendung der Pi-Module müssen Entwicklungsteams keine ähnlichen Bauelemente beschaffen und diese auf eigenen PCBs integrieren. Diese erfordern häufig zeitaufwändigere Prüfungen von Signalintegrität und Funktion als beim Erstellen der Front-End-HAT-Module erforderlich sind. Diese angepassten Module können meist mit relativ einfachen zwei- oder vierschichtigen PCBs betrieben werden.

Bei Software ist ein ähnlicher Trend zur Modularisierung aufgekommen. Entwickler können sich jetzt ausschließlich auf die Elemente einer Anwendung konzentrieren, mit denen sie einen Mehrwert schaffen können. Dieser Trend hat seinen Ursprung nicht nur in Skaleneffekten und der Fähigkeit einiger Anbieter, eine effektive Amortisation von NRE zu erreichen, sondern auch im größeren Trend hin zu vernetzter Integration und serviceorientierten Geschäftsmodellen. Ein Embedded-System ist heutzutage oft nicht vollständig, wenn es nicht Teil eines größeren Systems von Systemen wie beispielsweise dem Internet der Dinge ist. In dieser Umgebung kann ein Gerät zur Bereitstellung eines oder mehrerer Dienste verwendet werden – wobei sich viele dieser Dienste während der Lebensdauer der Geräte, auf denen sie laufen, ändern. Die Kombination aus IoT und Cloud führt zu neuen Geschäftsmodellen, die diese Funktionen nutzen, wie Software-as-a-Service (SaaS) und Pay-per-Use. Flexibilität ist zu einem Schlüsselkriterium in diesem kommerziellen Umfeld geworden und veranlasst Implementierer, stärker auf modularisierte Strukturen zu setzen.

Modularität beginnt beim Betriebssystem. Das Betriebssystem unterstützt Abstraktionen, die für die Erstellung flexibler, modularer Umgebungen von entscheidender Bedeutung sind. In der Regel bietet ein Betriebssystem eine Reihe von Diensten, die von der einfachen Ein-/Ausgabe bis hin zu vollständigen Netzwerk-Stacks reichen und auf die über eine Reihe dokumentierter APIs (Application Programming Interfaces) zugegriffen werden kann. Solange die Dienste die APIs weiterhin unterstützen, kann sich deren Code ändern, ohne dass dies Auswirkungen auf die Anwendungen hat, die diese APIs verwenden. Dies gilt für den einfachen Echtzeit-Scheduler FreeRTOS, der mit vielen Microcontroller-Entwicklungs-Tools geliefert wird, ebenso wie für kommerzielle und komplexere RTOS-Implementierungen wie VxWorks  von Wind River. VxWorks gilt vielen als Industriestandard für Embedded-Betriebssysteme und läuft auf einigen der wichtigsten Infrastrukturen und Geräte.

Linux und andere Betriebssysteme können die Speicherverwaltung weiter verbessern, indem sie es ermöglichen, Aufgaben voneinander zu isolieren. Ein mögliches Problem bei einfachen RTOS-Strukturen besteht darin, dass sie in einem völlig unpartitionierten Speicher arbeiten. Fehler oder Schadfunktionen in einer Aufgabe können dazu führen, dass Daten und Code in einer anderen Aufgabe versehentlich überschrieben werden, was zu einem Systemabsturz oder anderen unerwünschten Ergebnissen führt. Linux verwendet eine virtuelle Adressierung, die von einer Hardware-Speicherverwaltungseinheit vermittelt wird, um zu verhindern, dass Aufgaben auf die Speicherbereiche anderer Aufgaben zugreifen. Sie können nur über Betriebssystem-APIs oder Inter-Anwendungs-Protokolle auf Grundlage dieser APIs interagieren.

Die Adressierung des virtuellen Speichers ist keine absolute Voraussetzung für die Aufgabenisolierung. Einige Mikrocontroller-Architekturen, darunter mehrere Mitglieder der Arm-Cortex-M- und Cortex-R-Familien, können den Speicherschutz in einem flachen Speicherplatz erzwingen. Arm bietet in einer Reihe seiner Prozessoren auch den sicheren Softwaremodus von Trustzone, mit dem vertrauliche Software von Aufgaben auf Benutzerebene isoliert werden kann. Mit diesem Schutz wird es einfacher, eigenen Code mit der wachsenden Auswahl an Standard-Softwaremodulen zu kombinieren, die für allgemeine Aufgaben entwickelt wurden.

Heute haben Entwickler Zugriff auf eine Reihe kostenloser Open-Source-Softwaremodule und Protokoll-Stacks, die über Github, Sourceforge  und andere Dienste verfügbar sind. Kommerzielle Stacks, die mehr Unterstützung, zusätzliche Funktionalität oder Zertifizierungen für sicherheitskritische Anwendungen  bieten, werden ebenfalls angeboten. Die von Chip-Herstellern zusammengestellten Referenzentwürfe kombinieren häufig eine Reihe von Open-Source- und proprietären Funktionen, um Kunden den Bau von Prototypen bis hin zur vollständigen Produktimplementierung zu erleichtern. In einigen Fällen implementiert das Referenzdesign eine vollständige Anwendung, die der Endbenutzer an seine eigenen Bedürfnisse anpassen kann.

Einige Systementwickler nutzen die zunehmende Modularität von Software, um Entwicklungsumgebungen zu erstellen, die Parameter optimieren und Code automatisch generieren. Diese Tools verwenden häufig blockbasierte Darstellungen von Software, die der Entwickler auf einer grafischen Benutzeroberfläche zusammenstellt. Ein Beispiel ist der MPLAB-Code-Konfigurator von Microchip für die Mikrocontrollerfamilien PIC8, PIC16 und PIC32.

Erweiterte Anwendungen wie maschinelles Lernen und Bildverarbeitung sind Beispiele für Bereiche, in denen Benutzer von den hohen NRE-Investitionen von Spezialisten profitieren und die jahrelange Entwicklungszeit vermeiden können, die eine solche Software erfordern würde, wenn Benutzer diese von Grund auf neu erstellen müssten. Mit Caffe, PyTorch und Googles Tensorflow können komplexe Modelle künstlicher Intelligenz (KI) erstellt, trainiert und optimiert werden. Diese lassen sich dann problemlos in eingebettete Verarbeitungspipelines integrieren. OpenCV ist eine weit verbreitete Bibliothek für die Bildverarbeitung, die problemlos in Echtzeitanwendungen integriert werden kann. Mit dem Aufstieg des maschinellen Lernens wird heutzutage zunehmend auf ein Verwendungsmodell zurückgegriffen, bei dem Bilddaten mit OpenCV vorverarbeitet werden, bevor sie an ein mit Caffe oder Tensorflow erstelltes KI-Modell übergeben werden. Eigener Code wird dabei hauptsächlich verwendet, um die Echtzeitreaktion auf vom Modell erkannte Ereignisse bereitzustellen.

Entwickler haben jetzt Zugriff auf cloud-orientierte Softwaremodule und -tools, die sich einfach in gängige Netzwerk-Stacks und RTOS-Implementierungen integrieren lassen. Dadurch können Embedded-Systeme unterschiedlicher Komplexität in das IoT integriert werden. Die „IoT Connect Platform“  von Avnet bietet beispielsweise eine cloud-basierte Verarbeitung für komplexe Aufgaben wie KI. Da das System sowohl von Cloud- als auch von Embedded-Gerätesoftwarediensten definiert wird, haben Cloud-Anbieter wie Amazon Web Services und Microsoft Azure jetzt eine Reihe von Angeboten, die beides zusammenbringen und allesamt die Modularität der von ihnen verwendeten Softwarekomponenten ausnutzen.

Die Modularisierung verändert auch die Fähigkeiten, die Entwickler von Embedded-Software brauchen. Der Schwerpunkt der Aufgaben verlagert sich von der Codeentwicklung hin zur Fähigkeit, auf der Grundlage bestehender Module flexible Architekturen zu erstellen, die eine einfache Programmierung mit eigenem Code und eine einfache Laufzeitkonfiguration für neue bereitzustellende Dienste ermöglichen. Durch die Ausnutzung dieser Modularität können OEMs und Systemintegratoren einfacher mit den Anforderungen von Kunden Schritt halten, was sonst mit herkömmlichen Mitteln nur schwer vorstellbar wäre.

Die „IoT Connect Platform“ vom Avnet bietet eine cloud-basierte Verarbeitung für komplexe Aufgaben wie KI.
© Avnet

Die „IoT Connect Platform“ vom Avnet bietet eine cloud-basierte Verarbeitung für komplexe Aufgaben wie KI.

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen

Verwandte Artikel

Farnell GmbH