張志鵬,陳博凱,杜浪東,馬全海
?
基于OBD接口和Android平臺的重型汽車車載診斷系統
張志鵬,陳博凱,杜浪東,馬全海
(陜西重型汽車有限公司,陜西 西安 710200)
隨著物流行業的發展,重型汽車的需求量不斷增長。對重型汽車運行狀態的診斷也顯得尤為重要。文章利用OBD接口,基于Android平臺,對數據進行分析,診斷車輛故障。為車輛的維護工作,提供有利的保障。
Android;診斷;CAN;OBD接口
基于OBD接口和Android平臺的重型汽車車載診斷系統是目前主流車廠打造自身產品生態圈的重要一部分,更是車聯網平臺,大數據挖掘用戶需求的重要一環。
常規診斷儀體積大、價格昂貴,通用性差,且不宜長時間連接在總線上,本診斷工具旨在通過市場上通用的OBD診斷儀,將車輛CAN總線上的數據發送至手機APP,通過APP對CAN數據的解析,提供故障診斷、車輛狀態信息。手機體積小,又能隨時觀察車輛狀態,利于排除異常,提高車輛使用壽命。
該診斷系統還能對自主開發的控制器進行應用程序更新。在線獲取加密程序文件(hex文件加密),在手機中解密并通過WiFi將數據發送到CAN總線,通過Bootloader協議下載程序,完成程序功能的更新。
該系統的整體架構由重型汽車,OBD診斷儀,Android智能手機3大部分組成,各部分之間的邏輯關系如圖1所示。
OBD診斷儀直接通過車輛的16針診斷接頭安裝在汽車上,手機APP就可以通過WIFI與OBD診斷儀建立WIFI通道,從而與車輛進行數據通信。手機APP通過對接收到的數據進行分析和處理,從而獲得相應的參數信息,并同時在手機端進行實時顯示。

圖1 系統各部分邏輯關系
考慮到系統實時性好,實用性強,運行流暢的設計原則,本系統由重型汽車,OBD診斷儀,Android智能手機三部分組成,如下圖所示。

圖2 系統組成圖
主要功能點如下:
(1)數據檢測功能:顯示發動機,變速器,車身模塊等的關鍵信息。
(2)故障診斷功能:顯示發動機,變速器,車身模塊等的故障信息。
(3)虛擬儀表功能:顯示發動機轉速,車速,里程等關鍵數據。
(4)AD檢測功能:顯示車身模塊的故障數據觸發閾值。
(5)輔助工具功能:計算百米脈沖,以及對發動機,ABS的故障閃碼查詢和對整車電控系統的故障碼查詢。
(6)數據標定功能:修改標定信息,權限解鎖等。
(7)胎壓檢測功能:對胎壓充放系統進行檢測。
(8)數據流導出功能:對CAN總線上的數據進行記錄導出功能。
(9)模塊儀表數據在線更新功能:對相應程序升級換代。
(10)維修保養手冊功能:當車輛出現故障,可自動定位到相應維修結點,指導維修保養。
為實現本文所述系統及功能,開發了一款基于Android移動終端軟件,并在Android6.0系統的手機上進行測試。Android端顯示的數據是OBD診斷儀通過WIFI傳過來的,點擊界面上的連接WIFI按鈕對周圍可連接的設備進行掃描,并選擇進行連接。
后臺邏輯的搭建主要用到了Service后臺和Activity活動。
(1)Service是運行在后臺且不和用戶交互的組件。每個Service必須在manifest中通過
(2)Activity對用戶來說即是一個交互的界面,多個activity之間可以通過Intent通信,每個Activity必須在manifest中通過
(3)該系統采用MVC的架構,把基于OBD接口和Android平臺的重型汽車車載診斷系統分為了VIEW,MODEL,CONTROL三層,如下圖所示。

