Definition

Embedded System (Eingebettetes System)

Ein Embedded System (Eingebettetes System) ist eine Kombination aus Hardware und Software, die für eine oder mehrere designierte Funktionen innerhalb eines größeren Systems entwickelt wurde. Die Systeme können programmierbar oder mit einer vorab festgelegten Funktion ausgestattet sein. Einsatzorte für Embedded System sind Maschinen in der Industrie und Landwirtschaft, Unterhaltungselektronik, Verkehrsmittel, medizinische Geräte, Kameras, Haushaltsgeräte, Verkaufsautomaten und Spielzeug sowie mobile Geräte.

Obwohl es sich bei eingebetteten Systemen um Computer handelt, haben einige davon gar keine Benutzeroberfläche – zum Beispiel Geräte, bei denen das System für die Ausführung einer einzigen Aufgabe konzipiert ist – oder sogar sehr komplexe grafische Benutzeroberflächen (GUIs) auweisen, zum Beispiel in mobilen Geräten. Benutzerschnittstellen können Tasten, LEDs und Touchscreens umfassen. Einige Systeme verwenden auch Remote-Benutzerschnittstellen.

Merkmale von Embedded Systems

Das Hauptmerkmal von eingebetteten Systemen ist, dass sie aufgabenspezifisch sind. Sie führen eine einzelne Aufgabe innerhalb eines größeren Systems aus. Beispielsweise ist ein Mobiltelefon kein Embedded System, sondern eine Kombination von Embedded Systems, die es ihm zusammen ermöglichen, eine Vielzahl von Aufgaben für allgemeine Zwecke zu erfüllen. Die darin eingebetteten Systeme führen spezialisierte Funktionen aus. Zum Beispiel fungiert die GUI einzig und allein als Benutzerschnittstelle.

