CAN 중재(Arbitration) — 둘 이상의 ECU가 동시에 CAN 버스에 접근하려 할 때 충돌을 회피하고 우선순위가 가장 높은 메시지만 살아남도록 하는 비트 단위(Bit-by-Bit) 결정 메커니즘. CSMA/CA의 핵심 동작.

기본 규칙

  • 모든 네트워크 노드는 버스가 idle일 때 언제든 전송을 시작할 수 있다.
  • Bus idle 판정: recessive 레벨이 11비트 시간 연속되면 idle. 1 MBaud CAN 기준 11µs.
  • 둘 이상의 송신 노드가 있으면 비트 동기(bit-synchronous) 전송중재가 동시에 진행된다.
  • 중재가 끝난 시점에 단 하나의 노드만 전송을 계속할 권리를 갖는다.

Arbitration Phase

  • 충돌 가능성이 있는 메시지들의 Identifier를 전송하는 구간이 Arbitration Phase.
  • 각 Identifier는 숫자 값의 역순으로 우선순위를 가진다.
  • Phase 동안 낮은 우선순위 메시지는 중단·연기되고, 최고 우선순위 메시지가 전송을 이어간다.
  • 중재에서 진 노드는 전송 요청을 취소하지 않고 다음 idle 시점에 재시도.

Bit-by-Bit 중재 로직

모든 송신 노드는 자신이 보낸 비트 값과 버스에서 읽은 비트 값을 비교한다.

Arbitration Logic

Sender 비트버스 비트동작
00Continue
01Transmission Error
10Stop and change to reception mode (중재 패배)
11Continue
  • 1을 전송했는데 버스에서 0이 읽히면 → 해당 노드는 송신 중단 후 수신 모드 전환. 버스가 다시 idle해지면 재시도.
  • 0을 전송했는데 버스에서 1이 읽히면 → Transmission Error (물리 오류).

Bus Logic (Wired-AND)

Sender ASender B버스 결과
000
010
100
111
  • 한 노드라도 0(dominant)을 송신하면 버스는 0이 된다 → 소위 dominant/recessive 전기적 관계.
  • 따라서 숫자 값이 낮은 Identifier(더 많은 선행 0비트)가 우선순위 승리.

우선순위 규칙

메시지 우선순위 = Identifier의 수치적 역수:

Identifier (Standard Frame)우선순위
0x000 (0)최고
0x7FF (2047)최저
  • 11비트 Standard Identifier 기준 0x0 ~ 0x7FF (0 ~ 2047).
  • 설계자는 긴급한 메시지에 낮은 Identifier를 할당해 버스 점유 우선권을 부여.

Start of Frame과 시작 신호

  • 모든 CAN 메시지는 논리 0(dominant)으로 시작 → bus idle의 논리 1(recessive)과 구분.
  • Start of Frame(SOF) 후 첫 Identifier 비트, 두 번째 Identifier 비트 순으로 전송.
  • 중재에서 이긴 노드는 다른 노드의 존재를 인식하지 못한 채 전송을 이어가며, 전송 지연이 발생하지 않는다.

RTR과 IDE의 중재

Identifier만으로 우선순위가 결정되지 않는 경우에 대비해 Arbitration Field에 RTR과 IDE 비트가 포함된다 (CAN 프레임 참조).

RTR 중재 — Data Frame vs Remote Frame

  • RTR 비트: Data Frame에서 dominant(0), Remote Frame에서 recessive(1).
  • 동일 Identifier의 Data Frame과 Remote Frame이 동시에 중재에 진입하면 Data Frame이 승리 (0 < 1).
  • Remote Frame의 전송 요청은 취소·철회되고, 곧이어 Data Frame이 응답 역할을 이어받는다.

IDE 중재 — Standard vs Extended

  • IDE 비트: Standard Format에서 dominant(0), Extended Format에서 recessive(1).
  • 동일한 Base Identifier(앞 11비트)를 가진 Standard와 Extended 프레임이 동시에 중재에 진입하면 Standard가 승리.
  • 앞 11비트가 다르면 그 시점에 이미 승부가 결정.

Standard Frame과 Extended Frame이 같은 버스에서 공존하더라도 중재가 일관되게 동작한다.

접근 순서 예시

한 번의 중재로 결정되는 것은 한 메시지뿐. 전송이 끝난 뒤 버스가 idle해지면 다시 중재. 예시(노드 A·B·C가 동시 전송 요청):

  1. 1차 중재 → A 승리 → A 전송 완료
  2. 2차 중재 → B 승리 → B 전송 완료
  3. 3차 → C가 유일 송신자 → 바로 전송

짧은 버스 점유

CAN 메시지는 최대 페이로드 8바이트로 제한되어 버스를 오래 점유하지 않는다. 따라서 낮은 우선순위 메시지의 대기 시간도 제한된다.

같이 보기