Was ist eingebettete Software oder Embedded Software?
Solch eine Software wird nicht in „normalen“ PCs oder mobilen Endgeräten verwendet. Sie wird speziell für die Hardware geschrieben, auf der sie auch eingesetzt wird. Embedded Software wird beispielsweise in GPS-Geräten, Fabrikationsrobotern oder Taschenrechnern implementiert.
Was bedeutet RTOS und warum ist solch ein System speziell für eingebettete Software wichtig?
RTOS steht für Real-Time Operating System, übersetzt „Echtzeitbetriebssystem“. Das ist ein Betriebssystem, das die Kombination aus Hard- und Software in eingebetteten Systemen verwaltet und steuert. Während „Alternativen“ wie Windows oder Linux viele Anwendungen steuern, werden RTOS nur für besondere Aufgaben verwendet. RTO-Systeme werden eingesetzt, wenn Leistung und Zuverlässigkeit in Echtzeit von eingebetteter Software verlangt werden. Diese Systeme zeichnen sich durch niedrige Latenz, gute Aufgabenplanung, passgenaue Ressourcenverwaltung und eigene Fehlerbehebung aus. Bekannte RTO-Systeme sind VxWorks, FreeRTOS, Zephyr, ThreadX und Nucleus RTOS.
Was bedeutet „Bare Metal Programming“?
Übersetzt bedeutet „Bare Metal Programming“ in etwa „Programmierung nur für Hardware“. Gemeint ist Software, die direkt mit der Hardware kommuniziert, ohne den „Umweg“ über Schnittstellen oder Betriebssysteme. In diesen Bereich fallen auch sogenannte „Bare Machines“, die ohne Betriebssysteme arbeiten. Bare-Metal-Programmierung bietet volle Kontrolle über Systemressourcen, einschließlich CPU, Speicher und angeschlossene Peripheriegeräte. Ein Vorteil ist der geringere Speicherbedarf, besonders wo Ressourcen beschränkt sind. Der Nachteil ist, dass diese Programme nicht auf andere Maschinen kopiert werden können.
Welche Auswirkungen wird der „Cyber Resilience Act“ (CRA) der EU auf die Entwicklung eingebetteter Systeme haben?
Das Ziel des CRA ist der Schutz von Unternehmen und Verbrauchern mit verbindlichen Sicherheitsanforderungen für sämtliche Hardware- sowie Softwareprodukte. Die Geltungsdauer bezieht sich auf die gesamte Lebensdauer der Produkte. Wichtiges Element des CRA ist, die Schwachstellen von „Produkten mit digitalen Elementen“ aufzuzeigen und letztlich zu verringern. Die Verantwortung für die Sicherheit der Produkte liegt laut CRA komplett bei den Herstellern. Und genau das ist die größte Veränderung für die Hersteller. Diese müssen beispielsweise Software-Updates für mind. fünf Jahre garantieren. So sollen Schwachstellen im tagtäglichen Einsatz ausgemerzt werden. Zudem müssen Hersteller die Risiken für die Cybersicherheit nachverfolgbar machen (Dokumentation).
Warum könnte die Portierung eingebetteter Software auf einen anderen Mikrocontroller erforderlich sein?
Unter Portierung versteht man, dass eine Software so angepasst wird, dass sie auf einer anderen Rechnerarchitektur als der ursprünglichen laufen kann. Dies kann notwendig werden, wenn beispielsweise die Hardware erneuert oder komplett ersetzt wird. Ein Vorteil der Portierung bewährter Software auf eine neue MCU in billigere Hardware besteht darin, dass Kosten gespart werden können. Wartung ist ein weiterer Grund, da Ersatzteile knapp werden können oder nicht mehr produziert werden. Der CRA (Cyber Resilience Act) spielt ebenfalls eine Rolle, da höhere Sicherheitsstandards gefordert werden. In einigen Fällen können durch Übertragung der Software auf ein State-of-the-Art-Bauteil diese Standards eingehalten werden. Neue MCUs verbrauchen in manchen Fällen weniger Energie, was auch Kosten einsparen kann. Neue technische Möglichkeiten wie Wi-Fi, Bluetooth oder aktuelle Schnittstellen sind ebenfalls Gründe für die Portierung von eingebetteter Software.
Was sollten Entwickler von eingebetteter Software über das EU-Datenschutzgesetz wissen?
Das EU-Datenschutzgesetz gibt Unternehmen und Verbrauchern mehr Kontrolle über ihre Daten, insbesondere über jene, die durch IoT-Geräte produziert werden. Die Verordnung regelt auch, wie diese Daten gehandhabt und weitergegeben werden können. Damit sollen auch weitere Produktinnovationen und deren Effizienz gefördert werden. Unternehmen können die Daten für neue Produkte verwenden, müssen aber gleichzeitig in Sachen Datensicherheit nachbessern.
What is hardware-in-the-loop (HIL) testing?
Hardware-in-the-Loop (HiL, HIL, HITL) ist ein Verfahren, bei dem eingebettete (Software-) Systeme über Ein- und Ausgänge getestet werden. Bei den auch als HIL-Tests bekannten Verfahren wird Hardware mit Computersimulationen verbunden, um virtuell reale Bedingungen nachzubilden. Experten können so auch komplette Systeme überprüfen, obwohl noch nicht jedes Bauteil vorhanden ist. Das ist speziell in der frühen Entwicklungsphase sinnvoll, in der noch vieles einfacher angepasst werden kann. Im Verlauf der Tests simuliert das System die fehlenden Komponenten, und die Komplexität der Simulation ist variabel einstellbar. Alles passiert in Echtzeit. Am Ende der Tests sollten Schwachstellen in der Sicherheit ermittelt und Lösungen präsentiert werden.
Welchen Nutzen haben HIL-Tests für die Entwicklung von eingebetteten Systemen?
Der wichtigste Grund ist, dass die Tests schon in sehr frühen Phasen der Entwicklung stattfinden können. So können Mängel bzw. Fehler erkannt werden, bevor sie kostenintensiv werden. Dass hier auf teure Prototypen verzichtet werden kann, spart weiter Geld ein. Ein weiterer Pluspunkt bei HIL-Tests ist, dass die Testbedingungen komplett kontrolliert werden können. Damit werden potenzielle Fehlerquellen ausgeschlossen. Je früher HIL-Tests angewendet werden, desto eher können Standards in Sachen Cybersicherheit (CRA, PSA-zertifiziert) implementiert werden. Letztlich führen HIL-Tests bei den Herstellern zu Wettbewerbsvorteilen, weil so bessere Produkte rasch den Markt erobern können.
Welche Anforderungen stellt eingebettete KI an eingebettete Systeme?
KI in eingebetteten Systemen analysiert Daten, erkennt Muster, hilft bei Entscheidungen und führt selbsttätig Automatisierungen durch. Dabei stellt die eingebettete KI eine kosteneffizientere Alternative zu KI auf Cloud-Basis dar. KI-Chips, die die Datenerfassung erleichtern, sind besonders gefragt. Wer eingebettete KI entwickeln will, benötigt vertiefende Kenntnisse über eingebettete Systeme im Allgemeinen, über Datenwissenschaft sowie über das maschinelle Lernen. Die Aufgabe ist also höchst komplex.
Entwicklern müssen über die Funktionsweise der angepeilten Geräte und Sensoren Bescheid wissen. Im Verlauf des KI-Lernprozesses sollte die Fähigkeit, Bewegungen sowie Video- bzw. Audio-Files verarbeiten zu können, trainiert werden. Um eingebettete KI sinnvoll „herzustellen“, muss diese abschließend in der Lage sein, Schlussfolgerungen zu ziehen und sich veränderten Bedingungen und Anforderungen anzupassen.