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::perundara::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()
- Zeit-/Statusabfrage:
- Methoden:
«aapAPI,aapPortInterface» FileStorage:- Methoden:
- File-Handling:
DeleteFile(),FileExists(),GetAllFileNames(),GetCurrentFileSize(),GetFileInfo(),RecoverFile(),ResetFile() - Datenstrom-Zugriff:
OpenFileReadOnly(): ReadAccessor,OpenFileReadWrite(): ReadWriteAccessor,OpenFileWriteOnly(): ReadWriteAccessor
- File-Handling:
- Methoden:
«aapAPI,aapPortInterface» KeyValueStorage:- Methoden:
- CRUD-Operationen:
KeyExists(),GetValue(),SetValue(),RemoveKey(),RemoveAllKeys(),GetAllKeys() - Transaktions-/Persistenzsteuerung:
DiscardPendingChanges(),SyncToStorage(),RecoverKey(),ResetKey()
- CRUD-Operationen:
- Methoden:
Beziehungen & Stereotypen
«use» «aapRequiredPort»: VUCM besitzt drei Required Ports zur Konsumierung vonSynchronizedTimeBaseConsumer,FileStorageundKeyValueStorage.- Interface-Realisierung (gestrichelte Vererbungslinie):
Time SynchronizationrealisiertSynchronizedTimeBaseConsumer.Persistencyrealisiert sowohlFileStorageals auchKeyValueStorage.
3. Dynamisches Verhalten & Sequenzablauf
A. Initialisierung & Synchronisationsphase
- Port-Binding: VUCM instanziiert Proxy-/Client-Handles über
ara::core::InstanceSpecifiergegen das Manifest. - Event-Hooking (Time Sync): VUCM registriert Callbacks via
RegisterTimeLeapNotifier()undRegisterSynchronizationStateChangeNotifier(). Dies sichert ab, dass Kampagnen-Timeouts und Zertifikatsprüfungen sofort auf Sprünge der PTP/CAN-Zeitbasis reagieren.
B. Pakettransfer & Staging (FileStorage)
- Paketablage: Eintreffende Fahrzeug-Update-Pakete (Vehicle Packages) werden blockweise über
OpenFileWriteOnly()/ReadWriteAccessorin den durchara::perverwalteten Speicherbereich geschrieben. - Integritätscheck: Vor dem Kampagnenstart validiert VUCM Paketmetadaten via
GetFileInfo(),GetCurrentFileSize()und liest Manifeste überOpenFileReadOnly().
C. Kampagnenführung & Crash-Sicherheit (KeyValueStorage)
- Zustandssicherung: Zustandswechsel (z. B. Idle → Processing → Activating) werden atomar via
SetValue()hinterlegt. - Flush:
SyncToStorage()erzwingt das synchrone/deterministische Schreiben auf den physischen NVRAM/Flash-Speicher, um Power-Fail-Sicherheit während des ECUs-Flashvorgangs zu garantieren. - Recovery: Nach unerwartetem Reset/Spannungsausfall stellt VUCM den Status quo über
RecoverKey()bzw.RecoverFile()wieder her.
D. Zeitstempelung & Validierung (Time Synchronization)
- 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,PersistencyKeyValueStorageundTimeBaseResourcedefiniert und den entsprechendenPortPrototypessemantisch zugewiesen sein.
- Im Execution Manifest des VUCM-Prozesses müssen Instanzen für
- Blockierendes I/O & Threading:
SyncToStorage()sowie Zugriffe überReadWriteAccessorsind 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::PerErrcbzw.ara::ts::TsErrc). Kritische Fehler (wieStorageLocationCorrupted,OutOfMemory,TimeBaseUnsynchronized) müssen in der VUCM-Zustandsmaschine dedizierte Fail-Safe- oder Rollback-Pfade triggern.
- Alle API-Aufrufe liefern standardmäßig Fehlercodes (
- 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 viaDiscardPendingChanges()in den Basiszustand zurückgesetzt wird.
- Bei Datenkorruption muss die Applikationslogik entscheiden, ob über
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.