Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Hochpräzise Zeitsynchronisation mit NVIDIA Jetson AGX Orin und IEEE-1588

GPU accelerated platform for time synchronisation

Die GPU-beschleunigte Plattform bietet PTP-Unterstützung für die Zeitsynchronisation im Submikrosekundenbereich.

Hochpräzise Zeitsynchronisation ist eine wichtige Voraussetzung für viele fortschrittliche Anwendungen wie Robotik, autonome Fahrzeuge, professionelle Audio-/Videoübertragung, Kommunikationsnetze und Stromnetze. Das IEEE-1588 Precision Time Protocol (PTP) hat sich zum Industriestandard für die Zeitsynchronisation im Submikrosekundenbereich in Ethernet-Netzen entwickelt und bietet eine um Größenordnungen bessere Leistung und eine viel robustere und ausgefeiltere Lösung als das Network Time Protocol (NTP).

Der NVIDIA Jetson AGX Orin bietet Ethernet mit PTP-Hardwareunterstützung sowie weitere fortschrittliche Synchronisationsfunktionen, die zusammen eine hochgenaue Zeitsynchronisation sowohl über verteilte vernetzte Systeme als auch über Komponenten innerhalb eines Jetson Orin AGX-Systems ermöglichen.

In diesem Artikel werfen wir einen Blick auf die IEEE-1588-Unterstützung des Jetson AGX Orin und die damit verbundenen Funktionen und nutzen die Linux-PTP-Software, um ein AGX Orin Developer Kit (253-9662) mit einer IEEE-1588-Grandmaster-Uhr zu synchronisieren, die auf GPS referenziert ist.

Ein einfacher Test

Simple test using Jetson AGX Orin Developer Kit

Für diesen einfachen Test haben wir ein Jetson AGX Orin Developer Kit über WiFi mit dem LAN verbunden, dessen Ethernet-Port direkt mit einem IEEE-1588-Grandmaster verkabelt ist, der über eine Rubidium-Atomuhr verfügt und auf GPS referenziert ist. Die Verwendung eines Rubidium-Oszillators bedeutet, dass der Grandmaster in einem "Holdover"-Szenario, in dem das GPS-Signal vorübergehend ausfällt, eine höhere Stabilität aufweist. Der Grandmaster verfügt auch über einen Management-Ethernet-Anschluss, der mit dem LAN verbunden wurde.

Wir hätten den grandmaster und den Jetson AGX Orin auch über einen Ethernet-Switch verbinden können, aber dieser müsste ein PTP-fähiger Switch sein, wenn wir eine hochpräzise Uhrensynchronisation erreichen wollen; die Verwendung eines normalen Ethernet-Switches würde die Leistung drastisch verringern. Es gibt eine Vielzahl von Switches, die PTP unterstützen, von kleinen Desktop-Modellen mit Gigabit-Ethernet bis hin zu Rack-Switches mit 100G-Ports, und auch Industriemodelle.

verify that an Ethernet port is capable of PTP hardware timestamping

Mit dem Linux-Dienstprogramm ethtool können wir überprüfen, ob ein Ethernet-Anschluss für PTP-Hardware-Zeitstempel geeignet ist. Oben sehen wir die unterstützten Fähigkeiten und Modi, die für das AGX Orin Dev-Kit gemeldet werden. Wir können auch sehen, dass es ein /dev/ptp0 Linux-Gerät gibt, das diesem Port entspricht.

Es gibt zwei PTP-Softwareoptionen, die über die Jetson-Linux-Paket-Repositories verfügbar sind: PTP Daemon und Linux PTP. Wir haben Letzteres mit installiert:

$ sudo apt install linuxptp

Die Linux-PTP-Software wird mit einer Standardkonfiguration geliefert, und diese wurde verwendet, um die Hardware-Uhr des AGX Orin-Ethernet-Adapters mit dem Grandmaster zu synchronisieren.

$ cd /etc/linuxptp
$ sudo ptp4l -i eth0 -f ptp4l.conf -m

timestamp_timeout warnings

Die Standardkonfiguration führte jedoch zu tx_timestamp_timeout-Warnungen und enormen Verzögerungen beim Taktversatz, wobei Linux PTP abwechselnd den Grandmaster auswählte und ihn dann nach kurzer Zeit als fehlerhaft markierte.

timeout value

zum Glück haben wir einen NVIDIA forum post  gefunden, der einfach die Erhöhung des Wertes tx_timestamp_timeout vorschlug.

Success timestamp after fix

Ein erneutes Ausführen von ptp4l führte nun zum Erfolg und wir konnten sehen, wie der Offset unserer Hardware-Uhr immer kleiner wurde, da er mit der PTP-Zeit konvergierte.

Zu diesem Zeitpunkt hatten wir es geschafft, die PTP-Hardwareuhr (PHC) im Jetson AGX Orin Ethernet-Subsystem mit unserem Grandmaster zu synchronisieren. Als Nächstes mussten wir die Systemuhr des AGX Orin mit der PHC synchronisieren, was wir durch Ausführen des Programms erreichten:

$ sudo phc2sys -a -r -m

large offset figure

Auch hier sehen wir einen anfänglich großen Offset-Wert, der sich mit der Konvergenz der Systemuhr verringert.

In einem Produktionsszenario würde diese Software natürlich von systemd gestartet und verwaltet werden.

Logging on to our grandmaster

