黃智宇 蘇小龍 李 銳
(重慶郵電大學自動化學院 重慶 400065)
?
通用型汽車故障診斷儀在iOS平臺上的設計
黃智宇蘇小龍李銳
(重慶郵電大學自動化學院重慶 400065)
摘要針對目前汽車故障診斷設備通常需要單獨硬件支持并且擴展性、便攜性較差等問題,在如今智能手機日益普及的環境下,通過分析車載CAN網絡診斷協議ISO15765以及UDS統一診斷服務,提出建立可跨平臺與車系的診斷數據庫。設計藍牙通信模塊并在此基礎上基于iOS平臺開發汽車故障診斷軟件,實現便攜式的汽車故障診斷。通過在實驗平臺上的測試結果表明,所設計的汽車故障診斷儀能夠準確診斷和解析汽車ECU中的故障,實現不需要額外硬件成本僅利用移動終端完成的汽車故障診斷與定位。
關鍵詞故障診斷UDS服務iOS平臺
0引言
隨著汽車電子技術的發展,CAN總線在車載網絡的普遍應用,基于CAN總線的汽車網絡診斷協議ISO15765已經成為多數汽車廠商所采用的標準診斷協議。但是因其協議的新穎與復雜性,目前國內在基于ISO15765的車載網絡診斷技術尚不成熟[1]。目前主流的汽車故障診斷工具通常在單片機或FPGA上開發而成,導致現在的汽車診斷設備通常受擴展性及便攜性的限制,對其使用僅限專業汽車維修人員。隨著移動終端的不斷發展,智能手機已經成為人們日常生活中的基本工具。iOS系統作為領先的移動端操作系統,具有良好的用戶體驗,友好的開發環境,較大的市場占有率,并且其在汽車終端系統的發展更具生態友好性。2014年,蘋果公司發布了車載操作系統CarPl-ay,使得iOS設備與汽車無縫連接,開發基于iOS的汽車應用更具前瞻性,未來有更多車系支持該車載系統后便可直接安裝應用至車載終端進行故障診斷。本文通過對汽車診斷協議ISO-15765的分析與研究,結合UDS統一診斷服務以及設計的藍牙轉CAN轉接板,在iOS平臺上開發出汽車故障診斷儀。診斷儀具有通用性,可以應用到所有支持標準診斷協議ISO15765的汽車中。用戶可以借助裝有本軟件的iOS設備既可實時了解汽車出現的故障,方便對故障進行排查,并作針對性的保養。
1車載診斷協議研究
ISO15765診斷協議于2001年發布,以OSI七層模型為基礎,基于CAN總線制定了統一的診斷流程與服務標準。CAN總線可以滿足電動車多節點,信號傳輸量大的特點[2]。在ISO-15765的通信模型中,診斷協議體系分為四層:分別為應用層、網絡層、數據鏈路層和物理層[3]。其中,數據鏈路層根據ISO-11898-1標準定義遵循CAN通信協議,網絡層根據ISO15765-2定義,應用層根據ISO14229-1和ISO15765-3標準中診斷服務的內容定義,并兼容了一些汽車廠商規范中定義的診斷服務,具有測試、檢測、監控、診斷管理等功能。ISO15765的通信模型如圖1所示,診斷儀根據應用層中定義的診斷服務發送相應的服務請求報文。當網絡層接收到來自應用層消息后,根據定義中的分包、組包、位填充和時間控制等步驟,對消息流進行傳輸控制。根據傳輸數據的長度可分為單幀傳輸和多幀傳輸,數據鏈路層通過把網絡層傳來的診斷報文,經過修改打包成能夠在CAN總線上進行傳輸的CAN報文。

