Diese Seite wird auf Deutsch unter Einsatz automatischer Übersetzung angezeigt. Lieber auf Englisch ansehen?
War diese Übersetzung hilfreich?
  1. Home

Embedded Software

Embedded-Software ist eine spezielle Anwendung oder Firmware, die auf einem Verarbeitungscluster ausgeführt wird, der in ein SoC oder einen IC eingebettet ist. Fast jedes elektronische Produkt kann einen oder mehrere eingebettete Prozessoren enthalten, wie sie in den heutigen Automobilen, der Automatisierung von Faktorböden, der Avionik, medizinischen Geräten und mehr üblich sind.

Welche verschiedenen Arten von Embedded-Software gibt es?

Embedded-Software-Anwendungen sind spezielle Programmierungen in Nicht-PC-Geräten – entweder als Teil eines Mikrochips oder als Teil einer anderen Anwendung, die auf dem Chip sitzt – um bestimmte Funktionen des Geräts zu steuern. Im Gegensatz zu PC-Anwendungen, die auf verschiedenen Computersystemen installiert und modifiziert werden können, um unterschiedliche Funktionsebenen bereitzustellen, hat Embedded-Software feste Hardwareanforderungen und -fähigkeiten. Es wird ausschließlich für das jeweilige Gerät erstellt, auf dem es ausgeführt wird, wobei Verarbeitungs- und Speicherbeschränkungen direkt an die Spezifikationen gebunden sind. Im Kontext dieser Erörterung umfasst Embedded-Software Anwendungen, Firmware, Middleware und Betriebssysteme, die auf einem einzelnen Mikroprozessor oder einem Cluster von Mikroprozessoren ausgeführt werden, die in zusätzliche Logik "eingebettet" sind.

embedded-software-is803905696-feature-640x360

Eigenschaften und Merkmale von eingebetteten Systemen

Obwohl es viele Arten von Embedded-Systemen gibt, haben sie alle die gleichen vorteilhaften Eigenschaften und Designmerkmale.

Alle Embedded-Systeme sind aufgabenspezifisch

Sie führen während ihrer gesamten Nutzungsdauer die gleiche vorprogrammierte Funktion aus und können nicht verändert werden.

Alle Embedded-Systeme sind hocheffizient

Der Ressourcenbedarf von Embedded-Software sollte niemals die Kapazität der Hardware überschreiten, auf der sie installiert ist, und die Spezifikationen der Hardware sollten niemals die absoluten Mindestanforderungen der Embedded-Software überschreiten.

Auf Stabilität ausgelegt

Alle Embedded-Systeme sind so konzipiert, dass sie sehr zuverlässig und stabil sind. Sie müssen ihre Aufgabe mit konsistenten Reaktionszeiten erfüllen und während der gesamten Lebensdauer des Geräts, in dem sie untergebracht sind, funktionieren.

Welche Arten von Embedded Software bietet Siemens an?

Siemens bietet sowohl Automotive Embedded Software als auch Embedded Software Engineering Solutions an. Siemens hat das Angebot von eigenständiger Embedded-Software für SoCs eingestellt und die Software-Produktangebote Sokol, Nucleus und Multicore eingestellt.

Was sind die verschiedenen Arten von Embedded-Software und ihre Zwecke?

  • Betriebssystem – Ein Betriebssystem (OS) im allgemeinsten Sinne ist eine 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 Arbeitsspeicher. Das Betriebssystem stellt auch Dienste bereit, die die effiziente Ausführung und Verwaltung von Softwareanwendungsprogrammen sowie die Speicherzuweisung erleichtern.
  • Firmware – Firmware ist eine Art von Software, die direkt für eine Hardware geschrieben wird. Es funktioniert ohne den Umweg über APIs, das Betriebssystem oder Gerätetreiber und bietet die erforderlichen Anweisungen und Anleitungen, um mit anderen Geräten zu kommunizieren oder grundlegende Aufgaben und Funktionen wie beabsichtigt 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 bereitstellt:

    • Ausblenden der Feinheiten verteilter Anwendungen
    • Verschleierung der Heterogenität von Hardware, Betriebssystemen und Protokollen
    • Bereitstellung einheitlicher und hochrangiger Schnittstellen, die verwendet werden, um interoperable, wiederverwendbare und portable Anwendungen zu erstellen.
    • 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 ihnen interagiert und der Hauptfokus der Zielfunktion des eingebetteten Systems ist. Jede Endanwendung ist einzigartig, während Betriebssysteme und Firmware von Gerät zu Gerät identisch sein können.

