DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement FIG-bc38ec7d6cc22ce1 754 × 489 px 1 Release(s)

Figure 5.1: Interfaces required by Vehicle Update and Configuration Management from other Functional Clusters

SHA-256 Inhalts-Fingerabdruck: bc38ec7d6cc22ce14fc372ae27fce3417f71ccce2234629fec7b55efdab02b4d
✦ 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

  • Diagrammtyp: UML-Klassendiagramm / Port- und Schnittstellen-Architekturdiagramm der AUTOSAR Adaptive Platform (Modellierungsebene: Functional Cluster Inter-Cluster Dependencies).
  • Architektur-Kontext: AUTOSAR Adaptive Platform (R23-11), Spezifikation AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement (VUCM).
  • Funktionale Einordnung: VUCM fungiert als übergeordnete Instanz zur Koordination fahrzeugweiter Software-Updates, Diagnose-Flash-Abläufe und Konfigurationsänderungen über mehrere adaptive und klassische ECUs hinweg. Das Diagramm spezifiziert die normativen Plattform-Abhängigkeiten des VUCM-Daemons zu den fundamentalen Functional Clustern Persistency (PER) und Time Synchronization (TS) über standardisierte C++-Port-Schnittstellen (ara::per und ara::ts).

2. Komponenten, Entitäten & Schnittstellen

Entitäten & Functional Cluster
  • «aapFunctionalCluster» Vehicle Update and Configuration Management (daemon-based):
    • Konsument (Client); eigenständiger System-Prozess (Daemon), der die Update- und Rollback-Zustandsmaschinen steuert.
  • «aapFunctionalCluster» Time Synchronization (daemon-based):
    • Provider-Cluster; realisiert die lokale Synchronisation auf eine globale Fahrzeug-Zeitbasis (z. B. gPTP/IEEE 802.1AS, CAN-TS).
  • «aapFunctionalCluster» Persistency:
    • Provider-Cluster; stellt Abstraktionsschichten für nichtflüchtige Datenspeicherung (Flash/NVRAM) bereit.
Schnittstellen (Interfaces) & Methoden
  • «aapAPI,aapPortInterface» SynchronizedTimeBaseConsumer:
    • Methoden:
      • Zeit-/Statusabfrage: GetCurrentTime(), GetRateDeviation(), GetTimeWithStatus(): SynchronizedTimeBaseStatus
      • Notifier-Registrierung: RegisterStatusChangeNotifier(), RegisterSynchronizationStateChangeNotifier(), RegisterTimeLeapNotifier(), RegisterTimePrecisionMeasurementNotifier(), RegisterTimeValidationNotification()
      • Notifier-Deregistrierung: UnregisterStatusChangeNotifier(), UnregisterSynchronizationStateChangeNotifier(), UnregisterTimeLeapNotifier(), UnregisterTimePrecisionMeasurementNotifier(), UnregisterTimeValidationNotification()
  • «aapAPI,aapPortInterface» FileStorage:
    • Methoden:
      • File-Handling: DeleteFile(), FileExists(), GetAllFileNames(), GetCurrentFileSize(), GetFileInfo(), RecoverFile(), ResetFile()
      • Datenstrom-Zugriff: OpenFileReadOnly(): ReadAccessor, OpenFileReadWrite(): ReadWriteAccessor, OpenFileWriteOnly(): ReadWriteAccessor
  • «aapAPI,aapPortInterface» KeyValueStorage:
    • Methoden:
      • CRUD-Operationen: KeyExists(), GetValue(), SetValue(), RemoveKey(), RemoveAllKeys(), GetAllKeys()
      • Transaktions-/Persistenzsteuerung: DiscardPendingChanges(), SyncToStorage(), RecoverKey(), ResetKey()
Beziehungen & Stereotypen
  • «use» «aapRequiredPort»: VUCM besitzt drei Required Ports zur Konsumierung von SynchronizedTimeBaseConsumer, FileStorage und KeyValueStorage.
  • Interface-Realisierung (gestrichelte Vererbungslinie):
    • Time Synchronization realisiert SynchronizedTimeBaseConsumer.
    • Persistency realisiert sowohl FileStorage als auch KeyValueStorage.

3. Dynamisches Verhalten & Sequenzablauf

A. Initialisierung & Synchronisationsphase
  1. Port-Binding: VUCM instanziiert Proxy-/Client-Handles über ara::core::InstanceSpecifier gegen das Manifest.
  2. Event-Hooking (Time Sync): VUCM registriert Callbacks via RegisterTimeLeapNotifier() und RegisterSynchronizationStateChangeNotifier(). Dies sichert ab, dass Kampagnen-Timeouts und Zertifikatsprüfungen sofort auf Sprünge der PTP/CAN-Zeitbasis reagieren.
