DEENESPTFRRUARHIKOZHNL
AUTOSAR_SWS_DiagnosticEventManager FIG-8b944a442441ecb0 932 × 281 px 1 Release(s)

Figure 7.51: Buffer format used by Dem_GetNextFreezeFrameData

SHA-256 Inhalts-Fingerabdruck: 8b944a442441ecb0e5d20b25ae114e2ddcbab00366ba43e1987033af31c4c91c
✦ 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: Speicher- und PDU-Serialisierungs-Layout (Binary Buffer / Wire-Format).
  • Funktionale Einordnung: Spezifikation des Byte-Layouts im Zielpuffer (DestBuffer), den der Diagnostic Event Manager (Dem) bei Aufruf der API Dem_GetNextFreezeFrameData an den Diagnostic Communication Manager (Dcm) übergibt.
  • Architektur-Zweck:
    • Abbildung des Snapshot-Datensatzes für UDS Service 0x19 0x04 (ReadDTCInformation / reportDTCSnapshotRecordByDTCNumber) gemäß ISO 14229-1 sowie WWH-OBD (ISO 27145) bei Record 0x00 ([SWS_Dem_00576]).
    • Optimiertes Dem/Dcm-Interface: Im Gegensatz zum PID-Handling (OBD-II), bei dem der Dcm Header und PIDs assembliert, übernimmt der Dem die DID-Serialisierung autonom. Der Puffer enthält den vollständig formatierten Payload für die UDS-Response, sodass der Dcm ohne Restrukturierung (Zero-Copy / direkte Übergabe an PduR) agieren kann.

2. Komponenten, Entitäten & Schnittstellen

  • Beteiligte BSW-Module:
    • Dem (Diagnostic Event Manager) – Datenquelle, Fault-Memory- und Freeze-Frame-Verwaltung.
    • Dcm (Diagnostic Communication Manager) – Aufrufer, UDS-Protokoll-Handler.
  • APIs & Signaturen:
    • Dem_SelectFreezeFrameData(uint8 ClientId, uint8 RecordNumber) – Selektions- und Filter-API ([SWS_Dem_00630]).
    • Dem_GetNextFreezeFrameData(uint8 ClientId, uint8* DestBuffer, uint16* BufSize) – Datenbereitstellungs-API ([SWS_Dem_00071], [SWS_Dem_00074], [SWS_Dem_01272]).
  • Buffer-Entitäten & Byte-Offsets:
    • Byte 0: RecordNum (1 Byte) – DTCSnapshotRecordNumber gemäß ISO 14229-1. Berechnet (z. B. fortlaufend 0x01) oder konfiguriert (z. B. erster Wert einer Sequenz; 0x00 für WWH-OBD).
    • Byte 1: Num of DIDs (1 Byte) – DTCSnapshotRecordNumberOfIdentifiers. Anzahl der im Snapshot enthaltenen DIDs.
    • Byte 2..3: 1st DID (2 Byte, Big-Endian / Network Byte Order) – 16-Bit Data Identifier.
    • Byte 4..j: Data #1 (Variable Länge) – Konkatenierte Nutzdaten des ersten DID, zusammengesetzt aus atomaren Datenelementen (Data element #1 bis Data element #N), abgebildet über DemDataElementClass.
    • Byte j..k: ... – Folgende DID- und Datenblöcke.
    • Byte k..(k+2): Nth DID (2 Byte, Big-Endian) – Letzter 16-Bit Data Identifier.
    • Byte (k+2)..n: Data #N (Variable Länge) – Nutzdaten des N-ten DID.
    • Byte 0..n: requested freeze frame record – Vollständiger Record-Container.

3. Dynamisches Verhalten & Sequenzablauf

  1. Initialisierung / Selektion:
    • Dcm empfängt UDS-Request 0x19 0x04 mit DTC und RecordNumber.
    • Dcm ruft Dem_SelectFreezeFrameData(ClientId, RecordNumber) auf; der Dem initialisiert den internen Lesecursor für den adressierten DTC.
  2. Datenauslese:
    • Dcm ruft synchron Dem_GetNextFreezeFrameData(ClientId, DestBuffer, &BufSize) auf.
    • Der Dem serialisiert RecordNum, Num of DIDs sowie alle konfigurierten DID/Data-Tupel sequenziell in DestBuffer.
    • Bei erfolgreicher Serialisierung schreibt der Dem die tatsächlich geschriebene Byte-Anzahl zurück in BufSize.
  3. Rückgabewerte & Fehlerpfade:
    • E_OK: Datensatz vollständig geschrieben.
    • DEM_BUFFER_TOO_SMALL: Der über BufSize signalisierte Puffer reicht nicht für den gesamten Freeze Frame aus. Dcm bricht ab oder sendet NRC 0x14 (ResponseTooLong) bzw. 0x31 (RequestOutOfRange).
    • DEM_NO_SUCH_ELEMENT: Kein (weiterer) Freeze Frame Record für die Selektion vorhanden.
    • DEM_PENDING: Asynchroner NVRAM-Lesezugriff via NvM steht noch aus (sofern konfiguriert).

