Anzeige

Embedded Systeme... oder warum Autos stehen bleiben
Eine kritische Erläuterung


Inhaltsübersicht:

Was ist eigentlich Embedded?
Was ist ein Embedded System?
Die Toastergeschichte
Der Toaster mit einem embedded System

 

 

"Was ist eigentlich EMBEDDED...?" -

... ist eine häufig gehörte Frage. Die deutsche Übersetzung Embedded = Eingebettet wurde im Irakkrieg 2003 erstmalig in die Öffentlichkeit getragen. Gemeint waren Reporter, die in die kämpfende Truppe "eingebettet" sind und ihre Berichterstattung "direkt von der Front" durchführten.Diese Begriffsdefinition ist prinzipiell auch die Erklärung für ein Embedded System:

Generell versteht man unter Embedded Systeme eine besondere Art von kleinen Computern, die in bestimmten Produkten eingesetzt werden - also eingebettet sind. Meistens übernehmen sie dort Steuerungs-, Kontroll- oder Bedienaufgaben.

Einige Beispiele für embedded Systeme, wie sie bereits heute um uns herum sind:

  • In Fahrzeugen werden Embedded Systeme für ABS, ESP und Motorelektronikfunktionen (Einspritzanlage) eingesetzt.
  • Moderne - meist deutsche - Luxusfahrzeuge verfügen zusätzlich über eine Vielzahl und Aufgaben von Embedded Systemen, z.B. für die automatische Sitz- und Spiegeleinstellung / Speicherung, Übermittlung von Verkehrsinformationen und grafische Darstellung im Navigationssystem, Kopfstützen, die sich mit ihrer Höhe an die Insassen anpassen usw.
  • In modernen Waschmaschinen stellen Embedded Systeme sicher, dass elektronisch geregelte Waschprogramme mit vorprogrammierter Drehzahl, Wassertemperatur und Menge durchgeführt werden. U. U. messen Sensoren auch, ob die Wäsche nach dem Schleudergang einen bestimmten Trockengrad erreicht hat und verlängern nötigenfalls den Schleudervorgang
  • In Backautomaten messen sie den Bräunungsgrad der Brötchen und verlängern oder verkürzen ggfs die Backzeit.
  • In Fahrkartenautomaten speichern und ermitteln sie die besten Verbindungen, errechnen den Fahrpreis und drucken Ihr Ticket
  • In Flugzeugen (Fly-by-Wire Technologie) ersetzen sie die mechanische Steuerung durch elektronische Steuervorgänge. (Übrigens eine Technik mit der auch einige Automobilhersteller bereits experimentieren: Die Drehung am Lenkrad verändert nicht mehr direkt den Einschlag der vorderen Räder, sondern eine Elektronik bekommt die Anweisung die Räder um X Grad zu verändern und gibt den entsprechenden Steuerbefehl.)
  • Und das "klassische" Embedded System, das inzwischen fast jeder kennt: Das Mobiltelefon - ein kleiner, tragbarer Computer zum telefonieren. (Fairerweise sei erwähnt, dass das Handy seinen Embedded Status in den nächsten Jahren wieder verlieren dürfte: steigende Leistungen und steigende Wünsche der Anwender werden dazu führen, dass das Mobiltelefon mehr mobile PC Aufgaben wie Mail, Adressverwaltung, Spiele übernimmt und seinen Status als 100% Kommunikationsgerät verlieren wird.)

Alles in allem lässt sich diese Liste beliebig fortsetzen. Doch vermutlich wird diese Aufzählung bereits dem Anspruch gerecht, aufzuzeigen, dass Embedded Systeme bereits rundherum Einzug gehalten haben.

Doch was ist ein Embedded System?

Typischerweise ist ein Embedded System eine in sich abgeschlossene Computereinheit, die eine oder mehrere vorprogrammierte Aufgaben in oder für ein Produkt übernimmt und innerhalb dieses Produktes integriert / eingebettet ist.

