Die Synchronisation lokaler Uhren in einem FlexRay Cluster basiert darauf, dass jedem FlexRay Knoten die Sende- und Empfangszeitpunkte aller statischen Botschaften von vornherein bekannt sind. Damit sind alle Knoten eines FlexRay Clusters in der Lage sowohl den Offset als auch die Steigung
so zu korrigieren, dass schon nach wenigen Zyklen alle FlexRay Knoten
jeden Kommunikationszyklus zum selben Zeitpunkt mit dem gleichen Takt
beginnen.
In einem FlexRay Cluster fungieren mindestens 2 und maximal 15 FlexRay Knoten als Sync-Knoten bzw. Sync Node (Synchronisationsknoten), die pro Zyklus eine Sync-Botschaft (Synchronisationsbotschaft) in einem definierten statischen Slot übertragen. Dabei handelt es sich um keine zusätzlichen Botschaften, sondern um statische Botschaften, bei denen der Sync Frame Indicator gesetzt ist.
Alle
FlexRay Knoten vergleichen die a priori bekannten Zeitpunkte mit den
Zeitpunkten, zu denen die Sync-Botschaften real eintreffen. Sie
erstellen dann eine sortierte Liste von Differenzen, aus denen sie mit
dem Fault Tolerant Midpoint (FTM) Algorithmus ihren Offsetkorrekturwert errechnen.
Der
FTM-Algorithmus sieht vor, dass die Extremwerte aus der Liste getilgt
werden, damit stark abweichende lokale Uhren die Kommunikation im
FlexRay Cluster nicht aus dem Tritt bringen. Bei bis zu sieben
Sync-Knoten werden Minimum und Maximum gestrichen. Bei mehr als sieben
Sync-Knoten fallen auch die zweitgrößten und zweitkleinsten Messwerte
heraus.
Die verbleibenden Messwerte werden addiert und gemittelt - das Ergebnis stellt den Offsetkorrekturwert dar. Die Ermittlung des Steigungskorrekturwertes
läuft identisch ab, nur mit dem Unterschied, dass die FlexRay Knoten
die, den Sync-Botschaften zugrunde liegenden, Zykluslängen messen.
Sowohl die Offset- als auch die Steigungskorrektur erfolgt auf der Basis der lokalen Uhren, deren kleinste Einheit der Mikrotick darstellt. Einen Offset
gleicht ein FlexRay Knoten durch das Hinzufügen oder Weglassen einer,
dem Offset entsprechenden, Anzahl von Mikroticks in der NIT am Ende
jedes ungeraden Zyklus aus. Dadurch verschiebt ein FlexRay Knoten den
eigenen Start des nächsten Zyklus und passt sich so an die anderen
FlexRay Knoten an.
Damit die Steigungskorrektur
nicht wie eine Offsetkorrektur wirkt, verteilt ein FlexRay Knoten die
dem Steigungskorrekturwert entsprechende Anzahl von Mikroticks
gleichmäßig über den folgenden geraden und ungeraden Zyklus. So ist
jeder FlexRay Knoten in der Lage, seinen Zyklus entweder zu verkürzen
oder zu verlängern.