본문 바로가기
통신 프로토콜

LIN통신 vs CAN통신 : 데이터 크기와 선택 기준

by 버그없는토마토 2026. 1. 2.

LIN vs CAN: 데이터 크기와 선택 기준

LIN통신? CAN통신?


들어가며

LIN과 CAN에 대해서 알고 계실거예요....

맞죠?
근데 왜 나눠지는지? 그리고 큰 차이점은 뭔지에 대해 개념을 잡고자 합니다.

 

자동차에 통신 버스가 2개 이상 필요한 이유는 뭘까요?

상황: 자동차 ECU 네트워크

고급 기능 (메인 ECU들):
- 엔진 제어: 복잡한 데이터 필요
- 변속기 제어: 빈번한 통신
- 섀시 제어: 실시간 데이터

간단한 기능 (주변 ECU들):
- LED 제어 (켜기/끄기만)
- 버튼 입력 (누르기/안 누르기)
- 간단한 센서 (온/오프)

문제:
모두를 같은 버스(CAN)에 연결하면?
→ 버스 대역폭 낭비
→ 비용 증가
→ 복잡도 상승

해결:
CAN: 복잡한 데이터 (빠르고, 크고, 신뢰할 수 있음)
LIN: 간단한 데이터 (느려도 괜찮고, 작고, 저렴함)

LIN과 CAN의 가장 큰 차이는 데이터 크기입니다

이 글에서는:

  • LIN과 CAN의 데이터 크기 비교
  • 각 버스의 메시지 구조
  • 언제 어떤 버스를 쓸 것인가?
  • 실무 사례

를 명확하게 설명하고 예시를 통해 이해하기 쉽도록 구성해봤습니다



3분 요약

데이터 크기 비교:

LIN:
- 최대 데이터: 8바이트
- 속도: 9.6 ~ 19.2 kbps (느림)
- 용도: 간단한 신호 (LED, 버튼)
- 비용: 저렴
- 노드: 최대 15개

CAN:
- 최대 데이터: 8바이트 (같음!)
- 속도: 125 ~ 1000 kbps (빠름)
- 용도: 복잡한 데이터 (센서, 제어)
- 비용: 비쌈
- 노드: 많음

"데이터 크기는 같은데 왜 다르게 쓸까?"

답: 속도와 신뢰성!

LIN:
- 느려도 괜찮은 데이터
- LED 응답 지연 100ms? 괜찮아

CAN:
- 빨라야 하는 데이터
- 엔진 RPM 지연 10ms? 위험해!

CAN FD (새로운 표준):
- 최대 데이터: 64바이트 (8배!)
- 속도: 5 Mbps (매우 빠름)
- 용도: 대용량 데이터 (펌웨어 업데이트)

LIN 메시지 구조

LIN (Local Interconnect Network)

메시지 크기:

┌─────┬──────┬──────┬─────────┬─────┐
│ SYNC│ PID  │ DATA │ CRC     │ STOP│
└─────┴──────┴──────┴─────────┴─────┘
  1   │  1   │ 0~8  │   1     │  1
      │      │byte  │ byte    │

총 길이: 11~19 바이트

예시: LED 제어

PID: 0x30 (LED 제어 메시지)
DATA: 1바이트
  - 비트 0: LED1 ON/OFF
  - 비트 1: LED2 ON/OFF
  - 비트 2: LED3 ON/OFF
  - 나머지: 미사용

전송 시간: 약 10ms (느림)

CAN 메시지 구조

CAN (Controller Area Network)

메시지 크기:

┌────┬────┬─────────┬────┬─────┐
│ SOF│ ID │ CONTROL │DATA│ CRC │
└────┴────┴─────────┴────┴─────┘
  1  │ 11 │   6     │ 0~8│ 16  │
     │    │         │byte│     │

DATA 필드: 최대 8바이트

예시: 엔진 RPM 전송

ID: 0x100 (엔진 속도)
DLC: 2 (2바이트)
DATA:
  - 바이트 0~1: RPM 값 (0~8000)

전송 시간: 약 1ms (빠름)

LIN vs CAN 메시지 크기 비교

1. 데이터 필드 크기 (같음!)

LIN: 0~8 바이트
CAN: 0~8 바이트
CAN FD: 0~64 바이트 (차이 나기 시작!)

2. 총 메시지 크기 (다름!)

LIN: 11~19 바이트 (오버헤드 3바이트)
     실제 데이터 비율: 42% ~ 73%

CAN: 47~61 비트 (오버헤드 39비트)
     실제 데이터 비율: 13% ~ 17%

3. 전송 속도 (크게 다름!)

LIN: 9.6 kbps
     1 메시지 = 약 20ms

CAN: 500 kbps
     1 메시지 = 약 0.26ms (77배 빠름!)

4. 효율성

LIN: 간단한 신호에 효율적
     버튼 1개: 1바이트만 필요
     → 8ms마다 전송 가능

CAN: 많은 신호를 함께 전송 가능
     센서 8개: 8바이트 모두 사용
     → 빈번한 전송 가능

