AUTOSAR_EXP_SWArchitecture
FIG-406602b349e35528
803 × 406 px
1 Release(s)
Figure 9.97: Interfaces required by Diagnostic Management
SHA-256 Inhalts-Fingerabdruck:
406602b349e355286746507d1e8df0fe5625b5a9294a2eb9e020b55015b7ba41
✦
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
- Klassifikation: UML-Schnittstellen- und Komponentendiagramm (AUTOSAR Adaptive Platform Architecture Modeling Profile
«aap*»). - Technischer Zweck: Spezifikation der strukturellen Abhängigkeiten und erforderlichen Serviceschnittstellen des Functional Clusters Diagnostic Management (DM) zu benachbarten Plattform-Clustern. Das Diagramm modelliert das DM als Daemon-basierte Architekturkomponente (
daemon-based), die für Fehlerspeicherverwaltung, UDS-Protokollabwicklung (ISO 14229-1 via DoIP/ISO 13400-2) und Session-Handling auf standardisierte Basisdienste der Adaptive Platform zurückgreift.
2. Komponenten, Entitäten & Schnittstellen
Akteure / Functional Cluster:
Diagnostic Management(«aapFunctionalCluster», Tag:daemon-based): Konsument aller modellierten Schnittstellen; agiert als zentraler Plattform-Daemon.Persistency(«aapFunctionalCluster»): Realisiert Persistierungsdienste für Diagnosedaten (DTC-Status, Freeze Frames, Extended Data Records, NvData).Log and Trace(«aapFunctionalCluster»): Realisiert standardisierte Logging- und Tracing-Dienste (ara::log).Identity and Access Management(«aapFunctionalCluster»): Realisiert Zugriffssteuerungs- und Autorisierungsprüfungen (ara::iam).
Schnittstellen, Typen & Methoden:
FileStorage(«aapAPI, aapPortInterface»):- Rolle: Dateibasierter Speicherzugriff für größere Datenblöcke (z. B. Crash-Logs, Trace-Puffer, binäre Speicherabbilder).
- Methoden:
DeleteFile(),FileExists(),GetAllFileNames(),GetCurrentFileSize(),GetFileInfo(),OpenFileReadOnly(): ReadAccessor,OpenFileReadWrite(): ReadWriteAccessor,OpenFileWriteOnly(): ReadWriteAccessor,RecoverFile(),ResetFile().
KeyValueStorage(«aapAPI, aapPortInterface»):- Rolle: Granulare Key-Value-Persistierung für DTC-Ereignisse, Debounce-Counter, DID-Werte und Zustandskonfigurationen.
- Methoden:
DiscardPendingChanges(),GetAllKeys(),GetValue(),KeyExists(),RecoverKey(),RemoveAllKeys(),RemoveKey(),ResetKey(),SetValue(),SyncToStorage().
Logger(«aapAPI, aapNativeInterface»):- Rolle: Direkte native Schnittstelle (
ara::log::Logger) zur Übermittlung strukturierter Log- und Diagnose-Trace-Events an DLT. - Methoden:
IsEnabled(),Log(MsgId, Params),LogDebug(): LogStream,LogError(): LogStream,LogFatal(): LogStream,LogInfo(): LogStream,LogVerbose(): LogStream,LogWarn(): LogStream,WithLevel(): LogStream.
- Rolle: Direkte native Schnittstelle (
PolicyDecisionPoint(«aapInternal, aapNativeInterface»):- Rolle: Plattform-interne Schnittstelle des IAM zur Autorisierungsprüfung eingehender Diagnoseanfragen (z. B. Security Access, geschützte DIDs/Routinen).
- Methoden:
CheckAccess().
Beziehungen & Stereotypen:
- Port-basierte Kopplung (
«use»,«aapRequiredPort»): DM greift über formale Required Ports aufFileStorageundKeyValueStoragezu (AUTOSAR-Port-Modellierung, typisiert überPortInterface). - Native API-Nutzung (
«use»): Direkter C++-Aufruf vonLoggerundPolicyDecisionPointohne Port-Overhead (modelliert alsNativeInterface). - Interface-Realisierung (gestrichelte Linie mit geschlossener, nicht gefüllter Dreieckspitze):
PersistencyrealisiertFileStorageundKeyValueStorage;Log and TracerealisiertLogger;Identity and Access ManagementrealisiertPolicyDecisionPoint.
3. Dynamisches Verhalten & Sequenzablauf
- Autorisierungsprüfung (IAM / PDP):
- Eingehende UDS-Requests (z. B. SID
0x27SecurityAccess, SID0x2EWriteDataByIdentifier oder0x31RoutineControl) triggern vor Ausführung synchronPolicyDecisionPoint::CheckAccess(). - Bei fehlender Autorisierung antwortet das DM unmittelbar mit einer UDS Negative Response (z. B. NRC
0x33SecurityAccessDenied oder NRC0x7FServiceNotSupportedInActiveSession).
- Eingehende UDS-Requests (z. B. SID
- Diagnose-Logging (Log and Trace):
- Jede Request-/Response-Transaktion, Statusänderung sowie unautorisierte Zugriffsversuche generieren Aufrufe über
Logger::LogInfo(),Logger::LogWarn()oderLogger::LogError(). Stream-Objekte übergeben Nutzdaten non-blocking an den DLT-Daemon.
- Jede Request-/Response-Transaktion, Statusänderung sowie unautorisierte Zugriffsversuche generieren Aufrufe über
- Zustandsspeicherung (Persistency):
- Normalbetrieb: Qualifizierte Fehlerereignisse (DTC confirmed/failed) und DID-Aktualisierungen werden über
KeyValueStorage::SetValue()bzw.FileStorage::OpenFileReadWrite()in den flüchtigen Cache geschrieben. - Absicherung: Das Schreiben auf den nicht-flüchtigen Speicher wird explizit durch
KeyValueStorage::SyncToStorage()abgeschlossen (z. B. bei Zündungswechsel, ECU-Shutdown via State Management oder periodisch).
- Normalbetrieb: Qualifizierte Fehlerereignisse (DTC confirmed/failed) und DID-Aktualisierungen werden über
- Fehlerbehandlung & Recovery:
- Detektiert das DM Inkonsistenzen in den Diagnosedaten (CRC-Fehler, unvollständige Flash-Sektoren), forciert es
RecoverKey()/RecoverFile()zur Wiederherstellung von Schattenkopien oderResetKey()/ResetFile()zur Rückkehr auf Factory Defaults.
- Detektiert das DM Inkonsistenzen in den Diagnosedaten (CRC-Fehler, unvollständige Flash-Sektoren), forciert es
4. Normative Relevanz & Entwickler-Hinweise
- Daemon-Architektur: Diagnostic Management agiert im Plattform-Kontext als System-Daemon und bindet Basisdienste über zwei getrennte Paradigmen an: formale AUTOSAR-Ports (
«aapPortInterface») für Speicherdienste und native Bibliotheks-APIs («aapNativeInterface») für Logging und Security. - Manifest- & Port-Konfiguration:
- Für
FileStorageundKeyValueStoragemüssen im Adaptive Execution Manifest entsprechendeRPortPrototype-Elemente angelegt und mit Instanzen vonPersistencyPortPrototypeverknüpft werden. - Zugriffsrechte (
ReadAccessor,ReadWriteAccessor) sind restriktiv über das Manifest auf DM-Prozessebene einzuschränken.
- Für
- **Echtzeit- und Timing-Constraint (UDS P2/P2\*-Server-Timer):**
KeyValueStorage::SyncToStorage()ist eine potenziell blockierende I/O-Operation. Sie darf im DM-Daemon nicht im Kontext des DoIP/UDS-Rx-Threads ausgeführt werden, um Timeouts (P2 = 50 ms, P2\* = 5000 ms) und daraus resultierende NRC0x78(RequestCorrectlyReceived-ResponsePending) zu vermeiden.
- IAM-Policy-Definition:
- Da
PolicyDecisionPointals«aapInternal»annotiert ist, existiert keine öffentliche Applikations-API; die Konfiguration vonCheckAccess()erfordert statisch kompilierte oder manifestbasierte Sicherheitsrichtlinien (Access Rules/Privileges), die dem DM-Daemon zugewiesen sind.
- Da
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.