Embedded Software vs. Embedded Systems

Die Hardwarekomponenten in einem Gerät, auf dem Embedded-Software ausgeführt wird, werden als "Embedded-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 Entwicklungsphasen eines Geräts wird die Hardware, aus der das eingebettete System bestehen soll, und seine Konfiguration innerhalb des Geräts festgelegt. Dann wird Embedded-Software von Grund auf neu entwickelt, um ausschließlich auf dieser Hardware in dieser genauen Konfiguration ausgeführt zu werden. Dies macht das Design von Embedded-Software zu einem Spezialgebiet, das tiefgreifende Kenntnisse der Hardwarefunktionen und der Computerprogrammierung erfordert.

Beispiele für Embedded-Software-basierte Funktionen

Fast jedes Gerät mit Platinen und Computerchips verfügt über diese Komponenten, die in einem eingebetteten Softwaresystem angeordnet sind. Infolgedessen sind eingebettete Softwaresysteme im Alltag allgegenwärtig und finden sich in der Verbraucher-, Industrie-, Automobil-, Luft- und Raumfahrt-, Medizin-, Handels-, Telekommunikations- und Militärtechnik.

Gängige Beispiele für eingebettete softwarebasierte Funktionen sind:

  • Bildverarbeitungssysteme in medizinischen Bildgebungsgeräten
  • Fly-by-Wire-Steuerungssysteme in Flugzeugen
  • Bewegungserkennungssysteme in Überwachungskameras
  • Verkehrsleitsysteme in Ampeln
  • Zeit- und Automatisierungssysteme in Smart-Home-Geräten

Welche verschiedenen Arten von eingebetteten Systemen gibt es?

Basierend auf den Leistungs- und Funktionsanforderungen gibt es fünf Hauptklassen von eingebetteten Systemen:

  • Eingebettete Echtzeitsysteme erledigen Aufgaben auf deterministische und wiederholbare Weise, was von der zugrunde liegenden Architektur und dem Zeitplan des Betriebssystems sowie von der Leistung von Threads, Verzweigungen und Unterbrechung der Latenz beeinflusst wird. Allzweck-Embedded-Systeme enthalten keine Echtzeitanforderung und können Interrupts 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 Embedded-Systeme können Aufgaben ohne Host-System oder externe Verarbeitungsressourcen erledigen. Sie können Daten von angeschlossenen Geräten ausgeben oder empfangen, sind aber nicht auf sie angewiesen, um ihre Aufgabe zu erfüllen.
  • Eigenständige Embedded-Systeme können ihre Aufgabe ohne Host-System oder externe Verarbeitungsressourcen erfüllen. Sie können Daten von angeschlossenen Geräten ausgeben oder empfangen, sind aber nicht auf sie angewiesen, um ihre Aufgabe zu erfüllen.
  • Vernetzte eingebettete Systeme sind auf ein verbundenes Netzwerk angewiesen, um zugewiesene Aufgaben auszuführen.
  • Basierend auf 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 von Embedded-Systemen unterscheiden sich je nach den Anforderungen des Zielmarktes. Hier einige Beispiele:

  • Konsumgüter – In Anwendungen wie Konsumgütern wie Waschmaschinen, Wearables und Mobiltelefonen betonen eingebettete Systeme die reduzierte Größe der
  • System-on-Chip, geringer Stromverbrauch oder Batteriebetrieb und Grafikschnittstellen. In diesen Anwendungen werden konfigurierbare Betriebssysteme und die Möglichkeit, nicht-operative "Domänen" des Designs 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. Embedded-Netzwerkanwendungen konzentrieren sich auf Reaktionsgeschwindigkeit, Paketverarbeitung und Peripherie-Hardwarepfade.
  • Industrie – Bei Anwendungen wie Fabrikmanagement, Motoren und Windmühlen liegt der Schwerpunkt in der Regel auf der Sicherung der Cloud-Konnektivität und des deterministischen "Echtzeit"-Betriebs und kann sich stark auf Middleware konzentrieren.
  • Medizin, Automobil und Luft- und Raumfahrt – Diese Branchen benötigen sicherheitskritische Systeme mit gemischter Sicherheit, bei denen Teile des Designs voneinander isoliert sind, um sicherzustellen, dass nur die notwendigen Daten in das System ein- oder austreten (Sicherheit) und gleichzeitig der Endbenutzer nicht geschädigt wird (Sicherheit). Beispiele sind autonome Fahrsysteme in Automobilen und medizinischen Geräten. Diese Embedded-Systeme können eine Mischung aus Open-Source- (Linux) und deterministischen Echtzeitbetriebssystemen (RTOS) aufweisen und bewährte Middleware stark nutzen.

