오!!!!
드디어 FAP 앱이 어떻게 동작하는지 알게 되었습니다.
그동안 맨땅에 헤딩하면서 익힌 CAN 통신 기술들.... 명령 보내고 data 읽어 보는 방법 총 동원해서 얻은 결과가 있어서 다행입니다.
1. data 의미 분석 하기
FAP앱이 엔진 ECU에게 필요한 data 요구하면 푸조 차량의 엔진은 그룹으로 묶여진 여러 data를 아래와 같이 전송합니다. 아래 data는 흡기 정보를 요청한 경우 엔진 ECU가 응답한 사례입니다.
연두색 : Frame ID
검정색 : 유효 바이트 길이 또는 8 바이트 이상의 data 보낼때 8바이트씩 순차전송 번호( 21,22,23,24)
오랜지색 : 유효 data
2. 가상 ECU 응답 방식 수정후 앱 관찰
이전글에서 만든 가상 ECU 함수 6개중 하나만 동작하도록 수정합니다. 이후에 응답 data를 하나씩 변경해서 FAP앱 화면에 어떤 변화가 있는지 관찰했습니다.
3. 즉 바이트 하나씩 변경하면 그룹 data에서 3개의 data만 사용하는 것을 알 수 있습니다.!!!!!
( 즉, 흡기라인 정보의 경우 여러 data중 순서대로 5번째, 6번째, 12번째 바이트 data만 유효 )
4. 나중에 DBC 파일을 만들수 있도록 간단하게 표로 정리합니다.
5,6,12번째 data를 조금씩 변경하면서 FAP앱 화면에 변화되는 값을 아래 표에 기록해 두었습니다. 나중에 개인 앱을 하나 만들게 되면 필요할 수 도 있기 때문입니다. (바이트 정보를 00, 0f, 1f, 3f, 7f...ff 까지 변경)
FAP앱이 요청한 "04 21 CC 80 01 명령"은 가속페달 위치와 기어 위치, 그리고 배터리 전압 정보만 추출해서 사용함을 알 수 있습니다. (더 많은 정보가 있지만 나머지는 사용하지 않습니다.)
5. 나머지 5개 함수도 개별로 동작해서 모두 정리하면 끝이 납니다.
예로 정리한 이번 사례는 사실 매우 단순합니다. 하지만 흡기나 배기, 연료 라인으로 넘어가면 바이트값을 알더라도 offset값, 계산 공식을 알아야 하는 어려움이 있고, 정리해야 할 문서의 량이 너무 많아서 여기서는 제외했습니다. 하지만 위의 방식을 따라서 한번 해보면 어렵지 않습니다.(노가다 일뿐...ㅠㅜ)
마무리...
FAP앱은 총 5개(흡기,배기,연료,캠축,기타(전기,에어컨등) 그룹 data 활용해서 엔진 관련(Frame ID = 688, 하나의 ECU 해당) 많은 정보를 알려줍니다.
그중에서 몇 개만 골라서 보여주는데도 사실 너무 많아서 이해하기 어렵습니다.
(엔진에 대한 많은 지식이 있어야 이해할 수 있는 수준입니다.)
그런데...
푸조 차량에는 이러한 Frame ID(즉, ECU)가 무려 45개(이전글) 있습니다.
(지금까지 살펴본 것은 엔진 ECU 단 하나!! 입니다. - 물론 가장 복잡하고 기능이 많기는 합니다.)
즉, 푸조 차량에는 45개의 작은 컴퓨터들이 장착되어 서로 통신하면서 동작하는 로봇과 같습니다.
모두 알아보려면 많은 시간과 노력을 해야 하는 과정인것 같습니다.
여기까지 오는데, 긴 시간이 걸렸습니다(3개월 정도???).
성과가 있었다면, 동작 원리에 대한 궁금증은 모두 해소되었다는 것입니다.
이제 앞으로 남은 일은...
나만의 푸조 앱을 하나 만들어 보는 것입니다!!!
빠르면 3개월 늦어도 6개월이면 충분할것이라 예상됩니다.
성과든 실패든 정리해서 지속 올리겠습니다.
< 다음편에 계속...>
'푸조 진단기 사용 방법 : Diagbox, FAP앱 > (푸조 전용-FAP 앱 ) 분해 도전!' 카테고리의 다른 글
<2> FAP OBD2 앱 분석용 peugeot 508 "가상 엔진 ECU 만들다!!!" (0) | 2023.11.03 |
---|---|
<1> FAP OBD2 앱(android) CAN data 분석 도전! (1) | 2023.11.02 |