실무 사례: 어떤 데이터는 LIN? CAN?

LIN을 쓰는 데이터

특징: 느리고 단순함

1. LED 제어
   - 켜기/끄기
   - 밝기 제어 (0~255)
   - 응답: 100ms 지연 OK

2. 버튼 입력
   - 누르기/안 누르기
   - 응답: 50ms 지연 OK

3. 온/오프 센서
   - 도어 열린/닫힌
   - 시트 점유 감지
   - 응답: 200ms 지연 OK

4. 간단한 상태
   - 전조등 ON/OFF
   - 와이퍼 속도 (3단계)
   - 에어컨 온/오프

LIN 메시지 예:

ID 0x30 (전조등 제어):
DATA: 0x05 (비트 0~2: 전조등 모드, 나머지: 미사용)

ID 0x31 (도어 상태):
DATA: 0x03 (비트 0~1: 왼쪽/오른쪽 도어, 나머지: 미사용)

장점:
- 저렴한 칩셋
- 단선 버스 (한 개 선으로 통신)
- 전력 소비 적음

CAN을 쓰는 데이터

특징: 빠르고 복잡함

1. 엔진 데이터
   - RPM (2바이트)
   - 온도 (1바이트)
   - 압력 (2바이트)
   - 토크 (1바이트)
   → 총 6바이트 (1메시지)
   응답: 10ms 필요

2. 변속기 데이터
   - 기어 상태 (1바이트)
   - 오일 온도 (1바이트)
   - 압력 (2바이트)
   → 총 4바이트
   응답: 20ms 필요

3. 주행 데이터
   - 차속 (2바이트)
   - 가속도 (1바이트)
   - 방향 (1바이트)
   → 총 4바이트
   응답: 20ms 필요

4. 진단 데이터
   - DTC 코드
   - 상태값 모음
   → 최대 8바이트
   응답: 100ms OK

CAN 메시지 예:

ID 0x100 (엔진 정보):
DATA: 5C 1E 50 42 00 00 00 00
  - 바이트 0~1: RPM = 0x1E5C = 7772 RPM
  - 바이트 2: 온도 = 0x50 = 80도
  - 바이트 3: 압력 = 0x42 = 66 kPa

ID 0x101 (변속기 정보):
DATA: 02 60 10 00 00 00 00 00
  - 바이트 0: 기어 = 0x02 (D 기어)
  - 바이트 1: 오일온도 = 0x60 = 96도

장점:
- 많은 데이터 한 번에 전송
- 빠른 응답
- 신뢰성 높음 (CRC)
- 우선순위 제어 (ID로 조정)

CAN FD: 새로운 표준

CAN FD (CAN with Flexible Data-rate)

특징:
- 데이터 크기: 8 → 64 바이트 (8배!)
- 속도: 500kbps → 5Mbps (10배!)
- 사용 시기: 2020년 이후 신차

예: 펌웨어 업데이트

기존 CAN:
2MB 펌웨어 = 2,000,000 바이트
/ 8 바이트= 250,000 메시지
× 1ms = 250초 (4분 이상!)

CAN FD:
2MB 펌웨어 = 2,000,000 바이트
/ 64 바이트 = 31,250 메시지
× 0.2ms = 6초 (4분 → 6초!)

장점:
- 대용량 데이터 빠르게 전송
- 여전히 CAN과 호환 가능 (일부)
- 신뢰성 유지

단점:
- 칩셋 비쌈
- 기존 CAN과 혼용 복잡함

선택 기준

LIN을 선택하세요:
□ 응답 시간이 100ms 이상 가능
□ 데이터가 8바이트 이하
□ 간단한 신호 (ON/OFF)
□ 비용이 최우선
□ 노드가 15개 이하

예: LED, 버튼, 도어 센서, 에어컨

CAN을 선택하세요:
□ 응답 시간이 50ms 이하 필요
□ 많은 데이터를 자주 전송
□ 신뢰성이 중요
□ 노드가 많음 (50개 이상)
□ 우선순위 제어 필요

예: 엔진, 변속기, 섀시, 진단

CAN FD를 선택하세요:
□ 8바이트 이상의 데이터 필요
□ 펌웨어 업데이트 등 대용량 데이터
□ 최신 차종 (2020년 이후)
□ 비용 제약 없음

예: 펌웨어 업데이트, OTA, 고해상도 이미지

정리

LIN vs CAN vs CAN FD:

              LIN        CAN       CAN FD
────────────────────────────────────────
속도          느림        빠름       매우 빠름
데이터        8바이트    8바이트   64바이트
응답시간      100ms+     10ms      1ms
비용          저렴       중간       비쌈
노드          15개       많음       많음
신뢰성        낮음       높음       높음

선택 기준:
데이터 크기 ≤ 8바이트 → LIN 또는 CAN
응답 시간 > 100ms → LIN
응답 시간 ≤ 50ms → CAN
데이터 크기 > 8바이트 → CAN FD