莫太平,蔡習文,張明志
(1.桂林電子科技大學 電子工程與自動化學院,桂林 541004;2.桂林電子科技大學 計算機科學與工程學院,桂林 541004)
控制器、傳感器和執行器等電子器件被越來越多地運用到汽車上,得益于近年來汽車電子的飛速發展。由于消費者對車輛的可靠性、安全性、舒適性的不斷追求,使得汽車電控系統變得越來越復雜,造成了車內線束劇增和診斷難度不斷加大[1]。為此CAN總線應運而生,成為最受歡迎的現場總線之一,代表汽車車載網絡的主流發展方向。由于它具有成本低、可靠性高、抗干擾能力和實時性強等優點[2],被汽車制造商越來越多地應用于汽車控制、診斷和通信[3]。因此基于CAN總線的故障診斷越來越重要。為解決故障診斷系統獨立于CAN網絡,造成系統成本增加和內部網絡變得復雜等問題,歐洲汽車廠商推出一種基于CAN總線的診斷系統通信標準ISO15765,它以ISO14229-1定義的服務為基礎,規范了基于CAN總線的診斷服務(UDS on CAN),包括網絡管理、網絡定時、應用層定時等詳細內容,使得該協議的適用性和可操作性更強,而且兼容ISO14230應用層的服務和參數。
本文就是在ISO15765的基礎上,研究和設計了汽車下線管理系統,該系統通過與待測汽車通信,讀取電控系統的故障碼和數據流,來判斷下線汽車的電子器件(包括傳感器和執行器)是否正常,如果不正常,需要進行調整維修,這樣能夠保證汽車的質量。最后還要打印測試結果并保存至數據庫,便于以后的跟蹤和維護。
根據診斷設備和不同層次結構車載網絡的接入位置,大體有3種結構[4]:
(1)診斷設備與服務器(ECU)在同一個網絡,診斷設備與服務器直接相連。
(2)診斷設備通過網關間接與服務器相連。
(3)診斷設備在主網中,而需要診斷的服務器在子網中,診斷設備與服務器的通信通過帶有網關功能的服務器來實現。
由于后面2種屬于遠程故障診斷,在診斷時,需要遠程控制信息,幀資源消耗大。所以本文選擇第一種診斷結構,診斷設備與ECU處于同一個網絡。ISO15765的應用越來越廣泛,因此該系統也是基于該協議設計。系統主要有兩部分:
(1)USB-CAN的標準診斷接口與汽車相連;
(2)USB-CAN的USB端與上位機診斷軟件相連。測試系統的結構如圖1所示。

圖1 測試系統結構圖Fig.1 Testing system structure
USB-CAN總線適配器帶有USB2.0接口和1路CAN接口,可進行雙向傳送,完全不用了解復雜的USB通訊協議。這里它有2個主要功能:
(1)接收上位機的數據,將數據轉換為CAN幀的格式發送給汽車內部的CAN網絡。
(2)接收汽車內部的CAN幀,將CAN幀轉換為上位機可識別的數據。
ISO15765協議是在CAN總線上實現了KWP2000,它把KWP2000應用層的服務移植到CAN總線。參照ISO/OSI模型,它分為4層:物理層、數據鏈路層、網絡層、應用層。鏈路層采用了ISO11898-1協議[5],該協議是對CAN2.0B協議的進一步標準化;應用層采用了ISO15765-3協議[6],該協議完全兼容基于K線的應用層協議14230-3,并加入了CAN總線診斷功能組;網絡層則采用ISO15765-2協議[7],規定了網絡層協議數據單元(N_PDU)與底層CAN數據幀以及上層KWP2000服務之間的映射關系,并且為長報文的多包數據傳輸過程提供了同步控制、順序控制、流控制和錯誤恢復功能。ISO15765的體系結構如圖2所示。

圖2 ISO15765體系結構圖Fig.2 ISO15765 architecture diagram
根據需求,可設計出4個功能模塊:下線檢測模塊、系統配置模塊、用戶管理模塊、數據管理模塊。模塊如圖3所示。

圖3 功能模塊圖Fig.3 Functional module diagram
其中,下線檢測模塊主要是實現汽車ECU的檢測,并將結果保存至數據庫。用戶管理模塊是實現用戶的增加、刪除,秘密的變更,權限的修改。系統配置模塊主要是在下線檢測前,對系統的配置,包括標準值的輸入和修改,VIN和ECU的對應關系,還有底層USB-CAN的比特率的設置。數據管理模塊實現數據的查詢和統計功能。還有其他功能,如打印支持,在需要打印的時候,發揮作用。
上位機通過調用USB-CAN提供的DLL動態鏈接庫函數,可實現與底層通信,完全不需要理解CAN幀在CAN總線上的傳輸機制。調用VCI_OpenDevice()打開設備;連接設備成功后,調用VCI_InitCan()初始化CAN相關參數;上一步完畢之后,通過VCI_Start CAN()啟動CAN轉換功能,下線檢測系統即可與CAN總線進行數據的發送和接收。在接收來自總線上的數據時,利用VCI_Receive()獲取接收緩沖區中的數據。如果要發送數據給總線網絡,則在設置好發送的參數和內容后,通過VCI_Transmit()將數據幀發送到總線上。最后使用VCI_CloseDevice()關閉與總線網絡的連接,結束通信。函數調用如圖4所示。