圖3 系統結構圖
(4)VIEW層:該層是距離用戶最近的一層,用于顯示解析CAN報文的處理結果,提供用戶和系統連接的紐帶。
(5)MODEL層:該層采用特有的面向對象接口編程,根據程序的需求自己創建對象,為開發人員節省了大量的工作,實現低耦合的特點。
(6)CONTROL層:通過對sqlite進行輕量化的對象封裝,開發人員使用面向對象思想來對sqlite數據庫進行操作,簡化對sqlite數據庫的操作。
本系統按照上述設計,針對重型汽車車載診斷的需求,搭建汽車,OBD診斷儀,Android智能手機組成的診斷系統,進行開發。目前,基于OBD接口和Android平臺的重型汽車車載診斷系統經過大量的測試和調試,已經成功實現業務運行。
基于OBD接口和Android平臺的重型汽車車載診斷系統,在Android端實時采集和顯示重型汽車的運行數據。通過實時診斷,隨時監測汽車的狀況,可以及時發現出現故障的部件并給出維修建議。從而確保了乘客和車輛的安全,降低了維修成本。
(1)Android端車輛數據顯示模塊展示:該模塊的作用在于以列表的界面來直觀的顯示車輛運行過程中的實時信息,實時行車數據流中帶有實時車速,發動機油溫,變速器輸出軸轉速,發動機故障碼等實時行車數據,如下圖所示。

圖4 數據顯示效果圖

圖5 數據標定效果圖
(2)Android端車輛數據標定模塊展示:該模塊的作用在于方便計算行車百米脈沖數,并通過WIFI發送標定值。如圖5所示。
(3)Android端車輛自主控制器程序更新模塊展示:該模塊的作用在于手機中解析hex二進制文件并通過OBD診斷儀將解析后的數據發送到CAN總線,通過Bootloader協議下載程序,完成程序功能的更新,如下圖所示。

圖6 程序更新效果圖
基于OBD接口和Android平臺的重型汽車車載診斷系統不僅能對汽車行駛的實時數據通過OBD診斷儀與汽車通信進行數據采集,而且能對采集到的實時數據在Android端進行實時高效的顯示,通過實時診斷,隨時監測汽車的狀況,可以及時發現出現故障的部件并給出維修建議。從而確保了乘客和車輛的安全,降低了維修成本。對于主流車廠打造自身產品生態圈,車聯網平臺,和大數據挖掘用戶需求有著重要意義。
[1] 張懷坤,苑紅曉.汽車故障遠程診斷系統的設計和研究[C].全國測控、計量、儀器儀表學術年會,2010.
[2] 胡杰,盛祥政,李洪飛,等.基于智能手機的汽車故障診斷系統研究與開發[J].汽車技術,2011(9):4-10.
[3] 曾銳利,肖云魁,周建新等.汽車遠程故障診斷與維修系統研究[J].電子測量技術,2009,32(7):129-131.
[4] 鮑健.汽車故障診斷技術的現狀與發展趨勢[J].科技資訊,2012, 29(5):110-111.
Heavy Vehicle In-Vehicle Diagnosis System Based on OBD Interface and Android Platform
Zhang Zhipeng, Cheng Bokai, Du Langdong, Ma Quanhai
( Shaanxi Heavy Duty Automobile Co. Ltd, Shaanxi Xi'an 710200 )
With the development of the logistics industry, the demand for heavy-duty vehicles continues to grow. The diagnosis of the operating status of heavy-duty vehicles is also particularly important. The article uses the OBD interface to analyze data and diagnose vehicle faults based on the Android platform. It can provide a favorable guarantee for the mainte -nance work of the vehicle.
Android; Diagnosis; CAN; OBD interface
10.16638/j.cnki.1671-7988.2019.10.060
U472
A
1671-7988(2019)10-176-03
U472
A
1671-7988(2019)10-176-03
張志鵬(1990-),男,工程師,就職于陜西重型汽車有限公司汽車工程研究院軍品研究所,從事于軍用車輛產品設計開發相關研究工作。