Entwicklung und Test von eingebetteten Systemen

Sie sind sich dessen vielleicht nicht bewusst, aber die Welt, wie Sie sie kennen und gewohnt sind, würde ohne eingebettete Systeme nicht existieren. Sie begegnen und nutzen eingebettete Systeme unbewusst jeden Tag – jedes Mal, wenn Sie sich entscheiden, einen Aufzug zu benutzen, fernzusehen oder eines Ihrer Haushaltsgeräte zu nutzen oder einfach an der Ampel anzuhalten. Eingebettete Systeme sind zu einem wesentlichen Teil unserer Realität geworden und spielen eine entscheidende Rolle für das Funktionieren der Gesellschaft des 21. Jahrhunderts. Sehen wir uns genauer an, was sie wirklich sind, wie sie funktionieren, wo sie angewendet werden und warum deren ordnungsgemäße Prüfung so wichtig ist.

Was sind eingebettete Systeme?

Ein eingebettetes System ist im Allgemeinen eine Art Computer, der in einem größeren System eingebaut wurde. Es unterscheidet sich in vielerlei Hinsicht von einem Mehrzweckcomputer. Vor allem kann es nur ein oder zwei spezifische Probleme lösen. Außerdem besitzt es normalerweise keine Maus und keinen Monitor. Schließlich kann es in der Regel nicht einfach geändert oder modifiziert werden. Ein weiteres wichtiges Merkmal eingebetteter Systeme ist die Echtzeitverarbeitung, das heißt, sie empfangen Daten, verarbeiten sie und geben das Ergebnis schnell genug zurück, um die Umgebung zu beeinflussen. Die Zeit für die Rückgabe der Ergebnisse ist genau festgelegt und die Frist muss eingehalten werden oder die Echtzeitverarbeitung gilt als fehlgeschlagen. Ein Beispiel dafür könnte das Antiblockiersystem in einem Auto sein. Das verwendete eingebettete System muss rechtzeitig reagieren, um ein Schleudern zu verhindern.

Eingebettete Systeme sind in allen Arten von Branchen und Bereichen weit verbreitet: Telekommunikation, Elektronik, Haushaltsgeräte, Transport, Industrie, medizinische Geräte, militärische Geräte und viele, viele mehr. Obwohl ihre Aufgaben variieren können, besitzen alle eingebetteten Systeme mehrere gemeinsame Merkmale:

  • Sie können nur ein oder zwei spezifische Probleme lösen, im Gegensatz zu Mehrzweckcomputern,
  • Sie unterscheiden sich auch in ihrem Aussehen von herkömmlichen Computern, sie sind in der Regel kleiner und einfacher, sie arbeiten mit stark eingeschränkter Hardware, oft mit sehr kleinen bzw. keinen Bildschirmen und keiner Tastatur,
  • der Schwerpunkt liegt auf maximaler Sicherheit, Leistung und Zuverlässigkeit, insbesondere bei eingebetteten Systemen in Bereichen wie Medizin oder Avionik,
  • Sie arbeiten in Echtzeit, was bedeutet, dass sie fast sofort auf die Dateneingabe reagieren,
  • Sie haben normalerweise ein dediziertes Betriebssystem, das die Echtzeitverarbeitung ermöglicht, es wird Echtzeitbetriebssystem oder RTOS genannt,
  • Firmware – Die Anweisungen für das eingebettete System werden in einem Nur-Lese-Speicher oder Flash-Speicherchips gespeichert.

Eingebettete Systeme können von solchen ohne Benutzerschnittstelle (UI) bis zu Systemen mit komplexen grafischen Benutzeroberflächen (GUI) reichen. Erstere sind typisch für einfache Systeme, die nur elektrische Signale senden und empfangen. Letztere werden häufig in mobilen Geräten verwendet und sind häufig mit Touchscreen-Sensoren und LEDs ausgestattet, während einfachere Systeme üblicherweise mit Tasten bedient werden.

Eingebettete Systemhardware kann entweder mikroprozessorbasiert oder mikrocontrollerbasiert sein. In beiden Typen gibt es eine integrierte Schaltung (IC), die die wichtigste Rolle in dem System spielt, da sie für das Ausführen der Echtzeitverarbeitung verantwortlich ist.
Mikroprozessoren und Mikrocontroller sind optisch nicht zu unterscheiden, worin liegt also der Unterschied?
Mikroprozessoren haben nur eine zentrale Verarbeitungseinheit (CPU) und müssen von anderen Komponenten unterstützt werden, z.B. Speicherchips. Daher werden sie häufiger für weniger komplexe Aufgaben verwendet.
Mikrocontroller hingegen sind als in sich geschlossene Systeme konzipiert und enthalten neben der CPU weitere notwendige Komponenten wie Speicher, Kommunikationsports oder RAM. Sie werden häufiger verwendet, um komplexe Probleme zu lösen, z.B. in Fahrzeugen, Haushaltsgeräten, Robotern oder medizinischen Geräten.