Diese Computereinheit ist theoretisch vergleichbar mit Ihrem Standard Desktop PC, den Sie u. U. bei LIDL oder ALDI gekauft haben. In der Praxis treten jedoch einige Unterschiede auf:

  • Ihr Desktop PC besitzt eine - hoffentlich - hohe Leistungsfähigkeit, damit Sie alles Mögliche damit machen können: Spiele spielen, Texte erstellen, Berichte und Kalkulation.

    Beim Embedded System sind die Leistungen von vornerein eingeschränkt und auf die erforderlichen Ressourcen zur Erfüllung der Primäraufgabe konzentriert. Spiele, Texte, Berichte sind meistens nicht gewünscht - und der Anwender soll auch möglichst keine eigenen Programme kopieren, die die Funktionsfähigkeit des Produktes unter Umständen beeinträchtigen. (Oder möchten Sie in einem Flugzeug sitzen, in dem die Crew vorher den Bordcomputer mittels Egoshooter mit einem Virus infiziert hat?)
     
  • Ihr Standard PC wird in einer klassischen Büro- oder Heimumgebung eingesetzt. Im Detail bedeutet das, relativ konstanter Temperaturbereich von 0...35°C, kein (- oder zumindest nicht übermässiger -) Staub, Dreck, Schmutz und typischerweise geringe Vibrationen (- es sei denn Sie leben in einer ungedämmten Altbauwohnung und haben über sich einen Mitbewohner, dessen Idealgewicht um ca. 50 kg überschritten ist -).

    Das Embedded System soll dagegen nahezu überall seinen Dienst verrichten - im Fahrkartenautomaten oder als Bediensystem in einem Industriebetrieb soll es teilweise auch extreme Temperaturen überstehen, in Flugzeugen oder Zügen muss es auch Vibrationen aushalten und in der einen oder anderen Umgebung ganz gravierenden Schmutzeinflüßen widerstehen.
     
  • Beim Standard Desktop PC haben sich bestimmte Bauformen (sogn. offene Bauformen) durchgesetzt, u.a. deshalb, weil der Anwender ja selbst eigene Erweiterungskarten einbauen will.

    Das Embedded System ist hinsichtlich der Grösse meistens eingeschränkt, es muss in den verfügbaren Platz im PKW, in der Maschine usw hineinpassen. Nachträgliche Erweiterungen sind typischerweise wg. der bereits vordefinierten Aufgabe nicht notwendig.

Zusammengefasst lässt sich sagen, dass ein Embedded System zwar dem PC ähnlich, aber wg. seiner vorbestimmten Aufgabe speziell für ein bestimmtes Ziel entwickelt und in den meisten Fällen in das Produkt hinein integriert wurde. (Embedded = Eingebettet...)

Für Embedded Systeme bieten bieten namhafte Prozessorhersteller typischerweise eine Vielzahl von Embedded Prozessoren an. Hier sollen nur einige genannt werden:

  • Die NEC Vxx Serie, 12/25Mhz, PC bzw. DOS kompatibel
  • Die AMD SCxxx Serie, 133Mhz, PC PENTIUM vergleichbar
  • Die INTEL StrongARM Serie, 206/400Mhz

(Dieses sind nur Beispiele. Das Angebot an Embedded Prozessoren ist riesig. Der Marktzyklus ist vergleichsweise kurz - bereits nach kurzer Zeit werden die meisten Typen durch irgendwelche Nachfolger ersetzt. Diese ist also nur eine wirklich KLEINE Momentauswahl.)

Typische Embedded Prozessoren sind vergleichbar mit den 8 / 16 oder 32bit Standard PC Prozessoren. Noch vor einigen Jahren wurden im Embedded Bereich Controllerbaugruppen eingesetzt, die ohne Standards auskamen und mehr oder weniger individuell programmiert werden mussten. Heute haben sich auch für Embedded Prozessoren mehr Standard Betriebssysteme durchgesetzt - in einer etwas abgespeckten Variante als Embedded Betriebssystem. Der Vorteil: Die Projektentwicklung und Programmierung wird durch Verwendung von bekannten Tools vereinfacht - es geht schneller und wird günstiger. Ein weiterer Vorteil: Embedded Prozessoren weisen oftmals massive Maßnahmen für geringen Stromverbrauch auf: bei einem PC benötigt man ein 400 Watt Netzteil, bei einem Notebook 90 Watt - bei einem Embedded System 10 Watt.

