Eingebettetes System (Embedded System)
Was ist ein eingebettetes System (Embedded System)?
Ein eingebettetes System, auf Englisch Embedded System, ist eine Kombination aus Computerhardware und -software, die für eine bestimmte Funktion entwickelt wurde. Eingebettete Systeme können auch in einem größeren System funktionieren. Diese Systeme können programmierbar sein oder eine feste Funktionalität haben. Eingebettete Systeme werden heute zur Steuerung zahlreicher Geräte verwendet. Sie werden beispielsweise in Industriemaschinen, Unterhaltungselektronik, Geräten der Agrar- und Verarbeitungsindustrie, Autos, medizinischen Geräten, Kameras, Digitaluhren, Haushaltsgeräten, Flugzeugen, Verkaufsautomaten, Spielzeug und Mobilgeräten eingesetzt.
Eingebettete Systeme enthalten in der Regel einen Mikroprozessor oder ein mikrocontrollerbasiertes System, Storage und Ein-/Ausgabegeräte, die alle eine dedizierte Funktion innerhalb eines größeren Systems haben. Eingebettete Systeme sind zwar Computersysteme, können aber von Systemen ohne Benutzerschnittstelle (UI) – beispielsweise bei Geräten, die für eine einzige Aufgabe ausgelegt sind – bis hin zu komplexen grafischen Benutzerschnittstellen (GUIs), wie bei Mobilgeräten, reichen. Benutzeroberflächen können Schaltflächen, Leuchtdioden (LEDs) und Touchscreen-Sensoren umfassen. Einige Systeme verwenden auch Remote-Benutzeroberflächen.
Laut Global Markets Insight hatte der Markt für eingebettete Systeme im Jahr 2023 ein Volumen von 110,3 Milliarden US-Dollar. Bis 2032 soll dieser auf über 190 Milliarden US-Dollar wachsen. Zu den Chipherstellern für eingebettete Systeme gehören viele bekannte Technologieunternehmen wie Apple, IBM, Intel und Texas Instruments. Das erwartete Wachstum ist teilweise auf die anhaltenden Investitionen in künstliche Intelligenz (KI), mobile Datenverarbeitung und den Bedarf an Chips für die Hochleistungsverarbeitung zurückzuführen.
Beispiele für eingebettete Systeme
Eingebettete Systeme werden in einer Vielzahl von Technologien in einer Reihe von Branchen eingesetzt. Einige Beispiele sind:
- Automobile. Moderne Autos bestehen in der Regel aus vielen Computern oder eingebetteten Systemen, die für die Ausführung verschiedener Aufgaben im Fahrzeug ausgelegt sind. Einige dieser Systeme führen grundlegende Versorgungsfunktionen aus, andere bieten Unterhaltungs- oder benutzerorientierte Funktionen. Mit zunehmender Computerisierung moderner Autos steigt auch die Anzahl der eingebetteten Systeme. Einige eingebettete Systeme in Fahrzeugen umfassen Geschwindigkeitsregelung, Rückfahrsensoren, Navigationssysteme, Alarmanlagen und Airbag-Systeme.
- Mobiltelefone. Diese bestehen aus vielen eingebetteten Systemen, einschließlich GUI-Software und -Hardware, Betriebssystemen, Kameras, Mikrofonen und USB I/O-Modulen.
- Industriemaschinen. Diese enthalten eingebettete Systeme wie Sensoren und können selbst eingebettete Systeme sein. Industriemaschinen verfügen oft über eingebettete Automatisierungssysteme, die bestimmte Überwachungs- und Steuerungsfunktionen ausführen.
- Medizinische Geräte. Diese enthalten eingebettete Systeme wie Sensoren und Steuerungsmechanismen. Medizinische Geräte, wie Industriemaschinen, müssen außerdem benutzerfreundlich sein, damit die menschliche Gesundheit nicht durch vermeidbare Maschinenfehler gefährdet wird. Das bedeutet, dass diese Systeme oft ein komplexeres Betriebssystem und eine grafische Benutzeroberfläche enthalten, die für eine angemessene Benutzeroberfläche ausgelegt sind.
- Fitness-Tracker. Diese tragbaren Geräte enthalten eingebettete Systeme, die Daten über den Benutzer sammeln, wie zum Beispiel Herzfrequenz, Blut- und Sauerstoffwerte und die Anzahl der Schritte.
Wie funktioniert ein eingebettetes System?
Eingebettete Systeme funktionieren immer als Teil eines kompletten Geräts. Es handelt sich um kostengünstige, stromsparende, kleine Computer, die in andere mechanische oder elektrische Systeme eingebettet sind. Im Allgemeinen umfassen sie einen Prozessor, eine Stromversorgung sowie Speicher- und Kommunikationsanschlüsse. Eingebettete Systeme verwenden die Kommunikationsanschlüsse, um Daten zwischen dem Prozessor und Peripheriegeräten – häufig anderen eingebetteten Systemen – unter Verwendung eines Kommunikationsprotokolls zu übertragen. Der Prozessor interpretiert diese Daten mithilfe einer minimalen Software, die im Speicher abgelegt ist. Die Software ist in der Regel sehr spezifisch für die Funktion, die das eingebettete System erfüllt.