Wenn es sich um Software handelt, die in eingebetteten Systemen verwendet wird, wird normalerweise eine der beiden Optionen angewendet. Die einfachsten Geräte werden meist direkt mit der Maschinensprache der Chip-CPU programmiert. Bei anspruchsvolleren Systemen und Operationen werden Betriebssysteme oder Sprachplattformen verwendet. Sie werden speziell auf die eingebetteten Anforderungen angepasst, insbesondere in Umgebungen, in denen Echtzeitbetrieb entscheidend ist. In den fortschrittlichsten mikrocontrollerbasierten Systemen wird immer häufiger die abgespeckte Version von Linux, EmbeddedJava oder Windows IoT verwendet.

Es ist auch eine häufige Praxis, „vorgefertigte“ Computer-Boards zu verwenden, insbesondere in Geräten, die keine strengen Echtzeit-Deadlines einhalten müssen, wie beispielsweise Geldautomaten. Sie können entweder ein eingebettetes Echtzeitbetriebssystem oder Systeme wie NetBSD, Linux oder Windows CE verwenden. Der Grund, eine fertige Platine zu wählen, ist der, dass sie einfach einfacher ist. Darüber hinaus spart eine solche Lösung Zeit und Geld, da dieselben Entwicklungswerkzeuge wie bei PCs verwendet werden. Diese Art von Computerboards sind normalerweise kleiner, teilen jedoch einige der Komponenten mit Universalcomputern.

Ein spezieller Typ eines eingebetteten Systems ist das sogenannte SoC (System-on-a-Chip). Wenn das Gerät in großen Stückzahlen verkauft wird oder sehr spezifische Anforderungen an die Fähigkeiten des eingebetteten Systems gestellt werden, ist es oft sinnvoller, einen dedizierten Chip zu entwickeln, der alle Anforderungen erfüllt. Solche Chips umfassen normalerweise ein komplettes System mit Komponenten wie Speichercache, Prozessor, Schnittstellen und Gleitkommaeinheit auf einer einzigen integrierten Schaltung. SoCs fallen in eine der zwei Kategorien: spezielle anwendungsspezifische integrierte Schaltung (ASIC) oder ein feldprogrammierbares Gate-Array (FPGA).

Zahlreiche Anwendungen von eingebetteten Systemen

Wo genau werden eingebettete Systeme verwendet? Es wäre wahrscheinlich einfacher zu sagen, wo sie nicht benutzt werden. Ihre Anwendung ist in den meisten Bereichen verbreitet: Kochen, Industrie, Automobil, Medizin, Handel und Militär, um nur einige zu nennen. Lassen Sie uns einige speziellere Beispiele näher betrachten.

Privathaushalte – Einer der großen Vorteile der eingebetteten Systeme ist der, dass sie für den Endnutzer unsichtbar sind und dennoch Komfort bieten. Die meisten Geräte und Systeme in unseren Häusern sind heutzutage eingebettet. Einige Beispiele könnten sein: ein Kühlschrank, eine Digitalkamera, eine Mikrowelle, eine Klimaanlage, ein Haussicherheitssystem, ein Fernseher oder etwas, auf das die meisten von uns nicht verzichten könnten – ein Smartphone.

Büros und andere Arbeitsumgebungen – können Sie ein Unternehmen nennen, das problemlos ohne Internetzugang oder zumindest ohne Computer oder Drucker funktioniert? Wenn Sie in Ihrer Arbeit den Internetzugang nutzen oder Rechnungen für Ihre Kunden ausdrucken, sind Sie ein Endbenutzer von eingebetteten Systemen. Geräte wie Router, Gateways, Modems oder Drucker sind alle eingebettet.

