차량 진단 기능을 구성할 때 DTC 발생 시점의 데이터를 저장하는 기능은 매우 중요하다.
단순히 에러 코드만 확인해서는 실제 원인을 찾기 어렵기 때문이다.
그래서 AUTOSAR DEM에서는 Snapshot(Freeze Frame) 기능을 사용해 Fault 발생 순간의 차량 상태값을 함께 저장한다.
이번 글에서는 MOBILGEN 환경에서 DEM Snapshot을 설정하는 과정을 실무 기준으로 정리한다.
1. Snapshot이란 무엇인가?
Snapshot은 DTC(Event)가 발생한 순간의 관련 데이터를 저장하는 기능이다.
예를 들어 아래와 같은 값들을 함께 저장할 수 있다.
- 배터리 전압
- 차량 속도
- IGN 상태
- 센서 값
- 내부 상태 플래그
- 동작 모드
즉, "왜 이 고장이 발생했는가?" 를 분석하기 위한 순간 캡처 데이터라고 보면 된다.
2. AUTOSAR에서 Snapshot 관련 구조
DEM Snapshot은 아래 순서로 연결된다.
Snapshot Data Element 생성
→ DID Class 생성
→ Freeze Frame Class 생성
→ Freeze Frame Record Class 생성
→ Event Parameter와 연결
→ DTC 발생 시 저장
각 단계가 연결되지 않으면 Snapshot은 동작하지 않는다.
3. MOBILGEN에서 Snapshot 설정 방법
Step 1 - Snapshot Data Element 생성
먼저 저장할 데이터를 정의해야 한다.

Short Name 은 Test Code 로 'TEST_DID_0x123_Snapshot_DataElemet' 라고 명명하겠다.
그리고 To Be Configured 항목에 3개가 있는데 간단하게 설명하고 넘어가겠다.
- External CS Data Element Class
: 어떤 값을 읽기 위해 함수를 호출해야 하는 경우 사용한다.
즉, Snapshot 저장 시 DEM이 특정 API를 호출해서 값을 가져간다.
- External SR Data Element Class
: 이미 SWC 간 공유되고 있는 Sender-Receiver 신호를 읽어온다.
즉, 저장된 Port 값을 그대로 읽는다.
- Internal Data Element Class
: DEM 내부 정보 또는 별도 외부 RTE 연결 없이 직접 값을 사용하는 경우이다.
즉, 차량 신호가 아니라 DEM 자체 진단 정보이다.
이번 예제에서는 External CS Data Element Class를 선택한다.

- Data Element Data Size: 해당 Data Element의 Byte 크기를 정의한다.
- Data Element Data Type: 해당 데이터 타입을 정의한다.
예:
UINT8 → 1바이트 정수
UINT16 → 2바이트 정수
UINT32 → 4바이트 정수
UINT8_N → 고정 길이 Byte 배열
- Data Element Use Port: RTE Port 생성 여부를 설정한다.
true 로 설정할 경우 Rte_Call_DataServices_<Short Name>_ReadData 로 Port 가 생성된다.
이번 예제 기준으로 생성 예상 함수는 다음과 같다.
Rte_Call_DataServices_TEST_DID_0x0123_Snapshot_DataElement_ReadData
Step 2 - Did Class 생성
Snapshot 데이터를 UDS 서비스(예: 0x19)에서 읽기 위해 DID Class를 연결하는 단계이다.
Dem > DemGeneral > Did Class 항목에서 + 버튼을 클릭하여 Did Class 를 생성한다.
그리고, Step 1 에서 생성한 Daia Element Class 경로를 입력한다.

Step 3 - Freeze Frame Class 생성
Dem > DemGeneral > Freeze Frame Class 항목에서 + 버튼을 클릭하여 Freeze Frame Class 를 생성한다.
그리고, Step 2 에서 생성한 Daia Class 경로를 입력한다.

Short Name 은 'DemFreezeFrameClass_TEST0123' 로 했다.
Step 4 - Freeze Frame Record Class 생성
이 단계가 핵심이다.
Dem > DemGeneral > Freeze Frame Record Class

- Short Name 은 그냥 설정 이름 그대로 두었다.
- Freeze Frame Record Number 은 UDS에서 사용하는 Snapshot 번호이다. 보통 1, 2, 3 처럼 사용한다.
- Freeze Frame Trigger 에서는 언제 저장할지 결정한다.
대표 옵션으로는 아래와 같이 5가지가 있다. 실무에서는 대부분 Confirmed 또는 TestFailed 를 많이 사용한다.

- Freeze Frame Record Update 는 이미 저장된 Snapshot을 다시 갱신할지 여부이다.
최초 원인 추적 목적 → FALSE
최신 상태 유지 목적 → TRUE
Step 5 - Freeze Frame Rec Num Class 생성
Dem > DemGeneral > Freeze Frame Rec Num Class 항목에서 + 버튼을 클릭하여 Freeze Frame Rec Num Class 를 생성하고, Step 4 에서 생성한 Freeze Frame Record Class 경로를 연결한다.

이 설정은 Record Number와 실제 Record Class를 매핑하는 단계라고 이해하면 된다.
여기까지 하면 끝인가?
아직 아니다.
지금까지 작업한 내용은 Snapshot 저장 구조 생성까지이다.
실제로 동작하려면 반드시 아래 단계가 추가로 필요하다.
DTC 생성
→ Event Parameter 생성
→ Freeze Frame 연결
→ Generate
→ Fault 발생 시 저장
즉, Snapshot만 만들고 DTC/Event 연결을 하지 않으면 실제 저장되지 않는다.
정리
MOBILGEN DEM Snapshot 설정 순서:
1. Data Element 생성
2. DID Class 생성
3. Freeze Frame Class 생성
4. Freeze Frame Record Class 생성
5. Freeze Frame Rec Num Class 생성
6. Event / DTC 연결
7. Generate
DEM Snapshot은 Fault 발생 순간의 차량 상태를 저장하는 기능이며,
Data Element 생성 후 반드시 DTC/Event와 연결해야 실제 동작한다.
'mobilgene > DEM' 카테고리의 다른 글
| [DEM] Application Port 연결 및 Mapping 설정 방법 (0) | 2026.04.18 |
|---|---|
| [DEM] Generate Error 해결 방법 (SAFERTE_ERR_0310) (0) | 2026.04.18 |
| [DEM] DTC 설정 방법 (0) | 2026.04.18 |
| [DEM] 설정 구조 정리 (2) DemGeneral (0) | 2026.04.16 |
| [DEM] 설정 구조 정리 (1) DemConfigSet (0) | 2026.04.16 |