ComputerScience & Embedded/NUCLEO & CAN Tranceiver

CAN (Controller Area Network) Fundamentals

leecrossun 2025. 3. 1. 20:03

Introduction to CAN

CAN : ISO specification

  • 1980년대 독일 회사 Robert Bosch에 의해 도입
  • 자동차의 제어 장치 간 보다 견고한 통신을 위해 고안
    • dynamic and noisy → WiFi, Bluetooth, zigbee 는 좋은 품질의 통신 불가능, 패킷 손실 가능성
  • CAN : ISO specification에 의해 관리되는 multi-master serial 통신
    • 고속(최대 1Mbit), 높은 노이즈 내성, 오류 감지 기능

 

장점 및 특징

  • 저비용
  • 노이즈에 강함 (differential signaling : 차등 신호)
  • 높은 전송 속도 (1Mbit/s)
  • 오류 처리 및 재전송
  • Auto bus off : 결함이 있는 노드를 자동으로 분리
  • Functional addressing : 메시지에 주소를 포함하지 않고 우선순위 식별자를 사용 (broadcast)
    • 어떤 노드든지 central control node가 될 수 있으며, 네트워킹 중에서도 언제든지 추가/제거 될 수 있음 (hot-plugging)

Nodes of CAN protocol

마이크로컨트롤러(MCU)

  • MCU에는 CAN 컨트롤러(CAN Peripheral)가 내장
  • CAN 컨트롤러는 디지털 신호(PWM, Single-ended 신호)를 생성
  • 두 개의 단자 제공
    • CAN_TX (전송)
    • CAN_RX (수신)

CAN 트랜시버(CAN Transceiver)

  • CAN 컨트롤러에서 출력되는 디지털 신호(단일 신호, Single-ended)는 CAN 네트워크에서 직접 사용할 수 없음.
  • CAN 네트워크는 차동 신호(Differential Signal)를 사용해야 하므로 CAN 트랜시버가 필요
  • 트랜시버는 CAN_TX 및 CAN_RX 신호를 차동 신호로 변환
  • 변환된 신호
    • CANH (CAN High)
    • CANL (CAN Low)

 

근데.. 왜 차동 신호(Differential Signal)를 사용할까?

  • CAN은 자동차 및 산업 환경에서 장거리 데이터 전송(1m ~ 40m 이상)이 필요
  • 디지털 신호(단일 신호)는 단거리 전송에 적합하지만, 장거리에서는 노이즈에 취약
  • 차동 신호는 노이즈 면역성이 뛰어나므로 장거리에서도 안정적인 데이터 전송

 

 

 

CAN 버스 구조

 

 

CAN 버스는 두 개의 라인으로 구성되고, 이 두 신호 라인은 종단 저항(Termination Resistor, RL)으로 마감

  • CANH (CAN High)
  • CANL (CAN Low)

노드를 CAN 버스에 연결하려면

  • CAN 트랜시버의 CANH를 버스의 CANH 라인에 연결
  • CAN 트랜시버의 CANL을 버스의 CANL 라인에 연결

Differential Signal vs. Single-ended Signal

 

 

단일 종단 신호 (Single-ended Signal)

  • 하나의 신호선과 **GND(접지)**를 사용하여 데이터를 전송
  • 예: 논리 1 → +5V, 논리 0 → 0V
  • 단점: 노이즈(잡음)에 취약하여 신호 왜곡이 발생할 가능성이 높음

차동 신호 (Differential Signal)

  • 두 개의 보완적인 신호선을 사용하여 데이터를 전송 (CANH, CANL)
  • 장점:
    • 수신기가 두 신호의 전압 차이를 계산하여 데이터를 복원 → 노이즈 제거 효과
    • 장거리 데이터 전송에 유리
    • 높은 신뢰성 제공

차동 신호의 원리

  1. 논리 1을 전송할 때:
    • 신호 1 (CANH) = +5V
    • 신호 2 (CANL) = -5V
    • 전압 차이 = 10V → 논리 1로 인식
  2. 논리 0을 전송할 때:
    • 신호 1 (CANH) = -5V
    • 신호 2 (CANL) = +5V
    • 전압 차이 = -10V → 논리 0으로 인식

🚨 중요:

외부 노이즈가 발생해도 두 신호선에 같은 크기의 잡음이 추가되므로, 수신기가 두 신호 간의 전압 차이만 측정하면 원래의 신호를 정확하게 복원

 

차동 신호의 노이즈 제거 원리에 대해 조금 더 알아봄

  • 외부 노이즈가 발생하면, CANH와 CANL 라인에 동일한 크기로 유입됨
  • 하지만 차동 신호는 두 신호 간의 전압 차이를 이용하여 데이터를 구별하기 때문에, 공통된 노이즈는 자동으로 제거됨 (Common-mode noise rejection)
  • 즉, 신호 간 전압 차이만 유지되므로 노이즈 영향을 받지 않음!

 

CAN 버스에서 차동 신호의 사용

  • CANH (CAN High)와 CANL (CAN Low) 두 개의 신호선을 사용
  • 신호 간의 전압 차이(ΔV)를 이용하여 데이터를 전송
  • 노이즈 저항성이 뛰어나고, 산업 및 자동차 환경에서 신뢰성이 높음

✅ 논리 1 → CANH = 3.5V, CANL = 1.5V (ΔV = +2V)

✅ 논리 0 → CANH = 1.5V, CANL = 3.5V (ΔV = -2V)

 