Embedded Prozessoren werden eingesetzt, wenn ein Unternehmen ein eigenes Embedded System entwickeln will. Diese Embedded Systeme werden wiederum an den Kunden geliefert, der sie programmiert und in sein Produkt integriert. Beispiele finden Sie in unserem Produktprogramm von AE SYSTEME www.terminal-systems.de - direkt hier.

Die Toastergeschichte - der Schritt in die Embedded Entwicklung

Stellen Sie sich vor, Sie arbeiten als EntwicklerIn einer namhaften Haushaltsgeräte Firma und bekommen die Aufgabe einen intelligenten Toaster mit einem embedded System zur Steuerung und Bedienung entwerfen.

Das Ganze soll eine kleine Tastatur haben, um die Temperatur hoch- und runterzuregeln. Weiterhin wird ein Speicher und eine Datenbank benötigt, um den gewünschten Bräunungsgrad der Toasts für jedes Familienmitglied einzustellen. Damit die Familie das bedienen kann, wird zur Benutzerführung ein kleines Display integriert. Die gesamte Einheit muss noch einen Temperatursensor haben, damit die Temperatur im Inneren des Toasters gemessen und via Elektronik hoch- oder heruntergeregelt wird.

Rein theoretisch könnten Sie sich jetzt im nächsten Discounter einen Desktop PC besorgen, einen Temperatursensor mit serieller Schnittstelle kaufen (gibt es wohl bei CONRAD), diesen an den PC schliessen und das Ganze neben dem Toaster aufstellen.
Dann schreiben Sie noch ein Programm mit einer kleinen Datenbankfunktion, um die Anforderung mit dem Bräunungsgrad usw zu realisieren und am Schluss verbinden Sie die Heizspirale des Toaster noch irgendwie mit dem PC - fertig ist Ihr Projekt.

Wenn Sie jetzt das ganze fertige Konstrukt auf einen Rollwagen laden, damit zu zu Ihrem Chef gehen und Ihr neues Produkt als FERTIG deklarieren, dürften sich Ihre Karrierechancen in der Entwicklung dramatisch reduziert haben.

Etwas langfrister im Unternehmen können Sie verbleiben, wenn Sie statt des Desktop PC ein Embedded System verwenden.

Das Embedded System ist kleiner und kann optimalerweise bereits im vorhandenen Toaster integriert werden. Den Temperatursensor (ebenfalls nur ein kleiner Baustein) können Sie über digitale oder analoge Eingänge direkt anschliessen, die Heizspirale können Sie über digitale Ausgänge steuern - ggfs. wird noch eine kleine Realaisschaltung notwendig, weil die Heizspirale 230VAC benötigt, Ihr embedded System aber nur +5VDC liefert oder die vorhandenen digitalen Schaltausgänge nur bis 24VDC ausgelegt sind. (Nicht vergessen sollten Sie jedoch auch das Netzteil, damit Sie aus 230VAC die typischen 3.3 / 5 oder 12VDC für Ihr Embedded System erzeugen können...)

Alles in allem wird das Ganze schon mal in den Toaster hineinpassen und nicht mehr als Kiste daneben stehen. Ein Punkt für das Embedded System.

Jetzt müssen Sie Ihre neue Embedded Hardware nur noch programmieren. Embedded Systeme haben meistens auch ein Betriebssystem - allerdings nicht Ihr bekanntes Standard Windows. Das ist typischerweise zu gross und benötigt Hardwareressourcen, die Ihr kleines Embedded System wohl nicht aufweist.

Der Anbieter eines Embedded Systems liefert Ihnen jedoch gern Informationen, welche Betriebssysteme im Embedded Bereich unterstützt werden. Einige Beispiele für embedded Betriebssystem: QNX, VxWorks, Windows Embedded (oder Windows CE), embedded Linux. (Embedded Linux ist "eigentlich nur eine reduzierte Variante" von Standard Linux. Ebenso sind Windows CE / Windows Mobile / Windows Embedded "abgespeckte" Varianten von Windows.)

