《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于OBD協議的Android平臺汽車虛擬儀表設計
基于OBD協議的Android平臺汽車虛擬儀表設計
來源:電子技術應用2011年第12期
蔡 黎1, 代妮娜1, 鄧 明2
1. 重慶三峽學院 電子與信息工程學院, 重慶 404000; 2. 長安汽車研發中心系統所5室,重慶400023
摘要: 提出了一種基于OBD協議的Android平臺汽車虛擬儀表設計方法。該裝置以連接器硬件和解析OBD數據軟件為核心,連接器硬件讀取OBD接口實時數據,軟件解析相關參數值,最后在Android平臺設備上進行圖形化虛擬儀表顯示。在分析OBD協議關鍵技術后,具體闡述了Android SDK開發環境下軟件的設計方案。按該方案設計的汽車虛擬儀表已經實現,工程實測證明:此種設計方案高效可靠,能夠達到監測汽車運行參數的預期目的。
中圖分類號: TP274
文獻標識碼: A
文章編號: 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)即“車載診斷系統”[1],裝載OBD協議的汽車能夠自動監測汽車各項運行參數,具有很高的安全性。但是受到OBD儀表高額制造成本的制約,絕大部分汽車只支持OBD協議并提供OBD接口,但是未設置OBD車載檢測儀表,因此OBD的各項功能未得到有效發揮。
    Android是一款基于Linux平臺的開源移動通信終端操作系統,由Google公司研發,目前全球長期使用的Android平臺設備約有1 300萬臺。
    本文介紹一種能夠應用在Android設備平臺的OBD汽車虛擬儀表設計方案。
1 系統整體設計
1.1 需求分析

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


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


3 硬件連接器設計
3.1 連接器設計

    連接器的作用是將OBD接口輸出信號轉換為Android平臺設備能夠識別的信號并輸入。此處選用ELM電子生產的OBD轉RS232專用芯片ELM327作為連接器主控芯片,連接器一端連接OBD插座,OBD接口16號引腳為芯片供電,OBD信號通過芯片轉換后從數據收發口RXD、TXD輸出?;贓LM327的連接器組成框圖如圖3所示。

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

4 虛擬儀表軟件設計

 


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

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


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

    基于OBD協議的Android平臺汽車虛擬儀表設計方法真實有效,其價格低廉,通用性好,實用性強,達到了預期的設計目標,可以直接用于小型載客汽車或在稍作改造后用于重型汽車或其他支持OBD協議的車輛。
