Showcase: Preempt RT und Time Sensitive Networking

Schon J. R. R. Tolkien wusste...

"Echtzeit ist nie zu spät, ebensowenig zu früh. Sie passiert genau dann, wenn sie es beabsichtigt."

Heutzutage verfügen selbst einfache und günstige Mikrocontroller über ausreichend Rechenleistung, um zeitkritische Aufgaben im industriellen Umfeld zu bearbeiten. Sind jedoch die Aktoren und Sensoren in einer größeren Anlage verteilt und sollen mittels Ethernet vernetzt werden, ist der tatsächliche Verarbeitungszeitpunkt eines Ereignisses nicht ohne weiteres vorhersehbar. Linux mit Preempt RT und ein Netzwerk mit Time Sensitive Networking (TSN) Funktionalitäten kann hier Abhilfe schaffen.

Verzögerungen bei der Übertragung der Daten können dabei sowohl innerhalb der Systeme als auch auf dem Übertragungsweg entstehen, wenn etwa kritische Daten von mehreren Quellen gleichzeitig übertragen werden. Je mehr moderne eingebettete und vernetzte Systeme zu schnellen Berechnungen und Datenverarbeitung in der Lage sind, desto mehr stellt sich nicht nur die Frage, ob das System "schnell genug" arbeitet, sondern ob die Ergebnisse auch "rechtzeitig" ankommen.

Der Einsatz von komplexen Netzwerk-Stacks auf Basis von 'Standard'-Ethernet ist in vielen Fällen ein Grund für einen Wechsel von einem Mikrocontroller zu einem Mikroprozessor samt vollwertigem Linux-Betriebssystem. Die Echtzeiteigenschaften auf dem System stellt dabei der Preempt RT Mechanismus im Linux-Kernel sicher, und auch für die zeitkritische Datenübertragung wandern derzeit zunehmend mehr TSN-Features in den Kernel.

TSN-Demonstrator

Das Thema TSN ist sehr heterogen und besteht aus einer Vielzahl von einzelnen Technologien: Einerseits stehen noch nicht alle bereits standardisierten Verfahren schon unter Linux zur Verfügung, andererseits werden aber auch nicht alle Mechanismen für jede Anwendungen benötigt.

Um tiefergehende Einblicke in die technischen Detailfragen zu erlangen, die sich während des Entwicklungsprozesses stellen, haben wir bei Pengutronix einen TSN-Demonstrator entwickelt:

Die "Schwebende Kugel" ist ein beliebtes Experiment, bei dem das Grundkonzept eines PID-Regelkreises demonstriert wird. Zur Durchführung wird ein Magnet an einem leichten Objekt (z. B. einer Papierschlaufe) befestigt. Dieses wird dann im Feld eines Elektromagneten zum Schweben gebracht: Ein Sensor erfasst die Position der Kugel und meldet sie an einen Regler, welcher wiederum den Strom durch den Elektromagneten entsprechend auf einen konstanten Abstand zum Sensor einstellt. Richtig umgesetzt schwebt die Kugel in einem Gleichgewicht, solange der Aufbau mit Strom versorgt wird.

Zur Simulation eines mittels TSN Ethernet vernetzten Systems werden Sensor, Aktor und Regler jeweils auf Einplatinencomputern auf Basis des STM32MP1 betrieben, auf denen ein aktueller Linux-Kernel (5.11) mit Preempt RT läuft. Die Geräte sind mittels Ethernet verbunden, das Precision Time Protocol (PTP) wird zur Synchronisation der Uhren der Teilnehmer verwendet.

Ziele

Im Demonstrator-Aufbau treten verschiedene Latenzen im Regelprozess der Position der Papierschlaufe auf:

  • Die vom Sensor gesammelten Informationen müssen vom ersten System verarbeitet werden.
  • Das Datenpaket muss dann seinen Weg durch das Netzwerk und zum Board mit der Controller-Software finden.
  • Der Regler muss den nächsten Zustand des Elektromagneten berechnen und dabei die Systemressourcen des Boards mit anderen Programmen und Diensten teilen.
  • Die resultierenden Werte müssen wiederum über das Netzwerk gesendet werden, um schließlich das System des Aktors zu erreichen und im richtigen Moment angewandt zu werden.

