Modulare Design-Trends 2020: Hardware vs. Software

Zachariah Peterson
|  Created: November 5, 2019  |  Updated: March 30, 2021

Hardware and software containers

 

Containerisierung als Kernkonzept für modulare Hardware und modulare Software

Das modular Design für Hardware ist allgegenwärtig und in der Embedded-Welt auf dem Vormarsch. Der starke Zuwachs von Ökosystemen wie Arduino und Raspberry Pi hat zu einer vermehrten Verwendung dieser Architektur geführt. Open-Source-Hardware-Plattformen gewinnen an Dynamik, insbesondere beim Entwurf von Einplatinencomputern und Development Boards.

Bei Software sehen wir genau dieselben Trends. Die große Anzahl an Open-Source-Bibliotheken für den Einsatz mit populären Programmiersprachen (wie Javascript oder Python) bietet Entwicklern viele Freiheitsgrade, neue Funktionen zu implementieren, ohne das Rad neu zu erfinden. Für Embedded-System-Designer schließen sich modulare Hardware und Software nicht länger gegenseitig aus. Mit den richtigen Designwerkzeugen können Entwickler von Embedded Systems in Zukunft beide Ansätze in ihrer Produktentwicklung verfolgen.

Modular Designs Aufbau für Einplatinencomputer

Das Baukastenprinzip zerlegt ein generisches System in mehrere unabhängige Komponenten, von denen jede einzelne verwendet werden kann, um unterschiedliche Funktionen auf andere Systeme auszudehnen. Single-Board-Computer (SBCs) werden zunehmend in modular Designs eingesetzt. Beliebte SBCs wie Raspberry Pi bieten mit Erweiterungsplatinen (hardware attached on top, HAT) Möglichkeiten zur Funktionalitätserweiterung des SBCs. Neben dem Raspberry Pi bieten Produkte wie BeagleBone, Asus Tinker Board, Odroid-XU4 oder NVIDIA Jetson den Konstrukteuren die Gelegenheit, bei der Produktentwicklung einen modularen Designansatz zu verfolgen. 

Computer-on-Modules (COMs) sind der logische Schritt auf dem Weg zu einem modularen SBC, indem sie die zentralen Rechen- und Steuerfunktionen in einem kompakten Modul vereinen. Ein COM kann dann über einen Schnittstellen-Slot mit einer speziellen Trägerkarte verbunden werden, sodass Anwender weitere Funktionen in eine kundenspezifischen Baugruppe integrieren können. Dies ermöglicht es dem Entwickler, sich auf die Erweiterung der Basisfunktionalität der handelsüblichen SBCs zu konzentrieren.

COM and carrier board for modular hardware vs modular software

Schnittstelle zwischen einer Trägerkarte und einem COM

Künstliche Intelligenz und modulare Hardware

Neuerungen auf dem Gebiet der künstlichen Intelligenz (KI, engl.: AI) erschüttern bestehende Märkte. Dank AI-Edge-Accelerators, die an jeden SBC anschließbar sind, gewinnt die KI im Edge-Computing bei einem breiteren Anwenderkreis an Beliebtheit. So kann beispielsweise der Intel Movidius Neural Compute Stick über den USB-Port an beliebige Hardware-Boards angeschlossen werden und KI in unzählige Anwendungen bringen. Ein weiteres großartiges Beispiel ist der Grove AI HAT, der leicht an ein Raspberry Pi gesteckt werden kann.

Grove AI HAT module for modular hardware vs modular software development

Grove AI HAT-Modul. Dieses Board lässt sich leicht mit einem Raspberry Pi verbinden. Bildquelle: wiki.seeedstudio.com

Der Vorstoß in Richtung einer hochmodernen KI fördert den verstärkten Einsatz modularer Designansätze für Hardware, sowohl auf der Hardware- als auch auf der Software-Ebene. Viele IoT-Produktentwickler tendieren dazu, sich bei KI-Anwendungen eher auf die Software zu fokussieren. Die Hardware-Plattform ist jedoch ebenso wichtig, da sie die Grundlage für die Anbindung an die analoge Welt bildet. Die Arbeit mit einer Hardware-Plattform und das Entwerfen einer eigenen Trägerplatine für COMs gibt Embedded-Designern die Freiheit, Funktionen einzubauen, die über das hinausgehen, was die meisten SBCs bieten können.

