본문 바로가기
Embedded SW/Embedded SW Introduction

06. CAN의 CAN Controller/Transceiver 전압 레벨 (High Speed CAN)

by 방구석 임베디드 2021. 7. 17.
반응형

CAN은 Contoller Area Network의 약자로서, 

 

제어기의 정보를 교환하는데 사용하는 통신 프로토콜입니다.

아래 그림과 같이 2개의 ECU가 존재 한다고 할때, MCU에서 해석한 정보를

서로에게 전달할 경우가 있을 겁니다.

예를 들어 ECU1에서 자동차의 배터리 전압을 측정하고 정보를 가지고 있고,

이것을 ECU2에 전달하여 ECU2는 배터리 전압이 없으니, 충전을 해야겠구나!

하고 충전 동작을 수행할수 있습니다.

 

서로 정보를 교환해야 합니다.

이전 포스팅글에서 저는 결국 전압을 통하여 정보를 전달한다고 말씀드린바가 있습니다.

조금더 구체적으로 말씀을 드리면,

위의 그림에서 MCU안에는 CAN Controller라는 것이 있는데, 이 CAN Controller가 MCU 전압 레벨로

CAN Transciver 모듈로 정보를 전달합니다. 

 

0일 경우 0V

1일 경우 3.3V or 5V (MCU 전압레벨에 따라 다릅니다.)

 

그러면 CAN Transciver는 CAN H 라인과 CAN L 라인에 전압레벨을 변경하여 전달을 해줍니다.

자동차에서 많이 사용하는 High Speed CAN Voltage Level로 말씀드리자면

아래와 같이 그림을 그릴수 있습니다.

1을 전달하고 싶다면 CAN_H과 CAN_L 라인은 2.5V로 차이가 없습니다.

 

만일 0을 전달하고 싶으면 CAN_H는 3.5V 그리고 CAH_L라인은 1.5V를 냅니다.

 

그리고 1을 Recessive라고 부르고 0을 Dominant라고 부릅니다.

 

Recessive은 열성, Dominant는 우성이라는 뜻으로

기본적으로 0이 무언가 더 우세하다는 느낌이 드네요!

이 개념은 추후 Arbitration(중재)에서 설명 드리도록 하겠습니다.

반응형

댓글