DEENESPTFRRUARHIKOZHNL
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.
  • 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 auf FileStorage und KeyValueStorage zu (AUTOSAR-Port-Modellierung, typisiert über PortInterface).
  • Native API-Nutzung («use»): Direkter C++-Aufruf von Logger und PolicyDecisionPoint ohne Port-Overhead (modelliert als NativeInterface).
  • Interface-Realisierung (gestrichelte Linie mit geschlossener, nicht gefüllter Dreieckspitze): Persistency realisiert FileStorage und KeyValueStorage; Log and Trace realisiert Logger; Identity and Access Management realisiert PolicyDecisionPoint.

3. Dynamisches Verhalten & Sequenzablauf

  1. Autorisierungsprüfung (IAM / PDP):
    • Eingehende UDS-Requests (z. B. SID 0x27 SecurityAccess, SID 0x2E WriteDataByIdentifier oder 0x31 RoutineControl) triggern vor Ausführung synchron PolicyDecisionPoint::CheckAccess().
    • Bei fehlender Autorisierung antwortet das DM unmittelbar mit einer UDS Negative Response (z. B. NRC 0x33 SecurityAccessDenied oder NRC 0x7F ServiceNotSupportedInActiveSession).
  2. Diagnose-Logging (Log and Trace):
    • Jede Request-/Response-Transaktion, Statusänderung sowie unautorisierte Zugriffsversuche generieren Aufrufe über Logger::LogInfo(), Logger::LogWarn() oder Logger::LogError(). Stream-Objekte übergeben Nutzdaten non-blocking an den DLT-Daemon.
  3. 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).
  4. Fehlerbehandlung & Recovery:
    • Detektiert das DM Inkonsistenzen in den Diagnosedaten (CRC-Fehler, unvollständige Flash-Sektoren), forciert es RecoverKey()/RecoverFile() zur Wiederherstellung von Schattenkopien oder ResetKey()/ResetFile() zur Rückkehr auf Factory Defaults.

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 FileStorage und KeyValueStorage müssen im Adaptive Execution Manifest entsprechende RPortPrototype-Elemente angelegt und mit Instanzen von PersistencyPortPrototype verknüpft werden.
    • Zugriffsrechte (ReadAccessor, ReadWriteAccessor) sind restriktiv über das Manifest auf DM-Prozessebene einzuschränken.
  • **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 NRC 0x78 (RequestCorrectlyReceived-ResponsePending) zu vermeiden.
  • IAM-Policy-Definition:
    • Da PolicyDecisionPoint als «aapInternal» annotiert ist, existiert keine öffentliche Applikations-API; die Konfiguration von CheckAccess() erfordert statisch kompilierte oder manifestbasierte Sicherheitsrichtlinien (Access Rules/Privileges), die dem DM-Daemon zugewiesen sind.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R21-11 → R22-11 redaktionell Vorgänger: FIG-3775919f1c9cc401
  • PolicyDecisionPoint: Das zuvor unvollständige Stereotyp «aapInternal,aapNativeI... ist nun vollständig als «aapInternal,aapNativeInterface» ausgeschrieben.
  • Identity and Access Management: Das zuvor unvollständige Stereotyp «aapFunctionalClust... ist nun vollständig als «aapFunctionalCluster» ausgeschrieben; der Clustername ist einzeilig formatiert.
R22-11 → R23-11 normative Änderung Nachfolger: FIG-64079698f24cd844
  • Identity and Access Management: Der gesamte Functional Cluster und dessen Realisierungsbeziehung wurden entfernt.
  • PolicyDecisionPoint: Die interne Schnittstelle «aapInternal,aapNativeInterface» mit der Methode CheckAccess() sowie die zugehörige «use»-Beziehung von Diagnostic Management wurden entfernt.
  • Logger: Das Stereotyp «aapAPI,aapNativeInterf... ist nun vollständig als «aapAPI,aapNativeInterface» ausgeschrieben.
  • Log and Trace: Das Stereotyp «aapFunctionalClust... ist nun vollständig als «aapFunctionalCluster» ausgeschrieben.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapFunctionalCluster» Diagnostic Management daemon-based | «aapAPI,aapPortInterface» | FileStorage | + DeleteFile() + FileExists() + GetAllFileNames() + GetCurrentFileSize() + GetFileInfo() + OpenFileReadOnly(): ReadAccessor + OpenFileReadWrite(): ReadWriteAccessor + OpenFileWriteOnly(): ReadWriteAccessor + RecoverFile() + ResetFile() | «aapAPI,aapNativeInterf... | Logger | + IsEnabled() + Log(MsgId, Params) + LogDebug(): LogStream + LogError(): LogStream + LogFatal(): LogStream + LogInfo(): LogStream + LogVerbose(): LogStream + LogWarn(): LogStream + WithLevel(): LogStream | «aapFunctionalCluster» | Persistency | «aapFunctionalClust... | Log and Trace | «aapInternal,aapNativeInterface» | PolicyDecisionPoint | + CheckAccess() | «aapFunctionalCluster» Identity and Access Management | «aapAPI,aapPortInterface» | KeyValueStorage | + DiscardPendingChanges() + GetAllKeys() + GetValue() + KeyExists() + RecoverKey() + RemoveAllKeys() + RemoveKey() + ResetKey() + SetValue() + SyncToStorage() | «use» «use» «use» «aapRequiredPort» | «use» «aapRequiredPort»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R22-11 AUTOSAR_EXP_SWArchitecture S. 131 9.97 Figure 9.97: Interfaces required by Diagnostic Management