Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenMontag, 24. November 2014 

Embedded System


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
Unter einem Embedded System versteht man ein Computersystem das als ("eingebetteter") Bestandteil eines technischen Systems entworfen wurde.

Beispiele reichen von Steuerungen für Heizung oder Waschmaschine über Handys bis zu Fahrkartenautomaten und Automatisierungskomponenten der Steuerungstechnik.

Inhaltsverzeichnis

Charakterisierung

Embedded Systeme basieren zumeist auf derselben wie Computer jedoch mit zwei wesentlichen Unterschieden und Stromverbrauch. Die Fertigung in großen Stückzahlen im Millionen-Bereich ist ein weiterer wichtiger Punkt Kostenreduzierung. Hinzu kommt dass die einzelnen Komponenten Prozessor und RAM auf Weiterentwicklungen von älteren basieren was die Langlebigkeit steigert Stromverbrauch und jedoch senkt.

Die hierbei verwendeten älteren Komponenten sind noch nicht die einzige Erklärung warum diese langsam sind denn die gesamte Architektur des Systems wurde vereinfacht um weitere Kosten zu

Ein Beispiel hierfür wären die Peripheriegeräte durch ein synchrones serielles Interface kontrolliert werden bis zu hundert mal langsamer sind als Konzepte aus der Desktop PC Welt.

Die Programme auf einem embedded System meist im real-time Modus mit stark reduzierten verglichen zu aktueller Computerhardware. Zumeist ohne Festplatte Tastatur oder gar Bildschirm. Ein kleiner Flash-ROM Flash-RAM Chip ersetzen mechanische Komponenten wie Festplatte. überhaupt dann gibt es nur ein kleines und die Ausgabe wird oft nur durch LCD realisiert.

Die Software auf einem solchen Gerät oft Firmware genannt und wird auf das Flash-RAM Im Falle eines Flash-RAM besteht die Möglichkeit Updates ohne den Chip wechseln zu müssen. man allerdings nur ein Flash-ROM hat muss zumeist den gesamten Chip auswechseln und da meist fest auf der Platine ist die Schaltung.

Plattformen

Embedded Systems werden mittels vielen verschiedenen realisiert. Dies stellt einen wenn auch nicht größten Unterschied zum Desktop Computer dar da zumeist nur durch zwei wesentliche Architekturen realisiert Momentan (2004) ist dies Intels x86 und Apple/Motorola/IBM PowerPC der Firma Apple Macintosh .

Werkzeuge die Software

Die Software also Compiler Assemblers und Debugger welche zur weiteren Programmentwicklung verwendet werden zumeist aus verschiedensten Orten oder Herstellern:

  • Softwarerirmen welche sich auf solche Geräte haben.
  • Die Programme wurden über einen Crosscompiler wie unter [1] beschrieben. Dieser Compiler kann auf einer anderen Architektur laufen als das Zielsystem.
  • Teilweise können Compiler anderer schon unterstützter welche direkt mit der verwendeten Architektur verwandt verwendet werden. Zumeist sind nur kleine Modifikationen

Betriebssystem

Embedded Systeme verfügen im konventionellen Sinne über kein Betriebssystem. Zumeist arbeitet man mit Systemen wie Unten näher beschrieben.

Es gibt aber auch sehr komplexe wie z.B. Linux welche dann mit einigen im System integriert werden können.

Debuggen die Fehlersuche

Debugging wir normalerweise mit einem "in-circuit Emulator" also einem Programm welches die komplette Hardware Softwarebasis simuliert. Da man meist langsame Hardware embedded System verwendet und die heutigen Computer leistungsstärker sind kann man damit genau so als würde man direkt mit der Hardware embedded Systems arbeiten. Die Vorteile sind jedoch So kann man die Software welche später dem embedded System laufen soll optimal und mit dem Simulator entwickeln ohne komplizierte und Eingriffe an der Hardware. Im konventionellen Fall man jedes Update wieder auf den Chip embedded Systems spielen dieses dann starten und Wenn man selbiges mittels Simulator macht kann auch die simulierte Hardware zur Laufzeit ändern auf das ev. Fehlverhalten testen.

Alternativ wenn man keinen Hardwareemulator zur hat wird oft mit Debuggern gearbeitet welche Interrupts des Microcontrollers verwenden. Stichwort Microcode.

Der Microcode Interrupt lässt den Debugger auf der Hardware auf welcher sonst nur die CPU arbeitet. dem Standpunkt der CPU aus können CPU Debugger dann dazu benutzt werden um die des Computers zu testen und gegebenenfalls Fehler zu diagnostizieren. Diese Fähigkeit wurde an der erforscht und entwickelt.

Entwickler sollten auf alle Fälle die des Debuggins welche höhere Programmiersprachen mit sich nutzen. Diese verfügen über die Möglichkeit in Breakpoints (engl. Haltepunkte) zu setzen und dann das Programm im Single-Stepping (Einzelschritt) Modus durchlaufen Man sollte auch einfache Programme verwenden welche von Echtzeitereignissen mitloggen können um Fehler effizienter finden.

PC- oder Mainframeprogrammierer welche zum ersten mit einer solchen Programmiertechnik in Kontakt gelangen zuerst oftmals etwas verwirrt über die Implementierungsziele die dazu verwendeten Methoden.

Geschichte

Das erste bemerkenswerte moderne embedded System der Apollo Guidance Computer welcher von Charles Draper zusammen mit dem MIT Instrumentation Laboratory wurde. Jeder Flug auf den Mond hatte dieser Systeme welche zur Steuerung verwendet wurden Das inertial guidance system wurde sowohl im als auch in dem LEM also dem Mondlandemodul verwendet.

