본문 바로가기

통신/CAN

프로그램 우리 회사의 제품 특성상 주행 거리 계산이 대단히 중요한 issue입니다. 그런데 스펙 어디를 뒤져봐도 주행거리를 알려주는 PID는 없더군요. 가만...거리 = 속도X시간 이지? 까이꺼 그냥 계산해 버리기로 했습니다.. 100ms마다 한번씩 속도를 구해서 시간을 곱한 후, 누적시키면 총 주행 거리가 되는 거겠죠. 속도(Km/h) * 시간(ms) = 거리 (단위 변환은 각자 하시길...) 당연한 얘기지만 더 자주 sampling하면 정밀도 또한 높아지겠죠. 참고로, 100ms 마다 계산해서 20Km 정도 주행후 차량 오도미터와 비교해봤는데, 500미터 정도의 오차가 났었습니다. Car PC용 OBD 프로그램 http://carobd.com/download.html 더보기
ECU Simulator & OBD-II Scanner 제품 외관은 좀 허접해 보입니다. 그림에서 보는 바와 같이 12V 어댑터가 동봉되어 있습니다. 통신 속도는 250K와 500K 중에서 선택할 수 있고, 11bit와 29bit 중에서 ID를 선택할 수 있습니다. 5가지 PID를 지원하고, DTC 버튼을 누르면 MIL이 점등되고 진단코드를 읽으면 미리 정의된 코드가 읽힙니다. 구매 및 자세한 설명은 이지댁 홈페이지 참조. 비교적 저가이면서 쉽게 구할 수 있는 OBD-II 스캐너가 있어 소개합니다. ScanTool 사에서 제작한 ElmScan5. 모델명에서 유추하건데, ELM327 칩을 사용했을 것으로 보입니다. RS232, USB, Bluetooth 세가지 방식이 있으며, CAN 뿐만 아니라 모든 OBD-II 프로토콜이 지원된다고 홈페이지에 소개되어 있습니.. 더보기
OBD-II OBD : On Board Diagnosis 차량에 내장되어 차량의 고장을 진단한다는 뜻 정도 되겠네요. 통신 방식에 따라 크게 3가지, 세부적으로는 5가지 정도의 방식이 존재합니다. VPW-PWM : SAE-J1850 CAN 통신 : ISO 15765, SAE-J2234 ISO 방식 : ISO 1941-2, ISO 14230-2 뿐만 아니라 EOBD(유럽형), KOBD(국내)등 각국이 임의로 제정한 방식까지, 그야말로 제각각입니다. 그럼, 이 많은 통신 방식을 모두 알아야 할까요? 대답은 No 입니다.(물론 순전히 제 개인적인 생각입니다) OBD가 최초 제안된 곳이 미국인데, 미국에서 2008년 이후 생산되는 모든 차량은 OBD-II의 통신 방식으로 CAN을 의무화하였다고 합니다. 우리나라에서도 현대자.. 더보기
CAN 통신으로 OBD-II 구현 제가 해본 것이 CAN 뿐이라, CAN 통신으로 한정해서 이야기를 해보겠습니다. 우선 한가지 짚고 넘어갈 사실. CAN과 OBD-II 의 관계(?)라고나 할까... 처음 study 할때 나역시 무척 삽질했던 내용입니다. OBD-II는 차량 배기가스 등을 진단하기 위한 약속이고, CAN은 이 진단을 위한 통신규약의 하나일 뿐입니다. 다시 말해, OBD-II를 구현하기 위해 CAN 통신을 이용하는 것일 뿐, 비교대상이 아니라는 말이죠. 저또한 처음에 저 둘을 비교대상으로 잘못 알고 접근했다가 엄청 헤맸었던 기억이 있습니다. 소프트웨어를 개발하는데 C언어나 베이직, 혹은 어셈블리 등 어떤 언어를 사용할지 선택은 프로그래머의 몫이듯, OBD-II를 구현함에 있어 CAN을 사용할건지, PWM이나 ISO방식을 사용.. 더보기