앤디 블로그
  • 모두
  • 아키텍처
  • 기술
  • 자바
  • 스프링
  • 인프라
  • 카프카
  • 데이터베이스
  • 컨퍼런스
  • 개발 문화
책
짧은 글
  • 모두
  • ISOBUS
이력서
  • 모두
  • 아키텍처
  • 기술
  • 자바
  • 스프링
  • 인프라
  • 카프카
  • 데이터베이스
  • 컨퍼런스
  • 개발 문화
책
짧은 글
  • 모두
  • ISOBUS
이력서
  • 통신과 CAN 기초

    • 소개
    • CH1. 통신의 기초
    • CH2. CAN 통신 입문
    • CH3. CAN 물리 계층
    • CH4. CAN 데이터 프레임
    • CH5. CAN 중재와 우선순위
    • CH6. CAN 에러 처리
    • CH7. CAN FD
      • 기존 CAN의 한계
  • SAE J1939

    • CH8. J1939 입문
    • CH9. J1939 메시지 구조
    • CH10. J1939 주소 체계
    • CH11. J1939 Transport Protocol
  • ISOBUS (ISO 11783)

    • CH12. ISOBUS 개요
    • CH13. 네트워크 아키텍처
    • CH14. 네트워크 관리
  • Virtual Terminal (VT)

    • CH15. VT 기초
    • CH16. VT 오브젝트 풀
    • CH17. VT 명령어
  • Task Controller (TC)

    • CH18. TC 기초
    • CH19. TC 프로세스 데이터
    • CH20. TC DDOP
  • 심화 및 실습

    • CH21. 기타 기능
    • CH22. 종합 실습
  • 부록

    • 용어 사전
    • PGN/SPN 목록
    • DDI 목록
    • 트러블슈팅
    • 참고 자료

CAN FD

2026년 4월 13일
  • 1. CAN FD가 나온 이유
    • 기존 CAN의 한계
  • 2. CAN FD의 구조
    • 새로 추가된 제어 비트
    • CAN FD 프레임 구조
    • 프레임 흐름 다이어그램
    • 최대 64바이트 페이로드
  • 3. 듀얼 비트레이트
    • 두 개의 Phase
    • BRS 비트가 전환 신호
    • 실제 처리량 비교 예시
  • 4. CAN 2.0과의 호환성
    • 같은 버스에서 공존할 수 있는가?
    • ISOBUS와 CAN FD
    • 다음 챕터

학습 목표

  • CAN FD가 등장한 배경과 Classic CAN의 한계를 설명할 수 있다.
  • FDF, BRS, ESI 비트의 역할을 이해하고 CAN FD 프레임 구조를 설명할 수 있다.
  • 듀얼 비트레이트 동작 원리와 BRS 비트의 역할을 이해한다.
  • FD tolerant / FD active 노드의 차이를 구분하고, ISOBUS와의 관계를 설명할 수 있다.

1. CAN FD가 나온 이유

기존 CAN의 한계

1986년 Bosch가 발표한 Classic CAN은 자동차 네트워크의 표준으로 자리 잡았다. 그러나 자동차 전자화가 가속화되면서 두 가지 근본적인 한계에 부딪혔다.

항목Classic CAN (2.0B)요구 사항
최대 페이로드8 바이트수십~수백 바이트
최대 비트레이트1 Mbps수 Mbps 이상

한계 1 — 8바이트 페이로드 상한

ECU 소프트웨어 업데이트(OTA), 레이더/카메라 데이터, 고정밀 센서 융합 등 현대 자동차 기능은 한 프레임에 훨씬 많은 데이터를 담아야 한다. 8바이트로는 여러 프레임으로 쪼개서 보내야 하고, 이는 오버헤드와 응답 지연을 유발한다.

한계 2 — 1 Mbps 비트레이트 상한

버스 길이와 전파 지연 특성상 Classic CAN은 이론적으로 1 Mbps가 최대다. ADAS, 자율주행처럼 실시간성이 요구되는 애플리케이션에서는 이 속도로는 대역폭이 부족하다.

Bosch는 이 두 한계를 모두 해결하기 위해 2012년 CAN FD(CAN with Flexible Data-rate) 규격을 발표했다.

Classic CAN 한계 요약
─────────────────────────────────────
  페이로드:   최대 8 bytes
  비트레이트: 최대 1 Mbps
  → 현대 차량 전자화 요구를 충족 불가
─────────────────────────────────────
CAN FD 개선
  페이로드:   최대 64 bytes  (8배)
  비트레이트: Data phase 최대 8 Mbps (8배)

2. CAN FD의 구조

새로 추가된 제어 비트

CAN FD는 Classic CAN 프레임에 세 개의 비트를 추가해 하위 호환성을 유지하면서 새 기능을 제공한다.

비트이름역할
FDFFD Format이 프레임이 CAN FD임을 표시 (FDF=1이면 CAN FD)
BRSBit Rate SwitchData phase에서 비트레이트를 전환할지 결정
ESIError State Indicator송신 노드의 에러 상태를 표시 (Error Active=0, Error Passive=1)

CAN FD 프레임 구조

packet-beta
  0-10: "SOF + Arbitration ID (11/29 bit)"
  11-14: "Control (IDE, FDF, res, BRS, ESI, DLC)"
  15-78: "Data (0~64 bytes)"
  79-93: "CRC (17 or 21 bit)"
  94-95: "CRC Del + ACK"
  96-97: "ACK Del + EOF"

참고: CAN FD의 CRC는 페이로드 길이에 따라 17비트(0~16바이트) 또는 21비트(20~64바이트)로 확장된다.

프레임 흐름 다이어그램

