Siemens bietet sowohl Embedded Software für die Automobilindustrie als auch Embedded Software-Engineering-Lösungen an. Siemens hat das Angebot an eigenständiger Embedded Software für SoCs mit der Ausmusterung der Produkte Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux und Sourcery CodeBench (einschließlich zugehöriger Add-ons) im November 2023 eingestellt. Bestehende Support-Verträge für diese Produkte werden weiterhin erfüllt. Bitte kontaktieren Sie das Siemens Support Center für weitere Informationen.
Was sind die verschiedenen Arten von Embedded Software und ihre Zwecke?
- Betriebssystem – Ein Betriebssystem (OS) im allgemeinsten Sinne ist eine Software, die es einem Anwender ermöglicht, andere Anwendungen auf einem Computergerät auszuführen. Das Betriebssystem verwaltet die Hardwareressourcen eines Prozessors, einschließlich Eingabegeräte wie Tastatur und Maus, Ausgabegeräte wie Bildschirme oder Drucker, Netzwerkverbindungen und Speichergeräte wie Festplatten und Arbeitsspeicher. Das Betriebssystem stellt außerdem Services zur Verfügung, die die effiziente Ausführung und Verwaltung von Anwendungsprogrammen sowie die Speicherzuweisung für diese Programme erleichtern.
- Firmware - Firmware ist eine Art von Software, die direkt für ein Stück Hardware geschrieben wird. Er arbeitet ohne APIs, Betriebssystem oder Gerätetreiber und liefert die erforderlichen Anweisungen und Anleitungen, um mit anderen Geräten zu kommunizieren oder grundlegende Aufgaben und Funktionen wie vorgesehen auszuführen.
- Middleware – Middleware ist eine Softwareschicht, die sich zwischen Anwendungen und Betriebssystemen befindet. Middleware wird häufig in verteilten Systemen eingesetzt, wo sie die Softwareentwicklung vereinfacht, indem sie Folgendes bietet:
- Verbergen der Komplexität verteilter Anwendungen
- Maskierung der Heterogenität von Hardware, Betriebssystemen und Protokollen
- Bereitstellung einheitlicher und hochrangiger Schnittstellen, die für interoperable, wiederverwendbare und portable Anwendungen verwendet werden
- Bereitstellung einer Reihe gemeinsamer Dienste, die Doppelarbeit minimieren und die Zusammenarbeit zwischen Anwendungen verbessern
- Anwendung – Der Endbenutzer entwickelt die endgültige Softwareanwendung, die auf dem Betriebssystem ausgeführt wird, die Middleware und Firmware verwendet oder mit ihr interagiert und im Mittelpunkt der Zielfunktion der eingebetteten Systeme steht. Jede Endanwendung ist einzigartig, während Betriebssysteme und Firmware von Gerät zu Gerät identisch sein können.
Embedded Software vs. eingebettete Systeme
Die Hardwarekomponenten in einem Gerät, auf dem Embedded Software ausgeführt wird, werden als „eingebettetes System“ bezeichnet. Einige Beispiele für Hardwarekomponenten, die in eingebetteten Systemen verwendet werden, sind Stromversorgungsschaltungen, Zentraleinheiten, Flash-Speichergeräte, Timer und serielle Kommunikationsports. In den frühen Phasen der Konstruktion eines Geräts wird entschieden, aus welcher Hardware das eingebettete System besteht - und wie es im Gerät konfiguriert ist. Dann wird die Embedded Software von Grund auf neu entwickelt, damit sie ausschließlich auf dieser Hardware in dieser genauen Konfiguration läuft. Das macht die Konstruktion von Embedded Software zu einem Spezialgebiet, das umfassende Kenntnisse der Funktionen von Hardware und Computerprogrammierung erfordert.
Beispiele für Embedded Software-basierte Funktionen
In fast jedem Gerät mit Leiterplatten und Computerchips sind diese Komponenten zu einem Embedded Software-System zusammengefasst. Embedded Software-Systeme sind daher im täglichen Leben allgegenwärtig und finden sich in der Konsumgüter-, Industrie-, Automobil-, Luft- und Raumfahrt-, Medizin-, Handels-, Telekommunikations- und Militärtechnik.
Gängige Beispiele für Embedded Software-basierte Funktionen sind:
- Bildverarbeitungssysteme in medizinischen Bildgebungsgeräten
- Fly-by-Wire-Steuerungssysteme in Flugzeugen
- Bewegungserkennungssysteme in Überwachungskameras
- Verkehrsleitsysteme in Ampeln
- Zeitsteuerungs- und Automatisierungssysteme in Smart-Home-Geräten
Welche verschiedenen Arten von eingebetteten Systemen gibt es?
Basierend auf Leistungs- und Funktionsanforderungen gibt es fünf Hauptklassen von eingebetteten Systemen:
- Eingebettete Echtzeitsysteme führen Aufgaben auf deterministische und wiederholbare Weise aus. Dies wird durch die zugrunde liegende Architektur und das Scheduling des Betriebssystems sowie durch das Leistungsvermögen von Threads, Verzweigungen und Unterbrechungslatenz beeinflusst. Eingebettete Systeme für allgemeine Zwecke enthalten keine Echtzeitanforderungen und können Unterbrechungen oder Verzweigungen ohne Abhängigkeit von einer Fertigstellungszeit verwalten. Grafikdisplays und die Verwaltung von Tastatur und Maus sind gute Beispiele für allgemeine Systeme.
- Eigenständige eingebettete Systeme können Aufgaben ohne ein Hostsystem oder externe Verarbeitungsressourcen erledigen. Sie können Daten von angeschlossenen Geräten ausgeben oder empfangen, sind aber nicht auf diese angewiesen, um ihre Aufgabe zu erfüllen.
- Eigenständige Embedded-Systeme können ihre Aufgabe ohne ein Host-System oder externe Verarbeitungsressourcen erledigen. Sie können Daten von angeschlossenen Geräten ausgeben oder empfangen, sind aber nicht auf diese angewiesen, um ihre Aufgabe zu erfüllen.
- Vernetzte eingebettete Systeme sind zur Erfüllung der ihnen zugewiesenen Aufgaben auf ein verbundenes Netzwerk angewiesen.
- Basierend auf der Komplexität der Hardware-Architektur des Systems gibt es drei Haupttypen von eingebetteten Systemen: Vernetzte eingebettete Systeme sind zur Erfüllung der ihnen zugewiesenen Aufgaben auf ein verbundenes Netzwerk angewiesen.
Wie die Endmärkte eingebettete Systeme beeinflussen
Die Anforderungen an eingebettete Systeme und Komponenten unterscheiden sich je nach den Anforderungen des Zielmarktes. Beispiele:
- Consumer – In Konsumgüter-Anwendungen wie Waschmaschinen, tragbare Geräten und Mobiltelefonen zeichnen sich eingebettete Systeme durch die reduzierte Größe des
- System-on-Chip, sparsamen Stromverbrauch oder Batteriebetrieb und die geringen Abmessungen der Grafikschnittstellen aus. Bei diesen Anwendungen werden konfigurierbare Betriebssysteme und die Fähigkeit, nicht-operative „Domänen“ der Konstruktion abzuschalten, geschätzt.
- Netzwerk – Anwendungen, die Konnektivität, Kommunikation, Betrieb und Verwaltung eines Unternehmensnetzwerks ermöglichen. Es stellt den Kommunikationspfad und die Dienste zwischen Benutzern, Prozessen, Anwendungen, Diensten und externen Netzwerken/dem Internet bereit. Integrierte Netzwerkanwendungen konzentrieren sich auf Reaktionsgeschwindigkeit, Paketverarbeitung und periphere Hardwarepfade.
- Industrie - Bei Anwendungen wie Produktion, Motoren und Windmühlen liegt der Schwerpunkt eher auf sicherer Cloud-Konnektivität und deterministischem „Echtzeit“-Betrieb und kann sich stark auf Middleware konzentrieren.
- Medizin, Automobilindustrie und Luft- und Raumfahrt – Diese Branchen benötigen gemischte sicherheitskritische Systeme, bei denen Teile der Konstruktion voneinander isoliert sind, um zu gewährleisten, dass nur die notwendigen Daten in das System eindringen oder es verlassen (Sicherheit), während gleichzeitig sichergestellt wird, dass der Endanwender keinen Schaden erleidet (Sicherheit). Beispiele sind autonome Fahrsysteme in Automobilen und Medizinprodukte. Diese eingebetteten Systeme können eine Mischung aus Open Source (Linux) und deterministischen Echtzeit-Betriebssystemen (RTOS) enthalten und nutzen in hohem Maße bewährte Middleware.
Warum ist Embedded Software im Automobilbereich anders?
In der Automobilelektronik kommt es zu komplexen Echtzeit-Interaktionen zwischen mehreren eingebetteten Systemen, die jeweils Funktionen wie Bremsen, Lenkung, Aufhängung, Antriebsstrang usw. steuern. Das physische Gehäuse, das jedes eingebettete System enthält, wird als elektronisches Steuergerät (ECU) bezeichnet. Jedes Steuergerät und seine Embedded Software ist Teil einer komplexen elektrischen Architektur, die als verteiltes System bekannt ist.
Indem sie miteinander kommunizieren, können die Steuergeräte, aus denen das verteilte System eines Fahrzeugs besteht, eine Vielzahl von Funktionen ausführen, wie z. B. automatische Notbremsung, adaptiver Tempomat, Stabilitätskontrolle, adaptive Scheinwerfer und vieles mehr. Eine einzige Funktion kann die Interaktion von 20 oder mehr Embedded Software-Anwendungen erfordern, die auf zahlreiche Steuergeräte verteilt und über mehrere Netzwerkprotokolle miteinander verbunden sind. Komplexe Steuerungsalgorithmen, die mit der Embedded Software bereitgestellt werden, sorgen für das richtige Timing der Funktionen, die benötigten Ein- und Ausgänge und die Datensicherheit.
Gängige Beispiele für auf Automobilanwendungen basierende Features sind:
- ADAS-Funktionen (Advanced Driver Assist Systems) wie adaptive Geschwindigkeitsregelung, automatische Notbremsung, Spurhalteassistent, Verkehrsassistent und Spurverlassenswarnung
- Batteriemanagement
- Drehmomentausgleich
- Steuerung der Kraftstoff-Einspritzmenge
Software-Stack der Steuergeräte
Das elektronische Steuergerät (ECU) besteht aus einer Hauptrechnereinheit mit Hardware auf Chipebene und einem Stapel integrierter Software. Es gibt jedoch einen zunehmenden Trend bei den Automobilherstellern, Steuergeräte mit komplexen integrierten Schaltungen zu konstruieren, die mehrere Rechenkerne auf einem einzigen Chip enthalten – was als System on a Chip (SoC) bezeichnet wird. Diese SoC können eine Vielzahl von Steuergeräte-Abstraktionen hosten, um die Hardware zu konsolidieren. Der Software-Stack für ein Steuergerät umfasst in der Regel eine Reihe von Lösungen, von Low-Level-Firmware bis hin zu High-Level-Embedded-Software-Anwendungen.
Stack für ein Steuergerät | Beschreibung |
Embedded Software-Anwendung | Steuerungsalgorithmen, Verarbeitung, Services |
Anwendungs-Framework | Sicherheits-Frameworks |
Betriebsumgebung | AUTOSAR Classic, AUTOSAR Adaptive, Ein-/Ausgangskanäle |
Integrierte Virtualisierungen | Echtzeit-Betriebssystem, Steuergeräte-Abstraktionen |
Firmware | Bootloader, sichere Lagerung, sicheres Threading |
Hardware | Siliziumbasierte Bauelemente, Mikrocontroller, ein- oder mehrschichtige Platinen |