《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于OBD協(xié)議的Android平臺(tái)汽車虛擬儀表設(shè)計(jì)
基于OBD協(xié)議的Android平臺(tái)汽車虛擬儀表設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2011年第12期
蔡 黎1, 代妮娜1, 鄧 明2
1. 重慶三峽學(xué)院 電子與信息工程學(xué)院, 重慶 404000; 2. 長安汽車研發(fā)中心系統(tǒng)所5室,重慶400023
摘要: 提出了一種基于OBD協(xié)議的Android平臺(tái)汽車虛擬儀表設(shè)計(jì)方法。該裝置以連接器硬件和解析OBD數(shù)據(jù)軟件為核心,連接器硬件讀取OBD接口實(shí)時(shí)數(shù)據(jù),軟件解析相關(guān)參數(shù)值,最后在Android平臺(tái)設(shè)備上進(jìn)行圖形化虛擬儀表顯示。在分析OBD協(xié)議關(guān)鍵技術(shù)后,具體闡述了Android SDK開發(fā)環(huán)境下軟件的設(shè)計(jì)方案。按該方案設(shè)計(jì)的汽車虛擬儀表已經(jīng)實(shí)現(xiàn),工程實(shí)測證明:此種設(shè)計(jì)方案高效可靠,能夠達(dá)到監(jiān)測汽車運(yùn)行參數(shù)的預(yù)期目的。
中圖分類號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)12-0083-04
Design of car virtual instrument based on OBD for Android
Cai Li1, Dai Nina1, Deng Ming2
1. Department of Electronic and Information Engineering, Chongqing Three Gorges University, Chongqing 404000, China; 2. Room 5 of System Department, Changan Automobile R&D Center, Chongqing 404000, China
Abstract: The car virtual instrument design using OBD protocol is developed for Android. The core of the device is including the hardware for connector and software for analyzing the OBD data. The connector reads the real-time data from the OBD interface, analyzes related parameters by its analysis module, and then displays by a graphical way in the device. The method to achieve the software in the android SDK development environment is elaborated specifically after analyzing the key technology of the OBD protocol. This design of the car visual instrument has been realized. The tests in practice have proved that it is efficient and reliable enough to achieve the desire of monitoring the vehicle operating parameters.
Key words : OBD; Android; car; virtual instrument


    OBD(On Board Diagnostics)即“車載診斷系統(tǒng)”[1],裝載OBD協(xié)議的汽車能夠自動(dòng)監(jiān)測汽車各項(xiàng)運(yùn)行參數(shù),具有很高的安全性。但是受到OBD儀表高額制造成本的制約,絕大部分汽車只支持OBD協(xié)議并提供OBD接口,但是未設(shè)置OBD車載檢測儀表,因此OBD的各項(xiàng)功能未得到有效發(fā)揮。
    Android是一款基于Linux平臺(tái)的開源移動(dòng)通信終端操作系統(tǒng),由Google公司研發(fā),目前全球長期使用的Android平臺(tái)設(shè)備約有1 300萬臺(tái)。
    本文介紹一種能夠應(yīng)用在Android設(shè)備平臺(tái)的OBD汽車虛擬儀表設(shè)計(jì)方案。
1 系統(tǒng)整體設(shè)計(jì)
1.1 需求分析

    OBD系統(tǒng)能夠輸出汽車電子控制單元ECU(Electronic Control Unit)通過車載傳感器獲得的燃油系統(tǒng)、溫度系統(tǒng)、點(diǎn)火系統(tǒng)、動(dòng)力系統(tǒng)以及廢氣控制輔助裝置系統(tǒng)運(yùn)行狀態(tài)數(shù)據(jù),在發(fā)生故障的情況下則輸出故障碼。
    基于OBD協(xié)議的Android平臺(tái)汽車虛擬儀表需要實(shí)現(xiàn)的功能是擴(kuò)展OBD接口功能,與OBD接口通信,解析相關(guān)報(bào)文數(shù)據(jù)流,將解析結(jié)果以圖形化的方式顯示,如動(dòng)力監(jiān)控界面能夠顯示發(fā)動(dòng)機(jī)狀態(tài)、發(fā)動(dòng)機(jī)轉(zhuǎn)速、當(dāng)前時(shí)速、剩余油量、發(fā)動(dòng)機(jī)溫度等。