ROS: Roboterentwicklung

Generell ist auch die Robotertechnik um ein Modularitätskonzept herum aufgebaut. Alle Teile sind modular und die Module fügen sich zu einem funktionierenden System zusammen. Jeder, vom Großunternehmen bis zum Maker, verfolgt in der Robotik eine modulare Hardware-Designlösung.

Aufseiten der Roboter-Software ist ROS ein interessantes Robotik-Framework mit der Modularität als Kern. ROS, auch bekannt als Robot Operating System, ist ein Meta-Betriebssystem, das speziell für Robotikanwendungen entwickelt wurde. ROS kombiniert mehrere Software-Frameworks, um Dienste für Hardware-Abstraktion, Low-Level-Gerätesteuerung, Kommunikation und vieles mehr bereitzustellen. Sein Vorteil besteht darin, dass es für den Betrieb auf einer solchen Hardware-Architektur ausgelegt ist. Die Modularität von ROS auf der Hardware- und Software-Ebene ermöglicht es den Benutzern, auszuwählen, welche Teile, Module, Knoten oder Dienste in ein neues Produkt integriert werden sollen.

Modularisierung in der Softwareentwicklung

Im gleichen Maße, wie wir Modularität im Hardwarebereich diskutierten, rückt auch in der Softwareentwicklung (über ROS hinaus) das Kernkonzept des modularen Designs immer mehr in den Vordergrund. Im Software-Engineering geht es bei der Modularisierung darum, eine Software-Anwendung in mehrere kleineren Module zu unterteilen. Jedes Modul ist für die Implementierung oder Integration eines wesentlichen Bestandteils des Gesamtsystems verantwortlich.

Modular software development concept

Zerlegung einer Software-Plattform in verschiedene Module.

Umgekehrt erleichtert das modulare Design von Softwareanwendungen die lose Kopplung von Klassen oder Methoden, wodurch der Code leichter zu warten und zu debuggen ist. Die Modularisierung hilft Programmieren, vorhandenen, vorprogrammierten Code im neuen System zu verwenden und dadurch Zeit und wertvolle Ressourcen zu sparen. Stellen Sie sich das so vor, als würden Sie Ihre Software-Architektur in verschiedene Funktionsblöcke unterteilen, wobei jeder Funktionsblock jeweils relevante Funktionen enthält, die für Ihre Anwendung erforderlich sind. Der Entwickler muss lediglich definieren, wie jeder Block mit anderen Blöcken zusammenarbeiten soll.

Diese Systeme sind im Vergleich zu traditionellen monolithischen Systemen leichter wiederverwendbar und veränderbar. Denn während der Entwicklung erstellte Module können in anderen Projekten weiterverwendet werden, ohne dass größere Änderungen erforderlich sind. Bei großen Software-Entwicklungsteams ermöglicht dieser Designansatz neuen Teammitgliedern, in ein bestehendes Projekt einzusteigen und sich schnell mit dem vorhandenen Software-Stack vertraut zu machen.

Modularität in Webdesign und -entwicklung

Zweifellos eine der größten Erfolgsgeschichten im Bereich Webdesign und -entwicklung ist WordPress. Laut W3techs verwenden 61,4 % aller Internetseiten, von denen bekannt ist, dass sie ein Content-Management-System (CMS) einsetzen, WordPress. Das entspricht nahezu 35 % des gesamten Internets. 

Modular software design with WordPress
Ein typisches WordPress-Dashboard

WordPress basiert im Kern auf der modularen Denkweise. Es besteht aus Modulen, die wichtige Funktionen für eine Website bereitstellen. Möchte ein Anwender z. B. eine Straßenkarte anzeigen, wird diese durch die Installation eines Map-Plugins (wie ein Modul im Hardwaredesign) hinzugefügt. Dies funktioniert, ohne dass die vorhandene Codebasis für diese Funktionen neu geschrieben werden muss. Ein weiteres Beispiel hierfür ist die Wix-Plattform. Auch wenn es nicht ganz so anpassbar ist wie WordPress, bietet Wix eine ähnliche Modularität. Benutzern stehen Apps zur Verfügung, mit denen die Funktionalität der Website verbessert und erweitert werden kann.