圖1 ISO15765通信模型
2診斷儀系統框架設計
診斷儀的核心功能是獲取與解析汽車故障。汽車故障是指由于汽車零件本身或零件之間的配合狀態發生異常變化導致汽車不能正常工作的現象[4]。汽車故障主要由于零部件之間的相互作用,從而引起零部件受力、發熱、變形、磨損、腐蝕等,使汽車在整個壽命期內,故障率由低變高[5]。汽車發生故障時,首先要定位汽車的哪一個部件出現故障,以電動汽車為例,電動汽車主要有六大部件,分別是:發電機控制裝置(GCU)、整車控制系統(HCU)、電機控制器(IPU)、DCDC、電動車充電器(CEM)和電池控制單元(BCU)。在定位出汽車的哪一部件出現故障后,根據該部件各個零部件的運行狀態參數判斷出是什么原因導致故障的產生,最后通過相應的維護方法使汽車故障排除。系統旨在通過開發一種基于iOS移動設備的汽車故障診斷軟件使得用戶可以方便地獲取汽車出現的故障,同時維修人員可以快速定位并作出維修決策。具體需要實現以下幾個需求:
1) 構建診斷數據庫;
2) 完成藍牙通信模塊的設計;
3) 開發基于iOS平臺的汽車故障診斷軟件。
2.1系統整體方案
本文所述汽車故障診斷系統主要由藍牙通信模塊以及iOS上的診斷儀應用軟硬件兩部分組成。軟件部分診斷儀應用又分為以XML文件構建的數據庫模塊、基于ISO15765的應用層協議解析模塊以及UI模塊,系統框架如圖2所示。
診斷系統中自底向上分別是汽車內部網絡、藍牙通信模塊、以及iOS設備。汽車內部網絡中汽車的各ECU部件能夠在汽車出現故障時對相應的故障信息進行診斷與存儲。藍牙通信模塊作為中介設備用于iOS設備與汽車CAN網絡的通信。iOS診斷儀中的XML數據庫存儲了各車廠相應的故障信息,通過獲取到的汽車ECU中的故障信息并進行解析后在數據庫中進行匹配,最后將結果通過人機界面提示給用戶。
2.2系統設計
(1) 診斷數據庫的構建
為了實現汽車故障診斷儀的通用性,構建數據庫時采用可擴展標記語言XML來構建。XML表示的信息獨立于平臺,可在任何應用與平臺上讀寫,完成各獨立系統間的信息交換[6]。通過將各合作車廠提供的故障碼與故障信息對應的故障代碼表,以及包含數據標示符、數據流描述、數據換算公式及單位的數據流信息說明表,結合相應的車型構建XML診斷數據。數據庫存放在應用沙盒目錄下,由于iOS的沙盒機制,應用程序位于文件系統的嚴格限制部分,其他應用程序無法訪問以保證數據庫的安全。
(2) 藍牙通信模塊的設計
由于目前的汽車診斷設備通常是通過數據線直接接入汽車OBD接口,導致診斷儀便攜性較差。通過分析目前的短距離通信網絡藍牙與WiFi后,充分考慮到汽車環境下的可行性與iOS設備的支持后,本文采用藍牙通信技術?;谧钚滤{牙4.0BLE協議,開發出用于協助iOS設備與汽車網絡通信的設備藍牙轉CAN模塊。藍牙通信模塊使用的MCU是STM32F103C8T6,采用SN65HVD230作為CAN收發器,MAX232作為RS232電平轉換器,藍牙模塊采用CC2540,串口波特率設定為115 200bps,CAN接口的波特率設定為250kbps, 系統工作頻率設定為72MHz。藍牙通信模塊工作流程為:利用藍牙模塊與iOS設備的藍牙進行通信;當接收到iOS設備發送的藍牙報文時,主控制器將接收的數據轉換成CAN報文并通過CAN通信模塊發送給汽車CAN網絡上的各ECU;當接收到汽車ECU響應的CAN報文時,將接收的數據轉換成藍牙報文并通過藍牙模塊發送給移動終端。基于此,iOS設備就可以利用藍牙轉CAN設備實現與汽車內各ECU間接通信,以實現對汽車各部件的故障診斷功能。系統硬件設計結構框圖如圖3所示。

圖3 藍牙通信模塊硬件結構圖
(3) 診斷功能設計
本文在CAN總線UDS診斷標準ISO15765的基礎上,設計出診斷儀的以下幾個功能,分別是:讀取全部故障碼、讀取當前故障碼、讀取歷史故障碼、清除故障碼、讀取版本信息、讀取動態數據流、寫入車輛識別碼。

圖4 診斷服務流程圖
在UDS診斷服務中規定,SID(ServiceIdentifier)=0x19的服務為讀取DTC(DiagnosticTroubleCode)信息診斷服務。診斷儀可以通過該診斷服務讀取車輛內所有服務器或一組服務器存儲的DTC信息[7]。以讀取全部故障碼為例,闡述該診斷服務實現過程:依據SID:0x19服務對應的子功能0x0A,由客戶端(診斷儀)向ECU發送請求報文,ECU返回響應報文。客戶端通過該響應報文判斷ECU是否仍有連續幀返回。若有則發送流控制幀以請求ECU繼續返回連續幀;若無則表明ECU已無響應報文,客戶端接收完響應報文后,診斷儀需要從響應報文中提取出DTC和DTC的狀態。根據讀取到的DTC與XML數據庫中的故障信息進行查詢與匹配,解析出每個DTC對應的解釋,并顯示在診斷儀的人機交互界面中。診斷儀完成一次診斷服務過程如圖4所示。
3iOS平臺上汽車故障診斷軟件的開發
iOS系統自出現以來因其簡單易用的界面、令人驚嘆的功能,以及超強的穩定性,贏得了市場的青睞[8]。同時考慮到目前市場上汽車診斷儀基本需要單獨購買額外的硬件,開銷昂貴,并且智能手機已經作為日常生活中的主要工具,因此本文基于iOS平臺使用Xcode開發iOS平臺上汽車故障診斷儀。iOS診斷儀基于以下幾個功能開發:(1) 連接配對藍牙通信;(2) 故障碼的解析與匹配算法設計;(3) 診斷儀整體界面設計。其中藍牙通信功能采用iOSSDK提供的CoreBluetooth框架開發,iOS設備作為主設備,藍牙通信模塊作為從設備。首先從設備會廣播自身的信息,包括其UUID以及相應的服務,主設備收到從設備的廣播并與之發起連接后既完成藍牙的配對連接,藍牙報文的傳輸通過主設備對從設備特定的服務的特征寫和讀來完成。故障碼的解析與匹配算法用于從ECU中讀取出數據后對具體的故障碼進行解析并匹配XML診斷數據庫。具體的算法流程如圖5所示,診斷設備首先通過執行讀取故障碼功能,將ECU響應的故障碼存放到故障碼鏈表中。再從數據庫中找到對應該車廠ECU的故障信息匹配XML文件,利用XML解析器從文件中解析出所有故障碼和中、英文故障信息并存放到故障信息匹配鏈表中。完成上述步驟之后,依次將故障碼鏈表中的故障碼逐條讀取,接著從故障匹配信息鏈表中查找是否有相同的故障碼。若找到相同故障碼,則將該條故障碼對應的中、英文故障信息解析出來并顯示在人機交互界面從而指導維修人員;若未能找到相同的故障碼,則提示相應的錯誤。如此循環執行,直到將故障碼鏈表中所有故障碼的故障信息解析出來。

圖5 故障碼解析與匹配流程圖
4系統分析與測試
4.1系統分析
本文設計的汽車故障診斷系統主要由藍牙通信模塊以及iOS上的診斷儀應用軟硬件兩部分組成。其中藍牙通信模塊采用藍牙4.0BLE模塊,相對傳統藍牙模塊其功耗更低,更符合汽車這樣特殊環境下的實際需求。藍牙通信模塊傳輸延遲在3ms左右,最大傳輸距離可達100米,滿足日常需求。
iOS上的診斷儀基于MVC模式開發,分離模型、視圖與控制器通過面向對象分析將故障解析與匹配算法抽象成一個API,每一次對于ECU的數據處理僅需要調用該API即可完成。同時作為診斷儀的核心部分,故障解析與匹配算法被高度抽象后極大地方便了單元測試,通過大量的測試用例實驗,使得軟件的可靠性大大提高。
4.2系統測試
本文設計的故障診斷儀主要實現汽車故障信息獲取與解析功能,并以友好的用戶界面提示用戶,指導維修人員快速定位故障并完成汽車維修工作。本文基于iOS平臺開發,因此測試平臺主要包括裝有診斷儀軟件的iOS移動終端、藍牙通信模塊以及汽車ECU部件。在診斷系統開發和測試期間,本文基于長安新能源研究所提供的長安奔奔電動車部件BCU來進行驗證,測試平臺實物連接如圖6所示,其中藍牙通信模塊接入車身CAN網絡,并由ECU直接供電。

圖6 系統測試平臺實物圖
測試步驟如下,選用iPhone4S作為測試設備,將通信模塊接入CAN網絡后使BCU上電,待藍牙模塊指示燈指示正常后使用iOS設備配對連接藍牙模塊。成功配對后分別測試讀取全部故障碼、讀取當前故障碼、讀取歷史故障碼、清除故障碼、讀取版本信息、讀取動態數據流、寫入車輛識別碼功能。圖7 所示為讀取全部故障碼及讀取動態數據流的結果。

圖7 故障碼與動態數據流
通過對汽車BCU、HCU部件進行聯調,針對診斷過程中可能出現的丟幀、差錯幀、無響應等情況分別進行相應的單元測試。測試用例均通過測試,結果符合預期要求,所有測試的診斷功能均能實現。同時針對移動設備內存有限的情況下對應用進行了壓力測試,測試結果表明在持續使用各診斷功能的情況下,應用所占內存保持在10MB左右,程序能良好地運行。
5結語
本文通過對汽車診斷協議ISO15765以及UDS統一診斷服務的研究,充分利用了XML平臺無關性的特點,構建了汽車故障XML數據庫,使得其能同時應用到其他操作系統,并設計了用于移動設備與車身CAN網絡通信的藍牙通信模塊。在此基礎上開發出iOS汽車故障診斷軟件,軟件采用MVC框架設計,進行了多輪重構,Bug修復以及版本適配,能夠適配最新的iOS8系統。最后搭建了診斷測試平臺,并對各功能模塊分別進行了單元測試同時對系統進行黑盒測試。測試結果表明,各功能模塊均正常工作,系統整體運行正常,具有可靠性與穩定性。本文設計的汽車故障儀實現了一種低成本、方便靈活的汽車診斷工具。
參考文獻
[1] 李銳,王晶瑩,姚燕,等.基于ISO15765的車載CAN網絡診斷設計[J].計算機工程,2012,38(4):35-39.
[2] 錢三平,黃少堂.混合電動汽車CAN網絡系統設計及應用[J].汽車工程學報,2014,4(2):109-115.
[3]XuAD,LiuLL,SongY.ResearchandDevelopmentofVehicleFaultDiagnosticProtocolISO15765[C]//ProceedingsoftheInternationalConferenceonTransportation,Mechanical,andElectricalEngineering,2011:1241-1245.
[4] 蔡浩.汽車故障診斷系統的設計和開發[D].上海:上海交通大學,2009.
[5] 劉占峰,林麗華.汽車故障診斷與檢測技術[M].北京:北京大學出版社,2008.
[6] 黃智宇,陳倍新,馮輝宗,等.一種基于XML的汽車ECU故障診斷信息匹配方法:中國,201210504280.0[P].2013-03-20.
[7]HuangJK,NanJR,ChaiZ,etal.AnalysisofUDSDiagnosticServiceAppliedonVehicleECU[J].AppliedMechanicsandMaterials,2013,437:779-782.
[8]LiuY,LiF,GuoL,etal.EffectivelyminimizingredundantInternetstreamingtraffictoiOSdevices[C]//ProceedingsoftheInternationalConferenceonComputerCommunications,2013:250-254.
DESIGNING UNIVERSAL VEHICLE FAULT DIAGNOSIS INSTRUMENTONiOSPLATFORM
Huang ZhiyuSu XiaolongLi Rui
(School of Automation,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)
AbstractConsidering the problems that current vehicle fault diagnosis instruments usually need to be supported by sole hardware, and have poorer scalability and portability, etc., we put forward to establish the cross-platform and car series diagnoses database under the environment of increasing popularity of smartphone and by analysing the vehicular CAN network diagnosis protocol ISO15765 and UDS (uniform diagnostic services). We also designed the Bluetooth communication module, and on this basis we developed the vehicle fault diagnosis software based on iOS platform, implemented the portable vehicle fault diagnosis. It was demonstrated through the results of test on experimental platform that the designed vehicle fault diagnosis instrument could accurately diagnose and resolve the faults in car’s ECU, and achieved the vehicle fault diagnosis and positioning without extra hardware cost by only using mobile terminals.
KeywordsFault diagnosisUDSiOS platform
收稿日期:2014-11-15。黃智宇,副教授,主研領域:電動車電機控制技術。蘇小龍,碩士生。李銳,教授。
中圖分類號TP3
文獻標識碼A
DOI:10.3969/j.issn.1000-386x.2016.06.024