르네사스 타겟보드를 이용한 CAN 통신(2)

2. CAN 통신 개요

본 절에서는 CAN 통신의 개요에 대해 소개한다.

2.1 CAN 통신 네트워크

CAN 통신은 자동차 부품회사인 보쉬(BOSCH)에서 개발된 차량용 네트워크 통신 방식으로, 전기적 노이즈 발생이 많은 자동차 환경에서 신뢰성을 확보하기 위해 개발된 통신 방식이다.[2]

CAN 통신은 여러 개의 제어기를 병렬로 연결하여 데이터를 주고받는 구조로 되어 있으며, 통신 라인을 공유하는 모든 제어기가 마스터 역할을 하고 있으므로 필요에 따라 언제든지 통신할 수 있다. 통신 선로상에 데이터를 띄워 놓으면, 어떤 제어기든지 필요할 때마다 데이터를 가져가 사용하는 방식으로 그림4와 같은 버스 구조를 갖고 있다. 버스 구조를 갖고 있기 때문에 각 노드는 자신이 수신하고자 하는 메시지를 등록하여 필요한 메시지만을 수신할 수 있고, 송신하고자 하는 메시지가 있으면 버스를 사용하기 위한 중재 기능을 이용하여 언제든지 메시지를 버스에 실어 보낼 수 있다.


그림 4. CAN 노드의 연결


2.2 CAN 통신 회로 구성
제어기 내의 CAN 통신 회로 구성은 그림 5에 나타낸 블록도와 같다. CAN 버스와는 CAN_H와 CAN_L 신호로 연결되어 신호를 송수신한다. CAN 버스는 제어기 커넥터를 통해 연결된 후 CAN 트랜시버로 연결되고, CAN 트랜시버는 마이크로컨트롤러 (MCU)와 연결된다. 



그림 5. 제어기 내의 CAN 회로 구성


CAN 버스의 신호를 디지털 논리 신호로 바꿔주기 위한 역할을 한다. 즉 CAN_H 신호와 CAN_L 신호가 전위차가 있으면(Dominant) 논리 신호 LOW(0)으로 변환하고 전위차가 없으면(Recessive) 논리 신호 HIGH(1)로 변환하여 MCU로 전달하는 기능을 담당한다.


그림 6. CAN 버스의 신호


2.3 CAN 프로토콜

CAN의 프레임 표준 프레임과 확장 프레임이 있으며 표준 프레임 구조는 그림7에 나타냈으며 각 구성 필드의 설명은 다음 표 2와 같다.

그림 7. 표준 프레임 구조

표 2. 표준 프레임 필드 설명


확장 프레임의 구조는 그림 8과 같으며, 그림7과 다른 부분은 표3과 같다.

그림  8. 확장 프레임 구조

표 3.  확장 프레임의 추가필드 설명

그리고, 버스에 같은 신호 5개가 연속되면 다른 신호 하나를 삽입하는 bit stuffing을 수행한다.






댓글

이 블로그의 인기 게시물