for Robot Artificial Inteligence

ROS CAN 통신(Kvaser)

|

AN 통신이란? Controller Arean Network의 약자로 차량 내에서 장치들이 서로 통신하기 위해 설계된 표준 통신 규격입니다. 차량 내 ECU(Electronic Control Unit)들은 CAN 프로토콜을 사용하여 통신합니다

기술의 발전으로 자동차에 다양한 모듈 ECU(Electronic Control Unit)이 생겨나도 이러한 모듈들이 서로 통신하기 위해 비동기 직렬 통신 방식인 UART(Universal Asynchronous Reciever/Transmitter)을 사용했다. 그러나 UART의 통신은 각 모듈이 1:1 통신을 해서 모듈이 추가될 때 마다 더 많은 연결 선이 필요했다. 수많은 연결선은 자동차의 공간을 점점 더 많이 차지하게 되었고, 이는 자동차의 무게를 증가시키고 원가를 상승시키는 결과를 초래하였다.

벤츠는 이러한 문제점을 해결하기 위해 보쉬에 차량용 네트워크를 만들어 달라고 요청하였고, 보쉬는 1985년에 CAN을 개발하게 된다.

여러개의 CAN장치(Device)가 서로 통신할 수 있으며, 하나의 CAN인터페이스로 여러 개의 모듈을 제어할 숭 ㅣㅆ어 연결 선수의 감소, 자동차 무게의 경감, 원가 하락 뿐만아니라 효율적으로 시스템 제어가 가능해졋다.

CAN 통신의 특징 및 장점은 여러 개 ECU를 병렬로 연결하여 데이터를 주고받는 통신방법이다. CAN버스를 통해서 통신선 상에 데이터를 띄어놓고 필요한 데이터에 접근 한다.

CAN 버스는 Multi Master 방식으로 통신하므로 통신 버스를 여러 노드들이 공유하여 언제든지 버스를 사용할 수 있다.

또한 CAN_Hight, Lowㄷ 2개 신호로 통신하므로 단 2개의 선이 필요하다. 그러므로 많은 모듈이 추가 되더라고 선의 양은 적다.

ID값을 이용한 우선순위도 있다. 각 ECU에는 고유의 ID를 가지고 있다. ID값이 낮을 수록 우선순위가 높은데, CAN에서는 필터링을 통해 설정된 ID값을 수신해 우선순위를 결정한다. 주소가 아닌 ID값으로 메세지와 내용이 우선순위 결정이 되면 이는 시스템 제어 속도와 안전성을 향상 할 수 있다.

CAN케이블과 CAN Device를 통해 CPU(computer)에서 특정 작업을 처리할 수 있게 한다.

즉, Kvaser는 Kvaser Can Devices이며, Kvaser에서 CAN Device에서 얻어지는 데이터들을 ROS로 Interface를 하는데 도와주는 것이다.

Cable에 대한 저항이 클 수 도 있으니, 벡터 컨넥터를 이용하여서 저항을 낮춰서 연결해야된다.(Bus power, termination registor)

“Some time it can be this process[Kvaser CAN Driver -> can_bridge -> JSON CONVERTER -> ROS converter]

REFERENCE

https://m.blog.naver.com/suresofttech/220793847337

https://www.youtube.com/watch?v=B4iKB7Tx6b4

Comments