前言:想要寫出一篇引人入勝的文章?我們特意為您整理了CAN網絡下的車輛故障診斷軟件設計范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:設計一種應用于電腦端的車輛故障診斷軟件,將不易理解的二進制can信息數據轉變成十進制數據和文字,同時給出相應的故障描述,降低維修工作難度,提高故障診斷效率。
隨著汽車產業的迅猛發展,汽車的電子控制系統智能化程度越來越高,所使用的電子控制單元越來越多,也越來越復雜。系統中任何一個部件的故障,都可能導致整個系統的故障。電子控制系統的故障通常由CAN總線發出,總線上的信息都是以二進制為基礎。當車輛出現故障時,汽車維修人員需要具備一定的專業知識,才能解讀和定位車輛的故障。因此,開發一款有針對性的車輛故障診斷軟件在汽車的維修服務中非常重要[1]。本文所開發的車輛故障診斷軟件能夠自動完成故障數據采集、問題判斷及故障描述等功能,能夠降低維修人員的工作復雜度,提高工作效率。
1基本方案
基本方案由標準總線設備(CAN工具)和故障診斷軟件兩部分組成。其基本構架如圖1所示。標準總線設備通過車輛的OBD接口接入車載CAN網絡,主要負責電腦和車輛之間不同數據幀的封裝和信號轉換[2]。故障診斷軟件安裝在電腦上,通過USB接口與標準總線設備連接,主要負責向車輛控制單元發送指令,同時處理應答的數據;記錄下每次的故障信息及維修人員的維修記錄,建立維修記錄文件。目前車輛上的電控模塊都使用CAN總線進行通信,因此汽車故障診斷系統主要針對CAN總線通信協議進行開發,通過連接車輛OBD口實現。系統軟件的通信流程如下:1)故障診斷系統通過專用的CAN工具與車輛CAN總線進行連接;若連接不成功,則進行提示,并且在一定時間內循環連接,直至成功為止。2)連接成功后,對CAN進行特定波特率(250kbps)設置,完成初始化。3)設置總線信息的過濾機制,對于CAN總線而言,總線上傳輸著大量的數據,通過CANID的過濾,篩選出需要的數據傳給上位機,避免上位機對繁多的數據進行處理。4)根據通信協議中故障位的范圍對總線上相應的CAN信息進行取值,再進行一定的數據處理。5)處理后的數據如是車輛的故障碼,則查詢軟件中存入的故障描述表,將對應的故障描述顯示出來。6)將每次出現的故障進行記錄,同時記錄下解決此次故障的方法。7)收集數據形成數據文件,若再出現相同故障時,可調出之前處理的維修記錄,提示維修人員。8)故障處理完成后,斷開故障診斷系統和總線的連接,此次故障診斷結束[3]。
2系統軟件設計
車輛故障診斷平臺開發使用MicrosoftVisualStu-dio的開發工具集,基于NETFramework4,采用C#語言編寫,適用于主流的MicrosoftWindows系統。根據診斷系統需求分析,采用分層的設計思路,將軟件架構從下到上分為4層:底層———驅動層,次中層———數據層,中層———邏輯層,上層———表示層[4]。1)驅動層。驅動層主要通過調用CAN工具提供的DLL庫為接口,實現對CAN工具的開啟、配置、初始化、收發數據和關閉等功能。其主要負責標準接口函數的調用,將其封裝成功能函數,供數據層調用,實現數據層和接口函數的連接。接口函數主要包括:建立總線連接、斷開總線連接、發送/接收數據、過濾接收CANID、讀取車輛模塊信息、CAN連接過程中錯誤提示、更新/清除數據緩存區[5]。2)數據層。數據層主要是對數據的處理,包括對數據進行發送、接收、記錄與調用。其建立在驅動層上,通過驅動層封裝的函數,設計以下功能程序:向CAN總線發送診斷請求、接收ECU反饋回來的數據、收集數據信息、從數據記錄文件里查詢相應的信息[6]。3)邏輯層。邏輯層主要負責對CAN總線指令生成。當用戶對車輛故障診斷軟件進行操作時,邏輯層對操作進行解析,轉化成一定的數據,再通過數據層和驅動層,發送到CAN總線上。當邏輯層接收到CAN總線上的車輛反饋數據時,將從反饋的數據中提取所需信息,根據通訊協議解析為有效數據,在表示層上和用戶進行交互[7]。邏輯層負責車輛故障診斷平臺系統功能的實現,主要包括故障診斷功能、故障維修幫助功能和軟件其他功能:①故障診斷功能通過將車輛的模塊發送出來的數據進行解析,從而得到故障碼,進而對車輛實現故障診斷;②維修診斷幫助功能是通過訪問診斷數據文件,從診斷文件中查詢相應的維修幫助內容并調用[8];③軟件其他功能包括軟件激活、用戶認證、密碼登錄、軟件升級等。4)表示層。表示層主要功能包括數據的顯示和用戶操作入口兩個方面。軟件界面主要包括標題區、工作區和狀態顯示區3個部分:標題區可以實現不同界面之間的切換和軟件的關閉;工作區包括用戶的操作入口和結果的顯示;狀態顯示區包括總線連接狀態、動態接收數據狀態和總線負載狀態[9]。
3系統測試及結果
以某車輛為測試對象,其核心電控模塊包括ECU、ABS、ASR、EBS等,故障診斷平臺工具通過車輛OBD接口連接車載總線網絡,測試人員通過PC端的車輛故障診斷軟件進行整車的故障診斷功能測試。車輛故障診斷軟件顯示的故障及描述如圖2所示。當車輛壓力故障燈亮時,維修人員使用故障診斷軟件讀到故障碼,描述為壓力傳感器,初步判斷為發動機的壓力傳感器電壓數據故障,意味著壓力傳感器并未工作。根據軟件的維修診斷幫助排查,檢查壓力傳感器,對傳感器進行維修,重新讀取車輛的數據,壓力傳感部分恢復正常。故障碼被清除,故障燈熄滅,故障被排除。
4結束語
基于OBD的汽車故障診斷系統適用于標準的診斷接口工具,同時使用主流的車載CAN網絡通信協議,具有良好的通用性。軟件模塊化的開發思路,具有良好的擴展性。將現代的軟件技術和汽車故障診斷技術相結合,實現故障診斷的智能化,從而更加便捷地診斷汽車電子控制系統的故障[10]。
參考文獻:
[1]顏伏伍,王攀,胡杰,等.基于車載總線的PC式汽車故障診斷系統[J].武漢理工大學學報(信息與管理工程版),2011,33(5):758-762.
[2]郭剛,王勵明,盧明.基于MVCI、ODX的診斷標準研究[J].制造業自動化,2010,32(14):15-16.
[3]仇雅莉.汽車故障診斷技術發展研究[J].交通標準化,2010(11):223-225.
[4]蔡浩.汽車故障診斷系統的設計與開發[D].上海:上海交通大學,2009.
[5]柳燕子.基于本體的汽車故障診斷知識建模與推理研究[J].現代國企研究,2018(4):136-137.
[6]胡杰,盛祥政,李洪飛,等.基于智能手機的汽車故障診斷系統研究與開發[J].汽車技術,2011(9):4-10.
[7]葉仁滿.《汽車故障診斷》課堂的思考與探索[J].汽車維護與修理,2018(8):34-35.
[8]韓杰.現代汽車故障診斷技術探究[J].時代農機,2018,45(9):208.
[9]邱霖,尹少峰.電控汽車故障診斷中如何用好診斷設備[J].中國高新技術企業,2016(12):76-77.
[10]伍辨學.在汽車維修中不應忽略傳統診斷的應用[J].廣東科技,2007(8):84.
作者:胡洋 李韌 常圣 單位:安徽安凱汽車股份有限公司