国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺的車用診斷儀設(shè)計

2017-05-19 12:26許強(qiáng)
計算機(jī)時代 2017年5期
關(guān)鍵詞:Android平臺

許強(qiáng)

摘 要: 車用診斷儀通常由汽車廠商自主定義,致使診斷儀軟硬件自成體系,通用性不強(qiáng)。為提高診斷平臺的開放性、硬件的低依賴性及便攜性,設(shè)計通用型的車用診斷儀很有必要。文章提出一種車用診斷設(shè)計方案,借助藍(lán)牙模塊轉(zhuǎn)發(fā)消息,實(shí)現(xiàn)車載ECU與Android移動設(shè)備間的通信,Android平臺數(shù)據(jù)庫用XML構(gòu)建,診斷軟件依據(jù)ISO15765及UDS實(shí)現(xiàn)應(yīng)用層及網(wǎng)絡(luò)層功能。在汽車模擬臺的測試表明,該車用診斷儀實(shí)現(xiàn)了故障讀取及刪除等功能,為汽車分析診斷提供了便攜及可拓展的解決方案。

關(guān)鍵詞: Android平臺; 汽車診斷; ISO15765

中圖分類號:TP399 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2017)05-06-04

Design of vehicle diagnostic tool based on Android platform

Xu Qiang

(School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China)

Abstract: The vehicle diagnostic tool is usually defined by the automobile manufacturer, which makes the software and hardware of diagnostic tool a special system of its own, and no versatility. In order to improve the openness of the diagnostic tool and the independence and portability of its hardware, it is necessary to design a general purpose vehicle diagnostic tool. This paper presents a design scheme of vehicle diagnosis, which transmits messages with Bluetooth module to realize the communication of onboard ECU and Android mobile devices. The database on Android platform is built by XML; the diagnostic software realizes the application layer and network layer functions in accordance with the ISO15765 and UDS. The test results on vehicle test bench show that this vehicle diagnostic tool can read and delete DTC (Diagnostic Trouble Code), and makes vehicle diagnostic easy and portable, it is a scalable solution.

Key words: Android platform; vehicle diagnosis; ISO15765

0 引言

車載診斷儀是一種汽車診斷設(shè)備,可識別車載ECU(電子控制單元)存儲的故障,通過車用診斷儀可以將存儲于車內(nèi)ECU的故障代碼及相關(guān)信息讀取出來,以方便車輛管理和維修使用。車載診斷系統(tǒng)包括診斷儀和多個車載ECU。診斷儀ECU執(zhí)行診斷過程,其實(shí)是依據(jù)車上設(shè)備發(fā)生的信號決定車輛是否處于異常狀態(tài)。一旦任何的異常狀態(tài)被檢測到,診斷儀將在其EEPROM存儲當(dāng)前診斷結(jié)果,EEPROM中存儲允許標(biāo)志在打開狀態(tài)則指示某個車載ECU處于異常狀態(tài)[1]。

車載診斷系統(tǒng)最初是為了控制日趨嚴(yán)峻的汽車污染問題而設(shè)計構(gòu)建,目前基于CAN總線的ISO15765汽車網(wǎng)絡(luò)診斷協(xié)議已經(jīng)在多數(shù)汽車廠商普遍采用。但當(dāng)前國內(nèi)主流汽車診斷工具基于單片機(jī)或FPGA上開發(fā)而成,導(dǎo)致汽車診斷設(shè)備拓展性及便攜性不足,僅適用于專業(yè)汽車技術(shù)人員使用。如果能將車載診斷系統(tǒng)構(gòu)建于一個用戶體驗良好的移動操作系統(tǒng),那么汽車診斷的門檻將降低,不管是車主還是汽車從業(yè)人員都將因此受益。本文通過對汽車診斷協(xié)議ISO15765的分析與研究,結(jié)合UDS統(tǒng)一診斷服務(wù)以及自主設(shè)計的藍(lán)牙轉(zhuǎn)CAN適配器,并最終在Android平臺上開發(fā)出汽車故障診斷儀。由于診斷儀采用Android平臺,用戶可以靈活的定義診斷服務(wù)應(yīng)用層的數(shù)據(jù)庫,方便地應(yīng)用到所有支持標(biāo)準(zhǔn)診斷協(xié)議ISO15765的車輛上。用戶可以使用安裝本軟件的Android設(shè)備快速查詢車輛故障,進(jìn)行相應(yīng)的保養(yǎng)維修。