Der Prozessor kann ein Mikroprozessor oder ein Mikrocontroller sein. Mikrocontroller sind einfach Mikroprozessoren mit Peripherieschnittstellen und integriertem Speicher. Mikroprozessoren verwenden separate integrierte Schaltkreise für Speicher und Peripheriegeräte, anstatt sie auf dem Chip zu integrieren. Beide können verwendet werden, aber Mikroprozessoren erfordern in der Regel mehr Unterstützungsschaltungen als Mikrocontroller, da sie weniger in den Mikroprozessor integriert sind. Der Begriff System on a Chip (SoC) wird häufig verwendet. SoCs enthalten in der Regel mehrere Prozessoren und Schnittstellen auf einem Chip. Sie werden häufig für eingebettete Systeme mit hoher Stückzahl verwendet. Einige Beispiele für SoC-Typen sind der anwendungsspezifische integrierte Schaltkreis (Application-Specific Integrated Circuit, ASIC) und das feldprogrammierbare Gate-Array (Field-Programmable Gate Array, FPGA).
Eingebettete Systeme werden häufig in Echtzeit-Betriebsumgebungen eingesetzt und verwenden ein Echtzeitbetriebssystem (Real-Time Operating System, RTOS) für die Kommunikation mit der Hardware. Echtzeitnahe Ansätze eignen sich für höhere Chip-Leistungsstufen, die von Entwicklern definiert werden, die zunehmend zu dem Schluss kommen, dass die Systeme im Allgemeinen schnell genug sind und die Aufgaben leichte Reaktionsschwankungen tolerieren. In diesen Fällen werden häufig abgespeckte Versionen des Linux-Betriebssystems eingesetzt, obwohl auch andere Betriebssysteme für den Einsatz auf eingebetteten Systemen angepasst wurden, darunter Embedded Java und Microsoft Windows für IoT – ehemals Microsoft Windows Embedded.
Entwickler von eingebetteten Systemen verwenden häufig auch Compiler, Assembler und Debugger, um Software für eingebettete Systeme zu entwickeln.
Merkmale eingebetteter Systeme
Das Hauptmerkmal eingebetteter Systeme ist, dass sie aufgabenspezifisch sind. Sie weisen häufig die folgenden zusätzlichen Merkmale auf:
- Sie bestehen in der Regel aus Hardware, Software und Firmware.
- Sie können in ein größeres System eingebettet werden, um eine bestimmte Funktion auszuführen, da sie für spezielle Aufgaben innerhalb des Systems und nicht für verschiedene Aufgaben ausgelegt sind.
- Sie können entweder mikroprozessor- oder mikrocontroller-basiert sein – beide sind integrierte Schaltkreise, die dem System Rechenleistung verleihen.
- Sie verwenden häufig ASIC- und FPGA-SoCs.
- Sie werden häufig für die Erfassung und Echtzeit-Datenverarbeitung in Geräten des Internets der Dinge (Internet of Things, IoT) verwendet, das heißt in Geräten, die mit dem Internet verbunden sind und keine Bedienung durch einen Benutzer erfordern.
- Sie können in ihrer Komplexität und Funktion variieren, was sich auf die Art der verwendeten Software, Firmware und Hardware auswirkt.
- Sie müssen ihre Funktion oft unter Zeitdruck ausführen, damit das größere System ordnungsgemäß funktioniert.
Struktur eingebetteter Systeme
Eingebettete Systeme variieren in ihrer Komplexität, bestehen aber im Allgemeinen aus den folgenden drei Hauptelementen:
- Hardware. Die Hardware eingebetteter Systeme basiert auf Mikroprozessoren und Mikrocontrollern. Mikroprozessoren ähneln Mikrocontrollern und beziehen sich in der Regel auf eine CPU, die in andere grundlegende Computerkomponenten wie Speicherchips und digitale Signalprozessoren integriert ist. Bei Mikrocontrollern sind diese Komponenten in einem Chip integriert.
- Software und Firmware. Die Software für eingebettete Computersysteme kann unterschiedlich komplex sein. Industrietaugliche Mikrocontroller und eingebettete IoT-Systeme laufen jedoch in der Regel mit einfacher Software, die wenig Speicherplatz benötigt.
- Echtzeitbetriebssysteme. Diese sind nicht immer in eingebetteten Systemen enthalten, insbesondere in kleineren Systemen. Echtzeitbetriebssysteme definieren die Funktionsweise des Systems, indem sie die Software überwachen und während der Programmausführung Regeln festlegen.
In Bezug auf die Hardware besteht ein grundlegendes eingebettetes System aus den folgenden Elementen:
- Sensoren. Diese Komponenten wandeln physische Messdaten in ein elektrisches Signal um.
- Analog-Digital-Wandler. A-D-Wandler wandeln ein analoges elektrisches Signal in ein digitales um.
- Prozessoren. Diese verarbeiten digitale Signale und speichern sie im Speicher.
- Digital-Analog-Wandler. D-A-Wandler wandeln die digitalen Daten vom Prozessor in analoge Daten um.
- Aktoren. Diese Komponenten steuern die mechanische Bewegung des eingebetteten Systems, indem sie elektrische Signale in physische Aktionen umwandeln.
Der Sensor liest externe Eingaben, die Konverter machen diese Eingabe für den Prozessor lesbar und der Prozessor wandelt diese Informationen in nützliche Ausgaben für das eingebettete System um.

