TSEP Chronos ist die Implementierung für den IEEE 1588–2019 Standard, welche für mehrere Plattformen verfügbar ist und individuell auf weitere Geräte portiert werden kann. Dieser Stack wird nicht nur bei Kunden eingesetzt, sondern ist auch als Teil im LXI Reference Designs implementiert.
Die grundsätzliche Frage, die sich bei jedem IEEE 1588 Projekt stellt ist, mit welcher Genauigkeit die Zeitsynchronisation erfolgen muss. Die erreichbare Genauigkeit hängt in der Regel von der verwendeten Hardware, dem verwendeten Regelalgorithmus und der Topologie ab. Bisher war die Nutzung dieses Standards immer mit Implementierungen von Netzwerkadaptern in verschiedenen FPGAs oder Embedded Controller. Mit der Einführung der Intel Netzwerkchip Familien Intel I21x und Intel I35x ist dieser Standard nun für den Consumer Markt verfügbar. Somit ist die Grundlage für neue Projekte auf Basis von Consumer Hardware gelegt. Moderne IEEE 1588 Implementierungen haben die Möglichkeit, verschiedene Regelalgorithmen zu definieren und diese einfach auszutauschen. Auch TSEP hat den Regelalgorithmus als eigenständiges Modul mit definierten Schnittstellen festgelegt. Somit kann der Nutzer einfach einen eigenen Algorithmus definieren und diesen ins System einbringen und testen. Des Weiteren kann TSEP Chronos in der Netzwerktopologie sowohl als Ordinary Clock („Client“), als auch als Master Clock fungieren. Eine Master Clock seine eigene Uhrzeit mittels sogenannter Sync Messages über das angeschlossene Ethernet Netz, die Ordinary Clock empfängt diese Messages und beginnt daraufhin mit der Master Clock zu kommunizieren um sich zu synchronisieren. Bei Berücksichtigung dieser drei Aspekte lassen sich einfache Systeme aufbauen die im mittel eine Genauigkeit von +/- 20 Nanosekunden erreichen.
TSEP Chronos unterstützt hierbei sowohl das One Step Verfahren, bei diesem wird der aktuelle Zeitstempel direkt in die Sync Message integriert, was jedoch entsprechende Hardware Unterstützung voraussetzt. Für alle Netzwerk Chips ohne diese Unterstützung wird auch das Two Step Verfahren unterstützt, hier wird der Zeitstempel in einer zweiten Nachricht geschickt. Um eine genaue Zeitsynchronisation auch in Netzen mit Geräten (z. B. Switches oder Router), die nicht IEEE 1588 unterstützen zu gewährleisten, ist in TSEP Chronos als sogenanntes End-to-End (E2E) Lösung implementiert. TSEP Chronos kann nach der Synchronisierung auch Hardware Trigger auslösen. Diese erfordern jedoch die entsprechende Hardwareunterstützung. Dadurch besteht die Möglichkeit Messungen oder ähnliches synchron an mehreren Geräten auszulösen oder aber auch in Intervallen zu triggern, z. B. für ein PPS Signal. Zusätzlich kann TSEP Chronos auch die unterliegenden Betriebssysteme mit der IEEE 1588 Zeit versorgen.
TSEP Chronos unterstützt alle im IEEE 1588 Standard definierten Management Messages. Über diese Messages können Informationen abgefragt oder Einstellungen einer Clock manipuliert werden. TSEP Chronos kann als Standalone System betrieben werden und ist somit direkt auf dem gewünschten Gerät ausführbar. Voraussetzung hierfür sind jedoch unterstützte Netzwerkkarten (z. B. I21x von Intel). Unterstützt werden sowohl die Betriebssysteme von Windows (7 und 10) und Linux (Ubuntu 16.04). Zusätzlich kann TSEP Chronos auch unter den Echtzeit Betriebssystemen INtime von TenAsys und RTX64 von IntervalZero betrieben werden. Die Kombination von TSEP Chronos und einem Echtzeitbetriebssystem ist ideal für alle zeitkritischen Anwendungsfälle. Alle Operationen werden in solch einem System zur „richtigen Zeit“ und in Echtzeit ausgeführt! Da Intel keine Windows Treiber für die IEEE 1588 Unterstützung der Intel Netzwerk Chips I21x und I35x anbietet, stellt TSEP eigene Treiber bereit.
TSEP Chronos wurde komplett in C++ entwickelt und entspricht modernen Coding Richtlinien. Der gesamte Source Code ist für alle Plattformen identisch (common source) und muss nur entsprechend kompiliert werden. Um unabhängig von einer speziellen Entwicklungsumgebung zu sein, wurde CMake für die Codeverwaltung gewählt. Des Weiteren wurde ein konsequent objektorientierter Ansatz verfolgt.
Our work is inspired by science, not fiction!
Technical Software Engineering Plazotta
Hopfenstr. 30, 85283 Wolnzach,
Deutschland