Teil 1 dieser Serie hat kaskadierte Switch-Topologien in Zonal-Architekturen nur angerissen. Dieser Post zeigt die zwei konkreten AUTOSAR-Mechanismen dahinter: portspezifische Hardware-Zeitstempel und die Uhrensynchronisation zwischen direkt verbundenen Switches.

Der EthSwt_SetMgmtInfo-Mechanismus, der hier eine Rolle spielt, wurde im Zuge des Fact-Checks für Issue #145 korrekt einordnet: Er dient portspezifischem Frame-Handling für Zeitstempel-Metadaten — kein allgemeiner Konfigurationskanal (siehe den Management-Frames-Post dieser Serie für die vollständige Abgrenzung).

Switch Management Support: die Grundlage für EthTSyn

Kapitel 7.1.7.3 der SWS beschreibt Switch Management Support als Funktionalität, die es erlaubt, ein Ethernet-Frame bezüglich Switch-Port-spezifischer Ingress-/Egress-Behandlung sowie eines Port-spezifischen Zeitstempels zu steuern. Das ist laut SWS "essenziell für andere BSW-Module, insbesondere `EthTSyn`", das portspezifische Informationen zu einem Zeitsynchronisations- oder Laufzeitmessungs-Frame benötigt.

Die zugehörige API-Gruppe (aktiv, wenn EthSwtManagementSupportApi auf TRUE steht): EthSwt_EthRxProcessFrame, EthSwt_EthRxFinishedIndication, EthSwt_EthTxAdaptBufferLength, EthSwt_EthTxPrepareFrame, EthSwt_SetMgmtInfo, EthSwt_EthTxProcessFrame, EthSwt_EthTxFinishedIndication.

Ein wichtiges Detail für die Implementierung: EthSwt_EthTxProcessFrame und EthSwt_EthTxFinishedIndication kehren laut SWS sofort zurück, wenn EthSwt_SetMgmtInfo nicht vorher für dieses Frame aufgerufen wurde — die Management-Info muss also zwingend vor der eigentlichen Sende-Verarbeitung gesetzt werden.

Hardware-Zeitstempel je Port

Hardware-Zeitstempel werden je Port über EthSwtPortTimeStampSupport aktiviert. Zur Laufzeit steuert EthSwt_PortEnableTimeStamp(PortIdx) die tatsächliche Aktivierung — vorausgesetzt, EthSwtPortTimeStampSupport ist für diesen Port auf TRUE gesetzt.

Uhrensynchronisation zwischen kaskadierten Switches

Einige Switch-Chips können ihre interne Uhr direkt mit einem benachbarten Switch synchronisieren, wenn sie über einen Uplink-Port verbunden sind. Ist EthSwtClockSynchronizationSupport aktiviert, muss die Laufzeitverzögerung (Path Delay) zwischen den beiden verbundenen Uplink-Ports nicht mehr separat gemessen werden — die Uhren laufen bereits synchron.

Backbone-Switch                         Zonal-Switch
┌─────────────────────┐   Uplink-Port   ┌─────────────────────┐
│  interne Uhr           │◄───────────────►│  interne Uhr           │
│  EthSwtClockSync...     │  Uhren bereits  │  EthSwtClockSync...     │
│  Support = TRUE          │  synchron        │  Support = TRUE          │
└─────────────────────┘                  └─────────────────────┘
        ▲                                          ▲
        │ EthSwtPortTimeStampSupport            EthSwtPortTimeStampSupport
        │ nur an Nicht-Uplink-Ports              nur an Nicht-Uplink-Ports
   externe Ports                              externe Ports
 (Kameras, ECUs, ...)                        (Kameras, ECUs, ...)

Die beiden Konfigurationsregeln im Detail

Die SWS formuliert zwei sich ergänzende Constraints:

  • EthSwtPortTimeStampSupport darf TRUE sein, wenn EthSwtClockSynchronizationSupport deaktiviert ist (klassischer Fall: einzelner Switch, Zeitstempel an jedem Port nötig)

  • EthSwtPortTimeStampSupport darf auch TRUE sein, wenn EthSwtClockSynchronizationSupport aktiviert ist — aber nicht für Ports mit EthSwtPortRole = ETHSWT_UP_LINK_PORT. Uplink-Ports werden in diesem Fall bei der Laufzeit-Kompensation bewusst ausgenommen, weil die Uhrensynchronisation die Messung dort bereits überflüssig macht

Praktische Faustregel: Ist die Uhrensynchronisation zwischen zwei kaskadierten Switches aktiv, braucht der Uplink-Port selbst keinen eigenen Zeitstempel mehr — nur die externen Ports (zu Kameras, Zonal-ECUs etc.) an beiden Switches benötigen weiterhin EthSwtPortTimeStampSupport = TRUE.

Zusammenfassung

AspektKernaussage

Switch Management Support

Portspezifisches Frame-Handling für EthTSyn, kein Konfigurationskanal — SetMgmtInfo muss vor EthTxProcessFrame gesetzt werden

Hardware-Zeitstempel

Je Port über EthSwtPortTimeStampSupport + EthSwt_PortEnableTimeStamp

Uhrensynchronisation

EthSwtClockSynchronizationSupport spart Laufzeitmessung zwischen kaskadierten Switches über Uplink-Ports

Wechselwirkung

Zeitstempel und Uhrensynchronisation schließen sich an Uplink-Ports gegenseitig sinnvoll aus