푸조 진단기 사용 방법 : Diagbox, FAP앱/(푸조 전용-FAP 앱 ) 분해 도전!

<2> FAP OBD2 앱 분석용 peugeot 508 "가상 엔진 ECU 만들다!!!"

peugeotory 2023. 11. 3. 10:06

FAP앱에 반응 할 수 있는  가상 엔진 ECU 만들었습니다.

(Python-can으로 만들었으며, 엔진 ECU와 응답 기능이 완전히 동일한 기능입니다.) 

 

가상 엔진 ECU가 없다면,...............

 

차량에 가서 장시간 분석해야 하는데, 차량 배터리 방전 문제도 있고 무엇보다 매우 불편해서 작업하기 힘이듭니다. 따라서 대안으로 책상에 작업할 수 있도록 엔진 ECU와 동일하게 작동하는 SW로 만든 ECU 제작했습니다.

 

 

동작 원리를 간단하게 설명해보겠습니다.

이전글에서 정리해두었던 추출된 엔진 data 하나를 예를 들어보겠습니다.

아래처럼 6A8(FAP 앱 Frame ID)가 특정 정보를 요청하면 엔진 ECU(688) 그룹 data를 순차적으로 보냅니다.

.

1)엔진 ECU에게 요청한 명령

6A8: 04 21 CA 80 01 

 

2) 엔진 ECU가 응답한 바이트 data ( 흡기라인 전체 그룹 정보)

688: 10 2E 61 FF 03 01 00 00

688: 21 5F 5C 03 E8 03 F3 03

688: 22 EE 5A 5A FF FF 00 00

688: 23 00 FF 12 13 04 98 00

688: 24 00 FF FF FF FF FF FF

688: 25 49 03 BB 3A FF 00 C6

688: 26 00 C6 FF FF 00

.

.

 

1. 위의 data를 Python-CAN(이전글) 적용할 수 있도록 하나의 함수로 만듭니다. 

(1) 흡기라인 정보에 대한 응답 함수(파이썬에서는 메소드라고 합니다.)

--> 위와 같은 방법으로 모두 5개의 함수를 만들어서 Python-CAN 코딩하여 가상 ECU를 완성합니다.

 

(2) 연료라인 정보에 대한 응답 함수

 

(3) 캡축.크랭크축 동기화 관련 함수

 

(4) 배기 라인 정보에 대한 응답 함수

 

(5) 기타 정보에 대한 응답 함수 (배터리,기어, 속도, 가속페달 정보)

 

 

2. 완성된 코드를 seeed-USB-CAN-Analyzer(이전글)와 연동 할 수 있도록 아래와 같이 연결했습니다. 

1) wifi OBD2 동글 동작시 14V 전원이 필요하여 엔진 시뮬레이터에 연결하고,

2) 위에서 작성한 코드들이 동작하는 PC(Python-CAN으로 동작하는 가상 ECU)와 연결된 Seeed studio CAN 분석기 출력을 통해 OBD2 CAN 신호선과 연결됩니다.

3) 가상 ECU와 FAP앱이 주고받는 내용 분석하기 위해, CAN 분석기(CANalyst II)을 추가로 CAN 신호라인에 붙여주었습니다.

4) 이제 FAP 동작 시켜보면 가상 엔진 ECU가 FAP앱에 응답하여 동작하는 것이 확인 됩니다.

 

3. (결과) FAP앱 호출에 응답하기 시작합니다.

Fap앱 동작시켜 OBD2 wifi 동글에 연결 성공하면 가상 ECU가 동작하며 호출할때 마다 올바르게 응답합니다.

 

- (영상 좌측 data) Python-CAN 응답 (Seeed studio) 결과

- (영상 중앙 data) CANalyst-II CAN 분석기 측정 결과 

 

 

4.  드디어 FAP앱 해부 가능한 수술 도구가 준비 되었습니다.!!!

이제 차에 가서 연결하는 불편없이 책상에 앉아서 FAP앱의 동작 원리와 기능 그리고 그에 상응하는 엔진 data 분석 할 수 있습니다.

 

<최종 동작 시현>

 

(참고) 동영상에서 FAP 앱 화면에 결과가 변경 되지 않는 이유는 SW에서 고정 data를 보냈기 때문입니다.

실제 엔진에서는 FAP앱이 0.5초 마다 값을 읽어 오기 때문에 실시간으로 변경됩니다.

 

이제 FAP앱이 어떻게 ECU data 처리하는지 알아보겠습니다..!!!

 

<다음편에 계속...>