1.2 整體設(shè)計(jì)
    用系統(tǒng)工程的方法劃分虛擬儀表設(shè)計(jì)工作,參照模塊化軟件開發(fā)規(guī)范,按照以下步驟實(shí)現(xiàn)汽車虛擬儀表:
    (1)分析OBD接口,設(shè)計(jì)硬件連接器,將電平轉(zhuǎn)換到Android平臺(tái)設(shè)備可接受的范圍;
    (2)虛擬儀表軟件初始化連接器,讀取輸入信號(hào),解析OBO信號(hào)報(bào)文并以圖形化的方式顯示。系統(tǒng)子模塊圖如圖1所示。


2 OBD接口
    根據(jù)ISO DIS 15031-3規(guī)范,OBD接口被定義為雙排16針插座,有A、B兩種外形規(guī)范,A用于小型乘用車,B用于載重汽車[2]。A型接口一般位于轉(zhuǎn)向柱和汽車中線之間。16個(gè)引腳信號(hào)定義如下。
    如圖2,插座的02、06、07、10、14 和15號(hào)引腳用于傳輸不同的汽車通信協(xié)議,通常用其作為診斷通信接口。因?yàn)橐粋€(gè)型號(hào)的汽車只使用一種協(xié)議,所以同一型號(hào)的汽車,只需要使用其中的一個(gè)接線柱。插座01、03、08、09、11、12 和13 未做分配,由車輛制造廠商自行定義。如第4節(jié)工程實(shí)測中使用的長城CC7130SM00 汽車,將11 腳定義為發(fā)動(dòng)機(jī)防盜信號(hào)、12定義為ABS(Anti-locked Braking System)車輪防抱死信號(hào)、13腳定義為安全氣囊信號(hào)。


3 硬件連接器設(shè)計(jì)
3.1 連接器設(shè)計(jì)

    連接器的作用是將OBD接口輸出信號(hào)轉(zhuǎn)換為Android平臺(tái)設(shè)備能夠識(shí)別的信號(hào)并輸入。此處選用ELM電子生產(chǎn)的OBD轉(zhuǎn)RS232專用芯片ELM327作為連接器主控芯片,連接器一端連接OBD插座,OBD接口16號(hào)引腳為芯片供電,OBD信號(hào)通過芯片轉(zhuǎn)換后從數(shù)據(jù)收發(fā)口RXD、TXD輸出。基于ELM327的連接器組成框圖如圖3所示。

3.2 電平轉(zhuǎn)換
    Android平臺(tái)設(shè)備一般采用無線藍(lán)牙、WLAN或有線USB端口進(jìn)行數(shù)據(jù)通信,這里選擇USB端口作為信號(hào)輸入端口。ELM327輸出的信號(hào)范圍是0 V~12 V,Android平臺(tái)設(shè)備USB端口接收的信號(hào)范圍為0 V~5 V,兩者不匹配[3],設(shè)計(jì)以PL2303芯片為核心的轉(zhuǎn)換電路完成轉(zhuǎn)換,電路圖如圖4所示。

4 虛擬儀表軟件設(shè)計(jì)

 


    軟件設(shè)計(jì)平臺(tái)選用Java JDK、Eclipse IDE for Java EE Developers和Android SDK共同構(gòu)建的開發(fā)平臺(tái)[4]。采用模塊化的設(shè)計(jì)方法,將虛擬儀表軟件分為通信初始化模塊、OBD數(shù)據(jù)解析模塊、計(jì)算與顯示模塊。
