CAN-BUS

벨로스터N(Veloster N) CAN-BUS Part .7 - CAN 정보공유

Mapsosa 2021. 6. 17. 10:41

CAN-BUS 디코딩을 하면서 정말 힘들었습니다.

ACC ON으로 놔두고 별짓 다하고 공회전도 엄청나게 시키고 차량 컨디션도 별로 안 좋아졌겠네요

날도 더운데 계속 공회전시키니 냉각수 온도랑 오일 온도가 마구 치솟더군요

 

그래도 캔통신 해독하는게 은근히 재밌긴 하더군요.

저야 이미 저질러 버린 게 너무 많아서 그냥 하다보니 재밌어 진 것이긴 한데 그래도 저처럼 이 행위가 재밌다거나 하는 변태가 아니시라면 사서 쓰세요.

 

쓰리세컨즈 랩 타이머 캔통신 케이블 구매하면서 봤는데 좋더군요 해외 유명 브랜드 랩타이머 반값인 50만 원에 can통신까지 엄청나게 많은 채널을 지원합니다.

 

하지만 벨로스터N 수동 모델 같은 경우엔 제가 디코딩을 어느 정도 해놓았으니 정확하진 않은 값이라도 필요하시면 쓰세요.(일단은 수동 모델에만 적용해봐서 그런데 아마도 몇몇 값은 DCT에도 사용이 될 거라고 생각은 하고 있습니다.)

 

//2021.07.15추가

아래의 내용은 제가 CAN Database를 알기전에 작성한 내용이므로 참고만 하시고 디코딩 값은 이 글 을참고하세요

 

https://docs.google.com/spreadsheets/d/1fn9_y1ILbgq3hVHvTh6ZxMrjdez4vNH5qmy-Mmb2rRU/edit?usp=sharing 

 

Veloster N CAN Decoding

C-CAN HEX,DEC,Simple Description,0th byte,1st byte,2nd byte 0~8bits,8~16bits,16~24bits 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 40,64 42,66 43,67 44,68 7F,127 80,128,AcPedal Pos,AcPedalPos eq/2.55,RPM LE eq/4 81,129,Intake Temp Not sure about equation *0.6

docs.google.com

디코딩 파일은 위의 링크를 참조하세요.

구글 Spread Sheet를 이용합니다. 사본 만들기로 복사해가셔서 확인하세요.

 

제가 디코딩 한 값인데 RaceChrono에 등록하면 사용이 됩니다.

브레이크 포지션 같은 경우는 조금 값이 애매하기는 한데 세게 밟아보니 4400 정도 나오던데 그렇게 밟을 일이 없을 거 같기는 한데 일단 나누기 44 해서 4400을 100으로 잡았습니다.(그래도 더 세게 밟으면 111% 그이상 올라가기는 합니다.)

써보시고 이상하시면 나누는 값을 수정하세요

애매한 것들은 노란색으로 표시했고 검은색은 없는 값 파란색은 디코딩 완료된 값입니다.

 

vehicle_jsn_can-bus.rcz
0.00MB

RaceChrono용 프로파일은 위의 파일을 다운받아 사용하세요.

레이스 크로노에 위의 프로파일을 등록하시면 위의 사진과 같이 CAN을 통한 데이터 로깅이 가능합니다.

 

 

준비물은 OBDlink MX+와 저번 글에서 언급했듯 Veloster N은 OBD단자에서 CAN 신호를 주지 않기 때문에 CAN 통신 케이블이 필요합니다.

 

https://mapsosa.com/4

 

벨로스터N(Veloster N) CAN-BUS Part .3 - CAN 통신 케이블

3secondz에서 구매한 CAN 통신 케이블을 받았다. 근데 순정에는 있는 핀이 없다. 다행히 내가 울산에 살아서 아는사람 한테 샤바샤바해서 하나를 구해서 꽂았다. 저 핀이 있으면 커넥터에서 락을 걸

mapsosa.com

설치 방법은 위의 링크를 참조하세요.

 

 

레이스 크로노에 등록하는 방법은 예를 들어 pid 128 Accel Pedal Position인 경우

 

위와 같이 등록해주시면 되고

 

PID 128 RPM 같은 경우에는 스프레드 시트에 LE라는 말이 있죠

LE라는 말이 있는 것은 위와 같이 bytetouintLE를 사용해서 입력하셔야 합니다.

 

위와 같은 PID 1281 Suspention mode의 경우 byte 단위가 아닙니다

12번째 bit부터 2bit입니다.

그러므로

계산식은 bitstouint(raw,12,2)가 되어야 합니다.

 

 

그리고 등록 시에 단위에 유의하세요

몇몇 값들은 레이스크로노에서 단위를 자기 멋대로 바꿔버립니다.

진짜 짜증 나던데 자동으로 단위변환을 해주는 건 좋은데 PID별로 원하는 단위를 선택할 수 없습니다.

그런데 스피드 같은 경우에는 원래부터 kph로 날아옵니다. 그걸 레이스 크로노에서는 자동으로 m/s로 해석해서 kph로 변환하는 바람에 값에 3.6이 자동으로 곱해집니다. 그래서 계산식에서 나누기 3.6을 해주셔야 합니다.

그리고 tpms 압력 같은 경우에는 psi단위로 날아오는데 그걸 압력이라고 kpa로 해석해서 bar로 고치는 짓을 하기 때문에

단위를 변경할 수는 없으니 계산식에서 100을 곱해주고 35 bar로 표시되는걸 psi로 읽으시면 되겠습니다.

 

혹시 DCT 타시는 분들은 확인해 주셨으면 하는 게 저기서 Gear인디케이터가 DCT에서도 8단까지 정상 지시를 하는지(DCT에서는 8단 까지 있으니 계산식은 Lowpass(bittouint(raw,41,4),8)이 되어야 할겁니다.) 그리고 pid 1184에 노란색으로 표시된 Transmission mode가 실제로 저 값이 맞는지 알려주시면 감사하겠습니다. 

 

그리고 Cluster Speed로 예측되는 값이 실제 차량 Speed보다 높게 지시하는데 법적으로 그런 걸로 압니다. 여하튼 Cluster Speed가 유일하게 2바이트 짜리라 00 00 ~ FF FF 까지 255 이상으로 지시가 가능할 것이라고 생각합니다. 왜냐하면 실제 스피드는 일단 해독한 캔통신 상에서는 1바이트로 되어있어 00~FF까지 즉 255가 지시 한계입니다. 다음 Byte로 넘어가서 비트 단위로 쪼개보면 더 지시도 가능하겠으나 일단은 저 상태에서는 255가 한계입니다.

근데 제가 255 이상 밟을 기회가 없다보니 Cluster Speed가 255이상 지시하는지 확인을 할 수가 없었습니다. 혹시 계기판 지시상 255이상 밟으실 기회가 있으신분 계시면 Cluster Speed가 255이상 지시하는지 아니면 오류가 나는지 알려주시면 감사하겠습니다.

 

입력하는 법은 RaceChrono의 계산 방법을 참조하세요

https://racechrono.com/support/equations

 

Equations reference – RaceChrono

 

racechrono.com

CAN-BUS 카테고리에 다른 글도 참고해보세요.

반응형