Was ist eingebettete Software?

‚Was ist eingebettete Software?‘ ist eine häufig gestellte Frage. Die Welt und die Gesellschaft um uns herum wird von Systemen geformt und gesteuert, die auf Mikroprozessoren basieren – Herzschrittmacher, Mobiltelefone, Haushaltsgeräte, Autos, Bahnsteuerungssysteme, Satelliten – die Liste ist fast buchstäblich endlos. Ohne sie gäbe es keine Energie, kein fließendes Wasser und keine Lebensmittelversorgung. Wirtschaft und Verkehr wären unmöglich. Krankheiten würden sich ausbreiten und die Gesellschaft würde schnell zerfallen.

Die Software, die in diesen Systemen ausgeführt wird, nennt man eingebettete Software. Dabei handelt es sich um Computersoftware, die in Hardwaresysteme eingebaut ist, die zur Steuerung von Maschinen oder Geräten geschrieben wurden. Eingebettete Software wird in der Regel für die spezielle Hardware entwickelt, auf der sie läuft, und führt oft eine bestimmte Funktion aus, obwohl ein einziges Stück Hardware mehrere eingebettete Softwareprogramme enthalten kann.

Jedes Stück Technologie, das Leiterplatten und Computerchips enthält, wird wahrscheinlich eingebettete Software enthalten. Hersteller integrieren eingebettete Software in die Elektronik von Autos, Telefonen, Modems, Haushaltsgeräten, Spielzeug, Sicherheitssystemen, Herzschrittmachern, Fernsehern und Set-Top-Boxen sowie Digitaluhren.

Eingebettete Software ermöglicht viele der fortschrittlichen Funktionen, die in modernen Geräten üblich sind. Während eingebettete Software sehr einfach sein kann, kann sie in Anwendungen wie Prozesssteuerungssystemen, militärischen Waffen und Flugzeugen auch sehr anspruchsvoll sein.

Geschichte der eingebetteten Software

Die meisten innovativen Technologien werden oft für militärische Anwendungen finanziert, erforscht und entwickelt, und eingebettete Systeme wurden von Ende der 30er bis Mitte der 60er Jahre in der Weltraumforschung, der Raketensteuerung und der Avionik eingesetzt. Erst in den späten 60er Jahren entwickelte sich die eingebettete Software so weit, dass sie auch für Menschen außerhalb dieser Fachbereiche nützlich war.

In den 70er Jahren sorgten die ersten integrierten Mikrocontroller-Chips wie der Intel 8008 für den Durchbruch der eingebetteten Software. Dieser einzelne Chip funktionierte wie ein winziger Computer; er konnte Daten aus der realen Welt lesen, verarbeiten und Ausgaben erzeugen, die von einem flexiblen Softwareprogramm gesteuert wurden. Mit diesen Chips wurde es möglich, ein einziges Programm zu schreiben, es in den Chip zu laden und dann den Chip sein Programm ausführen zu lassen, sobald er die richtige Eingabe erhielt. Ende der 1980er Jahre war fast jede Form von Unterhaltungselektronik mit einer Art Mikrocontroller-Chip ausgestattet.

In den folgenden Jahren sind die Kosten für die Herstellung integrierter Mikrocontroller auf wenige Cent gesunken. Infolgedessen sind sie in fast jedem elektronischen Gerät zu finden, und jeder dieser Chips enthält eine oder mehrere eingebettete Softwarekomponenten. Sie befinden sich sogar in Gegenständen, von denen die meisten Leute nicht denken würden, dass sie Computer enthalten, wie Toaster, elektrische Ventilatoren oder Kinderspielzeug.

Die Herausforderungen bei eingebetteter Software

Eingebettete Software ist per Definition Teil eines größeren Hardwaresystems, sei es ein Auto, ein Herzschrittmacher oder ein industrielles Automatisierungssystem. Diese Systeme arbeiten nicht nur in Echtzeit und müssen unter allen Umständen die geplante Aktion innerhalb einer bestimmten Zeit ausführen, sondern sie müssen auch mit begrenzten Ressourcen wie kleinem Speicherplatz, begrenzten Datenverarbeitungsmöglichkeiten oder geringem Stromverbrauch arbeiten. Eingebettete Software muss sich auch an ein breites Spektrum von Veränderungen in ihrer Umgebung anpassen. Prozessoren, Sensoren und Hardwareteile ändern sich mit der Zeit, während die Software nahezu unverändert bleibt. Darüber hinaus muss die Software portabel, autonom, flexibel und anpassungsfähig sein.

Zuverlässigkeit ist von größter Bedeutung. Unerwartetes Verhalten eines eingebetteten Systems könnte seine Betriebsumgebung ernsthaft beschädigen. Da die Endbenutzer von eingebetteten Systemen ein langfristiges Verhalten verlangen, muss eingebettete Software jahrzehntelang ohne Wartung funktionieren.

Aufgrund der engen Verbindung von eingebetteter Software mit kritischen Umgebungen und lebensbedrohlichen Risiken ist auch die Sicherheit eine wichtige Anforderung. Der Lebenszyklus bei der Entwicklung eingebetteter Software unterliegt Normen, die eine hohe Qualität, starke Entwicklungs- und Managementprozesse erfordern. Die Kombination mit dem Einsatz modernster Technologien stellt hohe Anforderungen an das technische Know-how und die Professionalität der Ingenieure für eingebettete Software. Da der Umfang und die Komplexität eingebetteter Software zunehmen, müssen die für den Softwareentwicklungsprozess geltenden Standards trotz des starken Kostendrucks ständig verbessert werden.

Die Sicherheit wird immer wichtiger, da das „Internet der Dinge“ bedeutet, dass eingebettete Systeme immer häufiger eingesetzt werden und immer stärker miteinander verbunden sind. Da alltägliche Geräte wie Waschmaschinen und Kühlschränke standardmäßig über Konnektivität verfügen, besteht die Gefahr, dass das Internet der Dinge ein neues Maß an Unsicherheit mit sich bringt, und es werden neue Ideen benötigt, um Bedrohungen durch Malware und Hacker abzuwehren.

Schlussfolgerung

Eingebettete Software erhöht die Variabilität, Konfigurierbarkeit, Erweiterbarkeit und Veränderbarkeit alltäglicher Produkte und ermöglicht zudem eine größere Vielfalt an Funktionen. Sie ist heute ein grundlegender Bestandteil vieler Dinge, die wir im täglichen Leben als selbstverständlich ansehen.

In Zukunft wird eingebettete Software in allem zu finden sein – in Ihrem automatisierten Haus, Ihrem intelligenten Auto, in Kommunikationsinfrastrukturen, medizinischen Instrumenten und Implantaten sowie in allgegenwärtigen Kontrollsystemen. Neue energiebezogene Technologien werden die Effizienz der Stromübertragung erhöhen und sofortige, wirksame Möglichkeiten zur Bewältigung des Energie- und Klimabedarfs bieten.

Eingebettete Systeme werden nicht mehr durch die von ihnen verwendete Computerhardware definiert werden. Vielmehr werden sie so konzipiert sein, dass sie jede beliebige Funktion ausführen können, um vielfältige und wechselnde Ziele zu erreichen, sei es auf einem Mikrocontroller, einem Mikroprozessor, einem Signalprozessor, einer biologischen Baugruppe oder einem anderen programmierbaren Logikbaustein.

Je mehr Lebensqualität wir uns wünschen, je höher der Lebensstandard ist, den wir auf dem gesamten Planeten etablieren wollen, und je mehr wir Sicherheit verlangen, desto mehr brauchen wir eingebettete Software.