Controller Area Network

Hyun·2022년 7월 29일
0

Protocal

목록 보기
1/1

CAN (Controller Area Network Protocal) :

CAN (Controller Area Network)
차량 내 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격 차량 내 ECU(Electronic Control Unit)는 CAN Protocal 사용

CAN Protocal 배경 :

과거 1980년대까지 차량은 대부분 기계식 그러다 점차 기술의 발전으로 인하여 차량에 다양한 모듈(ECU)들이 추가되었고 각 모듈들은 서로 통신하기 위해 비동기 직렬 통신 방식 UART(Universal Asynchronous Receiver/Transmitter)사용
그러나 UART는 각 ECU 모듈이 1:1 통신 방식이기 때문에 ECU 모듈이 추가될 때 마다 새로운 통신 케이블을 연결해야하는 문제점이 발생하였다. 또한 수 많은 케이블은 차량의 공간 + 무게 증가로 인한 원가를 상승시키는 결과를 초래하게 됨

이러한 문제 해결을 위해서 메르세데스-벤츠(Mercedes-Benz)는 보쉬(Bosch)에 차량용 네트워크를 만들어달라고 의뢰를 하였고 1985년에 보쉬에 의해서 CAN이 만들어졌습니다.
여러 개의 CAN Device가 붙은 ECU들이 서로 통신할 수 있으며, 하나의 CAN 인터페이스로 여러 개의 모듈을 제어할 수 있어서 연결선 수의 감소, 자동차 무게의 경감, 원가 하락뿐만 아니라 효율적으로 시스템 제어가 가능해졌습니다. 이렇게 사용되어 지던 인터페이스는 1993년에 ISO가 국제 표준 규격으로 제정됩니다. 이렇게 CAN은 자동차 통신의 필수불가결 요소가 됨

UART, CAM 통신 방식

CAN Protocal 역사 :

CAN History
1985 : CAN Version 1.0
1987 : CAN Version 1.1
1990 : CAN Version 1.2
1991 : CAN Version 2.0

CAN Protocal 특징 :

CAN Protocal는 여러 개의 ECU를 병렬로 연결하여 데이터를 주고 받는 통신 방법
CAN 버스를 통해서 통신선 상에 데이터를 띄어놓고 필요한 데이터에 접근(Access) 하는 방식

CAN BUS Network 동작 원리 :

CAN은 다중통신망(Multi Master Network)방식을 이용 먼저 CAN 노드에 메시지를 보내기 전에 CAN BUS Line 사용 유/무를 파악 또한 메시지 간 충돌 검출을 수행합니다. 이 때 어떠한 노드로부터 보내진 메시지는 송신측이나 수신측의 주소를 포함하지 않음 즉 주소지정방식으로 통신하지 않습니다. 대신 메시지의 처음부분에 CAN 네트워크상에서 각각의 노드를 식별할 수 있도록 각 노드마다 유일한 식별자 ID를 가지고 있음

네트워크상에 연결된 모든 노드는 네트워크상에 있는 메시지를 수신한 후 자신이 필요로 하는 식별자의 메시지인 경우에만 받아들이고, 그렇지 않은 경우의 메시지는 무시합니다. 네트워크상(CAN 통신 라인)에 흘러 다니는 여러 노드의 데이터들이 동시에 사용자가 필요로 하는 노드로 유입되는 경우에는 식별자의 숫자를 비교하여 먼저 받아들일 메시지의 우선순위를 정하는데, 식별자의 숫자가 낮을수록 우선순위가 높습니다. 우선순위가 높은 메시지가 CAN 버스의 사용 권한을 보장받으며 이때 낮은 순위의 메시지는 자동적으로 다음 버스 사이클에 재전송이 되도록 합니다.

CNA 프레임 형식

TitleDescription
SOF메시지의 시작
ID메시지의 우선순위를 결정
RTR데이터 프레임과 리모트 프레임을 구분
IDEAN Standard 프레임과 CAN Extended 프레임을 구분
R0Reserved bit
DLC전송 중인 데이터의 바이트 수
Data8byte의 데이터를 전송
CRC16bit의 Checksum입니다. 메시지 상의 에러 유/무
ACK승인
EOFCAN 프레임의 끝
IFS버퍼 영역
profile
노력형 개발자!

0개의 댓글