이 방식 덕분에 CAN 통신은 자동차 및 산업용 네트워크에서 안정적인 데이터 통신을 보장

 

+) USB (Universal Serial Bus), RS-485 (산업용 시리얼 통신), RS-232 (컴퓨터 시리얼 포트 통신), Ethernet (이더넷 네트워크 통신) 에서도 전기적 간섭(EMI)을 줄이고 신호 품질을 유지

 


CAN Dominant and Recessive Signal States

논리적 신호 전송 방식

  1. 논리 1 (Recessive State)
    • CANH = 2.5V (정격 전압, 트랜시버에 따라 2V 또는 2.3V 등으로 다를 수 있음)
    • CANL = 2.5V
    • 전압 차이 = 0V → 논리 1로 해석
    • 이를 Recessive State(수동 상태)라고 한다.
  2. 논리 0 (Dominant State)
    • CANH = 3.5V (트랜시버의 VCC 전압)
    • CANL = 1.5V (VCC의 약 70%)
    • 전압 차이 ≈ 2V → 논리 0으로 해석
    • 이를 Dominant State(우세 상태)라고 한다.

 

트랜시버 데이터시트 분석 (TI SN65xx 기준)

  • D : Driver Input / R : Receiver Output
  • D = 1 → CANH와 CANL이 Recessive State(논리 1)
  • D = 0 → CANH와 CANL이 Dominant State(논리 0)
State D input CANH Voltage CANL Voltage Voltage Difference
Recessive (논리 1) 1 2.3V 2.3V 0V
Dominant (논리 0) 0 3.3V 1.25V 2V

 

Since Dominant state of the bus means voltage difference of 2V, logic 0(dominant) always overrides logic 1(recessive) during data transfer


Dominant and Recessive Signal states

 

버스 serialization 원리

  • 노드가 데이터를 보낼 때, 동시에 버스에서 자신이 보낸 데이터가 일치하는지 확인
  • 만약 일치하지 않으면, 다른 노드가 버스를 점유하고 있음을 감지하고 대기(Backoff)
  • 일정 시간 연속된 Recessive 상태(예: 6~7개)를 감지하면 버스가 유휴 상태임을 판단하고 다시 접근
  • 이해를 돕기 위한 데이터 전송 예)
    • 시간 T1
      • Node A: Dominant 비트 전송
      • Node B: Dominant 비트 전송
      • 결과: 버스 상태는 Dominant
    • 시간 T2
      • Node A: Recessive 비트 전송
      • Node B: Dominant 비트 전송
      • 결과: 버스 상태는 Dominant
      • 이유: Dominant 비트가 항상 우선됨 → Node A는 자신의 비트가 변경됨을 감지
      • 결론: Node A는 버스 사용을 포기(Backoff) 후 대기
    • 버스 대기(Idle) 상태 감지
      • Node A는 연속된 6~7개의 Recessive 상태를 감지하면 버스가 Idle(유휴 상태) 임을 인식
      • 이후 다시 버스 접근을 시도
    • 시간 T3
      • Node A: Dominant 비트 전송
      • Node B: Recessive 비트 전송
      • 결과: 버스 상태는 Dominant
      • 이유: Node A가 Dominant 비트를 보냈기 때문
      • Node B는 Backoff 후 대기
    • 시간 T4
      • Node A: Recessive 비트 전송
      • Node B: Recessive 비트 전송
      • 결과: 버스 상태는 Recessive
  • 두 개의 노드(Node A, Node B)가 존재한다고 가정

 

우선순위 개념

  • 특정 메시지가 다른 메시지보다 우선적으로 전송될 수 있음
  • CAN 프로토콜에서는 메시지 ID 를 통해 우선순위를 결정

Summary of CAN concepts

  • CAN 신호는 차동(Differential) 방식 사용
    • 차동 신호 방식 덕분에 강력한 노이즈 면역성 및 내결함성(Fault Tolerance) 확보
    • 균형 잡힌 차동 신호(Balanced Differential Signaling) → 노이즈 결합 감소, 꼬인 쌍(Twisted-Pair) 케이블을 통한 고속 신호 전송 가능
  • 균형(Balanced)의 의미
    • 두 개의 신호선에서 흐르는 전류가 크기는 같지만 방향이 반대
    • 이로 인해 전기장 상쇄(Field Cancelling Effect) 발생 → 낮은 노이즈 방출 가능
  • 차동 수신기와 꼬인 쌍 케이블의 역할
    • 공통 모드(Common-Mode) 신호 제거 능력 향상
    • CAN 버스의 높은 노이즈 면역성(Noise Immunity) 보장
    • 케이블 사양: 차폐(Shielded) 또는 비차폐(Unshielded) 꼬인 쌍 사용
    • 특성 임피던스: 120Ω (Z₀ 또는 RL)
  • 120Ω 종단 저항(Termination Resistor)의 중요성
    • CAN 버스는 양쪽 끝에 120Ω 저항을 반드시 연결해야 정상 작동
    • 그렇지 않으면 네트워크가 올바르게 동작하지 않을 수 있음 (신호 반사 문제 발생)
    • 시장에서 판매되는 CAN 트랜시버 모듈에는 대부분 내장된 120Ω 저항이 포함됨
    • 하지만 구매한 트랜시버 모듈의 회로도를 확인하여 120Ω 저항이 포함되어 있는지 반드시 체크해야 함
    • 만약 포함되지 않았다면 외부적으로 120Ω 저항을 추가 연결해야 함
반응형