Gastbeitrag von Dominic Rath, IBV
Entstanden auf Basis eines Vortrags zum 3. PHYTEC Anwenderforum 2025
In der industriellen Automation werden für zahlreiche Anwendungen Embedded Systeme mit Linux-Betriebssystem eingesetzt und sollen häufig Echtzeit-Anforderungen erfüllen. Dominic Rath, Head of Technology von IBV, zeigt, wie beide Welten miteinander verbunden werden können und welche Rolle dabei moderne System on Chips (SoCs) mit dedizierten Echtzeit-Kernen spielen.

Was bedeutet „Echtzeit“ in der Industrie?
Im Kontext industrieller Anwendungen bedeutet Echtzeit die Behandlung externer Ereignisse innerhalb einer ausreichenden, maximalen Latenz. Bei einer zyklischen Kommunikation – z.B. über EtherCAT – ist die Bereitstellung neuer Eingabe-Daten und die Verarbeitung neuer Ausgabe-Daten innerhalb der Zykluszeit erforderlich, die typischerweise im Bereich von 1ms-100µs liegt. Gleichzeitig ist es das Ziel, neue Daten kurz vor dem Start der Kommunikation einzulesen, sodass Reaktionszeiten im Bereich weniger µs erforderlich sind. Andere, vergleichsweise alte Kommunikationsprotokolle, wie z.B. MODBUS/RTU definieren minimale und maximale Pause-Intervalle zwischen Zeichen, woraus sich ebenfalls Echtzeit-Anforderungen ergeben.
Neben diesen Latenz-Anforderungen spielen auch die Konsequenzen der Zeitüberschreitung eine Rolle. Sie führen zur Unterscheidung zwischen harter Echtzeit und weicher Echtzeit.
- Harte Echtzeit
bezeichnet Anwendungen, in denen die Reaktionszeit strikt eingehalten werden muss. Überschreitungen der Reaktionszeit führen zum Ausfall der Anwendung oder zum Rückfall in einen sicheren Betriebszustand. Anwendungen mit harten Echtzeit-Anforderungen finden sich häufig in sicherheitskritischen Systemen und mit Protokollen wie EtherCAT und PROFINET.
- Weiche Echtzeit
beschreibt Anwendungen, bei denen Echtzeit-Verletzungen bis zu einem bestimmten Maß toleriert werden können – ausschlaggebend für die Einhaltung ist der erreichte Durchschnittswert. Weiche Echtzeit-Anforderungen sind typisch für Anwendungen, in denen z.B. regelmäßig Füllstände und andere Daten übertragen werden, wobei Überschreitungen der Echtzeit-Anforderungen unter Umständen die Qualität der Daten beeinflussen, jedoch ohne Gefährdung für Menschen oder Maschinen.
Welche Stärken und Schwächen haben Linux-basierte Systeme für Echtzeit-Anwendungen
Linux ist das Betriebssystem der Wahl für Embedded Systeme in der Industrie – von Sensor-Elektroniken bis hin zu komplexen Cloud-Anwendungen: Es verbindet freie Programmierbarkeit und umfangreiche Features mit breiter Hardwareunterstützung. Was ihre Echtzeitfähigkeit betrifft, kann diese auf Betriebssystem-Ebene durch verschiedene Maßnahmen umgesetzt werden. Ein bekanntes Beispiel ist der PREEMPT_RT-Patch, der seit Linux 6.12 weitgehend im Mainline-Kernel integriert ist und Linux prinzipiell echtzeitfähig macht.
Eine weitere Option ist das Entwicklungsframework Xenomai, das einen Dual-Kernel-Ansatz verfolgt, bei dem Echtzeit-Threads in einer separaten Domäne laufen. Die begrenzte Interoperabilität zwischen Xenomai- und Linux-Threads führt hier jedoch häufig zu höherem Aufwand in der Entwicklung. Außerdem ist das Patchen und Portieren durch den Dual-Kernel-Ansatz aufwendiger.
Daneben gibt es noch weitere Ansätze zur Echtzeit-Implementierung für Linux – zum Beispiel mit Projekten wie RTAI und RTLinux.
„Linux auf Embedded Systemen ist generell echtzeitfähig – einige Einschränkungen müssen dabei aber beachtet werden“
Dieser generellen Echtzeit-Fähigkeit stehen jedoch auch Einschränkungen gegenüber – hauptsächlich bedingt durch die meist niedrigere Rechenleistung und Speicherausstattung von ARM-basierten Embedded Systemen gegenüber x86-Plattformen. Verhältnismäßig kleine Caches und Speicher, die Nutzung von Caches durch mehrere Cores, das Fehlen von L3-Caches sowie die Latenz beim Zugriff auf Hauptspeicher sind Faktoren, welche die Echtzeit-Fähigkeit der Systeme beeinflussen und zu einer nicht-deterministischen Latenz führen können – unter ungünstigen Umständen bis in den Bereich von 200-900µs oder sogar darüber hinaus. Ist das der Fall, eignen sich die Systeme nicht für den Einsatz in sicherheitskritischen Applikationen und anderen Anwendungen mit harten Echtzeit-Anforderungen.
SoCs mit Real-Time Cores:
So ermöglicht der TI AM64x harte Echtzeit auf Linux Embedded Systemen
Wie also können Embedded Systeme designt werden, die auch harte Echtzeit-Anforderungen zuverlässig erfüllen – ohne den teuren Overhead an Leistung und Speicherausstattung, zum Beispiel einer x86-Lösung mit Echtzeit-Linux? Eine effektive Lösung sind System on Chips (SoCs) mit heterogener Architektur, welche die Einschränkungen herkömmlicher Prozessoren mit dedizierten Echtzeitkernen und speziellen Hardwarebeschleunigern adressieren. Ein Beispiel dafür ist der Texas Instruments AM64x. Seine spezielle Architektur ermöglicht Reaktionszeiten von wenigen Takten, sodass Systeme auf Basis des Prozessors auch für extrem zeitkritische I/O-Aufgaben eingesetzt werden können.
TI AM64x: Prozessor-Architektur mit Echtzeit-Kernen
Dabei setzt der AM64 auf zwei Cortex-A53-Kerne mit 1 GHz Taktfrequenz, die unter Linux betrieben werden. Sie bieten eine hohe Rechenleistung und unterstützen SMP (Symmetric Multi-Processing), sind aber für nicht-echtzeitkritische Aufgaben vorgesehen. In der Regel übernehmen sie Software-Updates, Logging, Cloud-Anbindung, Parametrierung, die Steuerung von Dateisystemen (SD, eMMC) und Netzwerk-Stacks sowie umfangreiche Applikations- und Konnektivitätsfunktionen.
Ergänzt werden diese Rechenkerne durch ein Cortex-R5F-Subsystem, das aus bis zu vier Cortex-R5F-Kernen mit 800 MHz bestehen. Sie verfügen jeweils über 64 KB Tightly-Coupled Memory (TCM) und je 16 KB L1 Instruction/Data Cache und sind für Echtzeitanwendungen optimiert. Die R5F-Kerne übernehmen die industriellen Kommunikations-Stacks (z.B. EtherCAT, Profinet, Ethernet/IP) und die eigentliche Echtzeitapplikation. Sie bieten einen sehr hohen Determinismus, insbesondere bei Ausführung aus dem TCM.
Für extrem schnelle Reaktionen sind außerdem zwei Industrial Communication Subsystem Gigabit (ICSS-G) in den Prozessor integriert. Sie sind für die unterste Ebene der Protokolle und für schnelle I/O-Operationen zuständig, die Single-Cycle-Reaktionen erfordern. Jedes ICSS-G enthält dafür sechs proprietäre RISC-Kerne (zwei PRU, zwei RTU, zwei TX-PRU) mit bis zu 333 MHz Taktfrequenz, die in wenigen Takten auf externe Ereignisse reagieren können.