4.1 通信初始化模塊
    通信初始化模塊功能是通過連接器實(shí)現(xiàn)OBD插座與Android平臺(tái)設(shè)備的互聯(lián)。
    (1)打開USB通用串行端口,代碼如下:
  Fd=open("/dev/ttyS0",O_RDWR);
  “/dev/ttyS0”為USB端口設(shè)備文件,O_RDWR表示可以對(duì)USB串端口進(jìn)行讀寫。
    (2)設(shè)定串行通信參數(shù),SAE J1979協(xié)議規(guī)定,工程實(shí)測中使用的長城CC7130SM00 汽車OBD工作波特率為9 600 Kb/s,每一幀數(shù)據(jù)由8位數(shù)據(jù)位和1位停止位組成,幀數(shù)據(jù)中無奇偶校驗(yàn)位[5]。Android平臺(tái)將USB端口當(dāng)做終端I/O文件管理,其參數(shù)設(shè)置使用Struct Termios結(jié)構(gòu)體實(shí)現(xiàn):
       Etispeed( ttys0_opt, B9600);          //設(shè)置波特率9 600
     Ttys0_opt.c_cflag|=CS8;              //設(shè)置8位數(shù)據(jù)位
     Ttys0_opt.c_cflag &= ~(PARENB|CSTOPB;
                                                        //設(shè)置1位停止位,無奇偶校驗(yàn)位
4.2 OBD報(bào)文解析
    報(bào)文解析模塊是虛擬儀表的核心,以O(shè)BD報(bào)文組成為基礎(chǔ)定義其主要工作流程圖如圖5所示。

   (1)模式選擇: SAE J1979 定義了9診斷模式用以獲得不同類型的診斷報(bào)文數(shù)據(jù),本設(shè)計(jì)只選用選擇模式2,即獲取動(dòng)力系統(tǒng)監(jiān)控?cái)?shù)據(jù)模式。發(fā)送指令“PID$02”到OBD接口,可指定OBD工作在診斷模式2,將當(dāng)前動(dòng)力系統(tǒng)監(jiān)控?cái)?shù)據(jù)送出。
   (2) 發(fā)送詢問碼:虛擬儀表軟件通過USB端口發(fā)送命令到OBD接口用函數(shù)Write ( )實(shí)現(xiàn),關(guān)鍵代碼如下:
    CMDbuf=PID$02;
    N= Write ( fd, CMDbuf,);
  以上代碼將命令變量CMDbuf中的數(shù)據(jù)從Android平臺(tái)設(shè)備輸出到汽車的OBD端口,返回讀取的字節(jié)數(shù)。運(yùn)行后,汽車ECU接收數(shù)據(jù),OBD接口工作在診斷模式2。
  (3)讀取信號(hào)數(shù)據(jù):虛擬儀表軟件通過USB端口讀取OBD接口的數(shù)據(jù)用函數(shù)Read( )實(shí)現(xiàn),關(guān)鍵代碼如下:
  N=Read(fd, Rsbuf, 8);
  以上代碼將汽車OBD端口Android平臺(tái)設(shè)備USB端口的數(shù)據(jù)讀入結(jié)果變量Rsbuf中待解析,返回讀取的字節(jié)數(shù)。
    (4)從虛擬儀表軟件的健康度考慮,將報(bào)文信號(hào)分為開關(guān)信號(hào)和流信號(hào)分別進(jìn)行解析。
    開關(guān)信號(hào)報(bào)文內(nèi)容為故障碼,對(duì)應(yīng)的程序變量為Logic布爾型,首先建立動(dòng)力系統(tǒng)的故障碼與主要故障碼映射簡表如表1所示。


    通過查表1實(shí)現(xiàn)報(bào)文的解析,如待解析的OBD報(bào)文中含有“P0196”故障碼,則通過查表可判定故障為發(fā)動(dòng)機(jī)機(jī)油溫度傳感器線路電壓不正確[6],此時(shí)軟件將發(fā)動(dòng)機(jī)故障狀態(tài)邏輯變量置1,即用紅色顯示發(fā)動(dòng)機(jī)故障。關(guān)鍵代碼如下:
     if((EngStas=1)){
     MainFm.EngPIC.Color=#33FF00;}
     else{
     MainFm.EngPIC.Color=#FF0000;}
     流信號(hào)為數(shù)值數(shù)據(jù),如發(fā)動(dòng)機(jī)轉(zhuǎn)速。解析的主要工作是進(jìn)行變量類型轉(zhuǎn)換:報(bào)文中的數(shù)值數(shù)據(jù)為String字符型,應(yīng)先使用如下代碼轉(zhuǎn)換為INT整型變量后提交圖形顯示。
  Int i = Integer.parseInt([String]);
4.3  圖形顯示
    圖形顯示模塊的設(shè)計(jì)關(guān)鍵在于虛擬儀表指針動(dòng)態(tài)顯示效果實(shí)現(xiàn)。先用圖像處理軟件Photoshop繪制儀表盤并保存為JPG圖像,添加JLabel控件引用圖像:
    Private URL;
     IURL=getClass().getResource("Rate.jpg");
     JLabel pic=new JLabel(new ImageIcon(IURL));
     指針需要呈現(xiàn)的隨相關(guān)變量的改變而改變的動(dòng)態(tài)效果,調(diào)用AWT (Abstract Window Toolkit) 抽象窗口工具集實(shí)現(xiàn)[7]。用DrawLine指令繪制儀表指針,并預(yù)先將數(shù)值轉(zhuǎn)化為指針起點(diǎn)終點(diǎn)位置坐標(biāo)數(shù)據(jù)。如繪制從起點(diǎn)(X1,Y1)到終點(diǎn)(X2,Y2)直線段的關(guān)鍵代碼如下:
    DrawLine(int X1,int Y1,int X2,int Y2);
5 工程實(shí)測
    選用Android平臺(tái)設(shè)備摩托羅拉ME722,軟件版本Android2.2.2,設(shè)置設(shè)備為UBS開發(fā)模式并預(yù)先用三方軟件取得系統(tǒng)Root權(quán)限,選用長城CC7130SM00轎車作為實(shí)測車輛。使用第3節(jié)中設(shè)計(jì)的連接器連接設(shè)備和OBD接口后,運(yùn)行第4節(jié)設(shè)計(jì)的虛擬儀表軟件。
    虛擬儀表成功讀取汽車動(dòng)力系統(tǒng)的發(fā)動(dòng)機(jī)狀態(tài)、轉(zhuǎn)速、溫度、行駛速度、存油量等參數(shù)信息并顯示,顯示結(jié)果和汽車儀表盤完全一致,達(dá)到設(shè)計(jì)的預(yù)期目的。如圖6、圖7所示。

    基于OBD協(xié)議的Android平臺(tái)汽車虛擬儀表設(shè)計(jì)方法真實(shí)有效,其價(jià)格低廉,通用性好,實(shí)用性強(qiáng),達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo),可以直接用于小型載客汽車或在稍作改造后用于重型汽車或其他支持OBD協(xié)議的車輛。
參考文獻(xiàn)
[1] CAVALIER S. Meeting real-time constraints in CAN[C].IEEE Transactions on industrial informatics,2005,1(2):124-135.
[2] 尹玉梅. 基于CAN總線和MiniGUI的虛擬儀表設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2010,36(2):85-87.
[3] CARLOSENA A, MACUA C. Instrument for the Measurement of the instantaneous frequency[C].IEEE Transactions on Instrumentation and Measurement, 2000,1:1-4.
[4] App Inventor[EB/OL].http://appinventor.googlelabs.com,2010.
[5] 炫麗汽車使用手冊(cè)[M].保定:長城汽車股份有限公司,2008.
[6] BOSCH Company. CAN Specification Version2.0[EB/DL].http://www.bosch. Com. Germany.2011.
[7] 蔡體菁.嵌入式GPS/MIMU/磁羅盤組合導(dǎo)航系統(tǒng)[J].儀器儀表學(xué)報(bào),2010(12):32-37.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲乱码国产乱码精品精| 亚洲愉拍自拍另类高清精品| 欧美日韩一区在线观看| 欧美成人精品福利| 久久成人精品无人区| 午夜影视日本亚洲欧洲精品| 亚洲手机成人高清视频| 亚洲人成网在线播放| 亚洲国产日韩在线一区模特| 久久精品99国产精品酒店日本| 亚洲免费一在线| 亚洲一区二区日本| 亚洲一区二区三区在线观看视频 | 亚洲三级电影在线观看| 亚洲国产精品va在线看黑人动漫| 久久狠狠一本精品综合网| 午夜精品成人在线| 先锋影音国产精品| 欧美一级午夜免费电影| 香蕉成人伊视频在线观看 | 国产九九精品| 国产欧美日韩亚洲| 国产日韩精品一区二区三区在线| 国产一级揄自揄精品视频| 国产午夜亚洲精品羞羞网站| 国产一区二区久久精品| 影音先锋久久| 亚洲欧洲综合另类在线| 日韩一区二区免费看| 一区二区精品国产| 中文av一区二区| 亚洲欧美三级在线| 久久爱www久久做| 亚洲国产精品一区二区第一页| 亚洲欧洲在线视频| 中文日韩在线视频| 亚洲永久视频| 久久精品成人一区二区三区蜜臀 | 精品成人在线观看| 91久久视频| 一区二区精品在线| 新67194成人永久网站| 亚洲国产一区在线| 一区二区三区高清视频在线观看| 国产精品99久久99久久久二8| 午夜日韩电影| 久久天堂av综合合色| 欧美国产一区二区| 欧美午夜久久| 国产一区二区三区在线观看免费| 亚洲成人在线视频网站| 一区二区三区.www| 欧美一区二区国产| 亚洲美女啪啪| 亚洲欧洲99久久| 久久综合免费视频影院| 欧美日韩hd| 国产农村妇女毛片精品久久麻豆| 在线成人小视频| 亚洲午夜国产一区99re久久| 久久国产天堂福利天堂| 一区二区黄色| 欧美在线啊v一区| 欧美高清视频在线| 国产精品欧美一区喷水| 在线观看日韩一区| 亚洲一本视频| 91久久精品国产| 亚洲你懂的在线视频| 免费在线亚洲| 国产精品视频九色porn| 亚洲第一级黄色片| 亚洲欧美在线视频观看| 亚洲人体影院| 久久精品视频在线播放| 欧美日韩美女在线| 国产亚洲欧美在线| 一区二区三区日韩欧美精品| 久久精品三级| 亚洲男女自偷自拍| 欧美电影在线观看完整版| 国产麻豆一精品一av一免费| 亚洲人成网在线播放| 久久成人精品| 亚洲欧美日韩在线一区| 欧美精品二区三区四区免费看视频| 国产精品一香蕉国产线看观看| 最新国产成人av网站网址麻豆 | 久久国产精品久久久久久久久久 | 国产精品无码专区在线观看| 亚洲国产精品va在线观看黑人| 亚洲自拍偷拍麻豆| 亚洲图片在线观看| 欧美国产日本在线| 国语精品中文字幕| 亚洲欧美日韩另类精品一区二区三区| 99在线|亚洲一区二区| 久久人人97超碰国产公开结果 | 欧美一区二区高清| 欧美日韩中文另类| 亚洲高清在线| 亚洲电影在线观看| 久久精品国产一区二区三区| 国产精品久久久久91| 亚洲精品在线一区二区| 亚洲精品激情| 米奇777超碰欧美日韩亚洲| 国产亚洲精品久久飘花| 亚洲女爱视频在线| 亚洲一区综合| 欧美日韩在线观看视频| 亚洲人成在线观看网站高清| 亚洲国产成人久久综合| 久久精品亚洲| 国产亚洲精品资源在线26u| 亚洲影院免费观看| 亚洲男人的天堂在线aⅴ视频| 欧美日韩综合视频| 亚洲美女视频网| 一区二区三区四区精品| 欧美美女bb生活片| 亚洲免费观看在线观看| 一本久久a久久免费精品不卡| 欧美激情一区二区三区在线视频| 亚洲高清影视| 日韩视频免费在线观看| 欧美精品粉嫩高潮一区二区| 亚洲日本中文字幕| 99视频超级精品| 欧美日韩一区二区在线视频| 日韩一区二区高清| 亚洲一区三区视频在线观看| 欧美深夜影院| 亚洲一区二区三区四区中文| 亚洲欧美日韩精品久久久| 国产精品乱人伦中文| 亚洲一区二区少妇| 欧美一区二区视频观看视频| 国产视频精品网| 香蕉久久久久久久av网站| 久久精品久久综合| 一区二区亚洲| 亚洲精品免费网站| 欧美日韩在线视频观看| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美日本伦理| 国产日产欧美一区| 久久精品视频播放| 欧美激情偷拍| 一区二区三区免费网站| 欧美在线看片| 狠狠久久亚洲欧美专区| 亚洲伦理久久| 国产精品二区影院| 欧美在线一二三| 欧美成年人视频| 日韩一级裸体免费视频| 欧美一区日韩一区| 经典三级久久| 一区二区欧美日韩| 国产欧美不卡| 亚洲黄网站黄| 国产精品激情偷乱一区二区∴| 欧美伊人久久久久久久久影院| 女人香蕉久久**毛片精品| 日韩视频第一页| 久久se精品一区精品二区| 精品动漫3d一区二区三区免费版| 一本久道久久综合中文字幕| 国产精品天美传媒入口| 亚洲高清久久| 国产精品成人播放| 亚洲电影av| 欧美三级在线视频| 欧美一进一出视频| 欧美经典一区二区三区| 亚洲影视在线| 欧美精品1区2区3区| 亚洲免费网址| 欧美极品色图| 欧美一级在线视频| 欧美视频日韩视频| 久久爱www| 国产精品久久久久av| 亚洲国产一区二区三区高清| 国产精品久久久免费| 91久久精品久久国产性色也91| 国产精品入口夜色视频大尺度| 亚洲国产日韩在线| 国产精品免费视频观看| 亚洲人成网站色ww在线| 国产精品毛片在线| 亚洲美洲欧洲综合国产一区| 国产毛片久久| 一区二区三区四区五区视频| 韩国成人精品a∨在线观看| 亚洲一区亚洲| 亚洲电影免费在线观看| 久久精品99国产精品| 亚洲系列中文字幕|