公務員期刊網 論文中心 正文

CAN網絡下的車輛故障診斷軟件設計

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了CAN網絡下的車輛故障診斷軟件設計范文,希望能給你帶來靈感和參考,敬請閱讀。

CAN網絡下的車輛故障診斷軟件設計

摘要:設計一種應用于電腦端的車輛故障診斷軟件,將不易理解的二進制can信息數(shù)據(jù)轉變成十進制數(shù)據(jù)和文字,同時給出相應的故障描述,降低維修工作難度,提高故障診斷效率。

關鍵詞:CAN網絡;車輛故障;診斷軟件

隨著汽車產業(yè)的迅猛發(fā)展,汽車的電子控制系統(tǒng)智能化程度越來越高,所使用的電子控制單元越來越多,也越來越復雜。系統(tǒng)中任何一個部件的故障,都可能導致整個系統(tǒng)的故障。電子控制系統(tǒng)的故障通常由CAN總線發(fā)出,總線上的信息都是以二進制為基礎。當車輛出現(xiàn)故障時,汽車維修人員需要具備一定的專業(yè)知識,才能解讀和定位車輛的故障。因此,開發(fā)一款有針對性的車輛故障診斷軟件在汽車的維修服務中非常重要[1]。本文所開發(fā)的車輛故障診斷軟件能夠自動完成故障數(shù)據(jù)采集、問題判斷及故障描述等功能,能夠降低維修人員的工作復雜度,提高工作效率。

1基本方案

基本方案由標準總線設備(CAN工具)和故障診斷軟件兩部分組成。其基本構架如圖1所示。標準總線設備通過車輛的OBD接口接入車載CAN網絡,主要負責電腦和車輛之間不同數(shù)據(jù)幀的封裝和信號轉換[2]。故障診斷軟件安裝在電腦上,通過USB接口與標準總線設備連接,主要負責向車輛控制單元發(fā)送指令,同時處理應答的數(shù)據(jù);記錄下每次的故障信息及維修人員的維修記錄,建立維修記錄文件。目前車輛上的電控模塊都使用CAN總線進行通信,因此汽車故障診斷系統(tǒng)主要針對CAN總線通信協(xié)議進行開發(fā),通過連接車輛OBD口實現(xiàn)。系統(tǒng)軟件的通信流程如下:1)故障診斷系統(tǒng)通過專用的CAN工具與車輛CAN總線進行連接;若連接不成功,則進行提示,并且在一定時間內循環(huán)連接,直至成功為止。2)連接成功后,對CAN進行特定波特率(250kbps)設置,完成初始化。3)設置總線信息的過濾機制,對于CAN總線而言,總線上傳輸著大量的數(shù)據(jù),通過CANID的過濾,篩選出需要的數(shù)據(jù)傳給上位機,避免上位機對繁多的數(shù)據(jù)進行處理。4)根據(jù)通信協(xié)議中故障位的范圍對總線上相應的CAN信息進行取值,再進行一定的數(shù)據(jù)處理。5)處理后的數(shù)據(jù)如是車輛的故障碼,則查詢軟件中存入的故障描述表,將對應的故障描述顯示出來。6)將每次出現(xiàn)的故障進行記錄,同時記錄下解決此次故障的方法。7)收集數(shù)據(jù)形成數(shù)據(jù)文件,若再出現(xiàn)相同故障時,可調出之前處理的維修記錄,提示維修人員。8)故障處理完成后,斷開故障診斷系統(tǒng)和總線的連接,此次故障診斷結束[3]。

2系統(tǒng)軟件設計

