본문 바로가기
자동차 임베디드 SW/잡

ccp 와 xcp 개요

by 존버매니아.임베디드 개발자 2022. 10. 8.
반응형

차량제어기를 개발하는 과정에서 sw가 정상적으로 실행되고 있는지를 확인하기 위하여 sw가 실행중인 상태에서 변수의 값을 확인하는 경우가 있다. 또는 개발과정에서 특정 변수의 값을 우리가 임의로 변경해야하는 경우도 있다.

pc로 sw를 개발할때는 중간중간에 print함수를 찍어서 변수 값을 확인할 수도 있고 혹은 디버깅 모드를 사용해서 변수값을 확인 할 수 있다.

하지만 차량제어기는 pc와 달리 개발하는 환경과 개발된 sw가 실행되는 환경이 다르다.
sw 개발은 pc에서 하지만 개발된 sw는 차량제어기에서 실행이된다.

우리는 제어기상에서 실행중인 sw의 변수값을 확인하거나 조작하고 싶은데 우리 제어기에는 컴퓨터나 마우스가 없어서 이를 확인할 방법이 없다.

그래서 별도의 디버깅 장비(디버거)를 제어기에 연결해서 이 장비를 통해서 그런 작업을 하게된다.
널리 사용되는 디버깅 장비로는 trace32가 있다.
디버깅 장비는 jtag 포트를 통해 제어기의 변수 정보를 읽고 쓰게 된다.

그런데 사무실에서 간단한 디버깅을 할 때는 상관이 없는데 ecu가 케이스에 들어가게되면 뚜껑을 닫아야해서 t32 포트를 제어기에 연결할 수가 없다. 그래서 고온챔버환경 또는 실차에서 t32를 이용한 디버깅이 곤란해진다.

그래서 다른 방법을 고민하다 나온것이 'can 통신을 활용해서 변수 값을 읽고 쓰게하자!'
하고 만들어진 것이 바로 ccp이다.
ccp의 약자는 Can Calibration Protocol 이다.

ccp의 동작원리를 아주 간단히 나타내면



사용자가 제어기에게 원하는 어떤 명령을 캔 메세지에 담아서 보낸다.
예를 들어서 변수 abcd의 값을 읽고싶다! 라고 보낸다.
제어기는 이 캔 메세지를 수신한 후 변수 abcd의 값을 캔메세지로 답장을 보낸다.



한편 xcp는 무엇이냐?
xcp는 ccp와 같은 기능을 can 통신이 아닌 다른 통신에서도 활용할 수 있도록 만든 프로토콜이다.
그래서 xcp는
xcp on can (캔  통신을 활용하는 xcp)
xcp on ethernet
xcp on flexlay
이런식으로 어떤 통신기반인지를 함께 언급한다.


반응형