Warum ist Automotive-Embedded-Software anders?

In der Automobilelektronik finden komplexe Echtzeitinteraktionen über mehrere eingebettete Systeme hinweg statt, die jeweils Funktionen wie Bremsen, Lenkung, Aufhängung, Antriebsstrang usw. steuern. 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 bezeichnet wird.

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, adaptives Kurvenlicht und vieles mehr. Eine einzelne Funktion kann Interaktionen über 20 oder mehr Embedded-Softwareanwendungen erfordern, die über zahlreiche Steuergeräte verteilt sind, die über mehrere Netzwerkprotokolle verbunden sind. Komplexe Steuerungsalgorithmen, die mit der eingebetteten Software bereitgestellt werden, gewährleisten das richtige Timing von Funktionen, benötigten Ein- und Ausgängen sowie Datensicherheit.

Gängige Beispiele für anwendungsbasierte Funktionen von Automobilsoftware sind:

  • ADAS-Funktionen (Advanced Driver Assist Systems) wie adaptive Geschwindigkeitsregelung, automatische Notbremsung, Spurhalteassistent, Verkehrsassistent, Spurverlassenswarnung
  • Batteriemanagement
  • Drehmoment-Kompensation
  • Steuerung der Kraftstoffeinspritzrate

Steuergeräte-Software-Stack

Die elektronische Steuereinheit (ECU) besteht aus einer Hauptrecheneinheit mit Hardware auf Chip-Ebene und einem Stapel eingebetteter Software. Bei den Automobilherstellern gibt es jedoch einen zunehmenden Trend, Steuergeräte mit komplexen integrierten Schaltkreisen zu entwerfen, die mehrere Rechenkerne auf einem einzigen Chip enthalten – ein sogenanntes System on a Chip (SoC). Diese SoCs können eine Vielzahl von Steuergeräteabstraktionen beherbergen, 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-Software-Anwendungen.

Steuergeräte-Stack

Beschreibung

Eingebettete Softwareanwendung

Steuerungsalgorithmen, Verarbeitung, Dienste

Anwendungs-Framework

Sicherheits- und Schutz-Frameworks

Betriebsumgebung

AUTOSAR classic, AUTOSAR Adaptive, Ein-/Ausgangskanäle

Eingebettete Virtualisierungen

Echtzeit-Betriebssystem, Steuergeräte-Abstraktionen

Firmware

Bootloader, sicherer Speicher, sicheres Threading

Hardware

Siliziumbasierte Geräte, Mikrocontroller, ein- oder mehrschichtige Platinen

Verwandte Ressourcen

Software-Engineering-Lösungen

Unsere Software-Engineering-Produkte ermöglichen es Ihnen, den gesamten Softwareentwicklungszyklus zu verwalten.

Embedded Software für Automotive

Automotive-Embedded-Software verdrängt zunehmend den Maschinenbau als Unterscheidungsmerkmal bei der Gestaltung von Markenerlebnissen.