Zeitig steuern

Seite 4: Zeitig steuern

Inhaltsverzeichnis

Sowohl die im Verlauf der Entwicklung unvermeidbaren Änderungsforderungen als auch die nötige Abstimmung mit Zulieferern verschärfen dieses Problem.

Vergleich mit Festplattenpartition

Das System kann die Bandbreite flexibler nutzen: Will ein Knoten in einem bestimmten Zyklus des zeitgesteuerten Busses keine Daten senden, verstreicht sein Slot ungenutzt. Bei einem rein ereignisgesteuerten System teilen sich alle Knoten die zur Verfügung stehende Bandbreite. Solange sendewillige Knoten im System sind, wird die zur Verfügung stehende Bitrate genutzt. Das lässt sich mit der Belegung einer Festplattenpartition vergleichen: Viele Betriebssysteme teilen den Platz in stets gleich großen Clustern zu. Dadurch entsteht bei zahlreichen Dateien, die deutlich kleiner als ein Cluster sind, viel "Verschnitt" – die Platte ist schneller voll. Könnte das Betriebssystem die Cluster-Größe dem Bedarf anpassen, ließe sich die Festplatte wesentlich effizienter nutzen.

Garantierter Nachrichtenversand

Ein ereignisgesteuerter Bus kann Nachrichten unterschiedlicher Länge versenden. Im rein zeitgesteuerten System haben dagegen typischerweise alle Sendeslots dieselbe Dauer und damit eine fixe Nachrichtenlänge. Sehr kurze Nachrichten lassen Teile eines Slots ungenutzt und für sehr lange Nachrichten müssen möglicherweise gleich mehrere Slots reserviert werden. Diesen Vorzügen steht bei zeitgesteuerten Systemen im Wesentlichen der garantierte Nachrichtenversand gegenüber: Der von einem Sensor gemessene Abstand zum vorausfahrenden Pkw muss mit einer garantierten Frequenz an das Steuergerät fließen. Um eine Entscheidung treffen zu können, muss es ebenso die eigene, aktuelle Geschwindigkeit kennen, die ein anderes Steuergerät auf den Bus gibt.

Flexray mit Zeitgefühl

Striktes Timing setzt voraus, dass die Knoten eines Flexray-Strangs eine gemeinsame "Wahrnehmung" der Zeit haben: Nur wenn alle Knoten die jeweils gültige Slotnummer wissen und Start und Ende des Slots hinreichend genau kennen, funktioniert die Zeitsteuerung kollisionsfrei. Nun arbeitet ein Flexray-Cluster aber als Multi-Master-System.

Es gibt keinen einzelnen Knoten, der als "Uhrmacher" für alle übrigen die Systemzeit festlegt. Jeder Knoten kann daher zunächst nur von seiner lokalen Uhr (Oszillator) ausgehen und hat lediglich eine lokale Sicht. Die globale Sicht müssen die Knoten durch Austausch und Abgleich von Zeitinformationen schaffen. Weil die lokalen Oszillatoren aber schon fertigungsbedingt individuell von der Nominalfrequenz abweichen, und beim Auto im Betrieb zwischen Kälte und Hitze auch noch deutlich temperaturabhängig wegdriften, besteht das globale Zeitempfinden nur temporär. Regelmäßiges Nachstellen wird nötig.

Knoten korrigiert seine interne Uhr

Alle paar Wochen zur Tagesschau-Zeit bemerken Sie, dass die von Oma geerbte Wanduhr mal wieder vorgeht. Die momentane Abweichung ist mit einem beherzten Dreh am Minutenzeiger schnell korrigiert, doch das Beheben des ursächlichen Gangunterschieds (Frequenzabweichung) per Rädchen am Pendel erfordert Fingerspitzengefühl und Geduld. Ein Flexray-Knoten korrigiert seine interne Uhr mit den gleichen Methoden: Die Offset Correction entspricht dem Einstellen der aktuellen Zeit, die Rate Correction dem Drehen am Rädchen der Pendeluhr. Die Synchronisation setzt bei den sogenannten Microticks an. Flexray tastet seinen 10-MBit/s-Bus nominell mit 80 MHz ab, ein Sample-Tick entspricht 0,0125 µs. Typischerweise zwei davon bilden einen Microtick. Bei einer Zykluszeit von zum Beispiel 5 ms treten so 200 000 Microticks pro Zyklus auf. Einen Offset gleicht der Knoten schlicht durch einmaliges Hinzufügen oder Weglassen einiger Ticks in der Network Idle Time am Zyklusende aus. So verschiebt er den eigenen Start des nächsten Zyklus und passt sich an die anderen Knoten an.