蔡彭騎
摘要:隨著柴油機(jī)電控系統(tǒng)和車載CAN網(wǎng)絡(luò)的廣泛使用,基于車載網(wǎng)絡(luò)運(yùn)行的柴油機(jī)故障診斷系統(tǒng)具有非常重要的作用。文章基于嵌入式Linux系統(tǒng)設(shè)計(jì)了一種能夠解析J1939網(wǎng)絡(luò)協(xié)議的柴油機(jī)故障診斷模塊,具有成本低、可維護(hù)性和可擴(kuò)展性好等優(yōu)點(diǎn)。在東風(fēng)康明斯CM2150柴油機(jī)上實(shí)驗(yàn)結(jié)果表明,該模塊能夠正確高效地實(shí)現(xiàn)電控系統(tǒng)故障診斷。
關(guān)鍵詞:嵌入式Linux;柴油機(jī);J1939協(xié)議
隨著車載電控技術(shù)的飛速發(fā)展,柴油電控發(fā)動(dòng)機(jī)及車載網(wǎng)絡(luò)技術(shù)已經(jīng)得到了普遍應(yīng)用。目前,高性能的柴油發(fā)動(dòng)機(jī)故障診斷系統(tǒng)主要都采用國(guó)外企業(yè)生成的產(chǎn)品,這不但增加了國(guó)內(nèi)汽車企業(yè)的運(yùn)用成本,也妨礙了我國(guó)發(fā)展具有自主知識(shí)產(chǎn)權(quán)的汽車工業(yè)。因此,本文嘗試基于開(kāi)源軟件平臺(tái)設(shè)計(jì)一種柴油機(jī)故障診斷模塊。該模塊基于嵌入式Linux操作系統(tǒng)內(nèi)核,通過(guò)對(duì)車載J1939網(wǎng)絡(luò)故障診斷協(xié)議進(jìn)行解析,實(shí)現(xiàn)電控柴油機(jī)的故障診斷。該模塊提供了完善的應(yīng)用接口,能夠高效融入各種現(xiàn)有車載故障平臺(tái),具有較好的應(yīng)用性價(jià)比[1]。
1 系統(tǒng)架構(gòu)
本文設(shè)計(jì)的柴油機(jī)故障診斷軟件模塊在邏輯上分為硬件抽象層、內(nèi)核層、J1939解析層和應(yīng)用層共4層,其架構(gòu)如圖1所示。
2 硬件抽象層設(shè)計(jì)
本文設(shè)計(jì)的硬件抽象層的主體是硬件資源包(BSP)。BSP的作用是對(duì)底層硬件的參數(shù)細(xì)節(jié)進(jìn)行封裝,并向內(nèi)核提供訪問(wèn)接口。本文選擇的硬件平臺(tái)是飛思卡爾imx6q處理器,所以BSP移植針對(duì)imx6q處理器展開(kāi),其方法如下。
(1)在\mqx\source\bsp和installdir\lib目錄下分別創(chuàng)建新的目錄fsmqx;
(2)將nscf51acrl.mem 文件中的:
“range 0x00000410 0x0003FFFF 4 ReadWrite //Second Section of the 256KBytes of Flash Memory
reserved 0x00040000 0x007FFFFF ”
改為:
“range 0x00000410 OxOOOlFFFF 4 ReadWrite //Second Section of the 128KBytes of Flash Memory
reserved 0x00020000 0x007FFFFF ”
(3)將$installdir\mqx\source\bsp\nscf51acrl\cw\intflash.lcf文件中的:
“:rom(RX):
ORIGIN = 0x00000440, LENGTH = 0x0003FBBF #Code + Const data # = 0x3FFFF - 0x440::256K Flash”
修改為:
“rom(RX):ORIGIN = 0x00000440, LENGTH =0x0001FBBF # Code + Const data # = OxlFFFF - 0x440::128K Flash ”。
3 嵌入式Linux內(nèi)核移植
嵌入式Linux系統(tǒng)是一種針對(duì)嵌入式設(shè)備的開(kāi)源、多任務(wù)操作系統(tǒng)。該系統(tǒng)具有性能穩(wěn)定、可移植性好等優(yōu)點(diǎn),廣泛應(yīng)用在各類非實(shí)時(shí)嵌入式計(jì)算環(huán)境中。因此本文將其移植到基于的嵌入式平臺(tái)上[2]。具體移植方法如下所示。
3.1 驅(qū)動(dòng)定制
因?yàn)轱w思卡爾imx6q處理器集成了CAN總線驅(qū)動(dòng)器MSCAN,所以本文所設(shè)計(jì)系統(tǒng)為MSCAN。
定制驅(qū)動(dòng)程序mscan.c和mscan.h。其設(shè)計(jì)方法為:
(1)MSCAN初始化的流程如圖2所示。
(2)CAN數(shù)據(jù)幀收發(fā)功能設(shè)計(jì)。
CAN數(shù)據(jù)幀發(fā)送和接收功能流程如圖3—4所示。
3.2 文件系統(tǒng)定制
文件系統(tǒng)的作用是管理各類固化存儲(chǔ)器中的程序文件和配置文件。本文基于Yaffs2制作了嵌入式Linux文件系統(tǒng)鏡像[3]。
4 J1939協(xié)議解析
J1939協(xié)議是一種位于CAN總線應(yīng)用層的通信協(xié)議,用于定義和規(guī)范CAN數(shù)據(jù)幀中ID域和DATA域中的各項(xiàng)內(nèi)容。該協(xié)議基于J1708和J1587協(xié)議標(biāo)準(zhǔn)開(kāi)發(fā),具有運(yùn)行開(kāi)銷低、通信過(guò)程高效等優(yōu)點(diǎn),廣泛應(yīng)用于各類中大型客貨車輛中[4]。J1939協(xié)議包含了J1939/11,J1939/21,J1939/31, J1939/71, J1939/73等子協(xié)議,其中J1939/73定義了車輛電控單元通信應(yīng)用層和故障診斷方面的規(guī)范[5]。因此,本文所設(shè)計(jì)模塊的核心任務(wù)之一是對(duì)該協(xié)議進(jìn)行解析。解析過(guò)程主要針對(duì)PDU數(shù)據(jù)包展開(kāi),其基本方法包括以下兩個(gè)[6-7]。
4.1 ID識(shí)別
根據(jù)數(shù)字字典中的ID類型對(duì)CAN數(shù)據(jù)幀ID進(jìn)行模式匹配,具體方法為正則匹配法。
4.2 DATA區(qū)解析
采用協(xié)議樹(shù)查找法對(duì)CAN數(shù)據(jù)幀DATA區(qū)數(shù)據(jù)進(jìn)行解析,得到柴油發(fā)動(dòng)機(jī)電控系統(tǒng)的原始參數(shù)。
5 實(shí)驗(yàn)
將本文設(shè)計(jì)的柴油機(jī)故障診斷模塊通過(guò)CAN總線電纜和東風(fēng)康明斯CM2150柴油機(jī)的OBD接口進(jìn)行連接。分別進(jìn)行故障碼讀取和數(shù)據(jù)流讀取兩項(xiàng)實(shí)驗(yàn)。該系統(tǒng)正確讀取到了2組故障碼,分別是水溫傳感器信號(hào)線對(duì)地短接,燃油軌道壓傳感器信號(hào)線斷路。該系統(tǒng)能以10 Hz的采樣率正確讀取發(fā)動(dòng)機(jī)轉(zhuǎn)速、油門踏板開(kāi)度、燃油軌道壓力、進(jìn)氣量、水溫等工況數(shù)據(jù),達(dá)到了預(yù)期效果[8]。
6 結(jié)語(yǔ)
本文基于嵌入式Linux系統(tǒng)設(shè)計(jì)了一種能夠解析J1939網(wǎng)絡(luò)協(xié)議的柴油機(jī)故障診斷模塊,具有成本低、可維護(hù)性和可擴(kuò)展性好等優(yōu)點(diǎn)。在東風(fēng)康明斯CM2150柴油機(jī)上實(shí)驗(yàn)結(jié)果表明,該模塊能夠正確高效實(shí)現(xiàn)電控系統(tǒng)故障診斷。
[參考文獻(xiàn)]
[1]孫鵬.柴油機(jī)共軌電控噴射系統(tǒng)故障診斷方法探討[J].山東工業(yè)技術(shù),2018(8):44.
[2]劉世偉.船舶柴油機(jī)故障診斷技術(shù)發(fā)展現(xiàn)狀與趨勢(shì)分析[J].內(nèi)燃機(jī)與配件,2018(6):146-147.
[3]張遠(yuǎn)征.基于嵌入式Linux與QT的礦用柴油車虛擬儀表軟件設(shè)計(jì)[J].煤礦機(jī)械,2016(12):163-165.
[4]李招峰.基于嵌入式技術(shù)的柴油機(jī)故障診斷系統(tǒng)的設(shè)計(jì)[D].武漢:武漢理工大學(xué),2012.
[5]劉魯平,張鳳登,車蕊.基于CAN總線的柴油機(jī)故障診斷系統(tǒng)[J].電子測(cè)量技術(shù),2016(12):184-188.
[6]李文靜.船用柴油機(jī)信息化系統(tǒng)硬件在環(huán)系統(tǒng)的研發(fā)[D].上海:上海工程技術(shù)大學(xué),2014.
[7]佚名.基于CAN總線的常見(jiàn)的應(yīng)用層協(xié)議:J1939,CANopen,DeviceNet[J].國(guó)內(nèi)外機(jī)電一體化技術(shù),2018(1):42.
[8]汪志斌,吳長(zhǎng)水,黃敏濤,等.基于J1939協(xié)議的車輛故障診斷與ECU報(bào)文解析[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2017(12):7-11.