본문 바로가기
Concept/CAN

CAN통신을 이용한 YF 소나타 계기판 제어

by boxbop 2015. 6. 17.
반응형

AT90CAN128 보드를 사용하여 CAN통신을 구현하고 있습니다.

오픈소스로 되어 있는 CAN 소스를 다운로딩해서 구동하려 했지만 역시나 단방에 실행은 불가능했으며 디버깅을 통해 임시적으로 오류를 해결하고 실행시키는데 성공했습니다. 오실로 스코프로 찍어보니까 파형도 이쁘게 잘 나왔구요.


일단은 보다 정확하게 CAN 통신을 테스트하기 위해서 접근이 비교적 쉽고 시각적인 요소가 포함되어 있는 타겟을 찾아보던 중에 차량용 계기판이 적합하다는 판단을 내렸습니다. 평소에 심레이싱도 좋아하기 때문에 나중에 뭔가 레이싱휠과도 연결해보면 좋을 것 같아서 중고로 YF 소나타의 계기판을 구매했습니다.


일반적으로 자동차 회사의 CAN통신 규격은 비공개 되어 있기 때문에 구글링하여 떠돌아 다니는 모든 정보를 수집하여 전부 테스트를 진행했습니다. 사실 타겟이 되는 차량의 OBD-II 포트를 이용하여 패킷을 스니핑해보면 시간을 단축시킬 수 있었지만 차량이 없어서 일단은 노가다로 진행했네요. 사실 이 과정에서 시간이 제일 많이 소요되었습니다... 의미없는...ㅠㅠ 그리고 보유하고 있는 차량용 계기판(클러스터)는 YF소나타의 제품이지만 테스트에서는 뉴 카렌스의 CAN 메시지에 반응을 보였습니다.


차량용 CAN 통신 계기판 테스트 제어 코드는 GitHub로 업로드 해 놓았습니다.

계속적으로 수정 할 예정이며 다음 링크를 참조하세요.

https://github.com/Boxbop/CAN_Cluster



계기판의 기어정보를 조작하여 디스플레이 하고 있습니다.





RPM 정보도 마찬가지로 원하는 값으로 설정할 수 있습니다.





속도 값도 조작이 가능하며 실제 주행거리가 올라가기도 하네요





시중에서 쉽게 구매할 수 있는 USB2CAN 모듈입니다.





<문제 발생>

오픈소스를 가져다가 쓰면서 바로 패킷이 한번 나가고 조용하길래 코드 수정을 조금 했는데 그 부분이 문제가 된듯하네요. 기억에는 문제가 조금 있어서 CAN 패킷 송신 완료 레지스터 값을 체크안하는 걸로 수정해서 사용하고 있었습니다. CAN2USB 테스트 모듈로 실험해보니까 패킷들이 서로 간섭현상을 일으키는 것 같아 데이터 페이로드 값들이 서로 조금씩 꼬이는 현상이 일어나고 있었네요...;;







반응형

'Concept > CAN' 카테고리의 다른 글

OBD-II  (0) 2015.06.17