Suchen

Was ist ein Embedded System?

Autor / Redakteur: Prof. Dr. Christian Siemers * / Sebastian Gerstl

Ein eingebettetes System (englisch embedded system) ist ein binärwertiges digitales System (auch Computersystem genannt), das in ein umgebendes technisches System eingebettet ist und mit diesem in Wechselwirkung steht. Dabei übernimmt der Rechner meist Überwachungs-, Steuerungs- oder Regelungsfunktionen, ist oft aber auch für eine Form der Daten- bzw. Signalverarbeitung zuständig.

Firmen zum Thema

Eingebettete Systeme sind in zahlreichen Gebieten anzutreffen, ob nun im Consumer-, Industrie, oder Automotive- bzw. Avionik-Bereich. Dabei ist es ein großer Unterschied, ob nun eine Kaffeemaschine oder ein Flugzeug gesteuert werden muss. Wer ein Embedded System entwickeln will muss daher erst einmal wissen, welche vielfältige Unterscheidungenes in diesem Bereich gibt.
Eingebettete Systeme sind in zahlreichen Gebieten anzutreffen, ob nun im Consumer-, Industrie, oder Automotive- bzw. Avionik-Bereich. Dabei ist es ein großer Unterschied, ob nun eine Kaffeemaschine oder ein Flugzeug gesteuert werden muss. Wer ein Embedded System entwickeln will muss daher erst einmal wissen, welche vielfältige Unterscheidungenes in diesem Bereich gibt.
(Bild: Clipdealer)

Das Gegenstück zu Embedded System wird Self-Contained System genannt. Als Beispiele können Mikrocontroller-basierte Systeme im Auto, die Computertastatur usw. genannt werden.

Die Definition der eingebetteten Systeme ist eine ”weiche“ Definition, aber sie ist trotzdem sehr wichtig! Der Grund bzw. der Unterschied zu den Self-Contained Rechnern besteht darin, dass – wie erwähnt – die Korrektheit bzw. Erfüllung auch in den Randbedingungen (und nicht nur im Algorithmus) einzuhalten ist.

Allgemeine Klassifizierung von Computersystemen

Die heute verfügbaren Computersysteme können in drei unterschiedliche Klassen eingeteilt werden: (rein) transformationelle, interaktive und reaktive Systeme. Die Unterscheidung erfolgt in erster Linie durch die Art und Weise, wie Eingaben in Ausgaben transformiert werden.

Transformationelle Systeme transformieren nur solche Eingaben in Ausgaben, die zum Beginn der Systemverarbeitung vollständig vorliegen. Die Ausgaben sind nicht verfügbar, bevor die Verarbeitung terminiert. Dies bedeutet auch, dass der Benutzer bzw. die Prozessumgebung nicht in der Lage ist, während der Verarbeitung mit dem System zu interagieren und so Einfluss zu nehmen.

Interaktive Systeme erzeugen Ausgaben nicht nur erst dann, wenn sie terminieren, sondern sie interagieren und synchronisieren stetig mit ihrer Umgebung. Wichtig hierbei ist, dass diese Interaktion durch das Rechnersystem bestimmt wird, nicht etwa durch die Prozessumgebung: Wann immer das System neue Eingaben zur Fortführung benötigt, wird die Umgebung, also ggf. auch der Benutzer hierzu aufgefordert. Das System synchronisiert sich auf diese proaktive Weise mit der Umgebung.

Bei reaktiven Systemen schreibt die Umgebung vor, was zu tun ist. Das Computersystem reagiert nur noch auf die externen Stimuli, die Prozessumgebung synchronisiert den Rechner (und nicht umgekehrt).

Worin liegen die Auswirkungen dieses kleinen Unterschieds, wer wen synchronisiert? Die wesentlichen Aufgaben eines interaktiven Systems sind die Vermeidung von Verklemmungen (deadlocks), die Herstellung von ”Fairness“ und die Erzeugung einer Konsistenz, insbesondere bei verteilten Systemen. Reaktive Systeme hingegen verlangen vom Computer, dass dieser reagiert, und zwar meistens rechtzeitig. Rechtzeitigkeit und Sicherheit sind die größten Belange dieser Systeme.

Zudem muss von interaktiven Systemen kein deterministisches Verhalten verlangt werden: Diese können intern die Entscheidung darüber treffen, wer wann bedient wird. Selbst die Reaktion auf eine Sequenz von Anfragen muss nicht immer gleich sein. Bei reaktiven Systemen ist hingegen der Verhaltensdeterminismus integraler Bestandteil. Daher hier die Definition von Determinismus bzw. eines deterministischen Systems: Ein System weist determiniertes oder deterministisches Verhalten (Deterministic Behaviour) auf, wenn zu jedem Satz von inneren Zuständen und jedem Satz von Eingangsgrößen genau ein Satz von Ausgangsgrößen gehört.

Ergänzendes zum Thema
Definitionen verschiedener Embedded Systeme

Embedded Systeme können in unterschiedlichen informationstechnischen Formen vorliegen. Hier einige Beispiele, an denen man verschiedene embedded Systeme unterscheiden kann:

1. Unter einem System versteht man generell ein mathematisches Modell S, das einem Eingangssignal der Größe x ein Ausgangssignal y der Größe y = S(x) zuordnet. Wenn das Ausgangssignal hierbei nur vom aktuellen Wert des Eingangssignals abhängt, spricht man von einem gedächtnislosen System (Beispiel: Schaltnetze in der digitalen Elektronik). Hängt dagegen dieser von vorhergehenden Eingangssignalen ab, spricht man von einem dynamischen System (Beispiel: Schaltwerke).

