본문 바로가기
자동차 사이버보안/스마트 카 기술

CAN 통신: 자동차 통신의 핵심

by HYS Blog 2023. 5. 14.

안녕하세요, 여러분!

오늘은 앞선 포스팅에서 광범위하게 다뤄지지 않았던, 하지만 자동차 통신의 핵심이라 할 수 있는 'CAN 통신'에 대해 알아보려고 합니다.

제가 참조한 글은 아래와 같으며 링크도 남겨두겠습니다!
 

 

CAN Bus Protocol: The Ultimate Guide (2023)

CAN Bus (Controller Area Network) is a vehicle bus standard, designed to allow devices and microcontrollers to communicate with each other’s applications.

www.autopi.io

 

CAN 통신이란 무엇일까요?

CAN 통신은 Controller Area Network의 약자로,
 
자동차 내부의 각각의 전자제어장치들(ECUs)이 서로 정보를 주고받는 통신방식입니다.
 
이는 우리 몸의 신경계와 비슷하다 생각하시면 됩니다.
 
우리 몸의 각 부위가 신호를 주고받아 움직이는 것처럼,
 
자동차 내의 각 부분들도 CAN 통신을 통해 정보를 주고받으며 작동하는 것입니다. 🚘
 

CAN 통신의 특징과 장점

 
CAN 통신의 가장 큰 특징은 그 안정성과 효율성입니다.
 
CAN 통신은 안전하고 신뢰성이 높아 차량과 같은 안전이 중요한 응용 분야에서 이상적이며,
 
메시지 기반의 프로토콜로서 노드를 쉽게 추가하거나 제거할 수 있습니다.
 
또한, 비용이 낮고, 고속의 통신이 가능해 많은 분야에서 활용되고 있습니다. 😃
 

📝 CAN 통신의 메시지 프레임 구조 

 

Standard CAN Frame

 
CAN 통신에서 중요한 것은 메시지 프레임입니다.
 
CAN 메시지 프레임은 Dominant(지배적) 상태와 Recessive(피지배적) 상태로 구성되며,
 
이 두 가지 상태를 통해 데이터를 전송합니다.
 
프레임의 구조는 Standard CAN frame과 Extended CAN frame이 있으며,
 
각각 11비트와 29비트의 식별자를 사용합니다. 📄
 
CAN Frame 내 구성된 용어들은 다음과 같습니다.
 

1) Start of Frame (SoF) : CAN 메시지 프레임의 시작을 나타내는 bit입니다. 이는 CAN 메시지가 시작되었음을 다른 모든 노드에 알립니다.

2) Standard Identifier : 11비트의 고유 식별자로, 메시지의 우선순위를 결정합니다. 식별자 값이 낮을수록 해당 메시지의 우선순위는 높아집니다.

3) Remote Transmission Request (RTR) : RTR 비트는 데이터 요청을 나타냅니다. RTR 비트가 지배적인 상태이면(0), 메시지는 데이터 프레임이며, RTR 비트가 소극적인 상태이면(1), 메시지는 원격 프레임입니다.

4) Control : 이 비트는 데이터 필드의 길이를 나타내는 Data Length Code (DLC) 및 기타 제어 정보를 포함합니다.

5) Data : 데이터 필드는 최대 8 바이트의 정보를 포함할 수 있습니다. 이 정보는 엔진 속도, 온도, 압력 등 자동차의 다양한 센서와 스위치에서 발생하는 실제 데이터입니다.

6) Cyclic Redundancy Check (CRC) : CRC는 데이터 전송 중 오류를 탐지하는 데 사용되는 15비트의 체크섬입니다. CRC는 뒤이어 1비트의 CRC 구분자로 구분됩니다.

7) Acknowledgement : ACK 필드는 2비트로 구성되며, 메시지가 성공적으로 수신되었음을 확인하는 데 사용됩니다. 첫 번째 비트는 수신 노드가 오류 없이 메시지를 수신했음을 나타내며, 두 번째 비트는 ACK 구분자입니다.

8) End of Frame (EoF) : EoF는 7비트의 소극적 상태(1)로, 메시지 프레임의 끝을 나타냅니다.

 

CAN 버스 프로토콜의 실제적인 적용

CAN Bus Protocol example

자동차의 뇌라고 할 수 있는 ECU는 차량으로부터 다양한 데이터를 수집하고 분석합니다.
 
