배터리 시스템

#38. CAN 통신 회로 이해하기

알고보면재밌어 2025. 3. 1. 00:34
반응형

이번 포스팅은 CAN 통신 회로에 대해 다뤄보려고 합니다.  CAN(Controller Area Network) 통신은 아주 간단하게는 차량 내부의 전자 제어 장치들간 네트워크 통신을 하는 방식을 의미합니다. 좀 더 자세하게 설명하면 차량 내부의 컨트롤러(Controller) 또는 전자 제어 장치(ECU)  데이터를 효율적으로 교환하기 위해 약속된 포맷을 갖춘 직렬 통신 프로토콜 입니다. 점점 늘어나는 ECU간 통신을 효율적으로 처리하기 위 보쉬(Bosch)에서 처음 개발하였으며, 현재는 국제 표준으로 자리 잡아 대부분의 완성차 업체에서 채택하고 있습니다.

 

자, 그럼 본론으로 들어가서 CAN 통신 회로를 어떻게 구성하는지 살펴 봅시다. 먼저, CAN 통신을 구현하려면 MCU와 CAN Controller, CAN Transceiver, 그리고 신호가 흐르는 배선인 CAN BUS가 필요하고, CAN BUS는 노이즈 강건성을 위해 차동으로 구성됩니다. 마지막으로 임피던스 정합을 위한 종단저항도 필요합니다. 구성 요소를 다시 한번 정리하면 아래와 같습니다.

 

1. MCU

2. CAN Controller

3. CAN Transceiver

4. CAN BUS

5. 종단저항

 

위 구성요소를 그림으로 표현하면 그림 1과 같이 이해할 수 있습니다. 

 

[그림 1. CAN 통신 구성]

 

요즘은 대부분 MCU 내부에 CAN Controller가 내장되어 나오기 때문에 회로를 구성할 때, CAN Transceiver와 주변회로, 종단저항을 잘 구성하면 문제없이 통신을 할 수 있습니다. 그리고 CAN 통신 시 임피던스를 60ohm으로 맞춰야 통신이 원활하게 진행되기 때문에 60ohm 정합을 고려하여 양측에 120ohm 종단저항을 두 개 연결해 줍니다.

 

이제 진짜 본론인 각각의 ECU 내부에 CAN 통신회로가 어떻게 구현이 되는지 그림 2를 통해 알아 봅시다.

 

[그림 2. CAN 통신 회로]

 

그림 1에서 CAN Transceiver 다음 바로 CAN BUS로 연결되는 것처럼 표현했지만 실제로는 그림 2와 같이 CAN Transceeiver 후단에 CMC(Common Mode Choke), Filtering circuit, TVS diode와 같은 IC가 추가되어 좀 더 신뢰성 있는 동작을 수행할 수 있도록 합니다. 각각의 IC들이 어떤 동작을 수행하는지 봅시다.

 

1. CAN Transceiver

 MCU(CAN Controller)와 CAN BUS(CAN_H, CAN_L) 사이에 위치하여 MCU에서 생성한 디지털 신호를 아날로그로 변환하여 CAN BUS를 통해 타제어기로 송신하거나 CAN BUS를 통해 수신된 아날로그 신호를 MCU가 이해할 수 있는 디지털 신호로 변환해주는 역할을 합니다. 이해를 돕기 위해 그림 3을 확인해 봅시다.

 

[그림 3. 데이터 송수신 시 CAN Transeiver 입출력 파형]

 

MCU에서 타제어기로 데이터를 송신할 때 TXD는 1 또는 0의 신호가 출력이 되며, TXD=1 일 때, CAN_H와 CAN_L는 동일하게 Common mode 전압 2.5V를 출력하게 됩니다. 이 때를 Recessive(열성)이라고 합니다. 그리고 TXD=0 일 때, CAN_H는 Common mode 전압에서 약 1.25V High, CAN_L는 Common mode 전압에서 약 1.25V Low를 출력하게 됩니다. 이 때를 Dominant(1)이라고 표현합니다.

 

2. CMC(Common Mode Choke)

 

인덕터 두 개를 하나의 코일에 감아 공통 모드(Common Mode) 노이즈는 제거하되 차동 모드(Differential Mode)는 통과하도록 되어 있는 소자 입니다. 코일에 자기장의 변화가 발생할 경우 이를 방해하는 방향으로 유도기전력이 발생한다는 렌츠의 법칙에 의해 위 현상을 설명할 수 있습니다. 아래 그림 4와 같이 공통 모드 노이즈 전류가 인가될 때 코일에는 시계방향으로 자기장의 변화가 발생합니다. 이를 방해하기 위해 역방향의 유도기전력이 발생하고, 이 유도기전력에 의해 공통 모드 노이즈 전류와 반대 방향의 전류가 발생하게 되어 공통 모드 노이즈를 억제하게 됩니다.

 

