1. Home

Embedded Software

Embedded Software ist eine spezielle Anwendung oder Firmware, die auf einem Verarbeitungscluster ausgeführt wird, der in einen SoC oder IC eingebettet ist. Nahezu jedes elektronische Produkt kann einen oder mehrere integrierte Prozessoren enthalten, wie sie heute in Automobilen, in der Fabrikautomation, in der Avionik, in Medizinprodukten und vielem mehr zu finden sind.

Welche verschiedenen Arten von Embedded Software gibt es?

Embedded Software-Anwendungen sind spezialisierte 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 Funktionsniveaus zu bieten, hat Embedded Software feste Hardwareanforderungen und Funktionen. Sie wird ausschließlich für das jeweilige Gerät erstellt, auf dem es läuft, wobei Verarbeitungs- und Speicherbeschränkungen direkt an die Spezifikationen des Geräts gebunden sind. Im Kontext dieser Diskussion umfasst Embedded Software Anwendungen, Firmware, Middleware und Betriebssysteme, die auf einem einzelnen Mikroprozessor oder einem Cluster von Mikroprozessoren „eingebettet“ in zusätzliche Logik ausgeführt werden.

Verwandte Produkte: Capital Embedded AR Classic | Capital Embedded Integrator AR Classic | Capital Embedded Virtualizer AR Classic

embedded-software-is803905696-feature-640x360

Eigenschaften und Features eingebetteter Systeme

Obwohl es viele Arten von eingebetteten Systemen gibt, haben sie alle die gleichen vorteilhaften Eigenschaften und Konstruktionsmerkmale.

Alle eingebetteten Systeme sind aufgabenspezifisch

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

Alle eingebetteten Systeme sind hocheffizient

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

Konzipiert für Stabilität

Alle eingebetteten Systeme sind so konzipiert, dass sie äußerst zuverlässig und stabil sind. Sie müssen ihre Aufgabe mit gleichbleibenden 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 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

Ressourcen zu Embedded Software

Mehr erfahren

Embedded Software und Netzwerkentwicklung

Finden Sie heraus, wie Sie schnell und effizient innovative, sichere Software entwickeln können, um wichtige Produktfeatures bereitzustellen.