1 車載診斷協(xié)議的研究

ISO15765診斷協(xié)議是針對基于CAN總線的汽車故障診斷系統(tǒng)的一般診斷要求制定的。CAN總線是一種帶CSMA/CD載波監(jiān)聽多點(diǎn)接入/碰撞檢測功能的總線,多個CAN節(jié)點(diǎn)分別可以發(fā)送不同優(yōu)先級的消息,檢測到碰撞時,消息優(yōu)先級低的節(jié)點(diǎn)自動選擇放棄發(fā)送,在總線下次空閑時即可重啟發(fā)送。ISO16765可以滿足E-OBD的系統(tǒng)要求[2],與ISO14230應(yīng)用層的服務(wù)和參數(shù)完全兼容[3]。以開放系統(tǒng)互聯(lián)(Open System Interconnection,OSI)7層參考模型為基礎(chǔ),ISO15765將通訊系統(tǒng)分為4層,分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層。ISO15765通信模型如圖1所示,診斷儀根據(jù)應(yīng)用層中定義的診斷服務(wù)發(fā)送請求報文。消息向下傳到網(wǎng)絡(luò)層后,將根據(jù)協(xié)議定義中的幀分解、幀組合、位填充和時序控制等步驟執(zhí)行消息流傳輸控制。傳輸數(shù)據(jù)的長短將決定采用單幀傳輸或多幀傳輸,數(shù)據(jù)鏈路層修改打包上一層數(shù)據(jù),組成能在CAN總線上傳輸?shù)臄?shù)據(jù)幀。

2 基于Android平臺的車用診斷系統(tǒng)框架設(shè)計

車用診斷系統(tǒng)的功能包括:與車輛通訊,讀取控制單元ECU中存儲的故障碼[4],或者刷寫控制單元軟件,更改控制單元配置信息,初始化及標(biāo)定硬件等。而比較簡易的是讀取控制單元ECU中存儲的故障碼,而本文將關(guān)注這一基本功能的軟件實(shí)現(xiàn)。目前汽車產(chǎn)品電子設(shè)備方面成本日益上升,是因為用戶對汽車舒適性、安全性方面的需求劇增,因此車用控制單元ECU數(shù)量同樣增長,豪華型轎車如奔馳控制單元ECU的數(shù)量依據(jù)車型一般為40-60個。車用診斷系統(tǒng)檢測到部件故障時,將確認(rèn)故障零件的來源。以一般高檔轎車為例涉及的控制單元有:電子鑰匙控制單元(EZS)、車身控制器(BCM)、中央傳動控制單元(CPC)、電子助力轉(zhuǎn)向系統(tǒng)(EPS)、車載娛樂主機(jī)(HU)等,在確定問題部件后,可以通過查詢數(shù)據(jù)庫的方式,查找故障代碼具體描述,觸發(fā)機(jī)制,維修建議等。而本文目的在于開發(fā)基于Android移動設(shè)備的汽車故障診斷軟件,使汽車用戶或從業(yè)者便捷的檢測車輛故障。

2.1 診斷儀系統(tǒng)整體方案

車用診斷儀由CAN轉(zhuǎn)藍(lán)牙通信接口板以及Android設(shè)備應(yīng)用軟件兩部分。系統(tǒng)框架圖如圖2所示。

