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

자동차 통신 프로토콜 1부: 왜 자동차에는 여러 통신 프로토콜이 필요할까?

by 버그없는토마토 2025. 12. 21.

자동차 통신 프로토콜 1부: 왜 자동차에는 여러 통신 프로토콜이 필요할까?

자동차 통신 프로토콜이란?


들어가며

안녕하세요 버그없는토마토입니다.

이번부터 자동차 통신 프로토콜에 대해 배워볼건데요

몇부작이 될지는 모르겠습니다

그런데 왜 통신프로토콜이 존재하는지 부터 시작해서 LIN, CAN, CANFD 그보다 더 빠른 통신까지 설명하는 시간을 갖고

실제 적용된 사례를 가져와볼게요

그리고 미래엔 어떤 형식으로 통신이 될지에 관해 마무리 해보도록 하겠습니다

벌써 벅차네요

 

제가 동료에게 블로그를 한다고 얘기했을때 주제에 대해 얘기를 나눴는데

CAN 에 대해서는 꼭 다뤄달라고 얘기를 들었습니다

정말 궁금해하시는 분이 많다는 걸 깨닫는 계기가 됐어요

사실 CAN이라는게 업계가 아니라면 낯선게 사실이니까요

그리고 실무자도 CAN 잘 알아요

근데 ? 알기만 해요.. CAN통신으로만 알고 어떤 형식인지 프레임은 어떤지 길이는?

자세히는 알지 못하죠.

 

그런 분들을 위해 초급자 & 입문자 & 취준생을 위한 난이도로 계획했구요

깊어질수록 보안에 위배될 것 같아서 얕고 중요하게 다뤄보도록 할게요

시작해보겠습니다

 

* 자동차 엔진을 켰을 때 자동차 내부에선 어떤일이 일어날까요?

시동 버튼 누름!
     ↓
엔진 ECU가 깨어남
     ↓
변속기 ECU에 "나 깨어났어" 신호 보냄
     ↓
ABS ECU에 "준비됐니?" 물어봄
     ↓
온도 센서에서 값 읽기
     ↓
진단 ECU가 모든 상태 체크
     ↓
... (수십 개 ECU가 협력)
     ↓
엔진 시작! 🚗

이 모든 대화를 누가 가능하게 할까요?

답은 자동차 통신 프로토콜입니다!


요약해보자면?

핵심 3줄:

🔌 LIN: 느리지만 싼 통신 (창문, 미러)
🚗 CAN: 자동차 표준 통신 (엔진, 변속, 제동)
⚡ Ethernet: 매우 빠른 통신 (자율주행)

각 프로토콜이 다른 목적을 가지고 있어서,
자동차는 여러 개를 함께 사용합니다.


🚗 자동차 통신의 역사

1980년대: 기계식 자동차

엔진 → 기계 부품 → 휠

모든 게 기계식!
- 가솔린 분사: 기계식 카뷰레터
- 변속: 수동 또는 간단한 자동
- 제동: 유압식
- 센서? 뭐 그거?

→ 통신 필요 X

1990년대: 전자제어 시작

센서들이 등장!
- 온도 센서
- 속도 센서
- 압력 센서
- ...

하나의 중앙 ECU가 모든 센서와 연결
ECU ← → 센서/모터

하지만 문제:
- 배선이 너무 많음
- 무거움
- 비쌈
- 유지보수 어려움

2000년대: CAN 네트워크 등장

"각 부품마다 작은 ECU를 두고,
 CAN이라는 버스로 연결하자!"

┌─────────────────────────────┐
│  엔진 ECU  변속기 ECU  ABS ECU │
└─────────────────────────────┘
        ↓  ↓  ↓ (CAN 버스)
┌─────────────────────────────┐
│  센서들  모터들  솔레노이드   │
└─────────────────────────────┘

장점:
✅ 배선 감소
✅ 비용 절감
✅ 확장성 좋음
✅ 신뢰성 높음

이때부터 자동차 = 네트워크!

2010년대: 다양한 프로토콜 혼합

CAN만으로는 부족함!

저속 편의 기능? LIN 사용!
고속 데이터? CAN 사용!

예: 현대 쏘나타
├─ CAN (500 kbps): 엔진, 변속, 제동
└─ LIN (20 kbps): 창문, 미러, 좌석

2020년대 (지금): 자율주행 시대

테슬라의 트리거로 인해 자율주행 시장이 핫하죠

카메라에서 초당 100MB 데이터 생성
레이더도 마찬가지
라이다도 마찬가지