[그림 4. 공통 모드 노이즈 제거]

 

다음으로 차동모드 노이즈가 발생하게 되면 그림 5와 같이 두 개의 도선에 의한 자기장의 방향은 반대가 되어 상쇄되므로 역방향의 유도기전력은 발생하지 않습니다. 따라서, 차동 신호는 그대로 통과 됩니다.

 

[그림 5. 차동 모드 신호 통과]

 

3. Filtering Circuit

Filtering Circuit은 공통 모드 노이즈를 제거하기 위한 Low Pass Filter와 차동 모드 노이즈를 제거하기 위한 커패시터로 구성됩니다. LPF는 RT와 CT에 의해 구현 됩니다. RT는 주로 임피던스 매칭을 위한 종단 저항 목적으로 사용되지만 Split 형태로 사용하여 센터 탭에 커패시터, CT를 연결함으로써 공통모드 노이즈도 제거할 수 있게 됩니다. RT, CT가 어떻게 공통 모드 노이즈를 제거하는지 그림 6으로 알아 봅시다.

 

[그림 6. 공통모드 노이즈 제거]

 

그림 6과 같이 CAN_H, CAN_L로 공통 모드 노이즈(노란색 선)가 유입된다고 하면 CMC에 의해 CAN Transceiver로 유입되는 것을 차단하고, 노이즈의 경로를 RT, CT가 만들어 줌으로써 공통 모드 노이즈가 제거 됩니다. 만약 노란색 선이 공통 모드 노이즈가 아닌 차동 모드 노이즈라면 어떻게 될까요?

 

[그림 7. 차동모드 노이즈 제거]

 

그림 7에서 CMC는 공통모드 노이즈는 차단하지만 차동모드 노이즈는 통과 시킵니다. 따라서, RT, CT를 연결함으로 인해 Low Impedance 경로가 생기더라도 CMC의 임피던스가 굉장히 낮기 때문에 일부 차동모드 노이즈는 RT, CT를 통해 제거되기도 하지만 또 일부는 CMC를 통해 CAN Transceiver로 유입됩니다. 따라서, 이런 차동모드 노이즈를 좀 더 효과적으로 제거할 수 있게 하기 위해 CF를 CAN BUS 라인과 GND에 병렬로 연결해 줍니다. 물론 커패시터, CF는 ESD에 의한 영향성을 줄이는 역할도 수행합니다.

 

4. TVS Diode

 

그림 1에서 제어기(ECU) 내부의 CAN BUS(CAN_H, CAN_L)는 커넥터를 거쳐서 타제어기와 연결됩니다. 따라서, 커넥터를 체결할 때 등의 이유로 ESD가 발생할 우려가 있습니다. 이런 식의 갑작스런 Transient 신호에 의해 Filtering circuit, CMC, CAN Transceiver 소자가 손상 되는 것을 방지하기 위해 커넥터 바로 앞에 ESD Protector 또는 TVS Diode를 연결하게 됩니다. 특히, CAN Transceiver IC가 손상되는 것을 방지하기 위함이 가장 큽니다. 여기서는 그냥 TVS Diode 로 통일해서 설명하기로 합니다. CAN Transceiver IC의 CAN_H, CAN_L 핀이 버틸 수 있는 최대 전압을 ±20V 라고 한다면(사용하는 IC의 datasheet 참고) TVS Diode는 20V 이상에서 항복전압이 시작되는 소자로 선택하면 됩니다. 이렇게 해야 CAN 신호는 차단하지 않으면서 원치 않는 ESD는 차단할 수 있게 됩니다. 그리고 이 경우와 같이 양방향으로 보호해야할 경우 Bi-directional TVS diode를 선택해줘야 합니다. 지금까지의 설명을 좀 더 쉽게 이해하기 위해 그림 8을 참고해 봅시다.

 

[그림 7. ESD 보호용 TVS Diode]

 

그림 8에서 CAN_H, CAN_L가 연결된 커넥터 핀으로 ESD가 인가될 경우 순간적으로 높은 전류가 CAN Transceiver를 향해 흐르는데 TVS Diode를 병렬 연결해주면 ESD의 높은 전압에 의해 TVS Diode가 도통되면서 전류를 GND로 빼주게 되어 CAN Transceiver IC를 보호하는 역할을 하게 됩니다. 여기까지 CAN 통신회로에 대한 설명을 마칩니다~!

반응형