診斷儀系統(tǒng)包括Android移動設(shè)備、CAN轉(zhuǎn)藍(lán)牙接口板、汽車內(nèi)部網(wǎng)絡(luò)三部分,故障發(fā)生時汽車內(nèi)部控制單元ECU將自行存儲故障碼,當(dāng)從Android移動端診斷請求命令發(fā)出后,開始一輪數(shù)據(jù)的交互。首先通過UI操作Android移動設(shè)備依據(jù)數(shù)據(jù)庫提取對應(yīng)診斷服務(wù)的指令,通過藍(lán)牙發(fā)送指令,指令經(jīng)過接口板進(jìn)行消息轉(zhuǎn)發(fā)形成CAN數(shù)據(jù)格式,與汽車內(nèi)部網(wǎng)絡(luò)上被測ECU進(jìn)行通信,被測ECU提供故障碼讀取服務(wù),將故障碼上傳經(jīng)接口板轉(zhuǎn)發(fā),最終由應(yīng)用層協(xié)議及數(shù)據(jù)庫查詢解析結(jié)果,顯示于UI界面對應(yīng)的故障形式。

2.2 系統(tǒng)設(shè)計

2.2.1 CAN轉(zhuǎn)藍(lán)牙通信接口板設(shè)計

CAN轉(zhuǎn)藍(lán)牙接口板可提供診斷的便攜性,在設(shè)計中接口板MCU使用STM32F407ZET,采用TJA1050作為CAN收發(fā)器,藍(lán)牙串口模塊采用HC-06,串口波特率為115200bps,CAN接口的波特率為500kbps,系統(tǒng)主頻為168MHz。CAN轉(zhuǎn)藍(lán)牙通信接口板硬件結(jié)構(gòu)如圖3所示。

CAN轉(zhuǎn)藍(lán)牙通信接口板工作流程為,首先初始化配置藍(lán)牙模塊和CAN模塊,對于消息的接收由藍(lán)牙接收中斷和CAN接收中斷處理器來做。接收到CAN或藍(lán)牙的消息后,剝離消息的頭部、尾部及控制字段只保留消息數(shù)據(jù)段,并存入對應(yīng)的緩存區(qū),緩存區(qū)大小為128KB。Main主循環(huán)中持續(xù)檢查緩存是否溢出,并在發(fā)送緩存空閑時裝載發(fā)送數(shù)據(jù)。定時中斷處理器負(fù)責(zé)查看數(shù)據(jù)轉(zhuǎn)發(fā)中存在的錯幀、丟幀或緩存溢出等情況向Android移動端報錯,處理數(shù)據(jù)重傳及緩存的重置。CAN轉(zhuǎn)藍(lán)牙接口板軟件流程圖如圖4所示。

2.2.2 Android移動設(shè)備應(yīng)用軟件設(shè)計

為了設(shè)計一種通用化的車用診斷儀,采用XML構(gòu)建數(shù)據(jù)庫。用XML文件配置數(shù)據(jù)庫優(yōu)勢為在一個地方對數(shù)據(jù)庫進(jìn)行配置,不用牽扯到具體的代碼,可維護(hù)性更高[5]。XML數(shù)據(jù)庫方便開發(fā)各種動態(tài)應(yīng)用,表示的信息獨(dú)立于平臺,數(shù)據(jù)庫中需要存儲車廠提供的車載ECU診斷數(shù)據(jù)集,診斷數(shù)據(jù)集通常涵蓋故障代碼、故障描述、觸發(fā)條件、維修指導(dǎo)等。

XML文件放在只讀的assets文件夾內(nèi),Android中讀取系統(tǒng)文件或者資源的時候,都可以通過getResources方法獲取到Resources對象,然后通過其獲取到相應(yīng)的資源。由于XML所在文件夾是只讀的保證了數(shù)據(jù)庫的安全。