Transport – wenn Sie in irgendeiner Form zur Arbeit fahren oder einfach nur Ihre Verwandten oder Freunde besuchen, profitieren Sie auch von den eingebetteten Systemen, ohne es zu wissen. Ampeln und andere Verkehrssteuerungssysteme verwenden häufig eingebettete Systeme, um zu überwachen und zu verwalten, was auf den Straßen passiert. Die Anzahl der eingebetteten Systeme in heutigen Autos ist beeindruckend: Antiblockiersystem (ABS), Regensensor-Scheibenwischer, Zündsteuerung, Klimatisierungssteuerung, Airbagsteuerung, Federungssteuerung, Zentralverriegelung, Armaturenbrettsteuerung, Ölstandsmessung, Scheinwerferpositionskontrolle und viele viele mehr.
Gesundheitsbereich – das ist der Bereich, in dem eingebettete Systeme den strengsten Tests unterzogen werden müssen, bevor sie in die Praxis umgesetzt werden. Lebensrettende Geräte wie Blutdruckmessgeräte, Scanner, Herzfrequenzmonitore, Herzschrittmacher oder komplexe Geräte für die Chirurgie spielen oft eine entscheidende Rolle, um einen Patienten am Leben zu erhalten. Man kann mit Sicherheit sagen, dass die Medizin dank der Fortschritte in der Technologie einen Quantensprung in der Anzahl der geretteten Leben gemacht hat. Ohne den weit verbreiteten Einsatz eingebetteter Systeme wäre dies niemals möglich.

Die Welt der Industrie – seit dem Beginn der Branche, wie wir sie kennen, wurde der Hauptfokus auf zwei Aspekte gelegt: maximale Kostenreduzierung und Steigerung der Produktivität. Es wird immer mehr möglich dank der Automatisierung. Der Prozess, eine Aufgabe auf repetitive Weise auszuführen, hilft, die Kosten zu reduzieren, die mit dem Design und der Entwicklung eines bestimmten Produkts verbunden sind. Eingebettete Systeme sind auch in diesem Bereich unverzichtbar, da alle Maschinen in den Produktionsanlagen eingebettet sind. Ebenso verwendet die zunehmend gebräuchlichere 3D-Technologie wie 3D-Druckmaschinen eingebettete Systeme.

Zwei weitere Bereiche, die ohne spezialisierte eingebettete Systeme nicht ohne weiteres funktionieren könnten, sind Luft- und Raumfahrt sowie Verteidigung. In diesen Fällen sind Leistung und Sicherheit von größter Bedeutung. Können Sie sich die möglichen Gefahren vorstellen, die mit einem fehlerhaften Flugsteuerungssystem an einem bestimmten Flughafen verbunden sind? Andere Beispiele von Systemen mit eingebetteter Technologie sind: Luft- und Wärmemanagement, Navigationssystem, Fahrzeugturbolader oder Motorleistung.

Bedeutung und Herausforderungen von Tests eingebetteter Systeme

In den letzten Jahren, als die eingebetteten Systeme in unserer Welt fast allgegenwärtig geworden sind, wurde das Problem ihrer ordnungsgemäßen Tests zu einem wichtigen Thema. Laut Experten ist gründliches Testen in jedem System wichtig, aber in der eingebetteten Welt hat es eine noch größere Bedeutung. Denn eingebettete Systeme sind in vielen Fällen lebensnotwendig. Darüber hinaus hat sich in den letzten Jahren die Softwarekomplexität dramatisch erhöht.

Diese beiden Aspekte – die möglichen fatalen Folgen von Fehlern in der Leistung und Zuverlässigkeit des eingebetteten Systems in Verbindung mit der Komplexität stellen zusätzliche Herausforderungen beim Testen dar. Darüber hinaus enthält Software für eingebettete Systeme oft einzigartige Funktionen, die die Angelegenheit noch komplizierter machen. Ein gutes Beispiel für Schwierigkeiten, die beim Testen und Validieren von eingebetteten Systemen überwunden werden müssen, ist die Tatsache, dass die meisten dieser Systeme in einer sehr spezifischen physikalischen Umgebung arbeiten und ihre Leistung eng mit Faktoren wie z.B. Temperatur, Wind oder eine Kombination verschiedener Dynamiken, die in der Testumgebung nur schwer oder gar nicht nachzubilden sind. Die Dateneingabe kommt sehr oft aus der äußeren Umgebung und kann in einem Labor nicht simuliert werden.

Zusätzlich müssen eingebettete Systeme für gewöhnlich mehr Anforderungen erfüllen als typische Desktop-Software, z.B. Zuverlässigkeit, Zeitdruck oder Energieverbrauch. Die möglichen Folgen des Versagens, irgendeine der Anforderungen in einem medizinischen Gerät zu erfüllen, z.B. ein Herzschrittmacher wäre katastrophal.

Eine weitere Herausforderung, die es zu überwinden gilt, sind Systemintegrationstests, da Software und Hardware eines eingebetteten Systems auf harmonische Weise zusammenarbeiten müssen.

Geschichte von eingebetteten Systemen

