基于SAE J1939協(xié)議的發(fā)動(dòng)機(jī)模擬系統(tǒng)開發(fā)
C#調(diào)用接口庫函數(shù)的方法:(1)將庫函數(shù)文件置于工作目錄下;(2)聲明using System.Runtime.InteropServices;(3)聲明ZLGCAN系列接口卡信息的數(shù)據(jù)類型;(4)導(dǎo)入,以打開設(shè)備函數(shù)為例,其他功能函數(shù)引用與之類似。打開設(shè)備函數(shù)為:
4 發(fā)動(dòng)機(jī)模擬系統(tǒng)設(shè)計(jì)
該系統(tǒng)按功能分為發(fā)動(dòng)機(jī)參數(shù)報(bào)文、發(fā)動(dòng)機(jī)故障報(bào)文、發(fā)動(dòng)機(jī)儀表測試。為了便于單獨(dú)使用各個(gè)功能界面,采用復(fù)合界面形式。其運(yùn)行界面如圖4所示。
4.1 發(fā)動(dòng)機(jī)參數(shù)報(bào)文發(fā)送模塊
該模塊是類比現(xiàn)場測試的一組數(shù)據(jù),按照適用于BOSCH高壓共軌系統(tǒng)的歐III發(fā)動(dòng)機(jī)基于SAE J1939的CAN通訊規(guī)范,將幀ID與代表發(fā)動(dòng)機(jī)參數(shù)的數(shù)據(jù)字節(jié)位置相對(duì)應(yīng),同時(shí)可通過修改相關(guān)字節(jié),改變所要發(fā)送的參數(shù)值。
若想發(fā)送轉(zhuǎn)速2 000 r/m,數(shù)據(jù)在報(bào)文的第4、5字節(jié)。發(fā)送數(shù)據(jù)的第4、5字節(jié)為2 000/0.125=16 000轉(zhuǎn)化為兩字節(jié),注意高字節(jié)置于第5字節(jié),低字節(jié)置于第4字節(jié)。同理可查表計(jì)算其他發(fā)動(dòng)機(jī)參數(shù),如潤滑油壓力、冷卻液溫度、蓄電池電壓、燃油油位,ECU溫度,進(jìn)氣溫度,機(jī)油壓力,節(jié)氣門位置等參數(shù)值所對(duì)應(yīng)的幀ID及在數(shù)據(jù)幀的位置。
4.2 發(fā)動(dòng)機(jī)故障報(bào)文發(fā)送模塊
當(dāng)發(fā)動(dòng)機(jī)發(fā)生故障時(shí),傳感器所采集的數(shù)據(jù)通過EMR的單片機(jī)分析處理,決定該采集數(shù)據(jù)是否在正常范圍內(nèi)或有效。如果該數(shù)據(jù)未在正常范圍內(nèi)或無效,EMR將向上位機(jī)發(fā)送故障幀,表明該傳感器對(duì)應(yīng)的元件存在故障。該系統(tǒng)設(shè)計(jì)的總線儀表增加了故障診斷功能,可借助于液晶顯示屏實(shí)時(shí)顯示發(fā)動(dòng)機(jī)的故障類型。
在故障診斷方面,SAE J1939定義了19個(gè)診斷信息(Diagnostic Message,簡稱DM)。該故障報(bào)文發(fā)送模塊主要采用DMl(顯示當(dāng)前故障)功能。DM由診斷故障燈代碼(2字節(jié))和診斷故障碼DTC (4字節(jié))組成。診斷故障碼DTC的長度為4字節(jié),包括可疑參數(shù)碼SPN(19位)、故障類型代碼FMI(5位)、故障發(fā)生次數(shù)OC(7位)、SPN轉(zhuǎn)換方式CM(1位)。
該系統(tǒng)設(shè)計(jì)共定義400多個(gè)故障,將故障類型代碼FMI與SPN相結(jié)合進(jìn)行定義,定義時(shí)遵循SPN和FMI的組合與故障類型一一對(duì)應(yīng)的原則。
4.3 發(fā)動(dòng)機(jī)儀表測試模塊
發(fā)動(dòng)機(jī)儀表測試模塊是將虛擬儀表的指針運(yùn)行速度與開發(fā)儀表相比較,測試開發(fā)儀表的步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)情況。由于只有車速表、油壓表、水溫表、電壓表等儀表數(shù)據(jù)是由發(fā)動(dòng)機(jī)CAN總線提供的,所以測試儀表只能模擬這4個(gè)表盤的步進(jìn)電機(jī)驅(qū)動(dòng)情況。該測試儀表采用Dundas儀表向?qū)?,該產(chǎn)品能夠完全支持Visual Studio 2005特征,包括智能標(biāo)記,高級(jí)數(shù)據(jù)綁定等。Dundas儀表向?qū)峁┴S富的素材庫,利用該向?qū)?,用戶可以設(shè)計(jì)出應(yīng)用于各領(lǐng)域的儀表控件外形和數(shù)據(jù)指示方式。用戶只需編寫相關(guān)的儀表動(dòng)態(tài)變化和響應(yīng)部分代碼即可實(shí)現(xiàn)虛擬儀表功能。
5 結(jié)論
介紹基于SAE J1939協(xié)議的發(fā)動(dòng)機(jī)模擬系統(tǒng)設(shè)計(jì)。該系統(tǒng)具有發(fā)動(dòng)機(jī)工況選擇功能,與待開發(fā)總線儀表連接,可以模擬輸出發(fā)動(dòng)機(jī)的各項(xiàng)工況數(shù)據(jù)。一旦選定某個(gè)報(bào)文,該報(bào)文代表的發(fā)動(dòng)機(jī)參數(shù)即在報(bào)文規(guī)定的更新率下持續(xù)發(fā)送到待開發(fā)總線儀表的總線接口。以此系統(tǒng)設(shè)計(jì)軟件替代真實(shí)的發(fā)動(dòng)機(jī),可以隨機(jī)檢測各項(xiàng)發(fā)動(dòng)機(jī)工況,且具有人為可選擇的靈活性,選擇范圍較真實(shí)發(fā)動(dòng)機(jī)更大。在線模擬系統(tǒng)不受工作環(huán)境限制,可隨時(shí)隨地進(jìn)行檢測。該系統(tǒng)為實(shí)驗(yàn)室的一套發(fā)動(dòng)機(jī)試驗(yàn)系統(tǒng)的一部分,也可以配合教學(xué)實(shí)驗(yàn)課程。通過實(shí)驗(yàn),軟件各部分功能運(yùn)行良好,對(duì)總線儀表開發(fā)具有一定價(jià)值。隨著CAN總線應(yīng)用領(lǐng)域的不斷發(fā)展,SAE J1939協(xié)議必將得廣泛應(yīng)用。
評(píng)論