본문 바로가기
CAN, LIN 통신

자동차 CAN 통신은 어떻게 동작할까? CAN 통신 원리 쉽게 이해하기

by Autosar 2026. 6. 29.
반응형

이전 글에서 CAN은 여러 ECU가 하나의 네트워크를 통해 데이터를 주고받는 통신 방식이라는 것을 알아봤다.

 

그렇다면 이번에는 한 가지 궁금증이 생긴다.

"ECU는 실제로 어떤 방식으로 데이터를 주고받는 걸까?"

CAN 통신은 생각보다 단순한 원리로 동작한다.

 

핵심은 단 세 가지이다.

  1. 모든 ECU가 같은 통신선을 공유한다.
  2. 필요한 ECU만 데이터를 사용한다.
  3. 동시에 전송해도 충돌하지 않는다.

이 세 가지 원리를 이해하면 CAN 통신의 대부분을 이해한 것이다.

 

1. 모든 ECU는 하나의 CAN Bus를 함께 사용한다

 

가장 먼저 알아야 하는 것은 CAN은 하나의 통신선을 여러 ECU가 함께 사용하는 구조라는 점이다.

 

예를 들어 Engine ECU, Transmission ECU, ABS ECU, Cluster가 모두 하나의 CAN Bus에 연결되어 있다고 생각해 보자.

 

Engine ECU가 메시지를 전송하면 같은 CAN Bus에 연결된 모든 ECU가 그 메시지를 동시에 수신한다.

 

즉, CAN은 특정 ECU에게만 데이터를 보내는 방식이 아니라 모든 ECU에게 동시에 데이터를 전달하는 브로드캐스트(Broadcast) 방식이다.

 

2. 모든 ECU가 메시지를 받지만 필요한 ECU만 사용한다

 

모든 ECU가 같은 메시지를 수신한다고 해서 모든 ECU가 그 데이터를 사용하는 것은 아니다.

 

예를 들어 Engine ECU가 다음과 같은 메시지를 전송했다고 가정해 보자.

Vehicle Speed = 80 km/h

 

이 메시지는 CAN Bus에 연결된 모든 ECU가 받는다.

 

하지만 실제로 사용하는 ECU는 다르다.

  • Cluster → 속도를 표시한다.
  • Transmission ECU → 변속 제어에 사용한다.
  • ABS ECU → 제동 제어에 참고한다.
  • Door ECU → 필요 없으므로 무시한다.

즉, 모든 ECU가 듣지만 필요한 ECU만 처리하는 구조이다.

 

3. ECU는 어떻게 필요한 메시지를 구분할까?

 

여기서 등장하는 것이 CAN ID이다.

모든 CAN 메시지는 고유한 ID를 가지고 있다.

예를 들어

ID : 0x100
DATA : Vehicle Speed

 

라는 메시지가 전송되면

 

Cluster는 "0x100은 차량 속도 메시지다."라고 판단한다.

반면 Door ECU는 "내가 사용하는 ID가 아니네."라고 판단하고 데이터를 무시한다.

 

즉, CAN ID가 메시지의 종류를 구분하는 역할을 한다.

 

4. 동시에 여러 ECU가 전송하면 어떻게 될까?

 

여기서 대부분의 사람들이 궁금해하는 질문이 있다.

"Engine ECU와 ABS ECU가 동시에 데이터를 보내면 충돌하지 않을까?"

 

CAN은 이 문제를 Arbitration(중재) 기능으로 해결한다.

 

예를 들어 Engine ECU에서는 ID = 0x100, ABS ECU에서는 ID = 0x300을 동시에 전송하려고 하면

CAN은 ID가 더 작은 메시지를 우선 전송한다.

 

즉, 0x100이 먼저 전송되고, ABS ECU는 전송을 멈춘 뒤 버스가 비면 다시 전송한다.

이 과정에서 데이터가 충돌하거나 깨지지 않는다.

Engine ECU
ID : 0x100
        │
        ├────► CAN Bus (전송 성공)

ABS ECU
ID : 0x300
        │
        └────► 대기

 

5. CAN 메시지는 계속 반복해서 전송된다

 

자동차는 실시간으로 움직인다.

따라서 메시지를 한 번만 보내는 것이 아니라 일정한 주기로 계속 전송한다.

 

중요한 데이터일수록 더 자주(짧은 주기로) 전송된다.

그래서 운전자가 가속하면 계기판의 RPM과 속도가 거의 실시간으로 변하는 것이다.

 

CAN 통신 원리 한눈에 정리

 

① Engine ECU가 CAN Bus에 메시지를 전송한다.

② 모든 ECU가 메시지를 수신한다.

③ CAN ID를 확인한다.

④ 필요한 ECU만 데이터를 사용한다.

⑤ 여러 ECU가 동시에 전송하면 Arbitration으로 우선순위를 결정한다.

⑥ 이 과정을 수 ms 단위로 계속 반복한다.

 

이 단순하고 강력한 구조 덕분에 CAN 통신은 자동차 환경에서 매우 안정적으로 동작한다.

반응형