參考文獻
[1] CAVALIER S. Meeting real-time constraints in CAN[C].IEEE Transactions on industrial informatics,2005,1(2):124-135.
[2] 尹玉梅. 基于CAN總線和MiniGUI的虛擬儀表設計[J].電子技術應用,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] 炫麗汽車使用手冊[M].保定:長城汽車股份有限公司,2008.
[6] BOSCH Company. CAN Specification Version2.0[EB/DL].http://www.bosch. Com. Germany.2011.
[7] 蔡體菁.嵌入式GPS/MIMU/磁羅盤組合導航系統[J].儀器儀表學報,2010(12):32-37.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          av成人福利| 亚洲美女av在线播放| 亚洲一区日韩在线| 欧美久久在线| 久久免费少妇高潮久久精品99| 久久精品夜夜夜夜久久| 国产精品综合色区在线观看| 国产精品欧美日韩一区| 牛牛国产精品| 日韩视频在线免费观看| 91久久精品网| 日韩午夜av电影| 亚洲精品美女久久7777777| 麻豆免费精品视频| 欧美在线一级va免费观看| 欧美.日韩.国产.一区.二区| 国产一区在线观看视频| 亚洲国产日韩一区二区| 日韩网站在线| 在线看片成人| 亚洲欧美一区二区三区极速播放| 久久精品国产v日韩v亚洲| 亚洲精选在线| 亚洲日韩欧美一区二区在线| 亚洲美女av网站| 欧美三级不卡| 亚洲小说欧美另类社区| 永久免费精品影视网站| 亚洲午夜激情免费视频| 国产揄拍国内精品对白| 国产日本欧美一区二区| 伊人成人开心激情综合网| 在线看日韩av| 久久噜噜噜精品国产亚洲综合| 欧美日韩国产三级| 性视频1819p久久| 亚洲免费视频成人| 欧美日韩在线免费观看| 欧美gay视频激情| 亚洲激情午夜| 欧美日韩国产在线看| 亚洲欧美日韩综合aⅴ视频| 国产一区二区0| 国产精品免费一区二区三区在线观看| 久久久久国色av免费看影院| 久久av一区二区三区漫画| 欧美va亚洲va国产综合| 久久国产免费| 亚洲国产精品999| 美女主播精品视频一二三四| 欧美在线视频不卡| 欧美亚洲自偷自偷| 国产精品日韩专区| 久久人人九九| 亚洲精品综合在线| 国产欧美一区二区三区在线老狼| 亚洲图片在线观看| 亚洲视频中文| 久久九九国产| 亚洲精品国产拍免费91在线| 免费成人黄色| 一本大道久久a久久精品综合| 欧美3dxxxxhd| 欧美视频中文一区二区三区在线观看| 亚洲视频在线观看一区| 欧美区高清在线| 亚洲欧美激情诱惑| 性久久久久久久| 国产精品美女一区二区在线观看| 久久精品视频免费| 国产一区二区三区黄| 老**午夜毛片一区二区三区| 激情久久婷婷| 免费在线欧美视频| 日韩亚洲成人av在线| 午夜免费在线观看精品视频| 老牛影视一区二区三区| 中文欧美日韩| 麻豆精品在线播放| 欧美日韩在线电影| 欧美成人免费在线| 国产精品午夜在线观看| 日韩一二三区视频| 国产日韩成人精品| 欧美伦理a级免费电影| 国产日韩综合一区二区性色av| 国产视频一区二区三区在线观看| 久久精品国产亚洲精品| 亚洲国产欧美日韩精品| 国产精品99久久久久久久久久久久| 一区二区三区在线视频免费观看| 亚洲综合视频网| 国产一区二区高清不卡| 国产综合第一页| 亚洲综合不卡| 欧美成人免费在线视频| 精品成人a区在线观看| 精品福利免费观看| 国产综合欧美在线看| 亚洲在线视频网站| 亚洲精选成人| 亚洲精品1234| 亚洲国产成人精品视频| 狠狠色噜噜狠狠狠狠色吗综合| 国产一级揄自揄精品视频| 黄色精品一区二区| 国产亚洲aⅴaaaaaa毛片| 久久精品91| 国产欧美日韩伦理| 国产亚洲午夜| 亚洲永久字幕| 欧美亚洲综合在线| 韩国三级在线一区| 免费久久精品视频| 亚洲成人影音| 欧美精品久久一区二区| 午夜亚洲福利在线老司机| 国产亚洲视频在线| 99精品视频免费在线观看| 欧美日韩色婷婷| 亚洲国产精品精华液网站| 激情伊人五月天久久综合| 久久国产日韩欧美| 国产精品乱码| 欧美日韩精品伦理作品在线免费观看| 欧美日韩在线第一页| 激情一区二区| 午夜精品成人在线| 国产在线精品自拍| 欧美综合国产精品久久丁香| 新片速递亚洲合集欧美合集| 国产日产高清欧美一区二区三区| 欧美日韩国产影片| 亚洲国产日韩精品| 欧美中文字幕视频| 欧美日韩综合久久| 欧美一级久久久久久久大片| 在线观看一区视频| 欧美人与性动交α欧美精品济南到| 欧美一区二区三区在线观看| 亚洲精品久久久久久久久久久| 欧美不卡高清| 亚洲承认在线| 久久久免费精品| 9l视频自拍蝌蚪9l视频成人| 亚洲影院污污.| 久久久国产视频91| 国产三区精品| 最新日韩在线| 一区二区三区日韩| 欧美91福利在线观看| 亚洲福利国产精品| 欧美一级播放| 欧美午夜www高清视频| 狼狼综合久久久久综合网| 欧美精品一区二区三区视频| 欧美激情免费在线| 欧美伊人久久久久久久久影院| 欧美寡妇偷汉性猛交| 久久精品国产一区二区三| 免费亚洲婷婷| 在线免费观看一区二区三区| 精品av久久久久电影| 久久久久久夜精品精品免费| 国产日韩一区在线| 亚洲视频在线观看视频| 欧美亚洲一区二区在线| 国产精品网站在线播放| 久久久久网站| 亚洲人成人一区二区在线观看| 亚洲国产一区二区三区青草影视| 国产无遮挡一区二区三区毛片日本| 欧美日韩美女在线| 欧美一区二区成人| 篠田优中文在线播放第一区| 国产在线不卡视频| 欧美制服丝袜第一页| 国产色爱av资源综合区| 亚洲乱码国产乱码精品精98午夜| 国产精品激情电影| 国产一区二区在线免费观看| 久久中文字幕导航| 国产在线拍揄自揄视频不卡99| 国产精品久久久999| 亚洲欧美日韩国产中文在线| 欧美日韩国产成人在线| 一区二区三区日韩在线观看| 久久久一本精品99久久精品66| 久久久久九九九| 久久精品视频导航| 国产综合香蕉五月婷在线| 蜜桃av一区二区三区| 欧美一区日本一区韩国一区| 在线一区免费观看| 欧美日韩精品一区二区三区| 国产精品一区二区在线观看| 久久综合电影一区| 欧美三级不卡| 欧美激情中文不卡| 欧美日韩第一区日日骚| 欧美一二区视频| 国产日本亚洲高清| 亚洲视频 欧洲视频| 国产精品视频专区| 久久久久久国产精品mv| 国产亚洲一二三区| 日韩午夜剧场| 99在线热播精品免费99热| 一区二区免费看| 男人天堂欧美日韩| 亚洲免费小视频| 亚洲日本va在线观看| 一区精品久久| 国产精品麻豆欧美日韩ww| 日韩亚洲欧美一区| 欧美特黄一级大片| 久久精品道一区二区三区| av成人免费观看| 欧美在线黄色| 久久夜精品va视频免费观看| 亚洲精品国产精品国自产观看浪潮| 欧美日韩国产影片| 夜久久久久久| 亚洲欧美激情在线视频| 亚洲在线视频一区| 狠狠狠色丁香婷婷综合激情| 久久综合九色九九| 国产一区二区三区网站| 国产在线拍偷自揄拍精品| 精品成人一区二区三区四区| 亚洲免费观看高清完整版在线观看| 欧美性淫爽ww久久久久无| 久久久精品国产一区二区三区| 欧美a级理论片| 一本一本大道香蕉久在线精品| 久久久久久久久久久成人| 亚洲精品久久嫩草网站秘色| 久久本道综合色狠狠五月| 牛牛国产精品| 小嫩嫩精品导航| 欧美日本亚洲视频| 99国产欧美久久久精品| 中国成人在线视频| 欧美视频免费在线观看| 亚洲精品日韩综合观看成人91| 国产综合激情| 久久本道综合色狠狠五月| 亚洲欧美另类中文字幕| 在线精品视频在线观看高清| 国产午夜精品全部视频在线播放| 国产一区二区三区四区五区美女| 老色鬼久久亚洲一区二区| 国产精品一区二区在线观看不卡| 亚洲无限乱码一二三四麻| 久久色中文字幕| 国产精品日本精品| 欧美日本精品一区二区三区| 亚洲国产天堂久久国产91| 欧美电影在线播放| 亚洲国产欧美在线| 国产精品r级在线| 国产一区二区三区在线观看精品| 亚洲精品一区二区三区四区高清| 亚洲第一页中文字幕| 欧美三级电影网| 欧美在线free| 亚洲免费视频一区二区| 午夜在线精品偷拍| 国产精品久久久久久久久借妻| 亚洲激情一区二区| 国产日韩一区二区三区在线播放| 久久成人精品电影| 亚洲专区国产精品| 欧美激情欧美狂野欧美精品| 很黄很黄激情成人| 欧美成人69| 国产欧美韩日| 欧美在线观看一区二区三区| 欧美日韩在线不卡一区| 美女脱光内衣内裤视频久久网站| 国产一区二区三区精品欧美日韩一区二区三区| 玖玖视频精品| 欧美日韩喷水| 蜜臀99久久精品久久久久久软件| 国产精品国产一区二区| 激情久久久久久久久久久久久久久久| 亚洲第一中文字幕在线观看| 国产一区二区在线观看免费| 国产精品自拍一区| 欧美日韩国产限制| 国产一区二区三区高清在线观看| 欧美日韩国产在线播放网站| 99视频国产精品免费观看| 国产日韩精品一区二区三区在线| 欧美区高清在线| 欧美精品一级| 99精品国产在热久久婷婷| 欧美日韩八区| 一本色道久久综合狠狠躁的推荐| 韩日成人在线| 亚洲人成网站在线播| 在线一区二区三区做爰视频网站| 这里只有精品在线播放| 欧美一区激情视频在线观看| 伊人久久亚洲热| 欧美一区二区三区免费观看视频| 美女主播一区| 欧美美女福利视频| 欧美日韩一区二区欧美激情| 亚洲精品免费在线播放| 欧美一区国产在线| 毛片基地黄久久久久久天堂| 久久漫画官网| 亚洲成人原创| 亚洲伊人观看| 欧美激情综合| 国产一区美女| 亚洲色图自拍| 免费观看不卡av| 欧美freesex8一10精品| 亚洲一级在线观看| 尤物九九久久国产精品的特点| 久久精品国产第一区二区三区| 亚洲视频在线一区| 国产精品大全| 欧美一级精品大片| 精品动漫3d一区二区三区免费| 欧美日本高清视频|