Vermutlich werden Sie ein Betriebssystem wählen wollen, mit dem Sie sich bereits etwas auskennen. Kommen Sie aus der Linuxwelt wird Ihnen embedded Linux nahe liegen. Vielleicht unserem TRM CoLinux SDK.
Sind Sie ein "Windowser" werden Sie vielleicht Windows CE / Windows Mobile / Windows Embedded verwenden. (Nicht verwirren lassen: Die Namen bei den embedded Windows Versionen ändern sich recht häufig. Aber im Prinzip ist alles ähnlich.)
Und falls Sie gar nicht programmieren können, werden Sie vlt. einem Konfigurationstool das mit Standards aufsetzt dem Vorzug geben - z.B. unserem XML Konfigurationstoolkit für Linux.

Sie können jetzt damit beginnen, Ihr Programm zu erstellen und zu testen. Die Programmierung ist nicht besonders kompliziert: Sie verwenden die Entwicklungstools (neudt: "Tool-Chain") von einem Linux Desktop PC, übersetzen (compilieren) das Programm, laden es via File Transfer in Ihr Embedded System und lassen es dort ablaufen. (Bei Windows läuft es ähnlich. Sie verwenden nur andere Werkzeuge. Beim Konfigurationstool entfällt die Programmierung. Da haben Sie nur ein PC Programm und klicken Ihre Anwendung zusammen.)

Das Ganze wird nicht allzu kompliziert sein - und Sie werden feststellen, dass die Programmierung eines embedded Systems meistens ähnlich verläuft, wie die Programmierung eines Standard PC. Sie wählen eine Programmiersprache, verwenden einen Compiler zum Übersetzen, ein File Transfer Programm zum Download und testen Ihre Software auf dem Embedded System.

Sie werden vermutlich relativ schnell fertig und könnten sich jetzt daran machen, Tastatur und Display anzuschliessen - sofern Ihr Embedded System, das nicht bereits von Haus aus hat. Sie werden Ihre Software noch einige Male anpassen und am Ende vielleicht noch eine kleine Elektronik konstruieren, die alle benötigten Bausteine enthält und zukünftig als "Basis- oder Hauptplatine" direkt in den Toaster eingebaut wird. (Ein "passendes" Produkt wäre z.B. das Industrieterminal TRM816.)

Der Toaster mit einem Embedded System - jetzt wird es gefährlich

Alles in allem haben Sie jetzt folgendes erreicht: Sie haben einen bisher harmlosen Toaster in ein Gerät verwandelt, das über ein Embedded System = einen Computer gesteuert wird.

Jetzt kommen die Risiken ins Spiel: Menschen. Sowohl Sie, Ihre Entwicklerkollegen und auch die Entwickler oder Produktionskräfte des Embedded Anbieters stellen potenzielle Gefährdungsrisiken da, die den genialen Toasterplan noch zerstören können. Stichwort: Fehler.

Stellen Sie sich vor, Sie haben vergessen zu prüfen, ob die zulässige Temperatur ALLER von Ihnen verwendeten Bausteine im Temperaturbereich des Toasters liegt. (Wir selbst haben keine Ahnung, wie heiss ein Toaster in °C werden kann - wenn diese jedoch  +70°C übersteigt, wird es selbst für Bauelemente im erweiterten Temperaturbereich eng.) Einige Bauelemente werden irgendwann "aussteigen", mit etwas Glück schaffen Sie noch Ihre Testphase - später dann fängt Ihre Elektronik an, völlig verkohlte oder ungebräunte Toasts zu erzeugen, weil Ihre Steuerung nicht mehr funktioniert.

Oder ein kleiner Softwarefehler in Ihrer SQL Datenbankprogrammierung (oder gar ein Virus, den Sie sich dummerweise bei der Programmierung eingefangen haben) führen dazu, dass die Bräunungswünsche und die zugehörigen Namen der Familienmitglieder durcheinander gewürfelt werden. Ihr Lebenspartner bekommt zukünftig Ihre Wunschtoasts - Sie selbst werden in der Datenbank gelöscht.

Nicht vergessen sei auch der Fall des Power-Down-Resets: Der Anwender zieht den Stecker, weil er die Steckdose, z.B. für seinen computergesteuerten Staubsauger benötigt. Wenn der Stecker wieder eingesteckt wird, "hängt" Ihre Software vielleicht in einem undefinierten Zustand. Evtl. will sie mit dem letzten Programmstand weitermachen, egal ob sich noch Brot im Toaster befindet oder was auch immer....