Zusätzlich können Embedded Systems die folgenden Merkmale aufweisen:

  • Sie bestehen aus Hardware, Software und Firmware.
    • Sie ist eingebettet in ein größeres System, um eine bestimmte Funktion zu erfüllen und kann keine andere Funktion übernehmen.
    • Sie ist Mikroprozessor- oder Mikrocontroller-basiert. Beides sind integrierte Schaltungen (Integrated Circuits, IC) für Rechenleistung.
    • Sie werden oft für Sensoren und Echtzeit-Computing in Geräten im Zusammenhang mit dem Internet der Dinge (Internet of Things, IoT) verwendet. Diese Geräte sind mit dem Internet verbunden sind und für ihren Betrieb ist kein Benutzer erforderlich.
    • Sie sind dafür designt, ihre Funktion unter Zeitdruck auszuüben, damit das größere System ordnungsgemäß funktioniert.

    Embedded Systems variieren in ihrer Komplexität, bestehen aber im Allgemeinen aus drei Hauptelementen:

    • Die Hardware von Embedded Systems basiert auf Mikroprozessoren und Mikrocontrollern. Mikroprozessoren sind den Mikrocontrollern sehr ähnlich und beziehen sich im Allgemeinen auf eine CPU, die mit anderen grundlegenden Rechenkomponenten wie Speicherchips und digitalen Signalprozessoren (DSP) integriert ist. Bei Mikrocontrollern sind diese Komponenten in einem Chip integriert.
    • Auch wenn Setups mit komplexerer Software denkbar sind, läuft auf Mikrocontrollern in Industriequalität und eingebetteten IoT-Systemen in der Regel einfache Software, die wenig Speicherplatz benötigt.
    • Eingebettete Firmware wird normalerweise in komplexeren Embedded Systems verwendet, um die Software mit der Hardware zu verbinden. Ein einfacheres System kann nur Software direkt im Chip haben, aber kompliziertere Systeme benötigen Firmware unter komplexeren Software-Anwendungen und Betriebssystemen.

    Hardware von Embedded Systems

    Die Hardware eingebetteter Systeme kann auf Mikroprozessoren oder Mikrocontrollern basieren. In beiden Fällen ist eine integrierte Schaltung das Herzstück. Sie ist auf das Durchführen von Echtzeitberechnungen ausgelegt. Mikroprozessoren sind visuell nicht von Mikrocontrollern zu unterscheiden. Der Mikroprozessor enthält jedoch nur eine CPU und erfordert daher zusätzliche Komponenten, wie zum Beispiel Speicherchips. Umgekehrt sind Mikrocontroller als in sich geschlossene Systeme konzipiert.

    Foto von einem eingetteten System Motherboard
    Abbildung 1: Makroaufnahme eines Motherboards für ein eingebettetes System.

    Zu den Mikrocontrollern gehören nicht nur eine CPU, sondern auch Speicher und Peripheriegeräte wie Flash-Speicher, RAM oder serielle Kommunikations-Ports. Da Mikrocontroller dazu neigen, vollständige Systeme (wenn auch mit relativ geringer Computerleistung) zu beinhalten, werden sie häufig für komplexere Aufgaben eingesetzt. Beispielsweise verwendet man Mikrocontroller für Bedienelemente von Fahrzeugen, Robotern, medizinischen Geräten und Haushaltsgeräten eingesetzt. Für Mikrocontroller am oberen Ende des Spektrums wird oft der Begriff System on a Chip (SoC), also System auf einem Chip, verwendet. Die Übergänge sind hier jedoch fließend.

    Der Markt für Embedded Systems wächst stetig. Zu den Chipherstellern für Embedded Systems gehören viele bekannte Unternehmen wie Apple, IBM, Intel und Texas Instruments sowie zahlreiche andere spezialisierte Unternehmen. Das erwartete Wachstum ist zum Teil auf die fortgesetzten Investitionen in künstliche Intelligenz (KI), die mobile Datenverarbeitung und den Bedarf an Chips zurückzuführen, die für diese hochwertige Verarbeitung ausgelegt sind.

    Software für Embedded Systems

    Ein typischer Industrie-Mikrocontroller ist im Vergleich zu einem typischen PC für Endanwender einfach aufgebaut und weist im Allgemeinen eine einfachere, weniger speicherintensive Programmumgebung auf. Die einfachsten Geräte laufen auf Bare Metal und werden direkt mit der Maschinencode-Sprache der Chip-CPU programmiert.

    Häufig verwenden eingebettete Systeme Betriebssysteme oder Sprachplattformen, die auf den Einsatz in Embedded Systems zugeschnitten sind, insbesondere wenn Echtzeit-Betriebsumgebungen bedient werden müssen. Auf höheren Ebenen der Chipfähigkeit, wie sie in SoCs zu finden sind, haben die Entwickler zunehmend entschieden, dass die Systeme im Allgemeinen schnell genug und die Aufgaben tolerant gegenüber geringfügigen Schwankungen der Reaktionszeit sind, so dass Near-Real-Time-Ansätze geeignet sind. In diesen Fällen werden in der Regel abgespeckte Versionen des Betriebssystems Linux eingesetzt, aber es gibt auch andere reduzierte Betriebssysteme für Embedded Systems, darunter Embedded Java und Windows IoT (ehemals Windows Embedded).

    Im Allgemeinen wird für das Speichern von Programmen und Betriebssystemen auf eingebetteten Geräten entweder Flash-Speicher oder wiederbeschreibbarer Flash-Speicher verwendet.

    Eingebettete Firmware

    Eingebettete Firmware, ist eine Software, die eigens in den Speicher eines Gerätes geschrieben wird und den Zweck eines ROMs (Read Only Memory) erfüllt, aber leichter aktualisiert werden kann. Firmware kann in nichtflüchtigen Speicherbausteinen gespeichert werden, einschließlich ROM, programmierbarem ROM, löschbarem PROM (Programmable Read Only Memory) oder Flash-Speicher. Eingebettete Firmware wird zur Steuerung verschiedener Geräte- und Systemfunktionen verwendet. Beispielsweise kann sie dem Gerät mitteilen, wie es mit anderen Geräten kommunizieren, bestimmte Funktionen ausführen und Ein- und Ausgabefunktionen bereitstellen kann.

    Die Abgrenzung zwischen den Begriffen eingebettete Firmware und eingebettete Software ist unscharf. Eingebettete Software bezieht sich oft auf den einzigen Code, der auf einem Stück Hardware läuft, während sich Firmware auch auf den Chip beziehen kann, auf dem sich das BIOS (Basic Input/Output System) oder das Unified Extensible Firmware Interface (UEFI) eines Geräts befinden.

    Anwendung von Embedded Systems

    Embedded Systems werden branchenübergreifend in einer Vielzahl von Technologien eingesetzt. Hier einige Beispiele:

    • Moderne Autos bestehen in der Regel aus vielen Computern (manchmal bis zu 100) oder Embedded Systems, die verschiedene Aufgaben im Fahrzeug erfüllen sollen. Einige dieser Systeme erfüllen grundlegende Nutzfunktionen und andere bieten Unterhaltungs- oder Benutzerfunktionen. Zu den Embedded Systems in Verbraucherfahrzeugen gehören unter anderem Geschwindigkeitsregler, Reservesensoren, Aufhängungssteuerung, Navigationssysteme und Airbagsysteme.
    • Diese bestehen aus vielen Embedded Systems, einschließlich GUI-Software und -Hardware, Betriebssystemen, Kameras, Mikrofonen und USB-Modulen.
    • Industrielle Maschinen. Sie können Embedded Systems, wie Sensoren, enthalten und selbst Embedded Systems sein. Industriemaschinen haben oft eingebettete Automatisierungssysteme, die spezifische Überwachungs- und Steuerfunktionen ausführen.
    • Medizinische Geräte. Diese können Embedded Systems, wie Sensoren und Steuermechanismen, enthalten. Medizinische Geräte, wie Industriemaschinen, müssen benutzerfreundlich sein, weil sie bei besonders gesundheitssensiblen Kontexten verwendet werden. Das bedeutet, dass sie oft ein komplexeres Betriebssystem und eine besondere GUI enthalten.

    Embedded Systems versus VLSI

    Very Large Scale Integration (Besonders groß dimensionierte Integration, VLSI) ist eine Bezeichnung für eine besonders komplexe interne Schaltung (IC). Bei VLSI werden Hunderttausende von Transistoren in einen Chip eingebettet, während LSI-Mikrochips (Large Scale Integration) Tausende von Transistoren enthalten, MSI-Mikrochips (Middle Scale Integration) Hunderte von Transistoren und SSI-Mikrochips (Small Scale Integration) Dutzende von Transistoren. ULSI (Ultra Scale Integration) bezieht sich auf das Platzieren von Millionen von Transistoren auf einem Chip.

    Viele ICs in Embedded Systems sind VLSI, und die Verwendung des Akronyms VLSI als Pars pro Toto für Embedded Systems ist weitgehend abgekommen.

    Fehlersuche in Embedded Systems

    Ein Bereich, in dem sich eingebettete Systeme von den Betriebssystemen und Entwicklungsumgebungen anderer größerer Computer unterscheiden, ist das Debugging. In der Regel verfügen Entwickler, die mit Desktop-Computerumgebungen arbeiten, über Systeme, die sowohl den zu entwickelnden Code ausführen können als auch separate Debugger-Anwendungen, die Aktionen des Entwicklungscodes während des Ausführens überwachen. Programmierer, die mit eingebetteten Systemen arbeiten, können dies jedoch im Allgemeinen nicht.

    Foto Motherboard von eingebettetem System
    Abbildung 2: Makroaufnahme vom Motherboard eines kleineren eingebetteten Systems.

    Einige Programmiersprachen laufen auf Mikrocontrollern so effizient, dass ein rudimentäres interaktives Debugging direkt auf dem Chip möglich ist. Außerdem verfügen Prozessoren oft über CPU-Debugger, die über einen JTAG- oder ähnlichen Debugging-Port gesteuert werden können.

    In vielen Fällen benötigen Programmierer von Embedded Systems jedoch Werkzeuge, die ein separates Debugging-System über eine serielle oder andere Schnittstelle mit dem Zielsystem verbindet. Mit dieser Konstruktion kann der Programmierer den Quellcode auf dem Bildschirm eines herkömmlichen PCs sehen, genau wie es beim Debugging von gewöhnlicher Software der Fall wäre. Ein anderer häufig verwendeter Ansatz ist es, Software auf einem PC laufen zu lassen, die den physischen Chip in Software emuliert, so dass es möglich ist, die Leistung der Software so zu debuggen, als ob sie auf einem tatsächlichen physischen Chip laufen würde.

    Allgemein lässt sich sagen, dass sich das Debugging und Testen von Embedded Systems in letzter Zeit stark verbessert hat, da viele davon mittlerweile in Situationen zum Einsatz kommen, in denen Sicherheit und Zuverlässigkeit oberste Priorität haben.

    Wie IoT auf einer Basis eingebetteter Systeme aufbaut

    Trotz des vergleichsweisen einfachen Charakters der meisten Embedded Systems, verbreiten sie sich mittlerweile in Kontexten, wo sie menschliche Entscheidungen und Eingriffe unterstützen oder ersetzen. Einige Luftfahrtsysteme, auch solche, die in Drohnen verwendet werden, sind in der Lage, Sensordaten zu integrieren und schneller auf diese Informationen zu reagieren, als es ein Mensch könnte, was neuartige Betriebsfunktionen ermöglicht.

    Das große Wachstum des Bereichs Embedded Systems ist wesentlich auf das Internet der Dinge zurückzuführen. Expandierende IoT-Anwendungen, wie zum Beispiel Wearables, Drohnen, intelligente Häuser, intelligente Gebäude, Videoüberwachung, 3D-Drucker und intelligentes Transportwesen, werden das Wachstum von Embedded Systems voraussichtlich ankurbeln.

    Geschichte der Embedded Systems

    Embedded Systems reichen bis in die 1960er Jahre zurück. Charles Stark Draper entwickelte 1961 einen integrierten Schaltkreis, um die Größe und das Gewicht des Apollo-Führungscomputers, des digitalen Systems, das auf der Apollo-Kommando- und Mondlandefähre installiert ist, zu reduzieren. Als erster Computer, der ICs verwendete, half er den Astronauten bei der Erfassung von Echtzeit-Flugdaten.

    1965 entwickelte Autonetics, heute ein Teil von Boeing, den D-17B, den Computer, der im Raketenleitsystem Minuteman I verwendet wurde. Er wird weithin als das erste serienmäßig hergestellte eingebettete System anerkannt. Als die Minuteman II 1966 in Produktion ging, wurde die D-17B durch das NS-17-Raketenleitsystem ersetzt, das für seine hochvolumige Verwendung von integrierten Schaltkreisen bekannt ist. 1968 kam das erste Embedded System für ein Fahrzeug auf den Markt; der Volkswagen 1600 verwendete einen Mikroprozessor zur Steuerung seines elektronischen Kraftstoffeinspritzsystems.

    Ende der 1960er und Anfang der 1970er Jahre sanken die Preise für integrierte Schaltkreise, und die Nutzung stieg sprunghaft an. Der erste Mikrocontroller wurde 1971 von Texas Instruments entwickelt. Die Serie TMS 1000, die 1974 auf den Markt kam, enthielt einen 4-Bit-Prozessor, einen ROM und einen RAM. Er kostete bei Großbestellungen etwa 2 Dollar pro Stück.

    Außerdem brachte Intel 1971 mit dem 4004 den ersten kommerziell erhältlichen Prozessor auf den Markt, der weithin als solcher anerkannt ist. Der 4-Bit-Mikroprozessor wurde für den Einsatz in Taschenrechnern und kleiner Elektronik entwickelt, obwohl er ewigen Speicher und unterstützende Chips benötigte. Der 8-Bit Intel 8008, der 1972 veröffentlicht wurde, hatte 16 KB Speicher; der Intel 8080 folgte 1974 mit 64 KB Speicher. Der Nachfolger des 8080, die x86-Serie, wurde 1978 auf den Markt gebracht und ist heute noch weitgehend in Gebrauch.

    1987 wurde das erste eingebettete Betriebssystem, das Echtzeit-Betriebssystem VxWorks, von Wind River veröffentlicht, gefolgt von Windows Embedded CE von Microsoft im Jahr 1996. In den späten 1990er Jahren erschienen die ersten Embedded-Linux-Produkte. Heute wird Linux in fast allen eingebetteten Geräten eingesetzt.

    Diese Definition wurde zuletzt im Mai 2020 aktualisiert

    Erfahren Sie mehr über Serverhardware