AUTOSAR_SWS_TimeSyncOverEthernet
FIG-cbcadeed7ab76217
872 × 1227 px
1 Release(s)
Figure 7: EthTSyn Egress Timestamping
SHA-256 Inhalts-Fingerabdruck:
cbcadeed7ab762179ac925b0a25a1bf28f76bd2e6906166478447d436cbdc8a1
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08
1. Diagrammtyp & Architektur-Kontext
UML-Sequenzdiagramm zur Darstellung des Egress-Timestamping-Ablaufs in der AUTOSAR Classic Platform (SWS TimeSyncOverEthernet). Das Diagramm spezifiziert die Interaktionen bei der Sendezeitstempelung (Hardware- und Software-basiert) im Rahmen der Ethernet-Zeitsynchronisation (gPTP / IEEE 802.1AS) entlang des Protokollstapels vom Ethernet-Treiber über das Ethernet-Interface und EthTSyn bis zur Synchronized Time-Base Manager (StbM).
2. Komponenten, Entitäten & Schnittstellen
Beteiligte Komponenten (Stereotyp «module»):
StbM: Synchronized Time-Base ManagerEthTSyn: Time Synchronization over EthernetEthIf: Ethernet InterfaceEth: Ethernet Driver / Controller
Schnittstellen & Funktionsaufrufe:
EthIf_TxConfirmation(uint8, Eth_BufIdxType, Std_ReturnType): Callback vonEthanEthIfEthTSyn_TxConfirmation(uint8, Eth_BufIdxType): Callback vonEthIfanEthTSynEthIf_GetEgressTimeStamp(Std_ReturnType, uint8, Eth_BufIdxType, Eth_TimeStampQualType**, Eth_TimeStampType**): Abruf des Hardware-Sendezeitstempels durchEthTSynbeiEthIfEth_GetEgressTimeStamp(Std_ReturnType, uint8, Eth_BufIdxType, Eth_TimeStampQualType**, Eth_TimeStampType**): Weiterleitung des Zeitstempelabrufs vonEthIfanEthEthIf_GetCurrentTime(Std_ReturnType, uint8, Eth_TimeStampQualType**, Eth_TimeStampType**): Abruf der aktuellen Treiber-/Hardware-ZeitbasisStbM_GetCurrentVirtualLocalTime(Std_ReturnType, StbM_SynchronizedTimeBaseType, StbM_VirtualLocalTimeType**): Abruf der virtuellen lokalen Zeit (VLT) aus dem StbM
3. Dynamisches Verhalten & Sequenzablauf
Der Ablauf wird durch die Bestätigung einer vorangegangenen Nachrichtenübertragung initiiert:
EthruftEthIf_TxConfirmationauf, welchesEthTSyn_TxConfirmationanstößt.- Übergeordneter Rahmen
opt Message Type: Nur aktiv, falls der NachrichtentypSync,Pdelay_ReqoderPdelay_Respentspricht. - Fallunterscheidung
alt EthTSynHardwareTimestampSupport:- Zweig
[EthTSynHardwareTimestampSupport == TRUE]:EthTSynfragt überEthIf_GetEgressTimeStampden Egress-Timestamp ab (EthIfleitet dies anEth_GetEgressTimeStampweiter).- Rückgabe liefert
*timeStampEgress, ZuweisungT2vlt = *timeStampEgress. - Unterteilung nach Nachrichtentyp (
alt Message Type):[Type == Sync]:- Fallunterscheidung
alt Time Source of StbM:[Time Source of StbM == ETH freerunning]: BerechnungFollow_Up.preciseOriginTimestamp = T0 + (T2vlt - T0vlt).[Time Source of StbM != ETH freerunning]:EthTSynruftEthIf_GetCurrentTimeauf (ergibtT3vlt = *timeStampPtr) und danachStbM_GetCurrentVirtualLocalTimeanStbM(ergibtT4vlt = *localTimePtr). Berechnung:Follow_Up.preciseOriginTimestamp = T0 + (T4vlt - T0vlt) - (T3vlt - T2vlt).
- Fallunterscheidung
[Type == Pdelay_Req]: Lokale Zuweisungt1 = T2vlt.[Type == Pdelay_Resp]: Zuweisungt3 = Pdelay_Resp_Follow_Up.responseOriginTimestamp = T2vlt.
- Zweig
[EthTSynHardwareTimestampSupport == FALSE]:EthTSynruft direktStbM_GetCurrentVirtualLocalTimeauf.- Unterteilung nach Nachrichtentyp (
alt Message Type):[Type == Sync]: ZuweisungT4vlt = *localTimePtrund BerechnungFollow_Up.preciseOriginTimestamp = T0 + (T4vlt - T0vlt).[Type == Pdelay_Req]: Zuweisungt1 = *localTimePtr.[Type == Pdelay_Resp]: Zuweisungt3 = Pdelay_Resp_Follow_Up.responseOriginTimestamp = *localTimePtr.
- Zweig
4. Normative Relevanz & Entwickler-Hinweise
Kritische Timing- und Synchronisationsanforderungen:
- Für
Type == Syncgilt: Die ReferenzzeitenT0undT0vltwerden vorab bei Aufruf vonStbM_BusGetCurrentTime()gemeinsam mitEthIf_Transmit()im Kontext derEthTSyn_MainFunction()erfasst. - Im Hardware-Timestamping-Zweig bei abweichender StbM-Zeitquelle (
Time Source of StbM != ETH freerunning) müssen Interrupts ab dem Start vonEthIf_GetCurrentTime()bis zur Rückkehr vonStbM_GetCurrentVirtualLocalTime()gesperrt werden, um zeitliche Konsistenz sicherzustellen. - Im Software-Timestamping-Zweig (
EthTSynHardwareTimestampSupport == FALSE) mussStbM_GetCurrentVirtualLocalTime()(im Notiztext alsStbM_GetCurrentVirtualTime()bezeichnet) so früh wie möglich in der TxConfirmation aufgerufen werden; Interrupts sind ab Eintritt in die TxConfirmation bis zur Rückkehr des Aufrufs zu sperren.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.