Arten von eingebetteten Systemen
Eingebettete Systeme unterscheiden sich in ihren funktionalen Anforderungen. Dazu gehören:
- Mobile eingebettete Systeme sind kleine Systeme, die so konzipiert sind, dass sie tragbar sind. Beispiele hierfür sind Digitalkameras, Smartphones und Laptops.
- Vernetzte eingebettete Systeme sind mit einem Netzwerk verbunden, um anderen Systemen Daten bereitzustellen. Beispiele hierfür sind Haussicherheitssysteme und Kassensysteme.
- Eigenständige eingebettete Systeme sind nicht auf ein Hostsystem angewiesen. Wie jedes eingebettete System führen sie eine spezielle Aufgabe aus. Im Gegensatz zu anderen eingebetteten Systemen gehören sie jedoch nicht unbedingt zu einem Hostsystem. Ein Taschenrechner oder ein MP3-Player sind Beispiele hierfür.
- Eingebettete Echtzeitsysteme geben die erforderliche Ausgabe in einem definierten Zeitintervall aus. Sie werden häufig in medizinischen, industriellen und militärischen Bereichen eingesetzt, da sie für zeitkritische Aufgaben zuständig sind. Ein Verkehrsleitsystem ist ein Beispiel dafür.
Eingebettete Systeme können auch nach den folgenden Leistungsanforderungen kategorisiert werden:
- Kleine eingebettete Systeme verwenden oft nicht mehr als einen 8-Bit-Mikrocontroller.
- Mittelgroße eingebettete Systeme verwenden einen größeren 16- bis 32-Bit-Mikrocontroller und verbinden oft mehrere Mikrocontroller miteinander.
- Hochentwickelte eingebettete Systeme verwenden oft mehrere Algorithmen, die zu einer komplexen Software und Hardware führen und möglicherweise eine komplexere Software, einen konfigurierbaren Prozessor und ein programmierbares Logikfeld erfordern.
Es gibt mehrere gängige Softwarearchitekturen für eingebettete Systeme, die notwendig werden, wenn eingebettete Systeme wachsen und komplexer werden. Dazu gehören die folgenden:
- Einfache Steuerkreise rufen Unterprogramme auf, die einen bestimmten Teil der Hardware oder eingebetteten Programmierung verwalten.
- Unterbrechungsgesteuerte Systeme haben zwei Schleifen: eine Hauptschleife und eine Nebenschleife. Unterbrechungen in den Schleifen lösen Aufgaben aus.
- Kooperatives Multitasking ist im Wesentlichen ein einfacher Steuerkreis, der sich in einer Programmierschnittstelle (API) befindet.
- Präemptives Multitasking oder Multithreading wird oft mit einem Echtzeitbetriebssystem verwendet und bietet Synchronisations- und Task-Wechselstrategien.
Very Large Scale Integration (VLSI) beschreibt die Komplexität eines integrierten Schaltkreises (Integrated Circuit, IC). VLSI ist der Prozess des Einbettens von Hunderttausenden von Transistoren in einen Chip, während Mikrochips mit Large Scale Integration (LSI) Tausende von Transistoren enthalten, Mikrochips mit Medium Scale Integration (MSI) Hunderte von Transistoren und Mikrochips mit Small Scale Integration (SSI) Dutzende von Transistoren. Unter Ultra Large Scale Integration (ULSI) versteht man die Platzierung von bis zu einer Millionen Transistoren auf einem Chip.
VLSI-Schaltkreise sind ein gängiges Merkmal eingebetteter Systeme. Viele integrierte Schaltkreise in eingebetteten Systemen sind VLSIs.
Debugging eingebetteter Systeme
Eingebettete Systeme unterscheiden sich von den Betriebssystemen und Entwicklungsumgebungen anderer größerer Computer in der Art und Weise, wie sie das Debugging handhaben. In der Regel können Entwickler, die mit Desktop-Umgebungen arbeiten, sowohl den Code, an dem sie arbeiten, als auch separate Debugger-Anwendungen ausführen, die das eingebettete System überwachen, was Programmierern in der Regel nicht möglich ist.
Einige Programmiersprachen laufen auf Mikrocontrollern mit ausreichender Effizienz, sodass ein rudimentäres interaktives Debugging direkt auf dem Chip möglich ist. Darüber hinaus verfügen Prozessoren häufig über CPU-Debugger, die über den Industriestandard JTAG oder einen ähnlichen Debugging-Port gesteuert werden können und somit die Programmausführung steuern.

