Der Begriff Eingebettetes System (engl. embedded system, franz. système embarqué) bezeichnet ein Rechnersystem, das – weitestgehend unsichtbar – den Dienst in einer Vielzahl von Anwendungsbereichen und Geräten versieht, wie z. B. in Flugzeugen, Autos, Kühlschränken, Fernsehern, DVD-Playern oder allgemein Geräten der Unterhaltungselektronik.
Eingebettete Systeme vereinigen daher durch ihre oftmals sehr hardwarenahe Konstruktion die große Flexibilität von Software mit der Leistungsfähigkeit der Hardware.
Die Software-Entwicklung für diese Systeme unterscheidet sich grundsätzlich von der von z. B. Desktop- oder PC-Systemen: Oftmals werden Betriebssysteme eingesetzt, die zwar nicht über Speicherschutz verfügen (der eher selten auch in der Hardware realisiert ist), dafür jedoch Echtzeitanforderungen genügen. Bei „kleinen“ Systemen kommt häufig auch überhaupt kein Betriebssystem zum Einsatz. Im Gegensatz zu Software-Entwicklern für PC-Systeme muss sich der Software-Entwickler für eingebettete Systeme meistens selbst mit den Möglichkeiten der Ein-/Ausgabe beschäftigen. Funktionen dafür sind sehr hardwareabhängig und in der Regel für jedes System neu zu entwickeln.
Übliche eingebettete Betriebssysteme sind z. B. VxWorks, OSEK, zunehmend auch spezielle Linux-Derivate, NetBSD, aber auch für Java gibt es Ansätze wie etwa OSGi. Auch Microsoft bietet verschiedene Windows-Varianten für eingebettete Systeme an. Bevorzugte Programmiersprache ist im Allgemeinen C oder C++. Assemblersprache wird dann eingesetzt, wenn zeitkritische Funktionen vor allem in Interrupts programmiert werden. Im Zusammenhang mit Betriebssystemen ist Assembler eher eine Randerscheinung; in Systemen ohne Betriebssystem und vor allem bei massiven Speicherrestriktionen kommt Assembler eher zur Anwendung. In sicherheitskritischen Anwendungen wie z.B. Flugsteuerungsrechner kommt auch die Programmiersprache ADA in eingebetteteten Systemen zum Einsatz.
Für viele Anwendungen können auch ältere Komponenten eingesetzt werden, wenn zudem die Vereinfachung der Architektur des ursprünglichen Systems dazu beiträgt, weitere Kosten zu senken. So ist die Architektur 8051 von 1980 trotz ihrer bekannten Schwächen immer noch eine sehr beliebte Basis für Eingebettete Systeme.
Programme eines Eingebetteten Systems müssen oft Echtzeitanforderungen genügen. In der Regel existieren verglichen mit Desktop-PC-Hardware nur stark reduzierte Ressourcen, zumeist ohne Festplatte, Betriebssystem, Tastatur oder Bildschirm. Ein ROM- oder Flash-Chip ersetzt meistens mechanische Speicherkomponenten wie eine Festplatte: bewegliche Teile bedeuten Verschleiß, der hier unerwünscht ist. Wenn überhaupt, dann gibt es meistens nur ein Tastenfeld und die Ausgabe wird – soweit vorgesehen – durch ein LCD realisiert.
Die Software auf einem solchen Gerät wird Firmware genannt. Sie befindet sich gewöhnlich auf einem ROM, immer häufiger jedoch auf Flash-Speicher. Im Falle eines Flash-Speichers besteht die Möglichkeit eines Firmware-Updates, ohne dass der Chip ausgewechselt werden muss. Ist nur ein ROM vorhanden, muss zumeist der gesamte Chip ausgewechselt werden, je nach Verbau die gesamte Schaltung.
Allerdings finden auch spezielle Eingebettete Versionen von Standardbetriebssysteme wie Linux (Embedded Linux), NetBSD oder Windows (CE, XP Embedded, Automotive oder Embedded for PoS) inzwischen großen Anklang.
Heutige Eingebettete CPUs haben in der Regel einen „Schmalspur“-ICE schon on Board, so dass der Hardware-ICE nicht mehr benötigt wird. Dafür sind die Einwirkungsmöglichkeiten von der Debugging-Software auf die Ziel-CPU bedeutend eingeschränkt. Eine komplette Überwachung der CPU ist nicht möglich, dafür sind die Kosten erheblich gemindert. Kostet ein voll ausgebautes ICE-System für z. B. ein 68k-Derivat bis in den 6-stelligen Eurobetrag, sind die Kosten für solch ein „Schmalspur“-System häufig im unteren 3-stelligen Eurobereich. Hier kommt in der Regel eine Schnittstelle vom Typ „JTAG“ zum Einsatz. (Speziell für die 68k-Derivate gibt es eine Schnittstelle, die sich „Background Debug Module“, BDM, nennt, die von Motorola schon lange vor den JTAG-Schnittstellen benutzt wurde. Auch hier sind die Kosten um fast drei Zehnerpotenzen geringer.)
Alternativ, wenn man keinen ICE zur Verfügung hat, wird oft mit Simulatoren gearbeitet, welche die interne Struktur und die Peripherie des Microcontrollers in Software nachbilden. Hier müssen aber beim Debugging die „externen“ Signale (Tasten, Display usw.) „per Hand“ nachgebildet werden, wobei in der Regel Interrupts benutzt werden müssten, die im Simulator normalerweise nicht realisierbar sind.
Inzwischen gibt es auch im Bereich Eingebetteter Systeme Entwicklungen auf Java-Basis. Gründe sind u. a. die Möglichkeit des einfacheren Plattformwechsels bzw. der Plattformunabhängigkeit und der Wegfall von Simulatoren (siehe OSGi und Embedded Java).
Der Microcode-Interrupt lässt den Debugger auf der Hardware arbeiten, auf der sonst nur die CPU arbeitet. Von dem Standpunkt der CPU aus können CPU-basierte Debugger dann benutzt werden, um die Elektronik des Computers zu testen und gegebenenfalls Fehler in dieser zu diagnostizieren. Diese Fähigkeit wurde an der PDP-11 (siehe Programmed Data Processor) erforscht und entwickelt. Der Systemtest wird mittels der sogenannten Hardware-in-the-Loop-Technik durchgeführt, bei der das fertige System an eine Spezialhardware angeschlossen wird, die die Umgebung des Systems simuliert. Auf diese Weise kann das Verhalten des Systems mit Testfällen detailliert untersucht werden.
Zu Beginn des Apollo-Projekts wurde genau dieses System als eines der riskantesten Komponenten des Projektes angesehen.
Die ersten Eingebetteten Systeme wurden allerdings schon vorher in der Minuteman-Rakete eingesetzt und als Folge dessen in Massenproduktion hergestellt. Die Anwendung war ein Wege-Such-System, das der Rakete nach einmaliger Programmierung eine unabhängige Manövrierung ermöglichte. Die verwendeten integrierten Schaltungen wurden nach einiger Zeit, dank der Massenproduktion, für jedermann erschwinglich und damit nutzbar gemacht.
Die entscheidende Eigenschaft des Minuteman-Computers war, dass man den Weg-Finde-Algorithmus später programmieren konnte, wodurch man die Rakete wesentlich präziser einsetzen konnte. Ein weiterer Vorteil war die Selbsttestfunktion der Rakete zur Statusabfrage und, dass man auf größere Mengen von Kabeln zu Gunsten des Gewichtes verzichten konnte.
Folgende Aspekte spielen bei Designentscheidungen von Eingebetteten Systemen eine Rolle:
Viele dieser Systeme sind innerhalb von 100 ms einsatzbereit. Selbst nach einem kleinen Stromausfall bzw. einer Spannungsschwankung laufen diese Geräte sofort weiter, da die interne Hardware dann den Selbsttest der Hardware und Software überspringt und direkt weiterarbeitet. Hierbei treten jedoch durch möglicherweise veränderte Bits im RAM manchmal undefinierte Systemverhalten auf, die eine Schaltung zur Spannungsüberwachung (Supply Voltage Supervisor, SVS oder auch Brownout Detection genannt) vermeidet. Der SVS löst einen „richtigen“ Reset aus, so daß das System komplett initialisiert wird und eben auch die Selbsttests durchläuft.
Die Dauer des Systemstarts ist beispielsweise bei der KFZ-Elektronik an den Kontrollleuchten erkennbar, die nach Einschalten der Zündung aufleuchten, und nach kurzer Zeit wieder erlöschen. Der Systemstart führt bei vielen Geräten leider dazu, dass das Einschalten länger dauert als bei analogen Geräten, beispielsweise bei Autoradios.
Indlejret system | Embedded system | Sistema integrado | سامانه توکار | Sulautettu järjestelmä | Système embarqué | Sistem benam | Sistema embedded | 組み込みシステム | 임베디드 시스템 | Ingebed systeem | System wbudowany | Sistemas embarcados | Встраиваемая система | Уграђени систем | Inbyggt system | ระบบฝังตัว | Hệ thống nhúng | 嵌入式系统
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Eingebettetes System".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world