Skip to main content
Diese Seite wird mit automatisierter Übersetzung angezeigt. Lieber auf Englisch ansehen?

Embedded Software

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

Welche verschiedenen Arten von Embedded Software gibt es?

Eingebettete Softwareanwendungen sind spezielle Programme in Nicht-PC-Geräten — entweder als Teil eines Mikrochips oder als Teil einer anderen Anwendung, die auf dem Chip sitzt — zur Steuerung bestimmter Funktionen des Geräts. Im Gegensatz zu PC-Anwendungen, die auf verschiedenen Computersystemen installiert und modifiziert werden können, um unterschiedliche Funktionen bereitzustellen, hat eingebettete Software feste Hardwareanforderungen und Funktionen. Es wurde exklusiv für das jeweilige Gerät erstellt, auf dem es läuft, mit Verarbeitungs- und Speicherbeschränkungen, die direkt an seine Spezifikationen gebunden sind. Im Kontext dieser Diskussion umfasst eingebettete Software Anwendungen, Firmware, Middleware und Betriebssysteme, die auf einem einzelnen Mikroprozessor oder Cluster von Mikroprozessoren ausgeführt werden, die in zusätzliche Logik „eingebettet“ sind.

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

A professional working on a computer with a graph, another person standing nearby observing the screen.

Eigenschaften und Features eingebetteter Systeme

Obwohl es viele Arten von eingebetteten Systemen gibt, haben sie alle dieselben vorteilhaften Merkmale und Konstruktionsmerkmale.

Alle eingebetteten Systeme sind aufgabenspezifisch

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

Alle eingebetteten Systeme sind hocheffizient

Die Ressourcenanforderungen eingebetteter Software sollten niemals die Kapazität der Hardware überschreiten, auf der sie installiert ist, und die Hardwarespezifikationen sollten niemals die absoluten Mindestanforderungen der eingebetteten 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 ausführen 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 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

Ressourcen zu Embedded Software

Weitere Informationen

Embedded Software und Netzwerkentwicklung

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