Obwohl es scheint, dass eingebettete Systeme eng mit den Errungenschaften der neuesten Technologie verbunden sind, stammen sie tatsächlich aus den 1960er Jahren. Die Technologie hat sich seit dieser Zeit stark weiterentwickelt und entwickelt sich immer weiter. Das Konzept der eingebetteten Systeme ist jedoch fast 60 Jahre alt.

Alles begann im Jahr 1960, als das erste moderne eingebettete System entwickelt wurde. Charles Stark Draper und sein Team vom MIT Instrumentation Laboratory erhielten die Aufgabe, die Größe und das Gewicht des Apollo Guidance Computers zu reduzieren. Sie entschieden sich dafür, neu entwickelte monolithische integrierte Schaltungen zu verwenden, was als eine sehr revolutionäre und riskante Idee angesehen wurde. Es wurde ein voller Erfolg.

Im Jahr 1961 erschien das erste massenhaft produzierte eingebettete System. Es war ein Lenkungscomputer mit dem Namen Autonetics D-17, der für die Minuteman-Rakete entwickelt wurde. Es hatte eine Festplatte für den Speicher und wurde aus Transistorlogik hergestellt.

Im Jahr 1965 erblickte die Welt den ersten kommerziell verkauften eingebetteten Computer. Es war der DECs 12 Bit PDP-Minicomputer. Trotz des Wortes „Mini“, das in seinem Namen vorhanden ist, war es sehr weit von der heutigen Idee von „klein“ entfernt. Er wog ungefähr so viel wie 20 moderne Laptops und kostete 18.000 Dollar, was heute 120.000 Dollar entspricht … Dennoch war der PDP-8 einer der technologischen Meilensteine und wurde 1973 zum meistverkauften Computer der Welt!

Zwei Jahre später, im Jahr 1968, wurde durch Gordon E. Moore und Robert Noyce eine Firma namens Intel (Integrated Electronic) gegründet. Von Anfang an hat sich Intel auf die Entwicklung von integrierten Schaltkreisen, Flash-Speichern, Mikroprozessoren, Mikrocontrollern und allen anderen Komponenten spezialisiert, die für den Betrieb eines eingebetteten Systems erforderlich sind.

Das Jahr 1969 – es war ein wichtiges Jahr für die Automobilindustrie. Das erste eingebettete System wurde in einem Auto verwendet. Designer des Volkswagen 1600 entschieden sich für ein mikroprozessorgesteuertes Einspritzsystem. Dies war ein wichtiger Schritt in die Richtung der Entwicklung moderner Autos.

Im Jahr 1971 brachte Intel seinen ersten 4-Bit-Mikroprozessor auf den Markt. Er hieß Intel 4004 und war für Rechner und andere nicht-komplexe Systeme ausgelegt. Obwohl der Mikroprozessor weiterhin externe Speicher- und Support-Chips benötigte, markierte er einen weiteren wichtigen Punkt in der Geschichte der technologischen Entwicklung.

Drei Jahre später, 1974, wurde der weltweit erste 8-Bit-Mikroprozessor vorgestellt. Intel und sein größerer Konkurrent – Motorola – veröffentlichten beide ihre Produkte. Intel entwickelte zwei Modelle: Intel 8008 und Intel 8080, während Motorola den MC6800 einführte. Seit diesem Zeitpunkt hat die Entwicklung von eingebetteten Systemen an Geschwindigkeit gewonnen. Im selben Jahr wurde der erste Parallel-Architektur-Computer gebaut. Er hieß CLIP-4 und konnte mehrere Berechnungen gleichzeitig durchführen. Das war damals ziemlich beeindruckend!

Im Jahr 1975 gründeten zwei junge Männer ein Unternehmen, das die Welt der modernen Technologie revolutionieren sollte. Ihre Namen waren Paul Allen und Bill Gates. Sie beschlossen, ihr Unternehmen Microsoft zu nennen. Es wurde schnell klar, dass es nur eine Frage der Zeit ist, bis dieser neue Spieler den Markt dominiert. Im selben Jahr veröffentlichte Micro Instrumentation and Telemetry Systems (MITS) den ersten Heimcomputer – Altair 8800. Er kostete nur 400 US-Dollar (das entspricht etwa 1700 US-Dollar heute).

Die 1960er und 1970er Jahre waren für die Entwicklung eingebetteter Systeme von Bedeutung. In den 80er Jahren wurden jedoch einige der wichtigsten Fortschritte erzielt. In den frühen 1980er Jahren lag der Fokus auf dem Design der Mikroprozessoren und Mikrocontroller. Erstere wurden in Bezug auf Speichergröße und Arbeitsgeschwindigkeit optimiert. Letztere wurden bemerkenswert leistungsfähiger und gleichzeitig stark verkleinert.