Kurzum: wie immer im Leben - die Möglichkeiten für Fehler sind gigantisch. Bei unserem PC auf dem Schreibtisch haben wir uns bereits daran gewöhnt, dass Software und Computer hin und wieder "Fehler" aufweisen. Wir schalten den Rechner dann einfach aus und starten neu. Typischerweise ist das bei einem Desktop PC kein grösseres Problem: Sie sitzen ja davor, Sie wissen ja, was Sie zuletzt gemacht haben (zumindest mehr oder weniger) - also können Sie das Ding neu booten (Ausschalten und wieder einschalten) und weitermachen wie bisher. Auch wenn es manchmal ärgerlich ist. Bei einem Embedded System ist das etwas anderes. Der Anwender kennt die Software nicht und das Ganze (der Toaster) wirkt irgendwie noch nicht einmal wie ein PC, sondern eigentlich nur wie ein Toaster mit einem Keyboard. Kurzum: ob nach dem booten des Toasters wieder alles funktionieren wird, steht in den Sternen.

Als Sie sich entschieden haben, ein Embedded System im Toaster einzusetzen, haben Sie alle Möglichkeiten für Hard- und Softwarefehler aus der Welt der PC´s übernommen. Ihr Toaster ist schlagartig kein einfacher mechanischer Toaster mehr - sondern ein System, das über Software gesteuert wird und das jetzt aus einem komplexen Zusammenspiel zwischen Hardware, Software und Mechanik besteht.

Dummerweise versucht Ihr Arbeitgeber nun, diesen Toaster teurer zu verkaufen als das herkömmliche alte Modell. Zum einen, weil der Toaster nun neue Möglichkeiten (neudt. Features) aufweist und zum anderen, weil sich aufgrund der neuen Bauteile der Produktionspreis ja auch erhöht hat.

Ein Kunde, der sich diesen High-Tech Toaster nun kauft, erwartet jedoch, dass das Ding keine Fehlfunktionen aufweist. Er wird erwarten, dass der neue High Tech Toaster besser ist, als das billige, mechanische Gegenstück. In der Folge wird er jede Fehlfunktion und jeden Ausfall dafür nutzen, sich über das Produkt zu beschweren und den Ausfall zu beklagen. Am Ende wird er sich dann vielleicht für einen High Tech Toaster eines Mitbewerbers entscheiden. Wenn Sie Glück haben, weist dieser die gleichen Probleme auf - das ganze Spiel nivelliert sich dann. Wenn Sie jedoch alle zusammen Pech haben, wird er den "High Tech Schnickschnack" im Regal liegen lassen und sich wieder einen mechanischen Toaster kaufen - wenn es die dann überhaupt noch gibt.

Diese Situation tritt momentan bei vielen High Tech Gütern auf: Ein Auto ist nicht mehr "nur ein Auto", sondern ein Gebilde, das über verschiedene diverse embedded Systeme verfügt, die alles Mögliche steuern, regeln, erfassen und speichern. Genauso wie der Fahrkartenautomat oder der elektronisch geregelte Backofen.

Die neue elektronische Steuerung bietet Features und Komfortfunktionen, die für den Anwender und Kunden verlockend sind. Sie beinhaltet aber auch Gefahren, die den Einsatz des Produktes stören können. Betrachten wir das Beispiel eines modernen Automobilunternehmen, das bisher tolle Motoren und Karossen baute. Nun kommt die Computertechnik hinzu und das gleiche Unternehmen muss sich die notwendigen Personalressourcen beschaffen, um quasi eine zur Motorentechnik passende Computerabteilung aufzubauen. Alles in allem ist es noch keine 10 Jahre her, dass die ersten Embedded Systeme im Automobil eingesetzt wurden - die Branche befindet sich also eigentlich am Anfang des Computereinsatzes - auch wenn sie bereits seit 70 Jahren Autos entwickelt.

Und wenn Ihr neues High Tech Auto nun stehen bleibt, werden Sie als Kunde sauer sein. Schließlich haben Sie für das High Tech ja mehr bezahlt, als für die Vorgängerversion.

