이전 글에서는 CAN Arbitration을 통해 Dominant(0) 와 Recessive(1) 가 어떻게 우선순위를 결정하는지 알아보았다.
그렇다면 한 가지 궁금증이 생긴다.
CAN Bus에서 0과 1은 실제로 어떻게 표현될까?
정답은 CAN_H와 CAN_L이라는 두 개의 신호선의 전압 차이(Differential Voltage) 로 표현된다.
이번 글에서는 CAN이 왜 두 개의 선을 사용하는지, 그리고 이러한 구조가 자동차 환경에서 어떤 장점을 가지는지 알아보자.

CAN_H와 CAN_L이란?
CAN Bus는 일반적인 UART처럼 한 개의 신호선으로 데이터를 전송하지 않는다.
대신 두 개의 신호선을 사용한다.
- CAN_H (CAN High)
- CAN_L (CAN Low)
두 선은 항상 함께 동작하며, 데이터를 각 선의 절대 전압이 아니라 두 선 사이의 전압 차이로 표현한다.
즉, CAN 수신기는 CAN_H의 전압만 보는 것이 아니라,
CAN_H와 CAN_L의 전압 차이를 이용해 0과 1을 판단한다.
왜 두 개의 선을 사용할까?
가장 큰 이유는 노이즈(Noise)에 강하기 때문이다.
자동차에는 다음과 같은 전기적 노이즈가 항상 존재한다.
- 모터 구동
- 점화 시스템(Ignition)
- 릴레이 스위칭
- 인버터 및 DC/DC 컨버터
- 발전기(Alternator)
이러한 환경에서는 신호선 하나만 사용하는 방식(Single-ended Signal)은 외부 노이즈의 영향을 크게 받을 수 있다.
반면 CAN은 두 선을 동시에 사용하고 전압 차이만 비교하기 때문에
공통으로 유입되는 노이즈(Common-mode Noise)의 영향을 거의 받지 않는다.
이러한 방식을 차동 신호(Differential Signaling) 라고 한다.
차동 신호(Differential Signal)란?
CAN에서는 두 선이 서로 반대 방향으로 움직인다.
예를 들어 Dominant 상태에서는
CAN_H ↑
CAN_L ↓
Recessive 상태에서는
CAN_H ≒ CAN_L
즉, 중요한 것은 각각의 전압이 아니라 CAN_H − CAN_L의 차이이다.
Dominant와 Recessive에서 전압은 어떻게 변할까?
CAN Bus에서는 일반적으로 다음과 같은 전압을 사용한다.
| Bus 상태 | CAN_H | CAN_L | 전압 차이 |
| Recessive (1) | 약 2.5V | 약 2.5V | 약 0V |
| Dominant (0) | 약 3.5V | 약 1.5V | 약 2V |
즉, Recessive 상태에서는 두 선의 전압이 거의 동일하다.
반면 Dominant 상태에서는 약 2V의 차이가 난다.
이 전압 차이를 CAN Transceiver가 감지하여 Dominant(0) 로 판단한다.

Arbitration과 어떤 관계가 있을까?
이전 글에서 설명했듯이 Dominant(0)는 Recessive(1)를 항상 이긴다.
그 이유는 실제 물리 계층에서 CAN Transceiver가
CAN_H ↑
CAN_L ↓
를 만들어 버리기 때문이다.
즉, Bus에 하나라도 Dominant를 출력하는 ECU가 있으면 모든 ECU는 Bus를 Dominant 상태로 읽게 된다.
이것이 바로 CAN Arbitration이 가능한 이유이다.

노이즈가 발생해도 통신이 가능한 이유
자동차에서는 신호선에 노이즈가 유입되는 일이 매우 흔하다.
예를 들어

정상 상태
CAN_H = 3.5V
CAN_L = 1.5V
차이 = 2V
외부 노이즈가 두 선에 동시에 +0.3V 발생하면
CAN_H = 3.8V
CAN_L = 1.8V
차이 = 2V
절대 전압은 변했지만, 두 선의 전압 차이는 그대로 유지된다.
따라서 CAN 수신기는 동일한 데이터로 인식한다.
이것이 Differential Signal이 노이즈에 매우 강한 이유이다.
CAN_H만 연결하면 통신될까?
결론부터 말하면 정상적인 CAN 통신은 불가능하다.
CAN은 두 선의 전압 차이를 이용해 데이터를 판단한다.
따라서
- CAN_H만 연결하거나
- CAN_L만 연결하거나
- 한 선이 단선되거나
하면 대부분의 경우 통신 오류가 발생한다.
일부 CAN Transceiver는 단선(Fault)을 감지하거나 제한적인 동작을 지원하기도 하지만, 이는 예외적인 기능일 뿐 정상적인 CAN 통신 방식은 아니다.
CAN Transceiver의 역할
MCU는 CAN Controller를 통해 Dominant 또는 Recessive 상태를 출력한다.
하지만 실제로 CAN_H와 CAN_L의 전압을 생성하는 것은 CAN Transceiver이다.

Transceiver는 디지털 데이터를 실제 전압 신호로 변환하고,
반대로 CAN Bus의 전압 차이를 디지털 데이터로 변환하여 MCU에 전달한다.
정리
CAN은 단순히 두 개의 선을 사용하는 통신 방식이 아니라, CAN_H와 CAN_L 사이의 전압 차이(Differential Voltage)를 이용해 데이터를 전송하는 차동 신호(Differential Signaling) 기반의 네트워크이다.
이 방식 덕분에 자동차와 같이 강한 전기적 노이즈가 존재하는 환경에서도 안정적인 통신이 가능하며, Dominant(0) 와 Recessive(1) 의 물리적인 표현을 통해 CAN Arbitration과 같은 핵심 기능도 구현할 수 있다.
다음 글에서는 왜 CAN Bus 양 끝에는 120Ω 종단저항(Termination Resistor)이 필요한지, 그리고 종단저항이 없으면 어떤 문제가 발생하는지 알아보겠다.
'CAN, LIN 통신' 카테고리의 다른 글
| 자동차 LIN 통신이란? CAN과 무엇이 다를까? (LIN 통신 쉽게 이해하기) (0) | 2026.07.08 |
|---|---|
| 왜 CAN Bus 양 끝에는 120Ω 종단저항(Termination Resistor)이 필요할까? (0) | 2026.07.03 |
| CAN Arbitration이란? 왜 CAN ID가 작은 메시지가 먼저 전송될까? (0) | 2026.06.30 |
| 자동차 CAN Frame 구조 쉽게 이해하기 (SOF, CAN ID, Data, CRC, ACK) (0) | 2026.06.30 |
| 자동차 CAN 통신은 어떻게 동작할까? CAN 통신 원리 쉽게 이해하기 (0) | 2026.06.29 |