2018年4月8日 星期日

BMW M62TU Enhanced IKE

延續之前對D-Bus / I-Bus的研究,現在要以此來製作 儀表板顯示擴充.



E38/E39/E53車系能透過儀表板顯示水溫,電壓等資訊但要經過繁複按鍵多次才能顯示,而且熄火再開又要再重頭按一次相當不方便.另外變速箱油溫無法由儀表板顯示也是個遺憾.因此我想要能夠很容易的在儀表板上看到水溫,油溫,氣溫等資訊.

規格

0.支援 M62TU DME7.2 / ZF5HP24 v8.60.2
1.在儀表板LCD顯示資訊.
2.顯示 冷卻水溫度, 水箱出口溫度, 變速箱油溫, 進氣溫度, 進氣量, 電壓, 引擎負載.
3.方向盤按鍵 R/T 控制切換顯示.
4.方向盤按鍵 Next / Prev 控制切換顯示(音響關閉時).
5.點火開關偵測, 紅火才動作.
6.D-Bus 忙碌偵測, 避免與外掛診斷電腦衝突.
7.I-Bus 忙碌偵測, 避免與內部電腦衝突.

架構

E38/E39/E53車系儀表板是車上I-Bus/D-Bus/K-Bus訊號的收發中心,所有與引擎及傳動相關的電腦都串接在D-Bus上提供故障碼診斷及數據流.實作原理是透過D-Bus取得DME/EGS電腦的數據流再透過I-Bus顯示在儀表板LCD.相當於是自製診斷電腦再過濾出想要的資訊並顯示.

硬體

一樣是以STM32F103做處理運算.D-Bus與I-Bus讀寫線路是相同的,除了D-Bus上需要外部pull high.
Usart1 - K-Bus - 9600 8E1
Usart2 - Console - 115200 8N1
Usart3 - I-Bus - 9600 8E1



軟體

以之前I-Bus實做作為基礎增加D-Bus支援.
D-Bus資料傳輸速率是9600 bits/秒, 但發送命令給DME/EGS等電腦必須要每個byte間隔5ms, 而收到DME/EGS等電腦的回應則是連續的.

逆向工程

D-Bus上該送什麼命令?以及收到的回應該如何解析?沒有官方文件只能以逆向工程的方式解決.利用前篇提到的方式解析電腦協議.

1.C310+診斷電腦與K+Dcan傳輸線用OBDII Y型線並接,這樣就可以從PC看到C310+如何與DME/EGS溝通.
2.解碼數據流,透過網路上的資訊及從INPA / EDIABAS的檔案 *.PRG 中分離出編碼的解譯表.
3.建立一個車外獨立實驗環境,一顆IKE儀表,OBDII Y型線,K+Dcan傳輸線,在PC上模擬DME/EGS在收到命令時會產生數據流.有了獨立實驗環境就可以在桌上完成所有的工作,省去每次都要上車測試的困擾.


安裝


總共要接4條線 I-Bus / D-Bus / Terminal R - 12V / GND, 這幾根線都在儀表板排線X10113. 依據顏色找出正確的線.


四條線全部接出來


電路板安放至正鴐邊手套箱旁的空間



最後修改引擎室內20pin診斷頭蓋子,將pin 17 - TXDII 及 pin 20 - TXD 連接在一起並切斷  pin 17 / pin 2 及 pin 20 / pin 15, 這樣才能同時與DME/EGS通訊. 診斷頭蓋子蓋上整個系統才能正確運作.




到此整個實做完成



體驗

上路後實際觀察各項數據
1.水溫,上下水管溫差在水龜未開啟時可達到50~60度的差距,塞車時則會差距20度以內.


2.變速箱油溫,這是我主要的觀測項目,最高溫在100度左右


3.進氣流量,打P檔及關閉空調壓縮機,數值約在15~16kg/h,開空調數值約在18~19kg/h,再採煞車進D檔數值約在24~25kg/h


4.電壓13.7V附近



1 則留言:

  1. 可惜我已經脫離E38 坑掉入E53 了! 不知道E53 能否也用這樣方式 修改?

    回覆刪除