CAN (500 kbps)로는 불가능!

→ Ethernet (1 Gbps) 등장!

현대 EV9:
├─ CAN (500 kbps): 기본 제어
├─ CAN FD (1 Mbps): 자율주행 센서
└─ Ethernet (1 Gbps): 고속 처리

 

그럼 자동차는 왜 여러 프로토콜을 써야 할까?

이유 1: 속도가 다르다

창문 모터:
- 느려도 OK (0.5초 걸려도 괜찮음)
- 따라서 LIN (20 kbps) 사용
- 저렴!

엔진 제어:
- 빨라야 함 (10ms마다)
- CAN (500 kbps) 사용
- 더 비쌈

자율주행:
- 매우 빨라야 함 (1ms마다)
- Ethernet (1 Gbps) 사용
- 가장 비쌈

이유 2: 신뢰성이 다르다

창문 모터:
- 고장나도 안전에 영향 X
- 신뢰성 낮아도 OK
- LIN 사용

제동 시스템:
- 고장나면 위험함
- 신뢰성 매우 중요
- CAN 또는 FlexRay 사용

자율주행:
- 가장 중요함
- 신뢰성 극대화 필요
- Ethernet + 추가 보안

이유 3: 비용이 다르다

LIN 칩: 저렴 ($1)
CAN 칩: 중간 ($5)
Ethernet 칩: 비쌈 ($20+)

"모든 ECU에 Ethernet을 쓰면?"
→ 자동차 가격 폭증!

따라서 필요한 곳만 빠른 프로토콜 사용!

이유 4: 목적이 다르다

편의 기능 (창문, 미러):
- 느려도 OK
- 저렴이 중요
- LIN!

파워트레인 (엔진, 변속, 제동):
- 안정성 중요
- 표준화된 것이 중요
- CAN!

자율주행 (센서 처리):
- 속도 중요
- 최신 기술 가능
- Ethernet!

📊 자동차의 통신 구조 (완전 분해도)

┌──────────────────────────────────────────┐
│  센서들 (입력)                            │
│  ├─ 온도 센서 (thermistor)               │
│  ├─ 압력 센서 (pressure)                 │
│  ├─ 속도 센서 (wheel speed)              │
│  ├─ 가속도 센서 (accelerometer)          │
│  ├─ 카메라 (camera) 2 Mbps              │
│  ├─ 레이더 (radar) 50 Mbps              │
│  ├─ 라이다 (lidar) 300 Mbps             │
│  └─ GPS (location)                      │
└──────────────────┬───────────────────────┘
                   │ (신호 읽기)
        ┌──────────▼──────────┐
        │  ADC (아날로그 변환) │
        │  센서값 → 디지털     │
        └──────────┬──────────┘
                   │
┌──────────────────▼─────────────────────┐
│  ECU들 (처리 및 결정)                   │
│  ├─ 엔진 ECU (Engine Control Module)   │
│  │  └─ RPM 계산, 연료 분사량 결정     │
│  ├─ 변속기 ECU (Transmission Control)  │
│  │  └─ 기어 선택                       │
│  ├─ ABS ECU (Anti-lock Brake)         │
│  │  └─ 제동력 분배                     │
│  ├─ 자율주행 ECU (Autonomous Drive)   │
│  │  └─ 경로 계획                       │
│  ├─ 진단 ECU (Diagnostic)             │
│  │  └─ 오류 감지                       │
│  └─ ...                                │
└──────────────────┬─────────────────────┘
                   │
        ┌──────────▼──────────┐
        │  통신 (협력!)       │
        │  ├─ CAN 버스        │
        │  ├─ LIN 버스        │
        │  └─ Ethernet        │
        └──────────┬──────────┘
                   │
┌──────────────────▼─────────────────────┐
│  액추에이터들 (출력)                    │
│  ├─ 모터들 (window, mirror, seat)     │
│  ├─ 펌프 (fuel pump, cooling water)    │
│  ├─ 솔레노이드 (solenoid)              │
│  ├─ 스텝 모터 (stepper motor)          │
│  ├─ 디스플레이 (cluster, head unit)    │
│  └─ 경고음 (buzzer)                    │
└──────────────────────────────────────┘

🚗 실제 자동차 예시

현대 쏘나타 (가솔린 세단)

통신 구조:

CAN-0 (High-Speed CAN, 500 kbps):
├─ 엔진 ECU ← 온도, RPM, 토크
├─ 변속기 ECU ← 기어, 오일온도
├─ ABS ECU ← 제동압, 바퀴 속도
├─ 공조 ECU ← 온도 설정
├─ 진단 ECU ← 모든 상태 모니터링
└─ ... (약 15개 ECU)

