Embedded

Der Ausdruck eingebettetes System (auch englisch embedded system) bezeichnet einen elektronischen Rechner oder auch Computer, der in einen technischen Kontext eingebunden (eingebettet) ist. Dabei übernimmt der Rechner entweder Überwachungs-, Steuerungs- oder Regelfunktionen oder ist für eine Form der Daten- bzw. Signalverarbeitung zuständig, beispielsweise beim Ver- bzw. Entschlüsseln, Codieren bzw. Decodieren oder Filtern.

Eingebettete Systeme verrichten – weitestgehend unsichtbar für den Benutzer – den Dienst in einer Vielzahl von Anwendungsbereichen und Geräten, beispielsweise in Geräten der Medizintechnik, Waschmaschinen, Flugzeugen, Kraftfahrzeugen, Kühlschränken, Fernsehern, DVD-Playern, Set-Top-Boxen, Routern, Mobiltelefonen oder allgemein in Geräten der Unterhaltungselektronik. Im Fall von komplexen Gesamtsystemen handelt es sich dabei meist um eine Vernetzung einer Vielzahl von ansonsten autonomen, eingebetteten Systemen (z. B. im Fahrzeug oder Flugzeug).

Oft werden eingebettete Systeme speziell an eine Aufgabe angepasst. Aus Kostengründen wird eine optimierte, gemischte Hardware-Software-Implementierung gewählt. Dabei vereinigt eine solche Konstruktion die große Flexibilität von Software mit der Leistungsfähigkeit der Hardware. Die Software dient dabei sowohl zur Steuerung des Systems selbst als auch ggf. zur Interaktion des Systems mit der Außenwelt über definierte Schnittstellen oder Protokolle (z. B. LIN-Bus, CAN-Bus, ZigBee für drahtlose Kommunikation oder IP über Ethernet).

Eingebettete Systeme werden häufig mittels vieler verschiedener CPU-Architekturen (8051, ARM, AVR, TI MSP430, MIPS, PowerPC, 68k/Coldfire, Intel x86, 68HC12, C167, Renesas M16C, H8S und diverser anderer 8/16/32-Bit-CPUs) realisiert.

Die Software für Embedded Systeme, die sogenannte Firmware, wird in der Regel über einen Crosscompiler erzeugt. Dieser Compiler läuft auf einer anderen Architektur (in der Regel auf einer PC-Architektur) als die des Zielsystems. Diese Crosscompiler sind normalerweise nicht auf einen bestimmten Prozessor begrenzt, sondern können Maschinencode für eine ganze Prozessorfamilie erzeugen, wie zum Beispiel ARM7, PowerPC 8xx.

Die Elektronik bildet meistens ein Mikroprozessor mit entsprechender Peripherie oder ein Mikrocontroller.

Folgende Aspekte spielen bei Entwurfsentscheidungen von eingebetteten Systemen eine Rolle:

Integration
Je mehr Funktionalität der verwendete Mikrocontroller bereits enthält, desto weniger Peripheriebausteine werden benötigt, um die Anbindung an die benötigten Systemschnittstellen (Ein-/Ausgabe) zu ermöglichen. Je weniger Bausteine eine Platine benötigt, desto geringer ist der Platzbedarf der Leiterbahnen und die Signallaufzeiten zwischen den Bausteinen. Diese Überlegungen führten dazu, dass auf heutigen Mikrocontrollern meistens schon ausreichend RAM und andere Peripherie-Funktionen vorgesehen sind.
Hardwareanforderungen
Je nach Einsatzumgebung des Systems können unterschiedlichste Rahmenbedingungen entstehen. Wenn es um eine Freiluftanlage oder sonstige raue Umweltbedingungen wie Hitze und Staub geht, muss man auf Robustheit der Hardware achten, also vor allem hermetische Kapselung. Wenn es dabei um aufwändigere Systeme geht, sind sogenannte Industrie-PCs oft eine Lösung. Wenn es um ständige mechanische Erschütterungen geht, müssen Steckverbindungen möglichst eingespart oder besonders robust ausgeführt werden. Bauteile mit beweglichen Komponenten wie Festplattenlaufwerke oder Lüfter versucht man dabei möglichst auch zu vermeiden.
Stromverbrauch
In vielen Fällen werden eingebettete Systeme mit Batterien betrieben. Diese werden, wie z. B. bei Wasserzählern, nur im Eichintervall (5 Jahre + Laufzeitreserve) getauscht. Die hohen Laufzeiten werden durch spezielle Chiptechnologien (z. B. CMOS) und Maßnahmen in der Software, wie z. B. Schlafmodus, erreicht.
Echtzeitanforderungen
Hohe Verfügbarkeit und definierte Antwortzeiten sind häufig gestellte Anforderungen an ein eingebettetes System und damit auch an dessen Betriebssystem und Software. Beispielsweise muss die elektronisch gesteuerte Bremse oder der Airbag nahezu unverzögert im Millisekundenbereich reagieren, eine Überschreitung der definierten Latenzzeit ist nicht tolerierbar. Die einfache und geschlossene Bauweise sowie die Verwendung spezieller Echtzeitbetriebssysteme erlauben es schon in der Entwicklungsphase, die Reaktionszeiten des Gesamtsystems abzuschätzen.
Betriebssicherheit
Viele eingebettete Systeme laufen im Gegensatz zu PCs im Dauerbetrieb. Fehler und Störungen, wie z. B. bei Probleme mit der elektromagnetische Verträglichkeit (EMV), erfordern spezielle Maßnahmen im eingebetteten System um einen zuverlässigen Wiederanlauf zu gewährleisten. Daher sind Mikrocontroller mit einem Watchdog ausgerüstet. Dieser bewirkt bei Unregelmäßigkeiten im Ablauf einen kontrollierten Wiederanlauf und stellt damit die Verfügbarkeit des eingebetteten Systems, ohne Eingriff des Benutzers, sicher.
Stückpreis
Der Stückpreis hängt, wie viele Waren des Marktes, von den Entwicklungs- und Herstellungskosten ab. Je höher die Stückzahl, desto geringer ist der Anteil der Entwicklungskosten je Stück. Bei großen Produktionsmengen wird daher bei der Entwicklung viel Aufwand in die Optimierung des Ressourcenverbrauchs gesteckt, um beispielsweise durch Speichereinsparung die Materialkosten weiter drücken zu können. Bei geringen Stückzahlen fallen die Materialkosten dagegen weniger ins Gewicht. Hier lohnt es sich dann wieder mit teureren, aber dafür flexibleren Bausteinen (z. B. FPGAs) die Entwicklungszeit zu verringern.