Derzeit werden Hardwaredesigns herausgegeben, die mit einem vorhandenen System verbunden werden können, um dessen Funktion zu verbessern. Entwicklungsplattformen wie LabVIEW (Laboratory Virtual Instrument Engineering Workbench) ermöglichen es Ihnen, Softwareanwendungen zu erstellen, die vollständig wiederverwendbar und an neue Systeme anpassbar sind. Das Besondere an LabVIEW ist, dass Sie komplizierte Datenerfassungs- und Signalverarbeitungsfunktionen definieren können, ohne eine einzige Zeile Code zu schreiben. Dasselbe System in einer anderen Programmiersprache zu erstellen, wäre weitaus aufwendiger und zeitintensiver.

Upverter ermöglicht Modularität für alle

Die Open-Source-Bewegung, die sich anfangs auf die Softwareentwicklung konzentrierte, dringt immer stärker in die Hardware-Entwicklung vor und trägt so zu höherer Modularität neuer Produkte bei. Werden COMs, kundenspezifische Trägerkarten und die richtigen Open-Source-Bibliotheken zusammen eingesetzt, können Embedded-Designer bei der Entwicklung neuer Produkte einen diesen Ansatz vollständig auf Hardware- und Software-Ebene verfolgen. Da neuere Industrie-, Edge-Computing- und IoT-Produkte immer komplexer werden und sich deren Funktionalität stetig erhöht, werden sich diese neuen Produktentwicklungstrends auch 2020 weiter fortsetzen.

Plattformen wie Upverter helfen Designern bei der Entwicklung von Embedded-Computing-Lösungen der nächsten Generation. Upverter ist eine grafische SBC-Design-Schnittstelle, die ein umfangreiches Sortiment an COMs und anderen Modulen, wie Sensoren, Aktoren und weiteren Komponenten enthält. Mit dieser einzigartigen Plattform lassen sich vorhandene Trägerplatinen einfach modifizieren bzw. vollständig kundenspezifische Platinen (mit den COMs als Kern-Modul) erstellen.

Alle diese Tools stehen in einer browserbasierten Designoberfläche zur Verfügung, mit der Designer voll funktionsfähige modulare Hardwaresysteme erstellen und die Produktion schnell planen können. Ein Linux-Kernel kann auf den COM geladen werden, und das Gerät lässt sich leicht in Standardsprachen programmieren. Diese einzigartige Plattform erlaubt es Designern, einen vollständig modularen Ansatz für Hardware-Design und Softwareentwicklung zu verfolgen.

Werfen Sie einen Blick auf einige Erfolgsgeschichten von Gumstix-Kunden oder kontaktieren Sie uns noch heute, um mehr über unsere Produkte, Designwerkzeuge und Dienstleistungen zu erfahren.

About Author

About Author

Zachariah Peterson verfügt über einen umfassenden technischen Hintergrund in Wissenschaft und Industrie. Vor seiner Tätigkeit in der Leiterplattenindustrie unterrichtete er an der Portland State University. Er leitete seinen Physik M.S. Forschung zu chemisorptiven Gassensoren und sein Ph.D. Forschung zu Theorie und Stabilität von Zufallslasern. Sein Hintergrund in der wissenschaftlichen Forschung umfasst Themen wie Nanopartikellaser, elektronische und optoelektronische Halbleiterbauelemente, Umweltsysteme und Finanzanalysen. Seine Arbeiten wurden in mehreren Fachzeitschriften und Konferenzberichten veröffentlicht und er hat Hunderte von technischen Blogs zum Thema PCB-Design für eine Reihe von Unternehmen verfasst. Zachariah arbeitet mit anderen Unternehmen der Leiterplattenindustrie zusammen und bietet Design- und Forschungsdienstleistungen an. Er ist Mitglied der IEEE Photonics Society und der American Physical Society.

most recent articles

Back to Home