基于CAN總線UDS協(xié)議,診斷儀將具備的功能有讀取故障碼、清除故障碼、顯示故障碼描述,在梅賽德斯奔馳工程標(biāo)準(zhǔn)中UDS服務(wù)和診斷協(xié)議規(guī)定,讀取故障服務(wù)ID為0x19車用診斷儀可以通過此診斷服務(wù),及各個控制模塊ECU的診斷ID(如發(fā)動機(jī)控制模塊ID為0x7E0)獲取控制模塊的DTC(Diagnostic Trouble Code)。相同的清除DTC服務(wù)ID為0x14[6]。診斷服務(wù)的實(shí)現(xiàn)過程為:診斷儀向車上被診斷ECU發(fā)送請求報文,ECU返回響應(yīng)報文。診斷儀從返回報文中解析DTC后與XML數(shù)據(jù)庫中故障信息進(jìn)行查詢匹配,并將匹配內(nèi)容顯示于UI界面。

本文中用于實(shí)驗調(diào)試的Android移動設(shè)備為一款華為mate9手機(jī),Android手機(jī)已成為人們?nèi)粘Mㄓ嵤褂玫墓ぞ撸救颗溆兴{(lán)牙功能。車用診斷儀軟件將具備如下功能:①藍(lán)牙連接配對;②解析數(shù)據(jù)包提取故障碼,通過故障碼查詢數(shù)據(jù)庫的故障提示;③診斷儀應(yīng)用UI界面設(shè)計。藍(lán)牙通信功能采用Android API 17 Platform中Bluetooth函數(shù)實(shí)現(xiàn),Android設(shè)備為主設(shè)備,CAN轉(zhuǎn)藍(lán)牙接口板為從設(shè)備。從設(shè)備廣播UUID及相應(yīng)服務(wù),主設(shè)備接收,到從設(shè)備的廣播進(jìn)行藍(lán)牙配對連接,藍(lán)牙報文的傳輸通過主設(shè)備對從設(shè)備。解析數(shù)據(jù)包提取故障碼是因為接口板只對CAN消息數(shù)據(jù)部分轉(zhuǎn)發(fā)而不解析,這部分將依據(jù)UDS協(xié)議完成解析。通過故障碼查詢數(shù)據(jù)庫的故障提示,是將故障碼與廠商數(shù)據(jù)庫中相應(yīng)的故障提示匹配用于顯示。算法流程如圖5所示。

3 系統(tǒng)分析與測試

本文采用CAN轉(zhuǎn)藍(lán)牙接口板及Android平臺的移動端實(shí)現(xiàn)汽車便攜化診斷功能。其中CAN轉(zhuǎn)藍(lán)牙接口板自行設(shè)計制版,藍(lán)牙模塊傳輸延遲3ms左右,信號有效傳輸距離10米,滿足便攜式診斷需求。Android移動端將消息處理器劃分為發(fā)現(xiàn)設(shè)備、開始查找設(shè)備、結(jié)束查找設(shè)備、連接失敗、主動連接成功、收到連接成功、收到消息、發(fā)送消息等8個狀態(tài)用于藍(lán)牙功能的狀態(tài)切換及實(shí)現(xiàn)。Connectthread用于主動連接遠(yuǎn)程藍(lán)牙設(shè)備,Connectedthread用于已建立連接后啟動的線程,需要傳入兩個參數(shù),socket用來獲取輸入流,讀取遠(yuǎn)程藍(lán)牙發(fā)送的消息,handler用于在收到數(shù)據(jù)時發(fā)送消息。ClearDTCthread用于傳出清除錯誤指令,ReadallDTCthread用于傳出讀取DTC指令,傳入接收到的消息,并匹配解析故障碼顯示于UI界面。測試平臺如圖6所示。

系統(tǒng)測試平臺包括安裝診斷儀APP的Android移動終端、CAN轉(zhuǎn)藍(lán)牙接口板以及梅賽德斯奔馳C級車電器系統(tǒng)模擬臺。測試步驟如下:選用華為mate9作為測試設(shè)備,將CAN轉(zhuǎn)藍(lán)牙接口板與模擬臺診斷接口板連接,為模擬臺系統(tǒng)上電。使用Android設(shè)備配對接口板。成功配對后讀取全部載入模塊故障碼,清除故障碼等操作。讀取故障碼界面如圖7所示。

4 結(jié)束語

本文通過對汽車診斷協(xié)議ISO15765和UDS統(tǒng)一診斷服務(wù)的研究,充分利用XML平臺無關(guān)性的特點(diǎn),構(gòu)建了汽車故障XML數(shù)據(jù)庫,使其能方便的拓展到其他操作系統(tǒng)。自主設(shè)計了CAN轉(zhuǎn)藍(lán)牙接口板實(shí)現(xiàn)了數(shù)據(jù)消息的轉(zhuǎn)發(fā)。通過更改源碼實(shí)現(xiàn)了Android平臺車用診斷儀。此軟件可適用于Android 7.0。通過搭建診斷測試平臺,對V205模擬臺ECU進(jìn)行故障碼讀取及故障刪除。測試結(jié)果表明,車用診斷儀可以診斷并刪除當(dāng)前錯誤,系統(tǒng)運(yùn)行正常。本文設(shè)計的診斷儀可實(shí)現(xiàn)一種便攜式的車用診斷工具。

參考文獻(xiàn)(References):

[1] Electronic control system and method for vehicle diagnosis [P]. US. 701/32.3. 8412405 04/02/2013.

[2] 羅鋒.汽車網(wǎng)絡(luò)與總線標(biāo)準(zhǔn)[J].汽車工程,2003.4(1).

[3] 李東江等.汽車車載網(wǎng)絡(luò)系統(tǒng)(CAN-BUS) 原理與檢修[M].機(jī)械工業(yè)出版社,2005.

[4] 蔡浩.汽車故障診斷系統(tǒng)的設(shè)計和開發(fā)[D].上海交通大學(xué)碩士學(xué)位論文,2009.

[5] 馮建華等.純XML數(shù)據(jù)庫研究綜述[J].計算機(jī)應(yīng)用研究,2006.23(6):1-7

[6] Ralf Pfaff.MBN-10747 Road vehicle Unified DiagnosticService(UDS)-Diagnostics Protocol(based on ISO 14229-1)[S].Plant 059,2008.6.

猜你喜歡
Android平臺
基于Android平臺的兒童跟蹤系統(tǒng)
基于Android平臺的老人跌倒檢測算法及APP設(shè)計
基于Android平臺軟件開發(fā)技術(shù)研究
基于Android平臺的人臉識別系統(tǒng)設(shè)計與實(shí)現(xiàn)
基于Android平臺的健康醫(yī)療APP設(shè)計與開發(fā)
Android手機(jī)主題設(shè)計 
基于Android的Python語言英漢維電子詞典設(shè)計與實(shí)現(xiàn)
Android平臺下的空氣質(zhì)量和天氣情況查詢應(yīng)用設(shè)計與實(shí)現(xiàn)
基于Android的移動GIS系統(tǒng)的應(yīng)用與實(shí)現(xiàn)
基于移動互聯(lián)網(wǎng)的糖尿病醫(yī)療輔助系統(tǒng)設(shè)計與實(shí)現(xiàn)
天祝| 广河县| 邵东县| 鹰潭市| 黑山县| 靖边县| 垫江县| 磐石市| 岐山县| 光泽县| 桃园县| 宁远县| 吐鲁番市| 海安县| 旬邑县| 尼玛县| 博客| 子洲县| 措勤县| 固原市| 石景山区| 靖江市| 理塘县| 黄石市| 怀远县| 宝应县| 华坪县| 广州市| 汤原县| 申扎县| 双辽市| 景泰县| 峨眉山市| 临朐县| 石狮市| 保山市| 前郭尔| 盐山县| 克什克腾旗| 沾益县| 夹江县|