劉會(huì)娟 王斌 楊洋 李斌
摘? ?要:為了實(shí)現(xiàn)在線的CAN總線診斷分析,并且能夠直觀有效檢測(cè)人為帶來(lái)的總線標(biāo)識(shí)編碼錯(cuò)誤,本文給出了一種基于J1939協(xié)議的CAN總線診斷系統(tǒng)設(shè)計(jì),首先介紹了J1939的參數(shù)組PGN、推薦參數(shù)編碼SPN,然后重點(diǎn)介紹了基于J1939協(xié)議的CAN總線診斷系統(tǒng)的軟硬件實(shí)現(xiàn)方法,選擇參數(shù)組編碼PGN標(biāo)識(shí)位作為診斷的唯一分類標(biāo)準(zhǔn),經(jīng)驗(yàn)證所設(shè)計(jì)的診斷系統(tǒng)能夠進(jìn)行現(xiàn)場(chǎng)CAN總線在線診斷,診斷效果直觀有效。
關(guān)鍵詞:J1939協(xié)議? CAN總線? 診斷系統(tǒng)
現(xiàn)有技術(shù)中,工程機(jī)械電控系統(tǒng)本身的復(fù)雜的線束和關(guān)聯(lián)控制增加了故障診斷及維修的難度,各系統(tǒng)(動(dòng)力、傳動(dòng)、制動(dòng)等)信息共享效率較低,無(wú)法形成有效的數(shù)據(jù)處理以獲得持續(xù)工況下的綜合診斷?,F(xiàn)有技術(shù)是安排專業(yè)人員選擇CAN總線分析設(shè)備與軟件在電腦上進(jìn)行操作,現(xiàn)場(chǎng)采集數(shù)據(jù),同時(shí)連接電腦或?qū)?shù)據(jù)轉(zhuǎn)存至電腦載體通過(guò)特定軟件進(jìn)行總線分析,操作人員和分析周期都存在一定的不可控因素。為此設(shè)計(jì)了一款簡(jiǎn)易直接的基于J1939的CAN總線診斷系統(tǒng),在裝機(jī)狀態(tài)進(jìn)行在線分析,操作簡(jiǎn)單,具備獨(dú)立電源,整個(gè)診斷過(guò)程通過(guò)控制系統(tǒng)的CAN總線預(yù)留接口實(shí)現(xiàn),可以靈活選擇公有協(xié)議部分診斷或私有部分診斷,也可以通過(guò)上位機(jī)選擇特殊信號(hào)對(duì)某一PGN(參數(shù)組編號(hào)Parameter Group Number)監(jiān)測(cè)與參數(shù)診斷,能夠更好地滿足不同總線的需求,并且簡(jiǎn)化了總線的診斷過(guò)程,方便及時(shí)處理總線故障。
1? J1939協(xié)議簡(jiǎn)介
J1939協(xié)議是美國(guó)汽車工程師協(xié)會(huì)SAE發(fā)布的以CAN總線為基礎(chǔ)的車輛網(wǎng)絡(luò)串行通信和控制協(xié)議,是基于PGN(Parameter Group Number)標(biāo)識(shí)的CAN2.0B的應(yīng)用層協(xié)議。SAE J1939以PGN和SPN的方式具體規(guī)定了車輛使用的每個(gè)參數(shù)的數(shù)據(jù)長(zhǎng)度,數(shù)據(jù)類型,分辨率和數(shù)據(jù)范圍等。
PGN是一個(gè)24位的標(biāo)識(shí)符,包括保留位(R)、數(shù)據(jù)頁(yè)位(DP)、PF(PDU格式場(chǎng))和PS(群擴(kuò)展場(chǎng))等要素的。SPN(Suspect Parameter Number)是PG(參數(shù)組)中的具體參數(shù)的一個(gè)編號(hào),而PGN是參數(shù)組編號(hào),一個(gè)PGN包含了按一定方法分類的一組參數(shù),而每個(gè)具體參數(shù)又有各自的編號(hào)(就是SPN)。
CAN總線網(wǎng)絡(luò)中的PDU有著不同的來(lái)源,它們可以分為PDU1和PDU2兩大類,且有著各自的PGN標(biāo)識(shí),其中指定目的地址類480個(gè),PDU2為全局目的地址8192個(gè),地址范圍61440~65535,126976~131071。
下面以發(fā)動(dòng)機(jī)部分性能參數(shù)為例,舉例說(shuō)明在J1939協(xié)議下的PGN與SPN定義與詳細(xì)參數(shù)計(jì)算方法表1所示。
發(fā)動(dòng)機(jī)的轉(zhuǎn)速:發(fā)動(dòng)機(jī)實(shí)際轉(zhuǎn)速=原始數(shù)*分辨率+偏移量;當(dāng)轉(zhuǎn)速字節(jié)為1F40H時(shí),1FH=31D,40H=64D。若設(shè)轉(zhuǎn)速為n,n=32*31+64*0.125+0=1000,則n=1000rpm。其他參數(shù)的計(jì)算方法與發(fā)動(dòng)機(jī)轉(zhuǎn)速的計(jì)算方法是相同的,測(cè)量值=原始數(shù)*分辨率+偏移量。
2? 系統(tǒng)硬件設(shè)計(jì)
根據(jù)CAN總線診斷系統(tǒng)的功能要求,選擇ARM系列M4內(nèi)核的32位單片機(jī)STM32F407VGT作為控制器,工作頻率最大可達(dá)168MHz,同時(shí)配合選擇了滿足工程機(jī)械相關(guān)標(biāo)準(zhǔn)的迪文高清工業(yè)串口屏來(lái)開發(fā)人機(jī)界面[1]。CAN總線診斷系統(tǒng)硬件設(shè)計(jì)框圖如圖1所示,主要包括:MCU控制單元、電源單元、CAN通信單元、按鍵輸入單元、數(shù)據(jù)存儲(chǔ)單元和LCD顯示單元。其中MCU控制單元由以STM32F407VGT為核心的復(fù)位電路、時(shí)鐘電路、電源電路、JTAG調(diào)試電路組成的,電源單元由電源充放電轉(zhuǎn)換電路以及電源轉(zhuǎn)換芯片組成。
電源單元包含9V標(biāo)準(zhǔn)供電鋰電池組、電源充放電轉(zhuǎn)換電路以及電源轉(zhuǎn)換芯片。數(shù)據(jù)存儲(chǔ)單元為SDIO(安全數(shù)字輸入輸出 Secure Digital Input and Output )接口存儲(chǔ)卡,主要用于存儲(chǔ)私有協(xié)議DBC文件,以及現(xiàn)場(chǎng)診斷總線數(shù)據(jù)文件。LCD液晶顯示單元與按鍵輸入單元組合實(shí)現(xiàn)總線參數(shù)設(shè)置及診斷類型的選擇。按鍵輸入單元包含五個(gè)按鍵,分別為上/下設(shè)置按鍵、左/右設(shè)置按鍵、確認(rèn)鍵。
3? 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)按照J(rèn)1939協(xié)議的PGN編碼規(guī)則進(jìn)行診斷,分為CAN總線基本性能診斷以及協(xié)議診斷,其中協(xié)議診斷包括公有協(xié)議和私有協(xié)議診斷。公有協(xié)議為完全按照SAEJ1939規(guī)定的應(yīng)用層規(guī)定直接分析和診斷,私有協(xié)議則是按照讀入提前寫入的DBC協(xié)議存儲(chǔ)文件后進(jìn)行分析和診斷[2-3]。
主要顯示內(nèi)容有:診斷類型、詳細(xì)PGN參數(shù)值、故障SPN編碼以及故障類型。圖2、3、4、5所示,為本系統(tǒng)診斷過(guò)程界面示意圖,其中,通過(guò)按鍵結(jié)合顯示屏實(shí)現(xiàn)診斷過(guò)程;圖6所示的為本系統(tǒng)診斷過(guò)程軟件流程圖,依以下步驟執(zhí)行。
(1)裝置上電啟動(dòng)檢測(cè)診斷指令,進(jìn)入診斷選擇界面,如圖2所示。(2)選擇CAN-Test基本性能檢測(cè),進(jìn)入基本性能檢測(cè)界面,主要采集端口電壓、總線利用率、錯(cuò)誤率、錯(cuò)誤幀以及全部PGN編碼判定,上傳數(shù)據(jù)、存儲(chǔ)并顯示。在本實(shí)例中,對(duì)不符合J1939標(biāo)準(zhǔn)的PGN信息幀,直接顯示并報(bào)警。(3)選擇公有協(xié)議診斷,進(jìn)入公有協(xié)議診斷界面,具體如圖3所示,采用只聽模式偵聽總線數(shù)據(jù),結(jié)合J1939規(guī)定協(xié)議進(jìn)行發(fā)動(dòng)機(jī)轉(zhuǎn)速、油溫、油位、水溫等參數(shù)的數(shù)據(jù)上傳存儲(chǔ)與顯示,并對(duì)參數(shù)進(jìn)行分析診斷,數(shù)據(jù)異常則故障報(bào)警并顯示。(4)選擇私有協(xié)議診斷,進(jìn)入私有協(xié)議診斷界面,具體如圖4所示,可選只聽或是應(yīng)答模式進(jìn)行總線數(shù)據(jù)監(jiān)聽,可選單純編碼規(guī)范性檢測(cè)、讀存儲(chǔ)文件進(jìn)行全部PGN診斷或是結(jié)合按鍵實(shí)現(xiàn)特定PGN診斷圖5所示,數(shù)據(jù)上傳存儲(chǔ)與顯示,并對(duì)參數(shù)進(jìn)行分析診斷,數(shù)據(jù)異常則故障報(bào)警并顯示。
4? 結(jié)語(yǔ)
本系統(tǒng)公開的一種可在裝機(jī)狀態(tài)進(jìn)行在線CAN總線診斷的系統(tǒng),以PGN作為唯一診斷標(biāo)識(shí),適用于整車使用J1939協(xié)議的CAN總線系統(tǒng),集數(shù)據(jù)存儲(chǔ)、顯示、診斷與一體,不僅能夠方便快捷地診斷總線基本性能及基本數(shù)據(jù)故障,還結(jié)合協(xié)議簡(jiǎn)化了診斷的過(guò)程,現(xiàn)場(chǎng)測(cè)試證明效果良好。
參考文獻(xiàn)
[1] 饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[2] 劉勝,李剛炎,胡劍,等.SAE J1939協(xié)議在客車車燈控制系統(tǒng)中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2007(1):26-28.
[3] 徐建軍.基于SAE J1939的發(fā)動(dòng)機(jī)監(jiān)控系統(tǒng)研究[D].江蘇大學(xué),2008.