티스토리 뷰
반응형
CAN TP는 ISO 15765-2 표준에 정의된 전송 계층 프로토콜로, 클래식 CAN(CAN 2.0)의 8바이트 데이터 전송 한계를 극복하기 위해 설계되었습니다.
CAN TP는 데이터를 여러 개의 CAN 프레임으로 나누어 전송하고, 수신 측에서 이를 조립하여 원래 데이터를 복원하는 역할을 합니다.
1. CAN TP가 필요한 이유
- 클래식 CAN은 한 프레임당 최대 8바이트의 데이터만 전송 가능
- 차량 진단(OBD-II, UDS) 및 ECU 업데이트 등에서 대량의 데이터 전송 필요
- CAN TP는 데이터를 여러 개의 프레임으로 분할 전송하여 이러한 문제를 해결
2. CAN TP 프레임 형식
CAN TP는 데이터 크기에 따라 4가지 유형의 프레임을 사용합니다.
1️⃣ Single Frame (SF)
데이터 크기가 7바이트 이하일 때 사용됩니다.
필드 | 설명 |
SF_DL (1바이트) |
데이터 길이 (최대 7) |
Data (최대 7바이트) |
전송할 실제 데이터 |
2️⃣ First Frame (FF)
8바이트를 초과하는 데이터 전송을 시작할 때 사용됩니다.
필드 | 설명 |
FF_DL (2바이트) |
전체 데이터 길이 (최대 4095바이트) |
Data (최대 6바이트) |
첫 번째 전송 데이터 |
3️⃣ Flow Control Frame (FC)
수신 ECU가 송신 ECU에게 데이터 수신 가능 여부를 알립니다.
필드 | 설명 |
FS (1바이트) |
흐름 상태 (Continue: 0x30, Wait: 0x31, Overflow: 0x32) |
BS (1바이트) |
블록 크기 (한 번에 보낼 프레임 개수) |
STmin (1바이트) |
최소 분리 시간 (단위: ms) |
4️⃣ Consecutive Frame (CF)
First Frame 이후 연속적으로 전송되는 데이터 프레임입니다.
필드 | 설명 |
SN (1바이트) |
시퀀스 번호 (0~15, 순환) |
Data (최대 7바이트) |
연속 데이터 |
3. CAN TP 전송 과정
CAN TP 전송 과정
- 송신 ECU가 데이터를 전송:
- 8바이트 이하 → Single Frame 사용
- 8바이트 초과 → First Frame 사용
- 수신 ECU가 Flow Control Frame(FC)으로 응답
- 송신 ECU가 Consecutive Frame(CF)을 전송
- 모든 데이터 전송 완료 후 종료
4. 최종 정리
프레임 | 역할 | 특징 |
Single Frame (SF) | 8바이트 이하 데이터 전송 | 데이터 길이 포함 |
First Frame (FF) | 8바이트 초과 데이터 시작 | 전체 길이 포함 |
Flow Control Frame (FC) | 수신기 응답 | 블록 크기, 분리 시간 지정 |
Consecutive Frame (CF) | 연속 데이터 전송 | 시퀀스 번호 포함 |
✅ CAN TP는 8바이트 이상의 데이터를 CAN 네트워크에서 전송할 수 있도록 하는 프로토콜입니다.
✅ ISO-TP(ISO 15765-2) 표준을 기반으로 하며, 차량 진단, ECU 통신 등에서 필수적으로 사용됩니다.
개인적으로 학습하면서 정리한 내용입니다.
잘못된 내용이 있을 경우 알려주시면 확인 후 수정 및 반영하도록 하겠습니다.
오늘도 감사합니다.(__)>
'개발 > 그 외 개발관련' 카테고리의 다른 글
AUTOSAR Classic Platform과 Adaptive Platform의 상세 비교 (0) | 2025.01.20 |
---|---|
Google Test(GTest)란? (0) | 2025.01.16 |
AUTOSAR 통신 스택 계층별 모듈 설명 (0) | 2025.01.07 |
CMake 가이드 (0) | 2025.01.03 |
syscall(__NR_getpid)와 syscall(__NR_gettid) (0) | 2024.11.15 |