Um trotz auftretender Verzögerungen die Position der Kugel regeln zu können, müssen die Aktionen der einzelnen Komponenten in Echtzeit aufeinander abgestimmt werden.

Die PID-Regelschleife ist deshalb wie folgt realisiert:

  • Durch den Einsatz von PTP (IEEE 802.1AS) werden die internen Uhren der Systeme auf weniger als einer Mikrosekunde genau synchronisiert.
  • Latenz-Anomalien innerhalb der Software wurden analysiert und behoben.
  • Der Positionssensor wird synchron zum PTP-Timer ausgelesen und mit Zeitstempeln versehen; die Daten benötigen dabei etwa 600 µs vom Sensor bis zum Aktor.
  • Der PID-Regler läuft mit einer Frequenz von 1,25 kHz / 800 µs.
  • Schließlich muss die Software des Aktors dafür sorgen, dass der neue Zustand des Elektromagneten zum richtigen Zeitpunkt angewendet wird.

Das Ergebnis ist auf den Bildern zu sehen.

Nächste Schritte

Der Demonstratoraufbau gibt einen ersten Einblick in die verschiedenen Techniken rund um TSN unter Linux. Bei der Entwicklung wurden derzeit aktuelle SoCs auf ihre TSN-Eigenschaften untersucht: Nicht alle Mechanismen stehen dabei auf jeder Hardware zur Verfügung, sodass das SoC passend zur jeweiligen Aufgabe ausgesucht werden muss. Auf der Software-Seite gibt es ebenfalls noch Verbesserungsmöglichkeiten - viele der eingesetzten Techniken sind noch jung und entwickeln sich von Kernel zu Kernel schnell weiter. Es empfiehlt sich daher, eine aktuelle Linux-Version einzusetzen.

Wie kann Pengutronix bei TSN-Projekten helfen?

Mehr zu TSN und PTP

Die Kollegen bei OSADL führen fortlaufend Performance-Messungen zu RT- und TSN-Anwendungen durch. Bei Interesse sei ihr Artikel "Real-time Ethernet (TSN) synchronization analysis" empfohlen. (osadl.org)

Das Pengutronix Kernel-Team kann Industriekunden bei der Entwicklung von TSN-Systemen beraten und mit Entwicklungsdienstleistungen unterstützen. Eine wichtige Aufgabe ist dabei die Weiterentwicklung und Anpassung des Linux Kernels an die Anforderungen des Kundenprojekts, etwa durch neue Treiber für Switch-Chips und für TSN-Features in Netzwerkhardware.

Zu Beginn eines Projekts stehen die Evaluierung geeigneter Hardware- und Systemkomponenten im Mittelpunkt. In späteren Projektphasen können kritische Bereiche des Systems durch Software-bedingte Latenzen ausgebremst werden, die von unseren Kernel-Entwicklern lokalisiert und behoben werden.

Zurück zur Messeseite

Weiterführende Links

Showcase: Embedded off-the-shelf

Ein Firmware-Upgrade ist fällig. Eine neu implementierte Funktion muss ausgerollt, eine Sicherheitslücke gepatcht oder neue Hardware-Unterstützung hinzugefügt werden. Die Software ist zwar leistungsfähig, aber komplex. Pengutronix' Strategie, mit dieser Komplexität umzugehen, ist die Arbeit an einem versionskontrollierten Board Support Package (BSP) mit kontinuierlichen Updates und Tests auf dem neuesten Mainline-Linux-Kernel.


Showcase: Continuous Testing