B. Pakettransfer & Staging (FileStorage)
  1. Paketablage: Eintreffende Fahrzeug-Update-Pakete (Vehicle Packages) werden blockweise über OpenFileWriteOnly() / ReadWriteAccessor in den durch ara::per verwalteten Speicherbereich geschrieben.
  2. Integritätscheck: Vor dem Kampagnenstart validiert VUCM Paketmetadaten via GetFileInfo(), GetCurrentFileSize() und liest Manifeste über OpenFileReadOnly().
C. Kampagnenführung & Crash-Sicherheit (KeyValueStorage)
  1. Zustandssicherung: Zustandswechsel (z. B. Idle → Processing → Activating) werden atomar via SetValue() hinterlegt.
  2. Flush: SyncToStorage() erzwingt das synchrone/deterministische Schreiben auf den physischen NVRAM/Flash-Speicher, um Power-Fail-Sicherheit während des ECUs-Flashvorgangs zu garantieren.
  3. Recovery: Nach unerwartetem Reset/Spannungsausfall stellt VUCM den Status quo über RecoverKey() bzw. RecoverFile() wieder her.
D. Zeitstempelung & Validierung (Time Synchronization)
  1. Audit-Trail & Zertifikate: Vor Übergabe von Software-Paketen an untergeordnete UCMs ruft VUCM GetTimeWithStatus() auf, um Aktualisierungszeitstempel für das Fahrzeug-Audit-Log zu generieren und Validitätsfenster (Validity Periods) von Signaturen gegen eine verifizierte Zeitbasis (SynchronizedTimeBaseStatus) zu prüfen.

4. Normative Relevanz & Entwickler-Hinweise

  • Execution Manifest & Port Allocation:
    • Im Execution Manifest des VUCM-Prozesses müssen Instanzen für PersistencyFileStorage, PersistencyKeyValueStorage und TimeBaseResource definiert und den entsprechenden PortPrototypes semantisch zugewiesen sein.
  • Blockierendes I/O & Threading:
    • SyncToStorage() sowie Zugriffe über ReadWriteAccessor sind typischerweise blockierende Systemaufrufe (Flash-Schreibzyklen). Diese dürfen keinesfalls im Haupt-Thread des Daemons ausgeführt werden; sie müssen in dedizierte Worker-Threads ausgelagert werden, um ein Ansprechen des Execution-Management-Watchdogs zu verhindern.
  • Fehlerbehandlung via ara::core::Result<T>:
    • Alle API-Aufrufe liefern standardmäßig Fehlercodes (ara::per::PerErrc bzw. ara::ts::TsErrc). Kritische Fehler (wie StorageLocationCorrupted, OutOfMemory, TimeBaseUnsynchronized) müssen in der VUCM-Zustandsmaschine dedizierte Fail-Safe- oder Rollback-Pfade triggern.
  • Recovery-Strategien (RecoverKey / RecoverFile):
    • Bei Datenkorruption muss die Applikationslogik entscheiden, ob über Recover* ein redundanter Backup-Sektor herangezogen wird oder ob die gesamte Update-Kampagne abgebrochen und via DiscardPendingChanges() in den Basiszustand zurückgesetzt wird.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapAPI,aapPortInterface» | FileStorage | + DeleteFile() + FileExists() + GetAllFileNames() + GetCurrentFileSize() + GetFileInfo() + OpenFileReadOnly(): ReadAccessor + OpenFileReadWrite(): ReadWriteAccessor + OpenFileWriteOnly(): ReadWriteAccessor + RecoverFile() + ResetFile() | «aapFunctionalCluster» | Persistency | «aapAPI,aapPortInterface» | KeyValueStorage | + DiscardPendingChanges() + GetAllKeys() + GetValue() + KeyExists() + RecoverKey() + RemoveAllKeys() + RemoveKey() + ResetKey() + SetValue() + SyncToStorage() | «aapAPI,aapPortInterface» SynchronizedTimeBaseConsumer | + GetCurrentTime() + GetRateDeviation() + GetTimeWithStatus(): SynchronizedTimeBaseStatus + RegisterStatusChangeNotifier() + RegisterSynchronizationStateChangeNotifier() + RegisterTimeLeapNotifier() + RegisterTimePrecisionMeasurementNotifier() + RegisterTimeValidationNotification() + UnregisterStatusChangeNotifier() + UnregisterSynchronizationStateChangeNotifier() + UnregisterTimeLeapNotifier() + UnregisterTimePrecisionMeasurementNotifier() + UnregisterTimeValidationNotification() | «aapFunctionalCluster» | Time Synchronization daemon-based | «aapFunctionalCluster» Vehicle Update and Configuration Management | daemon-based | «use» «aapRequiredPort» «use» «aapRequiredPort» «use» «aapRequiredPort»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R23-11 AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement S. 10 5.1 Figure 5.1: Interfaces required by Vehicle Update and Configuration Management from other Functional Clusters