4. Normative Relevanz & Entwickler-Hinweise

  • Puffer-Dimensionierung: Der Dcm-Puffer für UDS 0x19 0x04 muss mindestens dimensioniert sein mit: $$\text{BufSize}_{\text{min}} = 2 + \sum_{i=1}^{N} \left( 2 + \text{sizeof}(\text{Data}_i) \right) \text{ Bytes}$$
  • Endianness & Alignment: DIDs sind strikt als 16-Bit Big-Endian zu encodieren. Zwischen DIDs und Datenelementen existiert kein automatisches Compiler-Padding; Daten liegen als packed byte stream vor.
  • WWH-OBD Sonderbehandlung: Bei RecordNumber 0x00 erfordert [SWS_Dem_00576] die Bereitstellung des WWH-OBD-Freeze-Frames. Diese Funktion ist nur aktiv, wenn DemGeneral/DemOBDSupport konfiguriert ist.
  • Konfigurationskonsistenz: Die interne Zusammensetzung von Data #X hängt direkt an den Parametern DemDidClass und DemDataElementClass. Werden Datenelemente via R-Port (DataServices_...) oder cals/swcs ausgelesen, müssen deren Längen exakt mit der im Dem konfigurierten Byte-Länge übereinstimmen, um Verschiebungen nachfolgender DIDs im Stream zu verhindern.

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

R18-10_R4.4.0_R1.5.0 → R19-11 keine inhaltliche Änderung Nachfolger: FIG-cb1669b7715163ab

Keine inhaltlichen Änderungen erkennbar.

R23-11 → R24-11 keine inhaltliche Änderung Vorgänger: FIG-2e69e25105b50f9e

Keine inhaltlichen Änderungen erkennbar.

R24-11 → R25-11 keine inhaltliche Änderung Nachfolger: FIG-3eed999d215f4f20

Keine inhaltlichen Änderungen erkennbar.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Erkannte Spezifikationsbelege & Anforderungen auf dieser Seite

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

Data #N Data #1 1st DID Nth DID ... | Byte 2..3 Byte 4..j Byte j..k Byte k..(k+2) Byte (k+2)..n | requested freeze frame record | Data element #N Data element #1 ... | RecordNum Num of DIDs | Byte 0 Byte 1 | calculated (e.g. 1), or configured (e.g. first value from list)

Begleitender Spezifikationstext:

Specification of Diagnostic Event Manager AUTOSAR CP Release 4.3.1 provided by the DestBuffer parameter. The Dem shall transmit these data as a complete record with the format shown in Figure 7.51. ⌋(SRS_Diag_04074) [SWS_Dem_00576] ⌈ If the RecordNumber selected by the API Dem_SelectFreezeFrameData is set to 0x00, Dem_GetNextFreezeFrameData shall provide the event/DTC specific WWH-OBD equivalent freeze frame record. ⌋ (SRS_Diag_04074) Note: Retrieving record 0x00 with Dem_SelectFreezeFrameData and Dem_GetNextFreezeFrameData is only supported if the Dem module supports WWH-OBD (refer to DemOBDSupport) Data #N Data #1 1st DID Nth DID ... Byte 2..3 Byte 4..j Byte j..k Byte k..(k+2) Byte (k+2)..n requested freeze frame record Data element #N Data element #1 ... RecordNum Num of DIDs Byte 0 Byte 1 calculated (e.g. 1), or configured (e.g. first value from list) Figure 7.51: Buffer format used by Dem_GetNextFreezeFrameData Note: The data returned include the DTCSnapshotRecordNumber (RecordNum) and DTCSnapshotRecordNumberOfIdentifiers (Num of DIDs) as defined by ISO-14229- 1[2] for the response message to service 0x19 0x04. In contradiction to the Dcm PIDstructure handling, the DIDstructure is handled within the Dem module. Therefore, the Dem returns already full freeze frame records according to the response layout. This results in an optimized Dem/Dcm interface. [SWS_Dem_00630] ⌈ If a single DTC is selected and the API Dem_SelectFreezeFrameData is called with a valid RecordNumber w

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R4.3.1 AUTOSAR_SWS_DiagnosticEventManager S. 195 7.51 Figure 7.51: Buffer format used by Dem_GetNextFreezeFrameData