Zeitig steuern

Seite 3: Zeitig steuern

Inhaltsverzeichnis

In der Praxis gibt es nun nicht nur sicherheitskritische Informationen, sondern auch solche, auf die man ohne Probleme mal etwas länger warten kann: Ob der angezeigte Benzinverbrauch um 200 statt 20 ms veraltet ist oder zwischen Meldung des Regensensors und Auslösen der Scheibenwischer dreißig statt fünf Millisekunden verstreichen, fällt dem Fahrer nicht auf.

Solche Daten transportiert Flexray – obwohl vorrangig als zeitgesteuertes System ausgelegt – mit ereignisgesteuertem Nachrichtenversand im optionalen dynamischen Segment.

Knoten verstehen und lauschen

Die Slot-ID-Zählung geht im dynamischen Segment nahtlos weiter. Durch kombinierte Zeitmessung und Beobachtung des Busses entwickeln die Knoten ein gemeinsames Verständnis von der jeweils gültigen Slot-ID. Stellt ein Knoten fest, dass die aktuelle Slot-ID mit der ihm zugewiesenen übereinstimmt, darf er eine Nachricht variabler Länge versenden. Anschließend stellen alle Knoten durch passives Lauschen fest, dass die Slot-ID zu erhöhen ist und das Spiel beginnt von vorn.

Ausweg Cycle-Multiplexing

Zwar können die dynamischen Slots unterschiedlich lang sein, doch muss der Entwickler die Länge des dynamischen Segments trotzdem fest vorgeben, weil nur eine feste Zyklenlänge eine feste Sendefrequenz im statischen Segment ermöglicht. Deshalb kann man nicht sicherstellen, dass die Sendewünsche aller dynamischen Teilnehmer in jedem Zyklus berücksichtigt werden. Als Ausweg sieht Flexray Cycle-Multiplexing im dynamischen Segment vor: Es weist verschiedenen Knoten in unterschiedlichen Zyklen eine unterschiedliche Slot-ID zu, und damit auch eine geänderte Priorität.

Knoten fischt sich Informationen selbst

In einem Slot steckt übrigens immer auch genau ein Frame, in dem Flexray maximal 254 Byte transportiert. Das genügt für die Anwendungen im Automobil locker, selbst wenn ein Knoten analoge Messwerte gleich mehrerer Sensoren sendet. Die konkrete Größe gibt der Systemdesigner dabei für jeden Knoten fest vor. Eine individuelle Adressierung, mit der ein Knoten Nachrichten an einen ganz bestimmten anderen schickt, gibt es bei Flexray nicht. Alles geht als Broadcast auf den Bus, und jeder Knoten fischt sich anhand der Slot-ID nur die Informationen heraus, die für ihn wichtig sind.

Den dritten Zyklusabschnitt bildet das Symbol Window. Es dient zur Übermittlung von Flexray-internen Steuerungsinformationen. Beim Hochfahren des Systems, quasi dem Booten, wecken die Knoten einander durch Senden bestimmter Bitfolgen (Symbole) auf. Während der den Zyklus beschließenden Network Idle Time (NIT) können die Knoten schließlich die individuelle Gangabweichung ihrer Taktgeber ausgleichen und sich auf eine gemeinsame Systemzeit einigen.

Alle 1,25 Millisekunden eine Nachricht Ein typischer Flexray-Zyklus dauert vielleicht 2,5 Millisekunden, sodass ein Knoten seine Daten 400-mal pro Sekunde auf die Reise schicken kann. Ist das für einzelne Funktionen noch zu wenig, kann der Systementwickler dem jeweiligen Knoten mehrere geschickt auf den Zyklus verteilte Slots zuordnen, um zum Beispiel alle 1,25 ms eine Nachricht abzusetzen.

Zeit versus Ereignis

In einem rein Event-gesteuerten Bussystem sendet jeder Teilnehmer, wann immer seiner Anwendung danach ist. Kollisionen gehören da zum Alltag. Gegenüber einem zeitgesteuerten Zugriff bietet das Verfahren verschiedene Vorteile: Der Planungsaufwand sinkt, denn nicht jede von einer beliebigen Applikation auch nur sporadisch versendete Nachricht muss im Vorhinein in einem akribisch berechneten statischen Schedule berücksichtigt werden. Den gerade bei zeitgesteuerten Systemen entstehenden Aufwand zum Feineinstellen des Datenfahrplans sollte man auch bei gegebener Tool-Unterstützung nicht unterschätzen.