Die verschiedenen Cores des TI AM64x ermöglichen die Ausführung von komplexen Algorithmen sowie von extrem schnellen I/O-Operationen, sodass auch harte Echtzeit-Anforderungen erfüllt werden können.
Optimierte Kommunikation zwischen Linux- und Echtzeit-Cores
Die Kommunikation zwischen Linux und den Echtzeitkernen stellt sicher, dass die Rechenkerne die zyklische Datenverarbeitung jeweils entsprechend der verfügbaren Ressourcen übernehmen – und so, dass die Echtzeit-Anforderungen der Applikation eingehalten werden können. Je nach Betriebssystem der Echtzeit-Kerne – zum Einsatz können hier FreeRTOS, Zephyr, ThreadX oder Bare-Metal / no-OS kommen – erfolgt die Kommunikation z.B. über RPMsg (Remote Processor Messaging) und Shared Memory.
Die R5F-Kerne können unabhängig von Linux gestartet werden, was eine viel frühere Verfügbarkeit der Echtzeitkommunikation im Boot-Prozess ermöglicht. Alternativ können sie von Linux über das Remote-Proc-Interface geladen werden; das erlaubt eine engere Integration und einfachere Software-Updates.
Harte Echtzeit & Linux: Zwei Welten erfolgreich vereint
Wie also gelingen Projekte für die industrielle Automation, die Linux Embedded Systeme mit Echtzeit-Anforderungen verbinden? Das Beispiel des TI AM64x zeigt dafür einen Lösungsweg, bei dem leistungsstarke Linux-fähige Cortex-A53-Rechenkerne mit hochdeterministischen R5F-Echtzeitkernen und extrem schnellen ICSS-G / PRU als Hardware-Beschleunigern integriert werden. Diese Architektur ermöglicht einerseits eine funktionale Trennung und andererseits, die Stärken jedes Kerns optimal zu nutzen: Linux für die nicht-zeitkritischen, zuweilen aber rechenintensiven Aufgaben, die R5F-Kerne für die echtzeitkritische Verarbeitung industrieller Protokolle und die PRU-Kerne für Ultra-Low-Latency-Anwendungen. Diese Nutzung der heterogenen Architektur überwindet die Grenzen von Embedded Systemen in Bezug auf harte Echtzeitanforderungen und kann mögliche Reaktionszeiten von Millisekunden auf Mikrosekunden und sogar Nanosekunden reduzieren. Embedded Linux und harte Echtzeit-Anforderungen werden damit zum perfekten Team für die kostengünstige und effiziente industrielle Automatisierung – auch in sicherheitskritischen Anwendungen.
Ihr Embedded Echtzeit-Projekt: Erfolgreiche mit PHYTEC & IBV
Sie entwickeln Embedded Systeme mit Echtzeit-Anforderungen oder suchen einen passenden Entwicklungspartner? PHYTEC und IBV arbeiten seit über 15 Jahren erfolgreich zusammen – mit Kompetenz und Erfahrung von der Hardware- und Softwareentwicklung bis hin zu umfangreicher Projekterfahrung im Bereich Industrial Ethernet und Feldbussen.