본문 바로가기
CAN, LIN 통신

CAN Arbitration이란? 왜 CAN ID가 작은 메시지가 먼저 전송될까?

by Autosar 2026. 6. 30.
반응형

CAN(Controller Area Network)의 가장 큰 특징 중 하나는 충돌(Collision)이 발생해도 데이터가 손실되지 않는다는 것이다.

일반적인 통신에서는 두 장치가 동시에 데이터를 전송하면 충돌이 발생하고, 재전송이 필요하다.

 

하지만 CAN은 조금 다르다.

 

동시에 여러 ECU가 메시지를 전송하더라도 우선순위가 가장 높은 메시지가 즉시 버스를 차지하며, 나머지 ECU는 자동으로 전송을 중단한다.

 

이 과정을 CAN Arbitration(중재) 이라고 한다.

 

Arbitration이 필요한 이유

 

자동차에는 수십 개에서 많게는 수백 개의 ECU가 존재한다.

 

예를 들어 다음과 같은 상황을 생각해 보자.

  • ABS ECU : 휠 속도 전송
  • Engine ECU : 엔진 RPM 전송
  • BCM : 도어 상태 전송
  • Airbag ECU : 충돌 감지 정보 전송

어느 순간 여러 ECU가 동시에 CAN Bus에 데이터를 보내려고 할 수 있다.

만약 우선순위를 정하지 않는다면 데이터 충돌이 발생하게 된다.

 

CAN은 이러한 문제를 해결하기 위해 비트 단위(Bit-wise Arbitration) 방식을 사용한다.

 

CAN Arbitration은 언제 수행될까?

 

Arbitration은 CAN Frame의 ID(Field) 를 전송하는 순간 수행된다.

즉, Identifier를 전송하는 동안 여러 ECU는 자신이 보낸 비트와 실제 Bus의 비트를 계속 비교한다.

 

Dominant와 Recessive

 

CAN Bus에는 두 가지 비트 상태가 존재한다.

0: Dominant
1: Recessive

 

여기서 가장 중요한 규칙은 하나이다.

Dominant(0)는 Recessive(1)를 항상 이긴다.

 

즉,

ECU A : 0
ECU B : 1

 

Bus 결과 : 0

 

여러 ECU가 동시에 전송하더라도 하나라도 0을 보내면 Bus에는 0이 나타난다.

 

Arbitration 과정 예제

 

ECU A와 ECU B가 아래와 같이 동시에 데이터를 전송한다고 가정해 보자.

 

ECU A : ID = 0x100 : 00010000000
ECU B : ID = 0x120 : 00100100000

 

각 비트를 하나씩 비교하면

Bit ECU A ECU B Bus
1 0 0 0
2 0 0 0
3 0 1 0

 

세 번째 비트에서 차이가 발생한다.

 

ECU A는 0(Dominant) 출력

ECU B는 1(Recessive) 출력

 

하지만 Bus에는 0이 나타난다.

 

ECU B는 "내가 1을 보냈는데 Bus는 0이네?" 라는 것을 감지한다.

즉, 자신보다 높은 우선순위의 메시지가 있다고 판단하여 즉시 전송을 중단한다.

이후 ECU A만 계속 데이터를 전송한다.

 

이 과정은 단 몇 비트 안에 끝난다.

 

왜 CAN ID가 작은 메시지가 우선될까?

 

많은 사람들이 CAN ID가 작을수록 우선순위가 높다고 외우지만,

실제 이유는 2진수 비교 때문이다.

 

예를 들어

0x100

00010000000

 

0x080

00001000000

 

앞에서부터 비교하면 000 여기까지는 동일하다.

다음 비트에서

 

ID 0x100 → 1

ID 0x080 → 0

 

Bus에는 Dominant인 0이 나타난다.

따라서 0x080 승리

 

즉, 더 작은 ID일수록 앞쪽 비트에서 Dominant(0) 가 먼저 나타날 가능성이 높아 Arbitration에서 승리하게 된다.

 

Arbitration은 데이터 손실이 없다

 

CAN Arbitration의 가장 큰 장점은 충돌이 발생해도 데이터가 깨지지 않는다는 것이다.

Ethernet의 초기 CSMA/CD처럼 충돌 후 재전송하는 방식이 아니라,

 

Arbitration에서 패배한 ECU는 전송을 중단한 뒤 Bus가 Idle 상태가 되면 다시 처음부터 전송을 시도한다.

 

즉,

  • CRC 오류 없음
  • 데이터 충돌 없음
  • 데이터 손실 없음

이라는 장점을 가진다.

 

이를 Non-Destructive Arbitration(비파괴 중재) 라고 부른다.

 

실제 자동차에서는 어떤 메시지가 우선순위가 높을까?

 

차량에서는 안전과 직결되는 데이터일수록 낮은 CAN ID를 사용한다.

실제 CAN Database(DBC)를 보면 중요한 제어 메시지일수록 CAN ID가 작게 할당되어 있는 경우가 많다.

 

물론 ID 할당은 OEM의 네트워크 설계 정책에 따라 달라질 수 있으므로,

"항상 특정 기능이 특정 ID 범위를 사용한다"는 규칙은 아니다.

 

정리

 

CAN Arbitration은 여러 ECU가 동시에 데이터를 전송하더라도 비트 단위 중재(Bit-wise Arbitration) 를 통해 충돌 없이 우선순위를 결정하는 핵심 메커니즘이다.

 

이 과정에서 Dominant(0)가 Recessive(1)를 덮어쓰는 특성을 이용해 우선순위를 판단하며, CAN ID가 작은 메시지가 먼저 전송되는 이유도 바로 이 비트 비교 방식 때문이다.

 

덕분에 CAN은 데이터 손실 없이 중요한 메시지를 가장 먼저 전달할 수 있으며, 이러한 비파괴 중재(Non-Destructive Arbitration) 는 CAN이 자동차 네트워크에서 오랫동안 표준으로 사용되는 가장 큰 이유 중 하나이다.

반응형