UDS에서의 Extended CAN ID (29-bit) 형식
UDS(ISO 14229)는 CAN(Controller Area Network)에서 실행되며, CAN의 Extended ID (29-bit Identifier) 형식을 사용할 수 있다. Extended CAN ID는 Standard CAN ID (11-bit)보다 더 많은 주소 공간을 제공하며, 네트워크에서 더욱 정교한 메시지 라우팅을 가능하게 한다.
1. CAN 프레임 구조
CAN Extended ID를 사용하면 29비트의 식별자를 통해 메시지를 송수신할 수 있다. UDS에서 Extended CAN ID는 일반적으로 다음과 같은 형식으로 구성된다.
1.1 Extended CAN ID (29-bit) 구조
Extended ID는 4개의 주요 필드로 구성된다.
비트 범위필드 명칭설명
28~26 |
Priority (3-bit) |
메시지 우선순위 (일반적으로 0b000) |
25~16 |
PF (Protocol Format) |
진단 프로토콜 형식 (0xDA 사용) |
15~8 |
PS (Protocol Specific) |
송신 대상 (ECU 주소) |
7~0 |
SA (Source Address) |
송신자 주소 (진단기: 0xF1) |
💡 예제: 0x18DA10F1 (진단기 → ECU 10번 요청 메시지)
- 0x18 → 우선순위 (0b000)
- 0xDA → Protocol Format (PF) (진단 통신 전용 값)
- 0x10 → Protocol Specific (PS) (ECU 10번 대상)
- 0xF1 → Source Address (SA) (진단기 주소)
2. Extended CAN ID의 실제 사용
2.1 진단 요청 (Request)
진단기가 특정 ECU로 UDS 요청을 보낼 때, 다음과 같은 Extended CAN ID를 사용한다.
목적CAN ID 예제 (29-bit)설명
Broadcast 요청 (모든 ECU 대상) |
0x18DBEFF1 |
진단기 → 모든 ECU |
ECU 10번에 요청 |
0x18DA10F1 |
진단기 → ECU 10번 |
ECU 20번에 요청 |
0x18DA20F1 |
진단기 → ECU 20번 |
2.2 진단 응답 (Response)
ECU가 진단기의 요청에 응답할 때는 다음과 같은 Extended CAN ID를 사용한다.
응답 ECUCAN ID 예제 (29-bit)설명
ECU 10번의 응답 |
0x18DAF110 |
ECU 10번 → 진단기 |
ECU 20번의 응답 |
0x18DAF120 |
ECU 20번 → 진단기 |
즉, 요청(Request) 시에는 0x18DAXXF1 형식이고, 응답(Response) 시에는 0x18DAF1XX 형식이 된다.
3. Extended ID를 활용한 UDS 통신 예제
3.1 Read Data By Identifier (0x22) 요청 및 응답
VIN (차량 식별 번호)을 읽는 UDS 요청을 예로 들어보자.
① 진단기 → ECU 10번에 요청 (VIN 요청)
CAN ID: 0x18DA10F1 (진단기 → ECU 10번)
Payload: 22 F1 90
- 0x22 → Read Data By Identifier 요청
- F1 90 → VIN을 요청
② ECU 10번 → 진단기에 응답
CAN ID: 0x18DAF110 (ECU 10번 → 진단기)
Payload: 62 F1 90 57 4D 5A 42 59 58 32 35 36 38 36
- 0x62 → Read Data By Identifier 응답
- F1 90 → 요청한 데이터 ID
- 57 4D 5A ... → VIN 데이터
3.2 Security Access (0x27) 요청 및 응답
보안 인증을 수행하는 과정을 Extended ID로 설명한다.
① Security Access Seed 요청
CAN ID: 0x18DA10F1 (진단기 → ECU 10번)
Payload: 27 01
- 0x27 01 → Seed 요청 (Level 1)
② ECU 10번 → Seed 응답
CAN ID: 0x18DAF110 (ECU 10번 → 진단기)
Payload: 67 01 AB CD EF 12
- 0x67 01 → Seed 응답
- AB CD EF 12 → Seed 값
③ Security Key 전송
CAN ID: 0x18DA10F1 (진단기 → ECU 10번)
Payload: 27 02 56 78 9A BC
- 0x27 02 → Key 전송
- 56 78 9A BC → 계산된 Key 값
④ ECU 10번 → 인증 성공 응답
CAN ID: 0x18DAF110 (ECU 10번 → 진단기)
Payload: 67 02
4. Extended ID vs. Standard ID 비교
항목Standard ID (11-bit)Extended ID (29-bit)
주소 공간 |
최대 2048개 |
최대 536,870,912개 |
메시지 라우팅 |
제한적 |
정교한 라우팅 가능 |
사용 용도 |
OBD-II, 기본 진단 |
고급 진단, 다중 ECU 환경 |
주로 사용되는 ID |
0x7DF, 0x7E8 |
0x18DAXXF1, 0x18DAF1XX |
💡 Standard ID는 간단한 OBD-II 진단에 적합하지만, Extended ID는 다중 ECU 환경에서 강력한 라우팅 기능을 제공한다.
5. 결론
📌 Extended CAN ID의 핵심 포인트
✅ UDS에서 Extended CAN ID (29-bit 형식)는 보다 정밀한 ECU 통신을 가능하게 한다.
✅ 요청(Request): 0x18DAXXF1 (진단기 → ECU XX번)
✅ 응답(Response): 0x18DAF1XX (ECU XX번 → 진단기)
✅ Standard ID보다 많은 주소 공간을 제공하여 다중 ECU 네트워크에 적합하다.
✅ ISO-TP(ISO 15765-2)와 결합하여 대용량 데이터 전송을 지원한다.
🚗 Extended CAN ID를 활용하면 더욱 정교하고 강력한 UDS 진단 기능을 구현할 수 있다! 🔥