Siemens bietet beides Integrierte Software für die Automobilindustrie und Entwicklung eingebetteter Software Lösungen. Siemens hat mit der Einstellung der Nucleus-, Nucleus Hypervisor-, Nucleus ReadyStart-, Sokol Flex Linux-, Sokol Omni Linux- und Sourcery CodeBench-Produkte (einschließlich der zugehörigen Add-Ons) im November 2023 das Angebot eigenständiger eingebetteter Software für SoCs eingestellt. Bestehende Support-Verträge für diese Produkte werden weiterhin eingehalten, bitte wenden Sie sich an Siemens Support-Center für weitere Informationen.
Was sind die verschiedenen Arten eingebetteter Software und ihre Zwecke?
- Betriebssystem — Ein Betriebssystem (OS) im allgemeinsten Sinne ist Software, die es einem Benutzer 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 Displays oder Drucker, Netzwerkverbindungen und Speichergeräte wie Festplatten und Speicher. Das Betriebssystem bietet auch Dienste, die die effiziente Ausführung und Verwaltung von Softwareanwendungsprogrammen sowie die Speicherzuweisung für diese ermöglichen.
- Firmware — Firmware ist eine Art von Software, die direkt für eine Hardware geschrieben wird. Es funktioniert ohne APIs, das Betriebssystem oder Gerätetreiber — es bietet 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 verwendet, wo sie die Softwareentwicklung vereinfacht, indem sie Folgendes bietet:
- Die Feinheiten verteilter Anwendungen verbergen
- Maskierung der Heterogenität von Hardware, Betriebssystemen und Protokollen
- Bereitstellung einheitlicher und hochrangiger Schnittstellen zur Erstellung interoperabler, wiederverwendbarer und portabler Anwendungen.
- 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 läuft, Middleware und Firmware verwendet oder mit ihnen 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.
Eingebettete Software im Vergleich zu eingebetteten Systemen
Die Hardwarekomponenten in einem Gerät, auf dem eingebettete Software ausgeführt wird, werden als „eingebettetes System“ bezeichnet. Einige Beispiele für Hardwarekomponenten, die in eingebetteten Systemen verwendet werden, sind Stromversorgungsschaltungen, Zentralprozessoren, Flash-Speichergeräte, Timer und serielle Kommunikationsanschlüsse. In den frühen Entwurfsphasen eines Geräts wird über die Hardware entschieden, aus der das eingebettete System besteht — und über dessen Konfiguration innerhalb des Geräts. Dann wird eingebettete Software von Grund auf neu entwickelt, sodass sie ausschließlich auf dieser Hardware in dieser genauen Konfiguration läuft. Das macht Embedded Software Design zu einem Spezialgebiet, das fundierte Kenntnisse der Hardwarefunktionen und der Computerprogrammierung erfordert.
Beispiele für eingebettete softwarebasierte Funktionen
Bei fast jedem Gerät mit Leiterplatten und Computerchips sind diese Komponenten in einem eingebetteten Softwaresystem angeordnet. Daher sind eingebettete Softwaresysteme im täglichen Leben allgegenwärtig und finden sich überall in der Verbraucher-, Industrie-, Automobil-, Luft- und Raumfahrt-, Medizin-, Handels-, Telekommunikations- und Militärtechnik.
Zu den gängigen Beispielen für eingebettete softwarebasierte Funktionen gehören:
- Bildverarbeitungssysteme, die in medizinischen Bildgebungsgeräten zu finden sind
- Fly-by-Wire-Steuerungssysteme in Flugzeugen gefunden
- Bewegungserkennungssysteme in Sicherheitskameras
- Verkehrsleitsysteme in Ampeln gefunden
- Zeitmessungs- und Automatisierungssysteme, die in Smart-Home-Geräten zu finden sind
Was sind die verschiedenen Arten von eingebetteten Systemen?
Basierend auf Leistungs- und Funktionsanforderungen gibt es fünf Hauptklassen von eingebetteten Systemen:
- Integrierte Echtzeitsysteme erledigen Aufgaben auf deterministische und wiederholbare Weise, was von der zugrunde liegenden Architektur und Planung des Betriebssystems sowie von der Leistung der Threads, Verzweigung und Unterbrechung der Latenz beeinflusst wird. Eingebettete Allzwecksysteme enthalten keine Echtzeitanforderungen und können Unterbrechungen oder Verzweigungen verwalten, ohne von einer Abschlusszeit abhängig zu sein. Grafikdisplays und Tastatur- und Mausverwaltung 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 verbundenen Geräten ausgeben oder empfangen, sind aber nicht darauf angewiesen, dass sie ihre Aufgabe erfüllen.
- Eigenständige eingebettete Systeme können ihre Aufgabe ohne ein Hostsystem oder externe Verarbeitungsressourcen erledigen. Sie können Daten von verbundenen Geräten ausgeben oder empfangen, sind aber nicht darauf angewiesen, dass sie ihre Aufgabe erfüllen.
- Vernetzte eingebettete Systeme sind auf ein verbundenes Netzwerk angewiesen, um zugewiesene Aufgaben auszuführen.
- Aufgrund der Komplexität der Hardwarearchitektur des Systems gibt es drei Haupttypen von eingebetteten Systemen: Vernetzte eingebettete Systeme sind auf ein verbundenes Netzwerk angewiesen, um zugewiesene Aufgaben auszuführen.
Wie sich Endmärkte auf eingebettete Systeme auswirken
Die Anforderungen und Komponenten für eingebettete Systeme werden je nach den Anforderungen des Zielmarktes unterschiedlich sein. Einige Beispiele sind:
- Verbraucher — In Anwendungen wie Konsumgütern wie Waschmaschinen, tragbaren Geräten und Mobiltelefonen betonen eingebettete Systeme die reduzierte Größe des
- System-on-Chip, niedriger Stromverbrauch oder Batteriebetrieb und Grafikschnittstellen. In diesen Anwendungen werden konfigurierbare Betriebssysteme und die Fähigkeit, nicht funktionierende „Domänen“ des Designs abzuschalten, geschätzt.
- Netzwerke — 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. Bei eingebetteten Netzwerkanwendungen stehen Reaktionsgeschwindigkeit, Paketverarbeitung und Hardwarepfade für Peripheriegeräte im Mittelpunkt.
- Industriell — Bei Anwendungen wie Fabrikmanagement, Motoren und Windmühlen liegt der Schwerpunkt in der Regel auf der sicheren Cloud-Konnektivität und dem deterministischen Betrieb in „Echtzeit“ und kann sich stark auf Middleware konzentrieren.
- Medizin, Automobilindustrie und Luft- und Raumfahrt — Diese Branchen benötigen gemischte sicherheitskritische Systeme, bei denen Teile des Designs voneinander isoliert sind, um sicherzustellen, dass nur die notwendigen Daten in das System gelangen oder es verlassen (Sicherheit), ohne dass der Endbenutzer geschädigt wird (Sicherheit). Beispiele sind autonome Fahrsysteme in Automobilen und medizinischen Geräten. Diese eingebetteten Systeme können eine Mischung aus Open-Source-Betriebssystemen (Linux) und deterministischen Echtzeitbetriebssystemen (RTOS) enthalten und in hohem Maße bewährte Middleware nutzen.
Warum ist Embedded Software für die Automobilindustrie anders?
In der Automobilelektronik finden komplexe Interaktionen in Echtzeit über mehrere eingebettete Systeme statt, von denen jedes Funktionen wie Bremsen, Lenkung, Federung, Antriebsstrang usw. steuert. Das physische Gehäuse, in dem sich jedes eingebettete System befindet, wird als elektronische Steuereinheit (ECU) bezeichnet. Jedes Steuergerät und seine eingebettete Software sind Teil einer komplexen elektrischen Architektur, die als verteiltes System bekannt ist.
Durch die Kommunikation miteinander können die Steuergeräte, aus denen das verteilte System eines Fahrzeugs besteht, eine Vielzahl von Funktionen ausführen, wie z. B. automatische Notbremsung, adaptive Geschwindigkeitsregelung, Stabilitätskontrolle, adaptive Scheinwerfer und vieles mehr. Eine einzelne Funktion erfordert möglicherweise Interaktionen zwischen 20 oder mehr eingebetteten Softwareanwendungen, die auf zahlreiche Steuergeräte verteilt sind, die über mehrere Netzwerkprotokolle verbunden sind. Komplexe Steueralgorithmen, die zusammen mit der eingebetteten Software eingesetzt werden, gewährleisten das richtige Timing der Funktionen, der benötigten Ein- und Ausgänge sowie die Datensicherheit.
Zu den gängigen Beispielen für anwendungsbasierte Funktionen von Automobilsoftware gehören:
- ADAS-Funktionen (Advanced Driver Assist Systems) wie adaptiver Tempomat, automatische Notbremsung, Spurhalteassistent, Verkehrsassistent, Spurverlassenswarnung
- Batteriemanagement
- Drehmomentkompensation
- Steuerung der Kraftstoffeinspritzrate
Steuergeräte-Softwarestack
Die elektronische Steuereinheit oder ECU besteht aus einer Hauptrecheneinheit mit Hardware auf Chip-Ebene und einem Stapel eingebetteter Software. Unter Automobilherstellern gibt es jedoch einen zunehmenden Trend, Steuergeräte mit komplexen integrierten Schaltungen zu entwickeln, die mehrere Rechenkerne auf einem einzigen Chip enthalten — was als System on a Chip (SoC) bezeichnet wird. Diese SoCs können eine Vielzahl von ECU-Abstraktionen hosten, um 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-Softwareanwendungen.
ECU-Stack | Beschreibung |
Integrierte Softwareanwendung | Kontrollalgorithmen, Verarbeitung, Dienstleistungen |
Rahmen für die Anwendung | Security- und Schutzrahmen |
Betriebsumgebung | AUTOSAR classic, AUTOSAR Adaptive, Eingangs-/Ausgangskanäle |
Eingebettete Virtualisierungen | Betriebssystem in Echtzeit, ECU-Abstraktionen |
Firmware | Bootloader, sicherer Speicher, sicheres Threading |
Hardware | Geräte auf Siliziumbasis, Mikrocontroller, ein- oder mehrlagige Platinen |