In den Linux-Kernel wandern jedes Jahr etwa 70.000 Patche, viele davon sind Bugfixes. Das Gleiche gilt für die meisten anderen Open-Source-Projekte, die Teil eines modernen Linux-Systems sind. Um von der Arbeit in der Community profitieren zu können, bleibt als sinnvolle Strategie, ständig auf dem neusten Softwarestand aufzusetzen und das System aktuell zu halten. Natürlich können bei dieser Menge an Änderungen auch neue Fehler hinzukommen oder Inkompatibilitäten entstehen.


Showcase: Remote Working

Zur Projektarbeit mit unseren Kunden gehört die Arbeit mit Prototypen-Hardware. Da wir grundsätzlich parallel für mehrere Kunden an vielen verschieden Projekten arbeiten, bedeutet das eine Flut von Prototypen auf den Schreibtischen unserer Entwickler. Spätestens wenn im Team an einem Prototypen gearbeitet werden soll oder längere Zeit nicht aktiv an einem Projekt gearbeitet wird, muss die Hardware regelmäßig umgezogen und am neuen Arbeitsplatz verkabelt werden. Erschwerend kommt hinzu, dass die Entfernung zwischen unseren Entwickler-Schreibtischen durch die aktuelle Homeoffice-Situation, nicht wie gewohnt in Metern, sondern in Kilometern gemessen wird.


CLT-2021: Mach es einfach anders!

Marie Mann | | clt, linux, opensource

"Mach es einfach anders!" - unter diesem Motto finden die CLT dieses Jahr im virtuellen Raum statt. Wie auch in den letzten Jahren ist Pengutronix als Sponsor dabei. Anders ist, dass wir dieses Jahr unser eigenes kleines Programm mit spannenden Kurzvorträgen und täglich zwei Quiz-Runden mit tollen Hauptgewinnen mitbringen.


Showcase: Fail-Safe (OTA) Field Updating

Enrico Jörns | | didyouknow, rauc

Eingebettete Systeme und IoT-Geräte robust und sicher im Feld updaten zu können ist heute eine Kernanforderung jedes Produkts. Das Update-Framework RAUC ist die Basis für eine moderne und zukunftsfähige Lösung. In diesem Showcase zeigen wir die Grundprinzipien eines ausfallsicheren Update-Systems und wie Sie dieses mit Unterstützung von Pengutronix für Ihre Plattform realisieren können.


Showcase: Grafik auf i.MX8MP

Die Inbetriebnahme der Grafikausgabepipeline auf dem i.MX8M Plus (kurz i.MX8MP) ist ein aktuelles Beispiel dafür, wie Open Source und Upstream-Treiber für GPUs und Displayeinheiten Aufwand und Risiko im Projekt reduzieren können.


eMMC Hardware Partitionierung

Wenn ein Embedded-System für eine lange Lebensdauer vorgesehen ist, ist es nötig, sich mit der Applikation und der darunter liegenden Hardware auseinanderzusetzen - damit beide zusammen eine hohe Langzeitstabilität erreichen.


#FlattenTheCurve – Vorstellung unserer Remote-Infrastruktur

Die Corona-Krise hat uns alle, sowohl als Privatpersonen als auch als Firmen, plötzlich ziemlich hart getroffen und stellt unsere gesamte Gesellschaft vor neue Herausforderungen. Wir als Pengutronix möchten uns bei denjenigen bedanken, die in systemkritischen Berufen arbeiten und unsere alltägliche Versorgung sicherstellen.


Fürchte nicht den offenen Quellcode - 1x1 des Lizenzmanagements

Computerprogramme und Code sind urheberrechtlich geschützt, in Deutschland lässt sich dieser Schutz nicht umgehen oder ausschalten. Das Urheberrecht gewährt grundsätzlich nur demjenigen, der das Werk geschaffen hat ("Urheber"), die Rechte an dem Werk. Mithin dürfte nur der Entwickler den von ihm geschriebenen Code verwenden, verändern und verbreiten.