張志鵬,陳博凱,杜浪東,馬全海
?
基于OBD接口和Android平臺(tái)的重型汽車車載診斷系統(tǒng)
張志鵬,陳博凱,杜浪東,馬全海
(陜西重型汽車有限公司,陜西 西安 710200)
隨著物流行業(yè)的發(fā)展,重型汽車的需求量不斷增長。對(duì)重型汽車運(yùn)行狀態(tài)的診斷也顯得尤為重要。文章利用OBD接口,基于Android平臺(tái),對(duì)數(shù)據(jù)進(jìn)行分析,診斷車輛故障。為車輛的維護(hù)工作,提供有利的保障。
Android;診斷;CAN;OBD接口
基于OBD接口和Android平臺(tái)的重型汽車車載診斷系統(tǒng)是目前主流車廠打造自身產(chǎn)品生態(tài)圈的重要一部分,更是車聯(lián)網(wǎng)平臺(tái),大數(shù)據(jù)挖掘用戶需求的重要一環(huán)。
常規(guī)診斷儀體積大、價(jià)格昂貴,通用性差,且不宜長時(shí)間連接在總線上,本診斷工具旨在通過市場上通用的OBD診斷儀,將車輛CAN總線上的數(shù)據(jù)發(fā)送至手機(jī)APP,通過APP對(duì)CAN數(shù)據(jù)的解析,提供故障診斷、車輛狀態(tài)信息。手機(jī)體積小,又能隨時(shí)觀察車輛狀態(tài),利于排除異常,提高車輛使用壽命。
該診斷系統(tǒng)還能對(duì)自主開發(fā)的控制器進(jìn)行應(yīng)用程序更新。在線獲取加密程序文件(hex文件加密),在手機(jī)中解密并通過WiFi將數(shù)據(jù)發(fā)送到CAN總線,通過Bootloader協(xié)議下載程序,完成程序功能的更新。
該系統(tǒng)的整體架構(gòu)由重型汽車,OBD診斷儀,Android智能手機(jī)3大部分組成,各部分之間的邏輯關(guān)系如圖1所示。
OBD診斷儀直接通過車輛的16針診斷接頭安裝在汽車上,手機(jī)APP就可以通過WIFI與OBD診斷儀建立WIFI通道,從而與車輛進(jìn)行數(shù)據(jù)通信。手機(jī)APP通過對(duì)接收到的數(shù)據(jù)進(jìn)行分析和處理,從而獲得相應(yīng)的參數(shù)信息,并同時(shí)在手機(jī)端進(jìn)行實(shí)時(shí)顯示。
圖1 系統(tǒng)各部分邏輯關(guān)系
考慮到系統(tǒng)實(shí)時(shí)性好,實(shí)用性強(qiáng),運(yùn)行流暢的設(shè)計(jì)原則,本系統(tǒng)由重型汽車,OBD診斷儀,Android智能手機(jī)三部分組成,如下圖所示。
圖2 系統(tǒng)組成圖
主要功能點(diǎn)如下:
(1)數(shù)據(jù)檢測功能:顯示發(fā)動(dòng)機(jī),變速器,車身模塊等的關(guān)鍵信息。
(2)故障診斷功能:顯示發(fā)動(dòng)機(jī),變速器,車身模塊等的故障信息。
(3)虛擬儀表功能:顯示發(fā)動(dòng)機(jī)轉(zhuǎn)速,車速,里程等關(guān)鍵數(shù)據(jù)。
(4)AD檢測功能:顯示車身模塊的故障數(shù)據(jù)觸發(fā)閾值。
(5)輔助工具功能:計(jì)算百米脈沖,以及對(duì)發(fā)動(dòng)機(jī),ABS的故障閃碼查詢和對(duì)整車電控系統(tǒng)的故障碼查詢。
(6)數(shù)據(jù)標(biāo)定功能:修改標(biāo)定信息,權(quán)限解鎖等。
(7)胎壓檢測功能:對(duì)胎壓充放系統(tǒng)進(jìn)行檢測。
(8)數(shù)據(jù)流導(dǎo)出功能:對(duì)CAN總線上的數(shù)據(jù)進(jìn)行記錄導(dǎo)出功能。
(9)模塊儀表數(shù)據(jù)在線更新功能:對(duì)相應(yīng)程序升級(jí)換代。
(10)維修保養(yǎng)手冊功能:當(dāng)車輛出現(xiàn)故障,可自動(dòng)定位到相應(yīng)維修結(jié)點(diǎn),指導(dǎo)維修保養(yǎng)。
為實(shí)現(xiàn)本文所述系統(tǒng)及功能,開發(fā)了一款基于Android移動(dòng)終端軟件,并在Android6.0系統(tǒng)的手機(jī)上進(jìn)行測試。Android端顯示的數(shù)據(jù)是OBD診斷儀通過WIFI傳過來的,點(diǎn)擊界面上的連接WIFI按鈕對(duì)周圍可連接的設(shè)備進(jìn)行掃描,并選擇進(jìn)行連接。
后臺(tái)邏輯的搭建主要用到了Service后臺(tái)和Activity活動(dòng)。
(1)Service是運(yùn)行在后臺(tái)且不和用戶交互的組件。每個(gè)Service必須在manifest中通過
(2)Activity對(duì)用戶來說即是一個(gè)交互的界面,多個(gè)activity之間可以通過Intent通信,每個(gè)Activity必須在manifest中通過
(3)該系統(tǒng)采用MVC的架構(gòu),把基于OBD接口和Android平臺(tái)的重型汽車車載診斷系統(tǒng)分為了VIEW,MODEL,CONTROL三層,如下圖所示。
圖3 系統(tǒng)結(jié)構(gòu)圖
(4)VIEW層:該層是距離用戶最近的一層,用于顯示解析CAN報(bào)文的處理結(jié)果,提供用戶和系統(tǒng)連接的紐帶。
(5)MODEL層:該層采用特有的面向?qū)ο蠼涌诰幊蹋鶕?jù)程序的需求自己創(chuàng)建對(duì)象,為開發(fā)人員節(jié)省了大量的工作,實(shí)現(xiàn)低耦合的特點(diǎn)。
(6)CONTROL層:通過對(duì)sqlite進(jìn)行輕量化的對(duì)象封裝,開發(fā)人員使用面向?qū)ο笏枷雭韺?duì)sqlite數(shù)據(jù)庫進(jìn)行操作,簡化對(duì)sqlite數(shù)據(jù)庫的操作。
本系統(tǒng)按照上述設(shè)計(jì),針對(duì)重型汽車車載診斷的需求,搭建汽車,OBD診斷儀,Android智能手機(jī)組成的診斷系統(tǒng),進(jìn)行開發(fā)。目前,基于OBD接口和Android平臺(tái)的重型汽車車載診斷系統(tǒng)經(jīng)過大量的測試和調(diào)試,已經(jīng)成功實(shí)現(xiàn)業(yè)務(wù)運(yùn)行。
基于OBD接口和Android平臺(tái)的重型汽車車載診斷系統(tǒng),在Android端實(shí)時(shí)采集和顯示重型汽車的運(yùn)行數(shù)據(jù)。通過實(shí)時(shí)診斷,隨時(shí)監(jiān)測汽車的狀況,可以及時(shí)發(fā)現(xiàn)出現(xiàn)故障的部件并給出維修建議。從而確保了乘客和車輛的安全,降低了維修成本。
(1)Android端車輛數(shù)據(jù)顯示模塊展示:該模塊的作用在于以列表的界面來直觀的顯示車輛運(yùn)行過程中的實(shí)時(shí)信息,實(shí)時(shí)行車數(shù)據(jù)流中帶有實(shí)時(shí)車速,發(fā)動(dòng)機(jī)油溫,變速器輸出軸轉(zhuǎn)速,發(fā)動(dòng)機(jī)故障碼等實(shí)時(shí)行車數(shù)據(jù),如下圖所示。
圖4 數(shù)據(jù)顯示效果圖
圖5 數(shù)據(jù)標(biāo)定效果圖
(2)Android端車輛數(shù)據(jù)標(biāo)定模塊展示:該模塊的作用在于方便計(jì)算行車百米脈沖數(shù),并通過WIFI發(fā)送標(biāo)定值。如圖5所示。
(3)Android端車輛自主控制器程序更新模塊展示:該模塊的作用在于手機(jī)中解析hex二進(jìn)制文件并通過OBD診斷儀將解析后的數(shù)據(jù)發(fā)送到CAN總線,通過Bootloader協(xié)議下載程序,完成程序功能的更新,如下圖所示。
圖6 程序更新效果圖
基于OBD接口和Android平臺(tái)的重型汽車車載診斷系統(tǒng)不僅能對(duì)汽車行駛的實(shí)時(shí)數(shù)據(jù)通過OBD診斷儀與汽車通信進(jìn)行數(shù)據(jù)采集,而且能對(duì)采集到的實(shí)時(shí)數(shù)據(jù)在Android端進(jìn)行實(shí)時(shí)高效的顯示,通過實(shí)時(shí)診斷,隨時(shí)監(jiān)測汽車的狀況,可以及時(shí)發(fā)現(xiàn)出現(xiàn)故障的部件并給出維修建議。從而確保了乘客和車輛的安全,降低了維修成本。對(duì)于主流車廠打造自身產(chǎn)品生態(tài)圈,車聯(lián)網(wǎng)平臺(tái),和大數(shù)據(jù)挖掘用戶需求有著重要意義。
[1] 張懷坤,苑紅曉.汽車故障遠(yuǎn)程診斷系統(tǒng)的設(shè)計(jì)和研究[C].全國測控、計(jì)量、儀器儀表學(xué)術(shù)年會(huì),2010.
[2] 胡杰,盛祥政,李洪飛,等.基于智能手機(jī)的汽車故障診斷系統(tǒng)研究與開發(fā)[J].汽車技術(shù),2011(9):4-10.
[3] 曾銳利,肖云魁,周建新等.汽車遠(yuǎn)程故障診斷與維修系統(tǒng)研究[J].電子測量技術(shù),2009,32(7):129-131.
[4] 鮑健.汽車故障診斷技術(shù)的現(xiàn)狀與發(fā)展趨勢[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-),男,工程師,就職于陜西重型汽車有限公司汽車工程研究院軍品研究所,從事于軍用車輛產(chǎn)品設(shè)計(jì)開發(fā)相關(guān)研究工作。