1. Tester Present 서비스 개요
UDS(ISO 14229) 프로토콜에서 Tester Present(0x3E) 서비스는 ECU가 진단 세션을 유지하도록 하는 역할을 합니다. 진단 장치(테스터)가 특정 시간 동안 ECU에 진단 메시지를 보내지 않으면 ECU는 진단 세션을 자동으로 종료하고 기본 모드(default session)로 돌아가게 됩니다. 이를 방지하기 위해 주기적으로 Tester Present 메시지를 보내야 합니다.
2. Tester Present 서비스의 목적
- ECU가 특정 진단 세션을 유지하도록 함
- ECU가 세션 타임아웃을 하지 않도록 주기적으로 신호 전송
- ECU가 특정 모드(예: extended session 또는 programming session)에서 계속 동작할 수 있도록 보장
3. 메시지 구조
Tester Present 서비스는 단순한 메시지 구조를 가지고 있습니다.
Byte설명
0x3E | Tester Present 서비스 ID |
0x00 또는 0x80 | 서브 기능(sub-function) |
(응답) 0x7E | 응답 메시지 (Positive Response) |
(응답) 0x7F 0x3E 0x12 | Negative Response (Subfunction Not Supported) |
(응답) 0x7F 0x3E 0x78 | Negative Response (Response Pending) |
서브 기능 (Subfunction)
- 0x00 (Zero Subfunction): 기본 Tester Present 메시지 (응답 필수)
- 0x80 (Suppress Positive Response Bit 설정됨): ECU에서 응답을 보내지 않도록 설정 (Silent mode)
예제 요청/응답
- 기본 Tester Present 요청
- 요청: 3E 00
- 응답: 7E (Positive Response)
- Suppress Positive Response 요청
- 요청: 3E 80
- 응답 없음 (ECU가 응답하지 않음)
- Negative Response 예제
- 요청: 3E 00
- 응답: 7F 3E 12 (Subfunction Not Supported)
- 응답: 7F 3E 78 (Response Pending, ECU가 처리 중)
4. Tester Present의 동작 방식
- 진단 장치(Tester)는 특정 진단 세션(예: ExtendedDiagnosticSession, ProgrammingSession)을 시작함.
- ECU는 특정 타임아웃(보통 5초~10초) 내에 새로운 진단 요청을 받지 않으면 기본 세션(default session)으로 돌아감.
- 이를 방지하기 위해 진단 장치는 주기적으로(예: 2~3초마다) Tester Present 메시지를 전송.
- ECU가 메시지를 받으면 타이머를 리셋하고 현재 세션을 유지.
- 특정 상황에서는 ECU가 바쁜 경우 0x7F 3E 78 (Response Pending)으로 응답할 수도 있음.
5. 주요 고려 사항
- 진단 세션 유지: Extended 또는 Programming 세션에서는 주기적으로 3E 00을 보내야 세션이 종료되지 않음.
- Suppress Positive Response: 3E 80을 사용하면 ECU가 응답하지 않으므로 통신 트래픽을 줄일 수 있음.
- Response Pending: ECU가 바쁜 경우(예: Flashing 중) 0x7F 3E 78을 반환할 수 있음.
- 세션별 필요 여부: Default Diagnostic Session에서는 Tester Present가 필요하지 않음.
6. 실무 적용 예시
차량 ECU Flashing 시나리오
- ECU의 Flash Programming Mode(10 02 Programming Session)로 진입 후
- 3E 00 메시지를 일정 간격으로 보내면서 세션 유지
- Flashing 완료 후, 11 01 (ECU Reset)으로 리부팅
이처럼 Tester Present는 ECU와의 장기적인 진단 세션을 유지하는 핵심적인 역할을 합니다.
'Programming > CANoe' 카테고리의 다른 글
CANoe CAN/CANFD 진단통신 전송 4: 실행 스크립트 제작 (0) | 2025.02.23 |
---|---|
CANoe Window 띄우기: Write (0) | 2025.02.23 |
CANoe CAN/CANFD 진단통신 전송 3: 전송 Configuration 제작 (0) | 2025.02.16 |
CANoe CAN/CANFD 진단통신 전송 2: 모니터 Configuration 제작 (0) | 2025.02.16 |
UDS의 Extended CAN ID란? (0) | 2025.02.16 |