이로 인해 차량 내에는 최대 70개까지의 ECU가 있을 수 있습니다.
 
이 모든 ECU들이 서로 정보를 공유하고 효율적으로 작동하기 위해서는 어떻게 해야 할까요?
 
바로.. CAN 버스 프로토콜이라는 것이 효율성을 위한 중요한 역할을 차지하고 있습니다. 🧠
 
CAN 버스는 CAN_Low와 CAN_High라는 두 개의 전선을 사용하여 통신을 합니다.
 
ISO 11898-2는 CAN 버스의 물리적 층,
 
ISO 11898-1은 데이터 링크 층
 
물리적 층에서는 케이블 유형, 노드 요구 사항, 전기 신호 수준, 케이블 임피던스 등을 나타냅니다.
 
반면, 데이터 링크 층은 보유율, 케이블 길이, 데이터 종결 등을 표현합니다.
 
CAN 버스는 각 버스의 끝에 120 옴(Ω)의 CAN 버스 저항을 사용하여 데이터가 끝나야 합니다.
 
CAN 노드는 최대 1 Mbit/s (CAN) 또는 5 Mbit/s (CAN FD)인 두 개의 전선 버스를 통해 연결되어야 합니다.
 

CAN 버스 프로토콜의 장점 🌟

 
CAN 버스 프로토콜은 강력함, 낮은 비용, 속도, 유연성, 효율성 등의 장점 때문에 모든 차량에서 흔히 사용됩니다.
 
 
 

강력함

CAN 프로토콜에는 비트(bit) 구성, 비트 모니터링, 프레임(Frame) 체크, 승인(Access) 체크, 중복 체크와 같은 오류를 감지하는 기능이 있습니다.
 

낮은 비용

CAN 프로토콜은 전자 기기와 모듈 간의 빠른 통신을 가능하게 하면서 오류, 무게, 배선, 비용을 줄이기 위해 만들어졌습니다.
 

속도

현재 두 가지 물리적 계층, 즉 고속 CAN (CAN H)과 저속 CAN (CAN L)에 의해 정의되며, 각각에는 장단점이 있습니다.
 

유연성

CAN 버스 프로토콜은 기기 간의 통신을 효율적으로 관리하는 데 필요한 효율적인 메커니즘을 제공합니다.
 
예를 들어, 모든 노드가 동시에 데이터를 전송하려고 시도할 경우,
 
CAN 버스 프로토콜은 노드 간의 충돌을 방지하고,
 
중요한 메시지가 먼저 전달되도록 하는 기능을 갖추고 있습니다.
 

효율성

CAN 버스 프로토콜은 효율적인 데이터 전송을 가능하게 하며,
 
이는 높은 신뢰성과 안정성을 보장합니다.
 
또한, 이 프로토콜은 차량에서 수집한 데이터를 ECU 간에 빠르게 전달하고 처리할 수 있도록 설계되었습니다.
 

CAN 버스의 한계점 

 
그러나 CAN 버스에도 몇 가지 단점이 있습니다:
 

1. 보안 

 
CAN 버스는 고안된 당시에는 보안이 중요한 고려사항이 아니었습니다.
 
이로 인해, 공격자가 CAN 버스에 접근하면, 차량의 제어를 완전히 장악하거나 노드 간 통신을 방해할 수 있습니다.
 

2. 대역폭 제한

 
CAN 버스 프로토콜은 최대 1 Mbit/s (CAN 2.0) 또는 5 Mbit/s (CAN FD)의 보율률을 제공합니다.
 
이는 오늘날의 고성능 차량에서 요구하는 대역폭에 비해 상당히 제한적일 수 있습니다.
 

3. 확장성

 
CAN 버스는 최대 64개의 노드까지만 지원할 수 있습니다.

이는 차량에 사용되는 ECU의 수가 증가함에 따라 제한적일 수 있습니다.
 

마무리...

 

이러한 한계점에도 불구하고,

CAN 버스 프로토콜은 차량 내의 다양한 전자 기기와 모듈 간의 통신을 가능하게 하기 때문에,

현재까지도 자동차 산업에서 널리 사용되고 있습니다.

그러나 이를 보완하거나 대체할 새로운 기술들이 계속 연구되고 있으며, 이를 통해 더욱 향상된 차량 통신이 가능해질 것으로 기대됩니다.