본문 바로가기
카테고리 없음

CAN 통신이란

by yunchanlee 2024. 7. 11.

can 이란

CAN(Controller Aera Network) 이란, 차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격 이라고 합니다.

차량 내 *ETU(Electronic control unit)들은 * CAN 프로토콜을 사용하여 통신합니다.

초기에서는 차량 네트워크용으로 개발되었으나 최근에는 차량뿐만 아니라 산업 전 분야에 폭넓게 적용되고 있으며, 기본적인 시스템 구성은 아래와 같습니다.

** CAN 특징 **

메시지 지향성 프로토콜(message oriented protocol)

can은 노드의 주소에 의해 데이터가 교환되는 것이 아니라 메시지의 우선순위에 따라 ID를 할당하고, 이 ID를 이용해 메시지 구별하는 방식을 사용합니다.
즉 임의의 한 노드 A가 메시지를 전송했다면,A를 제외한 나머지 노드들은 A가 전송한 메시지가 자신에게 필요한 메시지인지를 판단 합니다.
자신에게 필요하다면 받아들이고, 아니라면 무시합니다.

보완적인 에러 감지 메커니즘

CAN은 사양한 에러 감지 메커니즘이 상호 보완적으로 에러를 감지하기 때문에 높은 안정성을 보장합니다. 또한 메시지 전송 시, 에러가 감지되면 자동적으로 해당 메시지를 즉시 재전송 하는 기능이 있기 때문에 다른 프로토콜에 비해 회복 시간이 짧습니다.

멀티 마스터 능력

CAN을 기반으로 한 네트워크에는 버스를 점유하기 위한 감독자 노드의 필요가 없습니다. 모든 노드가 버스마스터가 되어 버스가 비어 있을 떄 라면 언제든지 메시지 전송이 가능합니다. 모든 노드는 버스가 비워지는 즉시 메시지 전송을 시작합니다.
만약 두 개 이상의 노드에서 메시지를 전송하려고 하면 ID, 우선순위에 따라 각각 전송이 됩니다. 즉 ID 번호가 낮을수록 우선순위가 더 높은 노드가 전송이 됩니다.

결점 있는 노드의 감지와 비활성화

CAN은 버스의 상태를 항상 모니터링 하기 때문에 실시간으로 결함이 있는 노드를 감지해 해당 노드를 비활성화 함으로써 네트워크의 신뢰성을 보장합니다.

전기적 노이즈에 강함

꼬인 2선(CAN_H,CAN_L)을 이용하여 전기적으로 차별되는 통신을 하여 전기적 노이즈에 매우 강합니다.

저렴한 가격 및 구성의 용이성

가격이 저렴하고 조달이 용이합니다.

CAN 등장 배경

초기에는 자동차 안에 모듈이 많지 않았기 떄문에 uart 방식, 즉 1대1 방식으로 ECU를 연결했습니다.
하지만 이런 방식이라면 서로 다른 모듈간 통신을 위해서는 많은 선이 필요한 것이 문제가 되었습니다.
때문에 이와 같은 문제의 해결하기 위해 등장한 것이 바로 ** CAN ** 입니다.

CAN은 여러 개의 CAN 디바이스가 서로 통신할 수 있는 안정적인 네트워크를 제공합니다.
이와 같은 너트워크의 장점은 ECU가 시스템 내 각 디바이스마다 아날로그 및 디지털 입력을 갖는 것이 아니라 단일의 can 인터페이스만 보유 한다는 점입니다.
쉽게 말하자면 여러개의 온도센서, 조도센서 등등 각 센서들이 직접 ECU에 연결되어 그 ECU가 개별적으로 데이터를 수집하고 처리하였다면
can인터페이스 방식은 *각 디바이스가 개별적인 아날로그 및 디지털 입력을 갖는 대신 단일의 can 인터페이스를 통해 데이터를 송수신 할 수 있습니다. *

CAN BU 네트워크 동작원리

CNA은 다중 통신망이며 CSMA/CD+AMP 방식을 이용합니다.
위에 용어는 저도 솔직히 모르겠습니다. 간단하게 생각하면 AMP는 무선 통신 시스템에서 주로 사용되며 CSMA/CD는 너트워크 통신 프로토콜로 유선 통신에서 주로 사용됩니다.

먼저 CAN 노드에 메시지를 보내기 전에 CAN 버스라인이 사용 중인지를 파악합니다. 또한 메시지 간 충동 검출을 수행합니다 이 때 어떠한 노드로부터 보내진 메시지는 송신측이나 수신측의 주소를 포함하지 않습니다. 즉 주소지정방식으로 통신하지 않습니다.
대신 CAN 네트워크상에서 각각의 노드를 식별할 수 있도록 각 노드마다 유일한 식별자(ID 11BIS OR 29BITS) 를 가지고 있습니다.

네트워크상에 연결된 모든 노드는 네트워크상에 있는 메시지를 수신한 후 자신이 필요로 하는 식별자의 메시지인 경우에만 받아들이고, 그렇지 않은 경우의 메시지는 무시 합니다.
또한 흘어 다니는 여러 노드의 데이터들이 동시에 사용자가 필요로 하는 노드로 유입되면 ID의 우선순위를 통해 결정 합니다.

CAN 통신 프로토콜

CAN 프로토콜 규격

CAN 메시지에 있는 식별자(ID)의 길이데 따가 두 가지 모드로 구분됩니다.

표준 CAN : 11BIT -> 2.0A
확장 CAN : 29BIT -> 2.0B

대부분 CAN 2.0A 컨트롤러는 오직 표준 CAN 포맷의 메시지만 전송 및 수신이 가능하며, 확장 CAN 포맷(CAN 2.0B)의 메시지를 수신하더라도 그 메시지를 무시 해 버립니다.즉 표분 CAN 포맷의 메시지만 유효합니다.
그러나 CAN2.0B 컨트롤러는 양쪽 A,B 에 대해 모두 송수신이 가능합니다.

댓글