In vielen Fällen benötigen Programmierer jedoch Tools, die ein separates Debugging-System über einen seriellen oder anderen Port mit dem Zielsystem verbinden. In diesem Szenario kann der Programmierer den Quellcode auf dem Bildschirm eines anderen Computers sehen, genau wie beim Debugging von Software auf einem Desktop-Computer.
Ein separater, häufig verwendeter Ansatz besteht darin, Software auf einem PC auszuführen, der den physischen Chip in Software emuliert. Dies ermöglicht es im Wesentlichen, die Leistung der Software zu debuggen, als würde sie auf einem tatsächlichen physischen Chip ausgeführt werden.
Eine einfache Möglichkeit, eingebettete Anwendungen zu debuggen, ist die Verwendung eines universellen I/O-Pins. Dadurch wird überprüft, ob eine bestimmte Codezeile in einer Anwendung ausgeführt wird.
Ein weiteres grundlegendes Debugging-Tool ist ein Debugger auf Quellcodeebene, mit dem Benutzer ihren Code durchgehen, anhalten und den Programmspeicher oder Variablen überprüfen können.
Logikanalysatoren sind ein weiteres gängiges und nützliches Debugging-Tool. Sie können Wellenformen von mehreren Signalen gleichzeitig lesen und diese Daten gleichzeitig von verschiedenen Standardschnittstellen dekodieren.
Im Großen und Ganzen haben eingebettete Systeme in den letzten Jahrzehnen immer mehr Aufmerksamkeit für Tests und Debugging erhalten, da zahlreiche Geräte mit eingebetteten Steuerungen für Situationen entwickelt wurden, in denen Sicherheit und Zuverlässigkeit oberste Priorität haben.
Geschichte eingebetteter Systeme
Eingebettete Systeme 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 Guidance Computer zu reduzieren, einem digitalen System, das im Apollo-Kommandomodul und im Mondlandemodul installiert war. Der erste Computer, der integrierte Schaltkreise verwendete, half den Astronauten bei der Erfassung von Flugdaten in Echtzeit.
1965 entwickelte Autonetics, heute Teil von Boeing, den D-17B, den Computer, der im Minuteman-I-Raketenleitsystem verwendet wurde. Er gilt allgemein als das erste in Massenproduktion hergestellte eingebettete System. Als 1966 die Minuteman II in Produktion ging, wurde der D-17B durch das NS-17-Raketenleitsystem ersetzt, das für seinen konzentrierten Einsatz integrierter Schaltkreise bekannt war. 1968 wurde das erste eingebettete System für ein Fahrzeug auf den Markt gebracht: Der Volkswagen 1600 verwendete einen Mikroprozessor zur Steuerung seines elektronischen Kraftstoffeinspritzsystems.
In den späten 1960er und frühen 1970er Jahren sanken die Preise für integrierte Schaltkreise und ihre Verwendung nahm zu. Der erste Mikrocontroller wurde 1971 von Texas Instruments entwickelt. Die TMS1000-Serie, die 1974 auf den Markt kam, enthielt einen 4-Bit-Prozessor, Read-only Memory (ROM) und Random-Access Memory (RAM) und kostete bei Großbestellungen zunächst rund zwei US-Dollar pro Stück.
Außerdem brachte Intel 1971 den 4004 auf den Markt, der allgemein als der erste kommerziell erhältliche Prozessor gilt. Der 4-Bit-Mikroprozessor war für den Einsatz in Taschenrechnern und kleinen elektronischen Geräten konzipiert, benötigte jedoch externe Speicher- und Support-Chips. Der 8-Bit-Prozessor Intel 8008, der 1972 auf den Markt kam, verfügte über 16 KB Speicher; der Intel 8080 folgte 1974 mit 64 KB Speicher. Der Nachfolger des 8080, die x86-Serie, kam 1978 auf den Markt und wird auch heute noch weitgehend verwendet.
1987 wurde das erste eingebettete Betriebssystem, das Echtzeitbetriebssystem VxWorks, von Wind River veröffentlicht, gefolgt von Microsofts Windows Embedded CE im Jahr 1996. Ende der 1990er-Jahre kamen die ersten eingebetteten Linux-Produkte auf den Markt. Heute wird Linux in fast allen eingebetteten Geräten verwendet.
In den 1990er und 2000er Jahren stieg die Rechenleistung aufgrund des Übergangs von 8- und 16-Bit-Mikrocontrollern zu 32- und 64-Bit-Prozessoren.
In den 2010er Jahren lag der Schwerpunkt zunehmend auf Sicherheitsfunktionen in eingebetteten Geräten, was möglicherweise auf die Zunahme von IoT und vernetzten Geräten zurückzuführen ist.
Aufgrund des technologischen Fortschritts werden eingebettete Systeme heute auch in KI- und maschinelle Lernsysteme (ML) integriert. Dies wird auch als eingebettete KI bezeichnet und bezeichnet die Integration von KI in ressourcenbeschränkte Geräte wie Smartphones oder autonome Fahrzeuge.
Trends bei eingebetteten Systemen
Während einige eingebettete Systeme relativ einfach sein können, werden andere immer komplexer und können entweder die menschliche Entscheidungsfindung ersetzen oder Fähigkeiten bieten, die über das hinausgehen, was ein Mensch leisten kann. So können beispielsweise einige Luftfahrtsysteme, einschließlich der in Drohnen verwendeten, Sensordaten integrieren und schneller auf diese Informationen reagieren, als es ein Mensch kann, was neue Arten von Betriebsfunktionen ermöglicht.
Es wird erwartet, dass das eingebettete System weiterhin schnell wächst, was zum großen Teil auf das Internet der Dinge zurückzuführen ist. Die Ausweitung von IoT-Anwendungen wie Wearables, Drohnen, Smart Homes, Smart Buildings, Videoüberwachung, dreidimensionale Drucker und Smart Transportation wird voraussichtlich das Wachstum von eingebetteten Systemen vorantreiben.
Zu den weiteren Trends bei eingebetteten Systemen gehören:
- KI und ML. Derzeit ist es ein wachsender Trend, KI- und ML-Systeme in Geräte wie Smartphones, autonome Fahrzeuge, industrielle Automatisierungsgeräte und tragbare Geräte zu integrieren.
- Edge Computing. Edge Computing, bei dem die Datenverarbeitung näher an das Quellgerät herangeführt wird, setzt sich auch bei eingebetteten Systemen immer mehr durch, da es die Latenzzeit und die Bandbreitennutzung senken kann – insbesondere bei Echtzeitanwendungen.
- Sicherheit. Da die Sicherheit für viele Menschen immer mehr an Bedeutung gewinnt, werden Sicherheitsfunktionen wie Verschlüsselung und sichere Boot-Mechanismen in eingebettete Systeme integriert.
- Verbesserte Konnektivität. Kontinuierliche Verbesserungen bei Bluetooth- und 5G-Technologien sorgen für eine höhere Bandbreite und eine geringere Latenzzeit bei eingebetteten Systemen.
- Quantencomputer. Die Integration von Quantencomputern in eingebettete Systeme könnte durch Quantenkryptografie, verbesserte Optimierung und fortschrittliche Problemlösung für mehr Sicherheit sorgen. Praktische Anwendungen sind jedoch noch in der Entwicklung.