AUTOSAR_AP_EXP_SWArchitecture
FIG-aaab3974142e242a
247 × 402 px
1 Release(s)
Figure 9.36: Interface for time base providers
SHA-256 Inhalts-Fingerabdruck:
aaab3974142e242aa81aeb3ad388411763c3d2f68befde73f744d3ce14b80590
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Klassifikation: UML-Komponenten- und Schnittstellendiagramm (Component & Interface Diagram) unter Verwendung des AUTOSAR Adaptive Platform (AP) UML-Profils (
«aapFunctionalCluster»,«aapAPI,aapPortInterface»,«aapProvidedPort»,«use»). - Architektonische Einordnung: AUTOSAR Adaptive Platform (Release R24-11), Functional Cluster Time Synchronization (
ara::ts). - Technischer Zweck: Spezifikation der Schnittstelle
SynchronizedTimeBaseProvider. Das Diagramm definiert den Service-Vertrag für Adaptive Applications, die als aktive Zeitgeber (Master-Clock-Quellen, z. B. via GNSS/GPS, PTP-Grandmaster oder externe Referenznetzwerke) agieren und Zeitstempel, Frequenzkorrekturen sowie Validierungsereignisse in den zentralen, daemon-basierten Time-Synchronization-Cluster einspeisen.
2. Komponenten, Entitäten & Schnittstellen
- Entitäten & Komponenten:
Adaptive Application(Komponente): Anwendungs- oder Adapterprozess im User Space, der die Rolle des Time Base Providers einnimmt.Time Synchronization(Komponente mit Stereotyp«aapFunctionalCluster», Spezifikation:daemon-based): Zentraler Plattform-Daemon der AP, der synchronisierte Zeitbasen instanziiert, verwaltet und konsumierenden Anwendungen bereitstellt.SynchronizedTimeBaseProvider(Schnittstelle mit Doppel-Stereotyp«aapAPI,aapPortInterface»): Port-Interface bzw. C++ API-Definition zur Steuerung und Aktualisierung einer synchronisierten Zeitbasis.
- Methoden der Schnittstelle
SynchronizedTimeBaseProvider:+ GetCurrentTime(): Synchrones Auslesen des aktuellen Zeitstempels der Zeitbasis.+ GetRateCorrection(): Abfrage des aktiven Raten-/Drift-Korrekturfaktors.+ GetUserData(): Abruf von synchron mit der Zeitbasis transportierten anwendungsspezifischen Nutzdaten.+ RegisterTimeValidationNotification(): Registrierung eines Callbacks für Benachrichtigungen zur Zeitvalidierung (z. B. Synchronisationsstatus, Plausibilität).+ SetRateCorrection(): Vorgeben einer Ratenkorrektur zur Frequenzdrift-Kompensation.+ SetTime(): Absolutes Setzen der Zeitbasis (Hard Step / Initialisierung).+ SetUserData(): Setzen von applikationsspezifischen Begleitdaten zur Übertragung an verbundene Knoten.+ UnregisterTimeValidationNotification(): Deregistrierung des Validierungs-Callbacks.+ UpdateTime(): Inkrementelles bzw. kontinuierliches Nachführen der Zeitbasis (Slewing / Drift-Anpassung).
- Beziehungen:
- Interface Realization (
--▷): Der DaemonTime Synchronizationimplementiert die SchnittstelleSynchronizedTimeBaseProvider. - Dependency / Port-Bindung (
-->mit«use»,«aapProvidedPort»): DieAdaptive Applicationbindet die Schnittstelle über einen Provided Port des Daemons ein, um Schreib- und Steuerungszugriff auf die Zeitbasis zu erhalten.
- Interface Realization (
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungsphase:
- Die
Adaptive Applicationbindet die Instanz der Zeitbasis über den konfigurierten Port. - Initiale Zeitsynchronisation über
SetTime()(absoluter Startwert). - Konfiguration der Frequenz- und Ganggenauigkeit über
SetRateCorrection(). - Optional: Hinterlegung von Metadaten über
SetUserData().
- Die
- Zyklischer Betrieb & Nachführung:
- Regelmäßige Einspeisung korrigierter Zeitdaten via
UpdateTime()zur Vermeidung von Phasensprüngen durch kontinuierliches Slewing. - Zyklisches Nachjustieren der Drift mittels
SetRateCorrection(). - Synchrone Statusverifikation über
GetCurrentTime(),GetRateCorrection()undGetUserData().
- Regelmäßige Einspeisung korrigierter Zeitdaten via
- Asynchroner Validierungspfad:
- Mittels
RegisterTimeValidationNotification()wird ein Notification-Handler im Daemon registriert. - Bei Eintritt von Validierungsereignissen (z. B. Verlust der Referenzuhr, Schwellwertüberschreitung von Jitter/Drift) informiert der Daemon die Anwendung asynchron.
- Beendigung des Überwachungspfades über
UnregisterTimeValidationNotification().
- Mittels
4. Normative Relevanz & Entwickler-Hinweise
- Rollen- und Rechte-Restriktion: Im Gegensatz zu
SynchronizedTimeBaseConsumer(reiner Lesezugriff) erfordertSynchronizedTimeBaseProviderexklusive Zugriffsrechte. Pro Zeitbasis darf typischerweise nur ein einzelner autorisierter Provider aktiv sein (Single-Writer-Prinzip), um Inkonsistenzen und Zeit-Oszillationen auszuschließen. - Daemon-basierte IPC-Latenzen: Der Vermerk
daemon-basederzwingt Interprozesskommunikation (IPC) zwischen Anwendungs- und Daemon-Kontext. BeiSetTime()undUpdateTime()müssen Latenzzeiten und IPC-Jitter in die Zeitkorrekturrechnung einfließen. - C++ Interface-Vertrag (
ara::core::Result): Sämtliche Methodenaufrufe folgen dem fehlerbasierten AUTOSAR-Rückgabemuster (ara::core::Result<void>bzw.ara::core::Result<T>). Entwickler müssen explizit Fehlerzustände wie ungültige Zeitdomänen, fehlende Autorisierung (IAM), Bereichsverletzungen bei Ratenkorrekturen oder ungültige Zeitstempelsprünge abfangen. - Safety- & Determinismus-Auswirkungen: Harte Zeitsprünge durch
SetTime()wirken sich unmittelbar auf zeitgesteuerte Kommunikationsprotokolle (z. B. TSN / IEEE 802.1AS, SOME/IP-Timestamping), deterministische Schedulings und Logging aus.SetTime()sollte auf Initialisierungs- oder Fehler-Recovery-Phasen beschränkt bleiben; im regulären Regelbetrieb istUpdateTime()bzw.SetRateCorrection()zwingend vorzuziehen.
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.