Peugeot 차량 DIY CAN 통신 해보자!(508기준)

(10)-2 ELM327 사용기(Tera term으로 ECU 명령 보내고 받기 )

peugeotory 2023. 10. 18. 18:07

잠시 옆길로 빠진김에...

ELM327 chip 활용해서 직접 명령을 주고 받는 것에 도전해 봤습니다. 푸조 208에서 작업한 프랑스분이 글 올려 놓아서 참조했습니다. (링크)

 

결론 부터 말하면, 무료 터미널인 Tera Term이나 Putty 설치해서 둘다 해봤는데 다 잘됩니다.

(참고) windows에서만 가능합니다. 맥OS에서 여러 차례 시도했는데, 성공한 적은 없군요.. ㅠㅜ

 

(결과)

즉, 무료 터미널 설치하고... 먼저 알리에서 구매한 엔진 ECU 시뮬레이터에 연결후 AT 명령 입력합니다.

 

1) atz 명령 : 현재 가지고 있는 ELM327칩에 대한 버전 확인 하는것 부터 시작했습니다.. ELM327 버전 v2.2라고 나옵니다.

 (터미널 설정 방법은 아래 우측 그림 참조)

 

2) "atdp" 명령은 CAN 통신 프로토톨에 대한 정보 읽어 오는 명령이며

3) "ath1" 명령은 "자동 헤더"를 활성화합니다. 이 옵션이 활성화되면, ELM327이 자동으로 모든 응답에 헤더를 추가합니다. 헤더는 해당 응답이 어떤 모듈에서 식별되는 데 사용됩니다.

4) "ats1" 이명령은  "공백 인쇄"를 활성화합니다. 이 옵션이 활성화되면, ELM327이 모든 응답에 공백을 추가합니다. 즉, 응답이 더 쉽게 읽힐 수 있다는 뜻입니다.

5)"0105"는 엔진의 특정 정보를 요청한 것입니다.

 

(그밖에 유용한 링크)

http://twisting-roads.com/2017/11/elm327-access-via-windows-terminal/ -a-terminal/

http://twisting-roads.com/2017/11/custom-obd-ii-modes-in-a-terminal/

 

약간 오래된 자료인것 같은데... ELM327 AT Commands 모음집 자료도 찾았습니다. (참고 -링크)

 

실제로 사용해 본 결과 명령어만 숙지할 수 있다면, 처음 접하는 경우라도 OBD 케이블이나(또는 OBD 동글) PC만 있으면 얼마든지 통신해 볼 수 있다는 것입니다.

 

물론 쉬운것은 아닙니다. atz, atdp 등등 명령어를 숙지해야 합니다. 그리고 보내는 바이트 단위의 숫자 의미도 알고 있어야 합니다.

원하는 CAN data를 보내고 받아 보기 위해 아래 ELM 327 설명서를 참조 했습니다

ELM327DS (2).pdf
0.43MB

 

 

위에 첨부한 파일 열어보면, (ELM327DS(2).pdf 파일을 열어서..)

아래와 같이 여러 명령어 사용법에 대해서 상세하게 나와있습니다.(물론 많은 페이지의 영문 ㅠㅜ)

 

ELM327칩 사용법에 대한 간단한 사례 하나 발췌헤서 아래 정리해 봤습니다.

.

.

.중략...

중략....

.

.

 

푸조 차량에도 적용할 수 있을까요?

(사례) 프랑스분이  올려 놓은 설명을 언급하면,  ELM327칩 사용해서 푸조 엔진 ECU와 연결한 아래와 같습니다.(링크)

터미널에서 OBD2 scantool에 연결하고 다음 명령을 입력합니다. :

 

AT Z                    (ELM327 재설정)

AT H1                  (헤더 시각화 활성화)

AT D1                  (데이터 길이 시각화 활성화)

AT CAF0             (응답 자동 포맷 비활성화)

AT SH 6A8         (ECU 주소 선택 )  <-- 나중에 확인해 보니 푸조 엔진 ECU Frame ID가 맞습니다.

03 22 D4 00      (RPM 요청)

 

그리고 ECU는 다음과 같이 응답합니다: 688 6 05 62 D4 00 xx yy

여기서 xxyy는 RPM 값이 있는 2바이트 16진수입니다.

 

잘 된다고 합니다.

(저는 제차 엔진에  아직 접속해 보지는 않고, 알리에서 구매한  엔진 시뮬레이터에 접속만 해봤습니다.)

 

문제는......

그냥 학습 용도로는 괜찮은데, 실제 CAN 분석용으로 사용하기는 어렵습니다.

수많은 명령을 숙지해야 하고... 귀신같이 타이핑해서 넣어야 하는데.. 저는 가능하지가 않습니다.

 

작성자 분도 불편했는지, 제가 구입했던 CANalyst-II 기능과 유사한 CAN 분석툴 구매해서 사용했다고 합니다.

(https://github.com/collin80/SavvyCAN)

 

 

사실 ELM327에 대해서 언급한 이유는....

이전에 정리했던 오픈 소스 software편에 첫번째로 리스트업했던

"1) python-OBD(ELM327)" 실행시 해당 명령을 사용하기 때문입니다.

 

python-OBD 소스 코드를 확인하면 OBD 관련 모듈 13개가 있고, 그중 "elm327.py"내부에 위에서

이전에 소개한 명령들이 사용됩니다.

 

;실제로 파이썬으로 작성된 소스코드를 열어보고, 관련 명령을 실행해 보면,

결국, Python-OBD에 대해 제대로 이해하려면 관련 ELM327 명령을 알고 나서 소스코드 열어 봤을때 더 쉽게 이해할 수 있기 때문입니다.

 

python-OBD 오픈 소스는 elm327명령 조합으로 구성된 오픈 소스라고 보시면 될듯합니다. 

 

 

그럼 이제 Python-OBD로 제 푸조 차량에 접속해 보겠습니다.!!

 

<다음편에 계속>