Zu Begin des Apollo Projekts wurde dieses System als eines der riskantesten Komponenten Projektes angesehen.

Die ersten embedded Systeme wurden allerdings vorher in der Minuteman Rakete eingesetzt und Folge dessen in Massenproduktion hergestellt. Die Anwendung ein Wege-Such-System welches der Rakete nach einmaliger eine unabhängige Manövrierung ermöglichte. Die verwendeten integrierten (engl. Integrated Circuits) wurden nach einiger Zeit der Massenproduktion für jedermann erschwinglich.

Die entscheidende Eigenschaft des Minuteman Computers dass man den den Weg-Finde-Algorithmus später programmieren woduch man die Rakete wesentlich präziser einsetzen Ein weiterer Vorteil war die Selbsttestfunktion der zur Statusabfrage und dass man auf größere von Kabeln zu Gunsten des Gewichtes verzichten

Design von embedded Systemen

Die Elektronik ist meist ein Mikroprocessor oder ein Microcontroller . Einige größere aber veraltete Systeme verwenden oder Minicomputers .

Start-up

Alle embedded Systeme haben einen "Start-up welcher nach dem Einschalten durchlaufen wird. Normalerweise dieser die Interrupts kalibriert die interne Elektronik den Computer (RAM CPU und Programmcode) und alles erfolgreich getestet wurde wird der Programmcode den der Entwickler vorgibt.

Die meisten dieser Systeme sind innerhalb 100 ms einsatzbereit. Selbst nach einem kleinen bzw. einer Spannungsschwankung laufen diese Geräte sofort da die interne Hardware dann den Selbsttest Hardware und Software überspringt und direkt weiterarbeitet.

Viele dieser Geräte verfügen über eine Software steuerbare Kontrollleuchte. Dies ist hilfreich da leuchtet falls das System in einen Fehlzustand ist.
Nach einem Reset des Systems blinkt Kontrollleuchte kurz auf um ihre Arbeitsfähigkeit zu dann bleibt sie so lange aus bis Fehler auftritt. In der Erweiterung dieser Eigenschaft die Schaltung auch bestimmte Blinksequenzen senden welche mittels einer Tabelle in der die Fehlercodes bestimmten Fehlern zugeordnet werden können.

Verschiedene Typen von embedded Software-Architekturen

Es finden verschiedene Softwarekonzepte Anwendung:

control loop

In dieser Implementierung durchläuft die Software eine endlose Schleife (eng. LOOP) und diese dann Unterprogramme (engl. Subroutine) auf. Die Unterprogramme sind dann die Software des Programmierers oder zur Hardware. Diese Interrupts (engl. Unterbrechungen) setzen oder interne Zähler welche dann wiederum vom gelesen werden können.

Eine einfache API zum Aktivieren oder von Interrupts. Wenn dies richtig gemacht wird verschachtelte Aufrufe in verschachtelten Unterprogrammen realisiert werden. können dann vorhergegangene Interrupt-Zustände in den äußersten zurücksetzen. Dies ist eines der einfachsten Konzepte Exokernel zu erzeugen.

Normalerweise wird dazu ein Unterprogramm aus Hauptschleife verwendet um die Liste der "Software zu verwalten welche besagt wie lange ein schon gelaufen ist. Dazu wird ein periodischer (engl. Real Time Interrupt) verwendet. Wenn also dieser Timer abgelaufen ist wird ein zugehöriges aufgerufen welches dann ein "Flag" setzt. Dies dann dem nächsten Unterprogramm ausgeführt zu werden.

Nonpreemptive multitasking

Preemptive timers

Preemptive tasks

Office-style operating systems

Benutzeroberfläche

Die Benutzeroberflächen von embedded Systemen variieren Man kann von einer rudimentären 2x20 Zeichen Display wie auch einer Ausgabe am Computerbildschirm verstehen. Da man aber meist nicht leistungsstarke verwendet oder diese für wichtige Aufgaben verwenden bedient man sich hier anderer Konzepte.

  • Netzwerkfähige Drucker verfügen meist über ein Webinterface welches man sehr einfach per Browser alle Konfiguration vornehmen kann. Der Netzwerkdrucker muss nur einem PC verbunden werden dann kann mittels Browsers und der Adresse des Netzwerkdruckers alles werden.
  • Auch manche Switches stellen ihre Konfigurationsmenus basierend demselben Prinzip wie oben beschrieben zur Verfügung.

Der Vorteil liegt auf der Hand Konfiguration wird auf dem Embedded System selbst das Interface wird auf ein anderes Gerät wie z.B. dem PC. Dies spart Ressourcen macht die Konfiguration einfacher. Ein anderer Vorteil dass die Konfiguration von solchen Geräten total unabhängig gemacht werden kann da man nun noch einen Browser zur Verfügung haben muss diese unter jedem System zur Verfügung stehen.

Entwickler von solchen Interfaces empfehlen möglichst in der Entwicklungsphase die Nutzungsqualität der Oberfläche testen. Am besten man nimmt den nächstbesten Mitarbeiter (noch besser eine Mitarbeiterin) und setzt vor den PC worauf das Programm mit gewünschten Oberfläche läuft. Wenn nun Fragen auftreten man sich über die Oberfläche Gedanken machen am Besten etwas ändern bzw. verbessern.

Die Entwicklung der Oberfläche sollte am nur von einer Person geleitet oder erstellt Im idealen Fall ist dies sogar jemand das Programm später benutzen will. Das Programm leicht bedienbar sein es nutzt wenig wenn viel kann aber der Entwickler selbst der ist der es nutzen kann.

Siehe auch: ARM-Architektur MIPS-Architektur



Bücher zum Thema Embedded System

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Embedded_System.html">Embedded System </a>