圖4 DLL函數調用圖Fig.4 DLL functions calling diagram
系統配置完畢后,引車員登錄,身份驗證后,系統進行初始化,進入下線檢測界面,開始汽車故障診斷。檢測流程為
(1)采用Window認證方式啟動檢測程序;
(2)待測汽車進入檢測工位,然后輸入引車員號;
(3)檢測系統掃描汽車的VIN碼,根據VIN調出VSN及相應的數據流標準;
(4)引車員將檢測系統的接口接入車輛診斷接口;
(5)持續檢測水溫,直到水溫合格。由于ECU中可能存在一些軟故障,這些軟故障并不一定是硬件系統本身的問題,而可能是由于歷史的原因而存在。所以在水溫合格后,要首先清除ECU的故障碼,而后讀取的故障碼就可以代表ECU電控系統的硬故障,這些數據可以表明當前的電控系統是否存在問題;
(6)開始診斷,在界面上顯示故障碼和數據流,并存儲數據至后臺數據庫;
(7)檢測完成后,檢測系統綜合所有信息得出結論,若檢測過程中沒有故障碼出現,且檢測到的參數值均在合格的范圍內,則該輛汽車合格,否則為不合格,不合格要返回檢修。最后還要自動打印檢測結果;
(8)檢測系統進入下一輛車的檢測流程。
檢測流程圖如圖5所示。
實車測試所用的車型為某國產車,該車為全新標準用車,內部ECU實現了ISO15765協議,各個電子器件通過CAN總線相連。測試所需條件和相關步驟如下:
(1)車輛保持靜止,全車通電,啟動發動機,其他電子設備根據需要依次打開。
(2)將CAN-USB適配器一端標準診斷插頭(16pin)接入汽車OBD-II接口,發送DiagnosticSessionControl(0x10)服務,使車載診斷網絡處于診斷模式。
(3)發送 ClearDiagnosticInformation(0x14)服務清除故障碼[8],然后發送其他服務與ECU通信,將響應的數據存入數據緩沖區。

圖5 檢測流程圖Fig.5 Detection flowchart
(4)分析數據緩沖區中的數據,與數據庫的參數信息進行匹配,得出結果并輸出顯示。
圖6顯示了下線檢測系統通過發動機ECU通信后獲得的數據和測試結果。

圖6 測試結果圖Fig.6 Interface of testing result
通過實車測試,可以看出系統能夠讀取故障碼和數據流,顯示數據讀取狀態,并且對測試的故障碼和數據流的不合格個數進行統計,得出合格還是不合格的結論,測試結果正確,達到了測試的目的。而且通過對實際數據進行解析,獲得汽車實時信息,該信息能夠反映汽車電控系統所處的狀況和運行性能,說明所設計的系統在技術和實際應用中是可靠的。
本文介紹了診斷測試標準ISO15765的體系結構。在此基礎上,設計了汽車下線管理系統。該系統通過與汽車內部電控系統進行通信,發送相應的診斷請求,接收響應消息幀。通過解析獲取的幀,得到故障碼和數據流,判斷汽車電控系統是不是處在正常工作狀況下。該系統最后部署在某汽車生產線上,對下線汽車進行電控系統檢測,將檢測的數據存入數據庫,便于以后統計和維護,在提高企業生產效率的基礎上,大大增強了汽車的可靠性和安全性。
[1] 劉麗麗,徐皚冬,宋巖,等.車輛通用故障診斷協議的研究與開發[J].計算機工程,2012,38(16):9-13.
[2] 王桂榮,錢劍敏.CAN總線和基于CAN總線的高層協議[J].計算機測量與控制,2003,11(5):391-394.
[3] 張宏,詹德凱,林長加.基于CAN總線的汽車故障診斷系統研究與設計[J].汽車工程,2008,30(10):934-937.
[4] 李銳,王晶瑩,姚燕,等.基于ISO15765的車載CAN網絡診斷設計[J].計算機工程,2012,38(4):35-36,39.
[5] International Standard Organization(ISO).Road Vehicles Interchange of Digital Information Controller Area Network (CAN)for High-speed Communication,ISO 11898[S],1993.
[6] International Organization for Standardization.ISO 15765-3-2004 Road Vehicles-Diagnostics on Controller Area Networks(CAN)-Part3:Implementation of Unified Diagnostic Services (UDS on CAN)[S],2004.
[7] International Organization for Standardization.ISO 15765-2-2004 Road Vehicles-diagnostics on Controller Area Networks (CAN)-Part2:Network Layer Services[S],2004.
[8] 顏伏伍,劉陶然,胡杰.汽車故障診斷系統通信協議棧的研究與應用[J].武漢理工大學學報,2011,33(6):986-990. ■