車輛故障診斷平臺開發(fā)使用MicrosoftVisualStu-dio的開發(fā)工具集,基于NETFramework4,采用C#語言編寫,適用于主流的MicrosoftWindows系統(tǒng)。根據(jù)診斷系統(tǒng)需求分析,采用分層的設計思路,將軟件架構從下到上分為4層:底層———驅動層,次中層———數(shù)據(jù)層,中層———邏輯層,上層———表示層[4]。1)驅動層。驅動層主要通過調用CAN工具提供的DLL庫為接口,實現(xiàn)對CAN工具的開啟、配置、初始化、收發(fā)數(shù)據(jù)和關閉等功能。其主要負責標準接口函數(shù)的調用,將其封裝成功能函數(shù),供數(shù)據(jù)層調用,實現(xiàn)數(shù)據(jù)層和接口函數(shù)的連接。接口函數(shù)主要包括:建立總線連接、斷開總線連接、發(fā)送/接收數(shù)據(jù)、過濾接收CANID、讀取車輛模塊信息、CAN連接過程中錯誤提示、更新/清除數(shù)據(jù)緩存區(qū)[5]。2)數(shù)據(jù)層。數(shù)據(jù)層主要是對數(shù)據(jù)的處理,包括對數(shù)據(jù)進行發(fā)送、接收、記錄與調用。其建立在驅動層上,通過驅動層封裝的函數(shù),設計以下功能程序:向CAN總線發(fā)送診斷請求、接收ECU反饋回來的數(shù)據(jù)、收集數(shù)據(jù)信息、從數(shù)據(jù)記錄文件里查詢相應的信息[6]。3)邏輯層。邏輯層主要負責對CAN總線指令生成。當用戶對車輛故障診斷軟件進行操作時,邏輯層對操作進行解析,轉化成一定的數(shù)據(jù),再通過數(shù)據(jù)層和驅動層,發(fā)送到CAN總線上。當邏輯層接收到CAN總線上的車輛反饋數(shù)據(jù)時,將從反饋的數(shù)據(jù)中提取所需信息,根據(jù)通訊協(xié)議解析為有效數(shù)據(jù),在表示層上和用戶進行交互[7]。邏輯層負責車輛故障診斷平臺系統(tǒng)功能的實現(xiàn),主要包括故障診斷功能、故障維修幫助功能和軟件其他功能:①故障診斷功能通過將車輛的模塊發(fā)送出來的數(shù)據(jù)進行解析,從而得到故障碼,進而對車輛實現(xiàn)故障診斷;②維修診斷幫助功能是通過訪問診斷數(shù)據(jù)文件,從診斷文件中查詢相應的維修幫助內容并調用[8];③軟件其他功能包括軟件激活、用戶認證、密碼登錄、軟件升級等。4)表示層。表示層主要功能包括數(shù)據(jù)的顯示和用戶操作入口兩個方面。軟件界面主要包括標題區(qū)、工作區(qū)和狀態(tài)顯示區(qū)3個部分:標題區(qū)可以實現(xiàn)不同界面之間的切換和軟件的關閉;工作區(qū)包括用戶的操作入口和結果的顯示;狀態(tài)顯示區(qū)包括總線連接狀態(tài)、動態(tài)接收數(shù)據(jù)狀態(tài)和總線負載狀態(tài)[9]。

3系統(tǒng)測試及結果

以某車輛為測試對象,其核心電控模塊包括ECU、ABS、ASR、EBS等,故障診斷平臺工具通過車輛OBD接口連接車載總線網絡,測試人員通過PC端的車輛故障診斷軟件進行整車的故障診斷功能測試。車輛故障診斷軟件顯示的故障及描述如圖2所示。當車輛壓力故障燈亮時,維修人員使用故障診斷軟件讀到故障碼,描述為壓力傳感器,初步判斷為發(fā)動機的壓力傳感器電壓數(shù)據(jù)故障,意味著壓力傳感器并未工作。根據(jù)軟件的維修診斷幫助排查,檢查壓力傳感器,對傳感器進行維修,重新讀取車輛的數(shù)據(jù),壓力傳感部分恢復正常。故障碼被清除,故障燈熄滅,故障被排除。

4結束語

基于OBD的汽車故障診斷系統(tǒng)適用于標準的診斷接口工具,同時使用主流的車載CAN網絡通信協(xié)議,具有良好的通用性。軟件模塊化的開發(fā)思路,具有良好的擴展性。將現(xiàn)代的軟件技術和汽車故障診斷技術相結合,實現(xiàn)故障診斷的智能化,從而更加便捷地診斷汽車電子控制系統(tǒng)的故障[10]。

參考文獻:

[1]顏伏伍,王攀,胡杰,等.基于車載總線的PC式汽車故障診斷系統(tǒng)[J].武漢理工大學學報(信息與管理工程版),2011,33(5):758-762.

[2]郭剛,王勵明,盧明.基于MVCI、ODX的診斷標準研究[J].制造業(yè)自動化,2010,32(14):15-16.

[3]仇雅莉.汽車故障診斷技術發(fā)展研究[J].交通標準化,2010(11):223-225.

[4]蔡浩.汽車故障診斷系統(tǒng)的設計與開發(fā)[D].上海:上海交通大學,2009.

[5]柳燕子.基于本體的汽車故障診斷知識建模與推理研究[J].現(xiàn)代國企研究,2018(4):136-137.

[6]胡杰,盛祥政,李洪飛,等.基于智能手機的汽車故障診斷系統(tǒng)研究與開發(fā)[J].汽車技術,2011(9):4-10.

[7]葉仁滿.《汽車故障診斷》課堂的思考與探索[J].汽車維護與修理,2018(8):34-35.

[8]韓杰.現(xiàn)代汽車故障診斷技術探究[J].時代農機,2018,45(9):208.

[9]邱霖,尹少峰.電控汽車故障診斷中如何用好診斷設備[J].中國高新技術企業(yè),2016(12):76-77.

[10]伍辨學.在汽車維修中不應忽略傳統(tǒng)診斷的應用[J].廣東科技,2007(8):84.

作者:胡洋 李韌 常圣 單位:安徽安凱汽車股份有限公司