Unter vielen anderen Erfindungen, die auf eingebetteten Systemen basieren, die in den 1980er Jahren entstanden sind, sind einige wirklich erwähnenswert. Ein Beispiel ist die Touchscreen-Technologie. Der erste Heimcomputer, der ihn benutzte, war HP-150 von Hewlett-Packard, der bereits 1983 zum Verkauf freigegeben wurde! 1989 wurde etwas, das oft als eine der Schlüsselerfindungen in der Geschichte der Männer angesehen wird, in die Welt eingeführt – World Wide Web oder WWW. Sein Schöpfer – der britische Ingenieur und Computerwissenschaftler Tim Berners-Lee – erschien auf der vom Time Magazine veröffentlichten Liste der hundert wichtigsten Menschen des 20. Jahrhunderts.

In den 1980er Jahren wurde auch die 16-Bit- und 32-Bit-Verarbeitung eingeführt.

In den 1990er Jahren stiegen eingebettete Systeme mit der schnell wachsenden Anzahl von Mobiltelefonnutzern auf kabellos um. Eines der wichtigsten Ereignisse des Jahrzehnts war die Entwicklung der ersten eingebetteten Linux-Software, die Echtzeitverarbeitung realisierbarer machte.

Der Beginn des 21. Jahrhunderts stand im Lichte von Android. Im Jahr 2005 entschied sich Google, das System zu erwerben und weiterzuentwickeln. Seine Anwendung ist nicht länger auf Telefone beschränkt.

Heute sind mehr als 95% der produzierten Chips für eingebettete Systeme bestimmt. Experten sagen voraus, dass autonome Netzwerke von eingebetteten Systemen in naher Zukunft viele Aspekte unseres Lebens ohne menschliches Eingreifen überwachen und kontrollieren werden. Ein Beispiel könnten Autos sein, die miteinander kommunizieren, um den Verkehr in den Städten zu organisieren und zu optimieren. Es ist durchaus möglich, dass sehr bald mehr Objekte als Menschen mit dem Internet verbunden werden und interagieren werden, um unser Leben einfacher, sicherer und komfortabler zu machen.

Eingebettete Systeme und das Internet der Dinge (IoT)

Es wurde in diesem Text viele Male erwähnt, dass eingebettete Systeme einen großen Teil unserer Realität schaffen und den Komfort unseres Lebens erhöhen. Sie haben seit den 1960er Jahren einen langen Weg zurückgelegt, als die Welt das erste eingebettete System erblickte. Es ist Zeit zu fragen, was die Zukunft für sie bereithält. Es liegt auf der Hand, dass ihr Potenzial noch nicht ausgeschöpft ist und dass die eingebetteten Systeme im Zuge der Weiterentwicklung der Technologie noch nützlicher werden und weitere Verbreitung finden.

Eine der möglichen Richtungen für eingebettete Systeme in der Zukunft ist das Internet der Dinge (IoT). Nach der Definition von Wikipedia ist „das Internet der Dinge (IoT) das Netzwerk von physischen Geräten, Fahrzeugen, Haushaltsgeräten und anderen Dingen, die mit Elektronik, Software, Sensoren, Aktuatoren und Netzwerkkonnektivität eingebettet sind, die diese Objekte verbinden und Daten austauschen können. Jedes Ding ist durch sein eingebettetes Computersystem eindeutig identifizierbar, kann aber innerhalb der bestehenden Internet-Infrastruktur interagieren.“

Nach Meinung vieler Experten werden eingebettete Systeme wahrscheinlich von großer Bedeutung für die Entwicklung und Implementierung vieler Lösungen des Internets der Dinge (IoT) sein, insbesondere in bestimmten Industriezweigen und Anwendungen des industriellen Internets der Dinge (IoT).

Heute konzentrieren sich die größten Unternehmen auf die Entwicklung von Hardware und Software für eingebettete Systeme, um den Veränderungen zu folgen und so viel wie möglich vom schnell wachsenden Markt des Internets der Dinge zu profitieren. Die Bereiche, die sich am wahrscheinlichsten entwickeln werden, sind Mikroprozessoren und Mikrocontroller sowie Echtzeitbetriebssysteme (RTOS). Die Veränderungen werden auch Speicherabdrücke und Netzwerke sowie Open-Source-Communities und Entwickler betreffen.

Der Markt für eingebettete Systeme wächst stetig und es gibt keine Anzeichen dafür, dass dies sich in absehbarer Zukunft verändern wird.