LIN (Low-Speed, 20 kbps):
├─ 창문 ECU ← 윈도우 모터 4개
├─ 미러 ECU ← 사이드 미러 모터
├─ 좌석 ECU ← 전동 좌석 조정
└─ ... (약 5개)

실제 사용:
운전자: "창문 올려!" (버튼)
       ↓
신체 ECU: LIN으로 창문 ECU에 명령
       ↓
창문 모터: 움직임!

기아 EV9 (자율주행 전기차)

통신 구조:

CAN (500 kbps):
└─ 기본 차량 제어 (배터리, 모터, 제동)

CAN FD (1 Mbps):
└─ 자율주행 센서 보조 데이터

Ethernet (1 Gbps):
├─ 자율주행 도메인 컨트롤러
├─ 카메라 + 레이더 + 라이다 데이터 처리
├─ 경로 계획 (Path Planning)
└─ 의사결정 (Decision Making)

LIN (20 kbps):
└─ 창문, 미러 등 편의

계층적 구조:
┌─────────────────────┐
│ Ethernet (자율주행)  │
├─────────────────────┤
│ CAN FD (보조)        │
├─────────────────────┤
│ CAN (기본)           │
├─────────────────────┤
│ LIN (편의)           │
└─────────────────────┘

Tesla Model 3 (전기차, 최신형)

통신 구조:

최소한의 CAN:
└─ 기본 안전만 보장

Ethernet 중심:
└─ 거의 모든 통신을 Ethernet으로
└─ OTA (무선 업데이트) 쉬움
└─ 자율주행에 최적화

철학: "간결함"
"불필요한 프로토콜은 제거!"

🚀 다음 부에서 뭘 배울까?

2부: LIN (느리지만 저렴한)

다음 부에서는 LIN을 배워봅시다.

배울 것:
 LIN의 정의와 특징
 Master-Slave 구조 (누가 명령하나?)
 메시지 구조 (BREAK, SYNC, PID, Data, Checksum)
 Schedule (시간표, "10ms마다 이 신호 전송")
 신호 매핑 (어떤 데이터가 어디에?)
 에러 처리 (뭐가 잘못되면?)
 실제 사례 (창문 모터는 어떻게 움직일까?)

결과: "LIN이 뭔지 완벽히 이해한다!"

💡 취준생이 알아야 할 것

면접 질문 예상

Q1: "자동차에 왜 여러 프로토콜을 써요?"
A: "각각 다른 목적을 가지고 있기 때문입니다.
   LIN은 저렴하고 느려도 되는 편의 기능용,
   CAN은 실시간 제어가 필요한 파워트레인용,
   Ethernet은 자율주행 같은 고속 처리용입니다."

Q2: "LIN과 CAN의 차이는?"
A: "LIN은 Master-Slave 구조로 Master가 명령을 보내고,
   CAN은 모든 ECU가 같은 버스를 사용하는 Broadcast 방식입니다.
   속도도 LIN은 20kbps, CAN은 500kbps로 다릅니다."

Q3: "자동차 통신이 왜 중요한가요?"
A: "현대 자동차는 수십 개의 ECU가 협력해서 작동하기 때문에,
   이들이 정확하게 통신해야만 안전하고 효율적인 차량이 됩니다.
   통신이 없으면 자동차는 움직일 수 없습니다."

 



📌 핵심 요약

항목 설명
통신 필요 이유 자동차 = ECU 네트워크, 협력 필수
속도 차이 편의는 느려도 OK, 제어는 빨라야 함
신뢰성 차이 엔진 제어는 중요, 창문은 덜 중요
비용 차이 빠르면 비싸짐
프로토콜 선택 용도에 맞는 것 선택
현재 추세 CAN + LIN → CAN + Ethernet
미래 Ethernet 중심

마치며

이번 포스팅에서는 여러 통신프로토콜에 대해 설명드렸는데요

잘 이해가 안갈거예요 생소한 단어도 많고..

근데 한번 쭉 훑고 생각하고 나면 다음 게시물부터 '아 얘가 걔지'라고 생각하면서 이해하기 쉬울거예요

다 어떤 특성을 가졌는지 보고, 쉽게 생각해서 등장인물들이라고 생각하세요

옴니버스식 구조에서 각자 주인공들인거죠!

그럼 다음 게시물부터는 본격적으로 주인공 한명 한명씩 알아보도록 하죠