2. Ein reaktives System (reactive system) kann aus Software und/oder Hardware bestehen und setzt Eingabeereignisse, deren zeitliches Verhalten meist nicht vor-hergesagt werden kann, in Ausgabeereignisse um. Die Umsetzung erfolgt oftmals, aber nicht notwendigerweise unter Einhaltung von Zeitvorgaben.

3. Ein hybrides System (hybrid system) ist ein System, das sowohl kontinuierliche (analoge) als auch diskrete Datenanteile (wertkontinuierlich) verarbeiten und/oder sowohl über kontinuierliche Zeiträume (zeitkontinuierlich) als auch zu diskreten Zeitpunkten mit ihrer Umgebung interagieren kann.

4. Ein verteiltes System (distributed system) besteht aus Komponenten, die räumlich oder logisch verteilt sind und mittels einer Kopplung bzw. Vernetzung zum Er-reichen der Funktionalität des Gesamtsystems beitragen. Die Kopplung bzw. Ver-netzung spielt bei echtzeitfähigen Systemen eine besondere Herausforderung dar.

5. Ein Steuergerät (electronic control unit, ECU) ist die physikalische Umsetzung eines eingebetteten Systems. Es stellt damit die Kontrolleinheit eines mechatroni-schen Systems dar. In mechatronischen Systemen bilden Steuergerät und Sensorik/Aktorik oftmals eine Einheit.

6. Wird Elektronik zur Steuerung und Regelung mechanischer Vorgänge räumlich eng mit den mechanischen Systembestandteilen verbunden, so spricht man von ei-nem mechatronischen System. Der Forschungszweig, der sich mit den Grundlagen und der Entwicklung mechatronische Systeme befasst, heißt Mechatronik (mechatronics).

Mechatronik ist ein Kunstwort, gebildet aus Mechanik und Elektronik. In der Praxis gehört allerdings eine erhebliche Informatik-Komponente hinzu, da nahezu alle mechatronischen Systeme auf Mikrocontrollern/Software basieren.

Als Gegenbegriffe können stochastisch oder nicht-deterministisch genannt werden. Diese Definition bezieht sich ausschließlich auf die logische (algorithmische) Arbeitsweise, und das klassische Beispiel sind die endlichen Automaten (DFA, Deterministic Finite Automaton). Nicht-deterministische Maschinen werden auf dieser Ebene in der Praxis nicht gebaut, beim NFA (Non-Deterministic Finite Automaton) handelt es sich um eine theoretische Maschine aus dem Gebiet der Theoretischen Informatik.

Klassifizierung von Embedded Systemen

Bild 1: Einordnung eingebetteter Systeme
Bild 1: Einordnung eingebetteter Systeme
(Bild: Christian Siemers)

Eingebettete Systeme, die mit einer Umgebung in Wechselwirkung stehen, müssen in der Regel immer auf den umgebenden Prozess reagieren. Dennoch ist ihre Implementierung sowohl als interaktives als auch als reaktives System (und natürlich als Mischform) denkbar.

Ein reaktives Systemdesign ist prinzipiell in Richtung Echtzeitverhalten angelegt, gleichwohl aber natürlich nicht automatisch echtzeitfähig. Wird die Einhaltung von Zeitschranken zu einer Hauptsache, d.h. wird die Verletzung bestimmter Zeitschranken sehr kritisch im Sinn einer Gefährdung für Mensch und Maschine, dann spricht man von Echtzeitsystemen.

Für das interaktive Systemdesign muss – zusätzlich zur Reaktionsberechnung in Echtzeit – auch gewährleistet sein, dass die Interaktion, die ja vom Rechner ausgeht, ebenfalls rechtzeitig genug erfolgt. Ist das gewährleistet, spricht nichts gegen ein interaktives Systemdesign als Grundlage des echtzeit-fähigen eingebetteten Systems (siehe dazu Bild 1).

Weitere wichtige Eigenschaften im Sinn der Einbettung sind: Nebenläufigkeit (zumindest oftmals), hohe Zuverlässigkeit und Einhaltung von Zeitschranken. Noch eine Anmerkung zum Determinismus: Während man davon ausgehen kann, dass alle technisch eingesetzten, eingebetteten Systeme deterministisch sind, muss dies für die Spezifikation nicht gelten: Hier sind nicht-deterministische Beschreibungen erlaubt, z.B., um Teile noch offen zu lassen.

Embedded Systeme lassen sich weiterhin nach einer Reihe von unterschiedlichen Kriterien klassifizieren. Hierzu zählen:

  • Kontinuierlich versus diskret: Diese Ausprägung der Stetigkeit bezieht sich sowohl auf Datenwerte als auch auf die Zeit. Enthält ein System beide Verhaltensweisen, wird es als „hybrides System“ bezeichnet.
  • Monolithisch versus verteilt: Während anfänglich alle Applikationen für eingebettete Systeme als monolithische Systeme aufgebaut wurden, verlagert sich dies zunehmend in Richtung verteilte Systeme. Hier sind besondere Anforderungen zu erfüllen, wenn es um Echtzeitfähigkeit geht.
  • Sicherheitskritisch versus nicht-sicherheitskritisch: Sicherheitskritische Systeme sind solche, deren Versagen zu einer Gefährdung von Menschen und/oder Einrichtungen führen kann. Viele Konsumprodukte sind sicherheits-unkritisch, während Medizintechnik, Flugzeugbau sowie Automobile zunehmend auf sicherheitskritischen eingebetteten Systemen beruhen.

(ID:45013089)