sequenceDiagram
    participant TX as 송신 노드
    participant BUS as CAN 버스
    participant RX as 수신 노드

    TX->>BUS: SOF + Arbitration ID (표준 속도)
    Note over BUS: Arbitration phase<br>(모든 노드 동일 속도)
    TX->>BUS: FDF=1, BRS=1 (CAN FD, 비트레이트 전환)
    BUS-->>TX: BRS 이후 고속 전환
    TX->>BUS: ESI + DLC + Data (64바이트, 고속)
    Note over BUS: Data phase<br>(고속 전송)
    TX->>BUS: CRC (17/21비트)
    TX->>BUS: ACK + EOF (표준 속도 복귀)
    BUS-->>RX: 수신 완료

최대 64바이트 페이로드

DLC(Data Length Code) 값과 실제 데이터 길이의 매핑이 CAN FD에서 확장되었다.

DLC  0~ 8 → 0~8 bytes  (Classic CAN과 동일)
DLC  9    → 12 bytes
DLC 10    → 16 bytes
DLC 11    → 20 bytes
DLC 12    → 24 bytes
DLC 13    → 32 bytes
DLC 14    → 48 bytes
DLC 15    → 64 bytes

3. 듀얼 비트레이트

두 개의 Phase

CAN FD 프레임은 두 개의 비트레이트 구간으로 나뉜다.

gantt
    title CAN FD 듀얼 비트레이트 타임라인
    dateFormat X
    axisFormat %s

    section Arbitration Phase (표준 속도)
    SOF + ID + Control (FDF/BRS 포함)  :a1, 0, 4

    section Data Phase (고속)
    ESI + DLC + Data + CRC             :a2, 4, 10

    section 복귀
    CRC Del + ACK + EOF                :a3, 10, 12
구간포함 필드속도
Arbitration phaseSOF, ID, Control (FDF까지)Nominal Bit Rate (통상 500 kbps)
Data phaseBRS 이후 ~ CRCData Bit Rate (2 ~ 8 Mbps)

BRS 비트가 전환 신호

BRS=1이면 BRS 비트 직후부터 Data phase 비트레이트로 전환된다. BRS=0이면 Data phase도 동일한 Nominal Bit Rate로 전송된다(속도 이점 없음).

Arbitration phase  BRS  │  Data phase            │  EOF
───────────────────[1]──┼──[고속 전송 구간]────────┼──[표준 복귀]
500 kbps           ↑    │  2~8 Mbps               │  500 kbps
                   전환 시점

실제 처리량 비교 예시

Classic CAN (8바이트, 1 Mbps):
  유효 데이터 처리량 ≈ 8 byte / ~130 bit(프레임 오버헤드) ≈ 492 kbps

CAN FD (64바이트, 4 Mbps Data phase):
  Arbitration phase: ~80 bit @ 500 kbps = 160 µs
  Data phase:        ~600 bit @ 4 Mbps  = 150 µs
  총 전송 시간 ≈ 310 µs → 약 2 Mbps 유효 처리량

4. CAN 2.0과의 호환성

같은 버스에서 공존할 수 있는가?

CAN FD 노드와 Classic CAN 노드는 버스를 물리적으로 공유할 수 있지만, 동작 방식에 따라 두 종류로 나뉜다.

graph TD
    BUS["CAN 버스 (물리 계층 공유)"]
    FD_ACTIVE["CAN FD Active 노드<br>CAN FD 프레임 송수신 가능"]
    FD_TOLERANT["CAN FD Tolerant 노드<br>CAN FD 프레임을 무시(에러 없이 수신)"]
    CLASSIC["Classic CAN 노드<br>CAN FD 프레임을 에러로 인식"]

    BUS --- FD_ACTIVE
    BUS --- FD_TOLERANT
    BUS --- CLASSIC
노드 종류CAN FD 프레임 수신에러 발생
FD Active정상 처리없음
FD Tolerant무시(수신 후 폐기)없음
Classic CAN인식 불가에러 프레임 발생

Classic CAN 노드가 같은 버스에 존재하면 CAN FD 프레임 전송 시 에러 프레임을 생성한다. 따라서 혼합 네트워크에서는 CAN FD를 사용하지 않거나, 게이트웨이로 분리해야 한다.

ISOBUS와 CAN FD

현재 ISOBUS(ISO 11783)는 CAN 2.0B(29비트 확장 ID) 기반이다. 250 kbps의 비트레이트를 사용하며, CAN FD를 공식 채택하지 않았다.

현재 ISOBUS 스택
  물리 계층: CAN 2.0B, 250 kbps
  데이터 링크: ISO 11783-2 (버스 전기 특성 등)
  상위 계층: ISO 11783-3~14

CAN FD 채택 동향
  - 농기계 데이터량 증가(정밀농업, 자율주행)로 수요 증가
  - ISO TC23/SC19 WG1에서 CAN FD 확장 검토 중
  - 일부 제조사는 자체 게이트웨이로 내부 CAN FD 망 구성

핵심 정리

  • CAN FD는 2012년 Bosch가 발표, 64바이트 페이로드와 최대 8 Mbps Data phase가 핵심 개선점이다.
  • FDF 비트로 CAN FD 프레임임을 표시하고, BRS 비트로 Data phase 고속 전환, ESI 비트로 에러 상태를 나타낸다.
  • Arbitration phase는 기존 속도(Nominal), Data phase만 고속(Data Bit Rate)으로 동작한다.
  • Classic CAN 노드가 혼재하면 CAN FD 프레임을 에러로 처리하므로 혼합 네트워크는 격리가 필요하다.
  • ISOBUS는 현재 CAN 2.0B 기반이며 CAN FD 채택은 진행 중이다.

다음 챕터

  • 다음 : SAE J1939 입문
Prev
CH6. CAN 에러 처리