코딩뚠뚠

[임베디드] CAN 통신이란? 본문

공부/임베디드

[임베디드] CAN 통신이란?

로디네로 2021. 9. 6. 00:35
반응형

 

가장 기본적인 통신방법을 짚어보려 한다.

 

CAN 통신과 RS-232 시리얼통신, 이더넷, TCP 까지 연재할 생각이다.

 


 

CAN 통신은 보쉬 사에서 개발하고 ISO11898-1 표준으로 코드화한 차량용 네트워크 통신 방식이다.

 

CAN 통신은 여러 개의 제어기들을 병렬로 연결해 데이터를 주고받는다.

 

 

CAN통신은 호스트 컴퓨터 없이 3개 이상의 제어기들이 다중 통신이 가능하며, 메시지는 우선순위에 따라 할당한다.

 

또한 메시지 전송에러가 감지되면 자동적으로 해당 메시지를 즉시 재전송하는 기능이 있어 다른 프로토콜에 비해서 에러 회복시간이 짧다.

 

CAN 통신 지원 MCU는 8byte 패킷을 제공하므로 사용자는 버퍼에 데이터를 쓰고 전송만 하면 되므로 분산제어 분야 적용에 용이하다.

 

↓ 특징 정리

더보기

1. 2선 Twist pair 를 이용한 전기적 differential 통신을 하므로 저가이며 전기적인 잡음에 매우 강해 신뢰성이 우수하다.

 

2. 이론적으로 2032개의 장치들을 연결할 수 있으나 CAN Transceiver에 따라 최대 노드수는 달라진다.

 

3. 통신 버스를 공유하고 있는 CAN Controller 들은 모두가 Master가 될 수 있는 Multi-Master 통신을 한다.

 

4. 40m 내에서 최대 1Mbps로 우수한 통신 속도를 갖는다.

 

5. 8byte 데이터 전송을 하는 하드웨어 패킷을 제공한다.

 

6. 다수의 MCU, DSP 등에 기본으로 내장되어 있다.

 

7. 통신 프로토콜/에러 처리를 하드웨어적으로 처리한다.

 

8. 플러그앤플레이를 제공한다.

 

아래는 차량에 적용되는 CAN 통신의 예제이다.

 


 

제어기 내부에 CAN 통신 회로 구성은 아래와 같다.

 

CAN H와 CAN L는 CAN BUS로 신호를 주고받는다. 

 

BUS는 CAN Transceiver로 연결되고 이는 MCU와 연결된다. 

 

 


 

 

CAN Transceiver는 프레임이라는 패킷으로 CAN네트워크에서 데이터를 전송한다.

 

 

  • SOF : 메시지의 시작을 표시, IDLE 상태 이후 동기화
  • Identifier : 메시지의 우선순위를 설정, 이진값이 낮을 수록 우선순위가 높음
  • RTR : 데이터 프레임과 리모트 프레임 구분
  • IDE : CAN Standard 프레임과 CAN Extended 프레임 구분
  • R0 : Reserved bit
  • DLC : 전송중인 데이터의 바이트 수
  • Data : 전송할 데이터 - 8byte
  • CRC : 16bit checksum
  • ACK : 승인
  • EOF : CAN 프레임의 끝을 표시
  • IFS : 버퍼 영역

 

 

 

반응형