Als wir uns über den Management-Port an unserem Grandmaster anmeldeten, konnten wir sehen, dass ein Client angeschlossen war.

confirm the client IP address

Dann konnten wir die client IP Adresse anzeigen lassen.

Erweiterte Funktionen

Orin Series SoC Technical Reference Block Diagram

Orin Series SoC Technical Reference Manual, page 5792.

Das System-on-Chip (SoC) der Jetson Orin-Serie verfügt über ein ausgeklügeltes System von Zeitgebern. Dazu gehört der TimeStamp Counter (TSC), der beim Booten gestartet wird, bevor der Linux-Kernel geladen wird, und der als Referenz für andere Zeitgeber, wie die generischen Zeitgeber des Arm-Prozessors, verwendet wird. Der Haupt-TSC (MTSC) ist ein numerisch gesteuerter Oszillator (NCO), der von einem 32.768 Hz-Takt abgeleitet ist. Ein sekundärer TSC nimmt seinen Anfangswert vom Haupt-TSC, hat aber die Möglichkeit, eine externe Referenz zu verfolgen, wie z. B. einen Puls-pro-Sekunde (PPS)-Eingang von einem GNSS-Empfänger oder PTP von Ethernet.

Block diagram how a PTP grandmaster can be used to provide a time reference

Oben sehen wir, wie ein PTP-Grandmaster als Zeitreferenz verwendet werden kann, wobei der TSC mit der PTP-Sekundengrenze synchronisiert wird, die wiederum zur Erzeugung eines phasensynchronisierten PTP-Kamerabildsynchronisationssignals (Fsync) verwendet werden kann. Mit anderen Worten, wir können die Kamerabildaufnahme mit PTP und damit dem globalen Zeitstandard, der Internationalen Atomzeit (TAI), abgleichen.

Das Alignment von Kamerabildern ist in einem einzelnen System, an das mehrere Kameras angeschlossen sind, schon interessant genug (an den Jetson AGX Orin können bis zu 8x MIPI CSI-Kameras direkt angeschlossen werden, und seine Video Input (VI) Engine unterstützt maximal 6x gleichzeitige Videoströme). Dies wird jedoch noch interessanter bei Anwendungen mit mehreren vernetzten Systemen.

Weitere fortschrittliche Funktionen zur Zeitsynchronisation sind:

PTP-Brücke im Tegra MAC. Damit kann die Zeitsynchronisation vom primären Ethernet-Port - der mit dem PTP-Grandmaster verbunden ist - an einen anderen Port und damit an ein anderes Gerät, z. B. einen mit dem Ethernet verbundenen Sensor, übertragen werden.

Ein Zeitkorrelationsmodul, das eine gleichzeitige und korrelierte Momentaufnahme mehrerer Zeitbereiche wie CCPLEX TSC, PTP usw. zu einem bestimmten Ereignis liefert, die von der Software der oberen Schicht genutzt werden kann.

Mehr Details im NVIDIA DRIVE OS Linux SDK Developer Guide.

Anwendungen

Zahlreiche Anwendungen können von einer hochgenauen Zeitsynchronisation profitieren, und die Liste wird im Zuge der endlosen Suche nach mehr Leistung in vielen Bereichen immer länger. Es liegt auf der Hand, dass PTP in der Robotik, bei autonomen Fahrzeugen und in fortschrittlichen Fertigungsprozessen zum Einsatz kommen kann, wo die Sensorfusion ein heißes Thema ist und ein hohes Maß an Koordination in der Regel unerlässlich ist.

IEEE-1588 wurde von der professionellen audiovisuellen Industrie übernommen, wo es eine grundlegende Rolle bei Standards wie AES67 Audio over IP/Ethernet spielt. Ähnlich verhält es sich mit den TSN-Normen (Time Sensitive Networking), die aus den Anforderungen der audiovisuellen Industrie hervorgegangen sind, nun aber auch in der Luft- und Raumfahrt, der Automobilindustrie, der industriellen Automatisierung und anderen Bereichen Anwendung finden.

Telekommunikationsnetze waren eine wichtige Triebkraft für die Entwicklung von PTP, und es wird in großem Umfang in 4G- und 5G-Netzen verwendet, wo es sicherstellt, dass die Basisstationen auf der richtigen Frequenz arbeiten und das Luftschnittstellen-Framing angemessen ausgerichtet ist, ohne das ein nahtloser Handover nicht möglich wäre und die Gesamtleistung des Netzes erheblich beeinträchtigt würde.

Viele Branchen haben ihre eigenen IEEE-1588-Profile, die einen gemeinsamen Satz von Parametern festlegen, die für eine bestimmte Anwendungsklasse optimiert sind und die Interoperabilität erleichtern. Dazu gehören auch die Stromprofilstandards, die es PTP ermöglichen, ältere Technologien wie IRIG-B zu ersetzen. Zu den Anwendungen gehören die Synchronisierung von Stromnetzen und die Messung von Energie und Netzqualität.

Abschließende Worte

NVIDIA Jetson AGX Orin ermöglicht nicht nur die Einbettung von Hochleistungsrechnern in Systeme und die Platzierung am Rande des Netzwerks, sondern auch, dass Anwendungen von einer hochpräzisen Zeitsynchronisation und erweiterten Zeitsynchronisationsfunktionen profitieren. Und in diesem Artikel haben wir gesehen, wie einfach es ist, mit Jetson AGX Orin und IEEE-1588 PTP-Zeitsynchronisation loszulegen.

  — Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.