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