/ 3 Minuten Lesezeit
Eingebettete Software als zentraler Teil der Elektronikentwicklung
veröffentlicht am Juni 12, 2020
Heutzutage begegnet man eingebetteter Software beinahe überall. Sie ist ein zentraler Teil eines funktionierenden Software-Ökosystems. Eingebettete Software wird speziell für die Hardware entwickelt, auf der es läuft. Sie muss jedoch Einschränkungen von Speicher und Zeit begegnen.
Ein typisches Merkmal von eingebetteten Systemen ist, dass entweder keine gar oder alle Funktionen der eingebetteten Software von Menschen angestoßen oder kontrolliert werden. Werden sie von Maschinen kontrolliert, passiert dies meist über Maschinenschnittstellen. Eingebettete Softwaresysteme entstehen durch die Integration von Softwaretechnik in Nicht-Computergeräte und sollen diese speziellen Systeme steuern. Dafür führen sie ihr ganzes Leben lang dieselbe vordefinierte und unveränderliche Aufgabe aus. Die Systeme wurden designt, um zuverlässig und stabil zu laufen, sie müssen immer gleich lange Reaktionszeiten haben und sehr effizient funktionieren. Die Hersteller implementieren die Software in Elektronikgeräten, wie Telefone, Autos, Modems, Roboter, Haushaltsanwendungen, Spielzeuge, Sicherheitssysteme, Fernseher und in digitale Uhren ein, um nur einige Anwendungen zu nennen.
Diese Software kann sehr simpel sein, wie zum Beispiel das Licht auf einem 8-bit-Mikrokontroller zu steuern, der nur wenige Kilobyte Speicher hat. Das passende Level an Verarbeitungskomplexität wird mit einem nur annähernd korrekten Berechnungsrahmen festgelegt – diese Methode basiert auf zufälligen Algorithmen. Andererseits können die Anwendungen aber auch sehr anspruchsvoll werden, zum Beispiel in Flugzeugen, Raketen oder Prozesskontrollsystemen.
1) Beispiele von Anwendungen eingebetteter Software
- Bildverarbeitung im Bereich medizinischer bildgebender Geräte
- Fly-by-wire Kontrollsysteme in der Luftfahrt
- Bewegungserfassung in Sicherheitskameras
- Verkehrsleitsysteme in Ampeln
- Zeitmanagement und Automatisierung in Smart Home Geräten
- Antiblockiersystem der Bremsen in Autos
2) Gibt es einen Unterschied zwischen Firmware und eingebetteter Software?
Die Antwort lautet ja. Obwohl die beiden Begriffe häufig austauschbar verwendet werden, ist Firmware nur eine besondere Art der eingebetteten Software. Eingebettete Software wird nur für bestimmte Funktionen verwendet, die der eigentlichen Funktion des Gerätes entsprechen. Firmware dagegen wird in minimalistischeren Betriebssystemen (BS) eingesetzt. Man kann es sich so vorstellen: Jede Firmware ist eingebettete Software, aber nicht jede eingebettete Software ist auch Firmware.
3) Betriebssysteme
Anders als bei Standardcomputern, die in der Software-Entwicklung mit weit verbreiteten Betriebssystemen wie Windows, GNU/Linus oder OS X arbeiten, verwendet eingebettete Software häufig gar kein Betriebssystem. Wird eines verwendet, kann dies aus einer Vielzahl von Betriebssystemen gewählt werden – meist sind dies Echtzeitbetriebssysteme, wie VxWorks, Windows CE, Linux oder ThreadX, jedoch gibt es noch viele weitere.
4) Kommunikationsprotokolle
Die Kommunikation zwischen Prozessoren sowie zwischen Prozessoren und Komponenten sind essenziell. Zu den gängigen Protokollen gehören neben der direkten Speicheradressierung auch I²C, SPI, serielle Schnittstellen und USB-Ports. Typischerweise sind Kommunikationsprotokolle, die für den Einsatz in eingebetteten Systemen entwickelt wurden, bei Firmen wie InterNicheTechnologies und CMX Systems erhältlich. Open-Source-Protokolle sind unter anderem bei uIP oder lwip zu finden.
5) Unterscheidung zwischen eingebetteten Systemen und Anwendungssoftware
Die meisten kennen Anwendungssoftware, wie sie auf Computern zu finden ist, aus der Perspektive von Kosnument:innen. Eingebettete Software ist jedoch meist unsichtbar, wenn auch genauso komplex. Im Gegensatz zu Anwendungssoftware muss eingebettete Software bestimmte Einschränkungen und Hardware-Anforderungen erfüllen. Auch der Einsatz von Hardware von Drittanbietern wird streng kontrolliert. Eingebettete Software muss bei der Herstellung alle erforderlichen Gerätetreiber enthalten, die jeweils spezifisch für diese Hardware geschrieben werden. Die Software ist vom CPU und den gewählten Chips abhängig, deshalb haben die meisten Ingenieure für eingebettete Software zumindest Grundkenntnisse im Lesen von Schaltplänen und Datenblättern für Komponenten, um die Verwendung von Registern und Kommunikationssystemen zu bestimmen. Die Konvertierung zwischen dezimal, hexadezimal und binär ist ebenso nützlich wie die Verwendung von Bitmanipulation. Webanwendungen werden bisher nur selten verwendet, obwohl XML-Dateien und andere Ausgaben an einen Computer gesendet werden können.
Mit der CELUS Software finden Anwender jedoch ein hervorragendes Beispiel dafür, wie Webanwendungen in den Arbeitsalltag implementiert werden können. Dabei sparen sie nicht nur Zeit, sondern auch eine Menge Kosten durch kürzere Entwicklungszyklen und schnellere Ergebnisse. Die KI entwirft Schaltpläne und PCB-Layouts sowie Leiterplatten vollständig automatisiert. Softwareentwickler und Elektronikentwickler können sich dadurch auf die kreativen Teile ihrer Arbeit konzentrieren. So können sie an neuer Hardware oder Ideen für Software arbeiten.
6) Was ist ein eingebettetes System?
Ein eingebettetes System ist grundsätzlich ein auf einem Mikroprozessor basierendes Computer-Hardware-System mit spezifischer Software. Es soll eine ganz bestimmte Funktion ausführen. Das kann entweder ein unabhängiges System oder ein integrativer Teil eines großen Systems sein. Der Kern ist eine integrierte Schaltung, die Berechnungen für Echtzeitoperationen durchführen soll. Die Komplexitätsbereiche variieren hier von einem einzelnen Mikrocontroller bis hin zu einer Reihe von Prozessoren mit angeschlossenen Peripheriegeräten oder Netzwerken. Die Komplexität eingebetteter Systeme unterscheidet sich je nach der Aufgabe, für die sie konzipiert sind.
6.1 Die Grundstruktur eines eingebetteten Systems
- A-D-Wandler: Ein Analog-Digital-Wandler wandelt analoge Signale, die von den Sensoren kommen, in digitale Signale um.
- D-A-Wandler: Hier ist es genau andersherum. Das digitale Signal wird also zu seinem analogen Pendant gesendet. Der Prozessor wandelt den digitalen Input in analoge Daten um.
- Sensor: Der Sensor misst und wandelt die physikalische Größe in ein elektrisches Signal um, das dann von einem eingebettete-Software-Ingenieur verwendet werden kann.
- Aktuator: Ein Aktuator vergleicht den von den D-A-Wandlern gegebenen Output mit dem generellen Output und speichert ihn entsprechend.
6.2 Nutzungsmöglichkeiten von eingebetteten Systemen in der Zukunft
Es gibt fast unendliche Anwendungsmöglichkeiten von eingebetteten Systemen, sowohl jetzt als auch zukünftig. Es ist zu erwarten, dass die Branche der eingebetteten Systeme exponentiell wachsen wird. Dies wird vor allem durch die kontinuierliche Weiterentwicklung von Anwendungen wie Virtual-Reality (VR), Künstlicher Intelligenz (KI) sowie Augmented Reality (AR) oder den Bereich des Internet der Dinge (IoT) vorangetrieben. Durch das Aufkommen von Big Data und daher der neuen Möglichkeit Muster in großen Datensätzen zu finden, ergeben sich viele Anwendungen, an die wir heute noch gar nicht gedacht haben. Diese können beispielsweise von cloudbasierten Diensten bis hin zu Wi-Fi oder anderen allgemeinen Hochleistungs-Anwendungsfällen reichen. Nach einer Untersuchung aus dem Jahr 2018 wurde der erwartete Markt für eingebettete Systeme für 2017 auf 68,9 Milliarden Dollar geschätzt und wird bis 2025 einen Wert über 100 Milliarden Dollar erreichen.
Ihre Meinung ist uns wichtig - wir freuen uns auf Ihren Kommentar