Blöderweise kann man die Schuldfrage nicht so einfach klären. Sowohl das Embedded System als auch das Auto oder der Toaster werden an sich hervorragend funktionieren. In der Kommunikationstechnik würde man sagen: Die Schnittstellen sind das Problem - das Embedded System gibt falsche Steuersignale oder kann die Signale des Autos nicht richtig interpretieren. Vielleicht ein Softwarefehler, vielleicht ein Zustand, den ein Entwickler nicht vorhergesehen hat - oder vielleicht auch nur eine Einstellung vom Anwender, die "es eigentlich nicht hätte geben dürfen". Mit diesen Problemen muss man ehrlicherweise rechnen, wenn Automobilunternehmen oder Haushaltgeräteunternehmen anfangen, Computerunternehmen zu werden. (Aber zum "Trost": Die Probleme wären ähnlich - wenn nicht noch verheerender - , wenn Computerunternehmen nun Autos oder Haushaltsgeräte bauen würden.

Etwas Verständnis und Toleranz auf seiten der Kunden könnte dazu führen, mit Softwarefehlern im Auto oder Toaster zu leben - zumindest in der Anfangsphase eines Produktes.

Etwas mehr Ehrlichkeit von seiten der Unternehmen könnte dazu führen, den Kunden darauf hinzuweisen, dass es sich um eine neue Technologie handelt, für die noch keine langjährige Einsatzerfahrung vorliegt.
Der Wettbewerb der Unternehmen untereinander wird dieses (die Ehrlichkeit) jedoch verhindern: Das Unternehmen, das zugibt "es übt noch", wird vom Markt und vom Kunden abgestraft. (Fair wäre es eventuell, man würde das innovativere Produkt in der Anfangsphase günstiger verkaufen - doch würde das der Konsument verstehen?)

Wir werden hier keine Lanze brechen - weder für fehlerhafte Produkte und Software noch für Kunden, die alles tolerieren sollen. Wie wollten eigentlich nur aufzeigen, wie ein Systemausfall entsteht und warum ein Auto oder Toaster heute deutlich komplexer ist, als es den Anschein hat. Und warum Fehler und Ausfälle zum Lernprozess der Entstehung dazu gehören - auch wenn wir uns selbst über jeden Softwarefehler ärgern.

Hinweis: Sie könnten jetzt argumentieren, dass "mehr und ausführlichere Tests" die Fehler frühzeitig aufgedeckt und damit verhindert hätten.

Sie haben Recht. Wenn man einen derartigen Toaster entwickelt, einige Tausend davon baut, ihn mehrere Monate lang auf verschiedenen Kontinenten ausführlich testet (wg. der unterschiedlichen Stromnetze, Klimabedingungen, Brotbeschaffenheit usw) dürften sich die Fehlerquellen minimieren.

Doch so richtig das Argument auch ist - in der Praxis ergeben sich folgende Schwierigkeiten:

  1. Die Entwicklung ist schon recht teuer und aufwendig, die Produktion einer umfassenden Testserie und weltweite Erprobung ist ebenfalls nicht gerade einfach und kostengünstig
  2. Der Kunde - Sie - möchten auch möglichst schnell ein Produkt, das neue komfortable Features beinhaltet.
  3. Der Marktdruck - Wettbewerb - verlangt, dass man möglichst schnell mit einem Produkt auf dem Markt kommt - zumindest, bevor der Wettbewerber es tut

Das Ganze ist also ein permanenter Kompromiss: Zwischen dem Einsatz mehr oder minder erprobter Technik und einem möglichst frühzeitigem Verkaufsstart, um möglichst schnell Geld zu verdienen. Wenn Sie an der Stelle Ihres Chefs wären - wie würden Sie entscheiden....?

Und noch ein Hinweis: Unsere Beispiele - insbesondere auch der Toaster - sind willkürlich und zufällig gewählt. Sollte es diesen Toaster wirklich geben, so sei hiermit nicht automatisch gesagt, dass er die angeführten möglichen Mängel aufweist. Gleiches gilt für alle anderen Beispiele. Und für die ganz Verzweifelten unter Ihnen der Trost: je länger Embedded im Toaster eingesetzt wird, desto geringer werden die Fehler. Kurzum: Ihr zweiter Toaster wird schon besser werden!


(c) hjw AE, Alle Angaben ohne Gewähr
IT Lösungen für die Industrie: www.terminal-systems.de || IT Beiträge