Embedded Software

Als Embedded Software werden Anwendungen bezeichnet, welche speziell für ein bestimmtes elektronisches Gerät oder eine Maschine programmiert werden, welche per Definition nicht als Computer gelten. Die aktuell stattfindende industrielle Revolution und die damit einhergehende Digitalisierung von Wirtschaft und Gesellschaft stellen völlig neue Anforderungen an Produkte und deren Entwickler. Heute liegt der Fokus auf digital vernetzten und intelligenten Systemen, in welche die elektronischen Geräte eingebunden werden sollen. Dabei ändern sich auch die Aufgaben der Embedded Software.

Einst war sie Mittel zum Zweck der Produktivitätssteigerung, einfach um gewisse Funktionen nicht mehr mittels Hardware realisieren zu müssen. Inzwischen dient sie auch der Daten- und Zustandserfassung, der Kommunikation und Datenübertragung und ermöglicht servicegetriebene Geschäftsmodelle. Dadurch nimmt die Software einen immer größeren Anteil am Wertschöpfungsprozess von Produkten ein.

Komponenten der Embedded Software

Eine für spezifische Hardware entwickelte Software wird häufig auch als Firmware bezeichnet und beinhaltet als fertiges Produkt im Wesentlichen drei Komponenten.

Bootloader
Der Bootloader ermöglicht das Laden oder Aktualisieren des Betriebssystems und der Applikationssoftware in den Flash-Speicher des Mikrocontrollers. Je nach Komplexität überwacht der Bootloader den Flashvorgang mittels Checksummenberechnung, legt eine EEPROM-Emulation an und sorgt durch eine Verschlüsselung für mehr Sicherheit.

Betriebssystem
Abhängig vom Umfang der Applikation benötigen Embedded-Systeme ein Betriebssystem. Dieses ist für die Speicher und Dateiverwaltung verantwortlich und sorgt für das Multitasking (Parallelverarbeitung verschiedener Aufgaben).

-Applikations-Software
Dieser Teil beinhaltet die gerätespezifischen Funktionen, verarbeitet die erfassten Daten und stellt die Schnittstelle zum übergeordneten System dar.
Je nach Umfang und Art des Embedded Systems können einzelne Komponenten auch zusammengefasst vorliegen oder integriert werden.

Implementierte Funktionen in der Embedded Software

Die Software in Embedded Systemen verarbeitet die von der Hardware erfassten Messdaten. Eine sogenannte Statemachine ordnet den jeweiligen Umgebungsbedingungen entsprechende in der Software hinterlegte Funktionen zu. Zeigen die Messwerte eines DC-DC-Wandlers beispielsweise, dass ein Kurzschluss am Ausgang vorliegt werden von der Statemachine die für diesen spezifischen Zustand hinterlegten Einstellungen, z.B. Deaktivieren der Leistungsstufe an die Hardware weitergegeben. Je nach Kunden- oder Herstellerwunsch kann die Software auch verschiedene Komponenten oder Funktionen Aktivieren oder Deaktivieren, und so die Anzahl verschiedener Hardwareprodukte minimieren. Dadurch können im Fertigungsprozess sowie in der Lagerhaltung Kosten eingespart werden. Ein Beispiel hierfür war Tesla mit der Freischaltung von mehr Batteriekapazität während des Hurricans Irma in Florida mittels eines Softwareupdates.

Systemintegration mittels Embedded Software

Im Zuge der Digitalisierung sollen elektronische Geräte aber nicht nur selbständig Messdaten verarbeiten, sondern diese auch einem übergeordneten System zur Verfügung stellen bzw. von diesem auch mit Daten versorgt werden. Dies ist nur möglich, wenn die Software moderne Informations- und Kommunikationsstandards beinhaltet. Am Beispiel des DC-DC-Wandlers reicht es deshalb nicht aus, wenn der Wandler erkennt, dass ein Kurzschluss vorliegt, sondern er muss in der Lage sein, diese Information auch an entsprechende Stellen weiterzuleiten.

Diese Systemintegration kann mit Hilfe verschiedener Kommunikationsstandards erreicht werden. Die Einbindung in ein übergeordnetes System oder ins Internet birgt aber auch Risiken. So nimmt der Aufwand die Geräte gegen Cyber-Angriffe zu schützen massiv zu. Hier gilt das Prinzip, das System ist nur so stark wie sein schwächstes Glied. Einheitliche Standards und Normen für unterschiedliche Industriebereiche sowie Datenschutz und IT-Sicherheit entscheiden hierbei über den Erfolg der Digitalisierung des Systems.

Lizenzierung und Service

Der Anteil der Embedded Software am Wertschöpfungs- und Entwicklungsprozess liegt in manchen Fällen bereits bei über 50 Prozent. Da es aufgrund einer fehlenden Wertschätzung des Anwenders oftmals schwierig ist, den tatsächlichen Aufwand der Entwicklung in Rechnung zu stellen, haben sich verschiedene Modelle der Refinanzierung etabliert.

– Lizenzierung
Wird ein Gerät mit einer universellen Firmware ausgeliefert, kann der Kunde kostenpflichtige Lizenzen für freischaltbare Funktionen erwerben.

– Servicetätigkeiten
Die rasch steigende Komplexität der Software und deren Anforderungen können von Anwendern oft nicht mehr gemeistert werden. An diesem Punkt kommen vermehrt die Hersteller ins Spiel, welche Dienstleistungen in Bezug auf Einrichtung einer Anlage, Konfiguration von Geräten oder Wartungen durchführen.

Diese sogenannten After-Sales-Services erzielen häufig eine höhere Marge als das Neugeschäft, und können neben einer gesteigerten Profitabilität des Unternehmens auch zu einer erhöhten Kundenzufriedenheit und Kundenbindung führen.

Leistungsfähigkeit von Embedded Software

Die Zeiten, in denen Umfang und Funktionalität von Embedded Software durch zu geringen Speicherplatz begrenzt wurden sind längst vorbei. Heutige Prozessoren ermöglichen Softwareprojekte mit einer Komplexität, welche vor einigen Jahren noch undenkbar erschienen. Mithilfe von Deep Learning Algorithmen sind heutige Anwendungen in der Lage, nicht nur Daten zu erfassen, sondern diese auch in einen Kontext zu setzen.

Fazit
Der Mehrwert eines Produktes wird immer mehr von der implementierten Software bestimmt. Hersteller müssen in immer kürzeren Projektzyklen die Bedürfnisse des Marktes erkennen sowie zielgenau, schnell und effizient umsetzen. Dies setzt firmenintern intelligente Prozesse voraus, welche ein abteilungsübergreifendes Arbeiten ermöglichen. Firmen die die Zeichen der Zeit frühzeitig erkennen, werden die Digitalisierung für sich nutzen können.