《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android智能手機(jī)平臺(tái)的AMT監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)
基于Android智能手機(jī)平臺(tái)的AMT監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2014年第3期
萬(wàn)曉鳳, 雷繼棠, 易其軍
(南昌大學(xué) 信息工程學(xué)院, 江西 南昌330031)
摘要: 針對(duì)機(jī)械式自動(dòng)變速器(簡(jiǎn)稱AMT)在研究開(kāi)發(fā)階段需要觀測(cè)系統(tǒng)參數(shù)和車輛狀態(tài)信息的情況,設(shè)計(jì)了基于Android智能手機(jī)平臺(tái)并采用無(wú)線藍(lán)牙通信技術(shù)的AMT監(jiān)測(cè)系統(tǒng)。闡述了系統(tǒng)的基本工作原理,詳細(xì)介紹了系統(tǒng)的下位機(jī)的軟、硬件設(shè)計(jì),著重介紹了Android平臺(tái)上的上位機(jī)設(shè)計(jì)。實(shí)驗(yàn)表明,基于Android智能手機(jī)平臺(tái)構(gòu)建的AMT監(jiān)測(cè)系統(tǒng)實(shí)現(xiàn)了AMT系統(tǒng)的數(shù)據(jù)采集、分析、顯示,使開(kāi)發(fā)人員能夠?qū)崟r(shí)掌握AMT系統(tǒng)的動(dòng)態(tài)參數(shù)。
中圖分類號(hào): TP23;TP29
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2014)03-0068-03
The design of AMT monitor system based on Android smart phone platform
Wan Xiaofeng, Lei Jitang,Yi Qijun
College of Information Engineering, Nanchang University, Nanchang 330031, China
Abstract: Aiming at the situation that there are some system parameters and vehicle states information to be observed when AMT system is under research,this paper proposes a monitor system based on Android smart phone platform and with Bluetooth technology.This paper introduces the basic principle of the AMT monitor system and introduced the hardware and software design of lower computer.The design of upper computer software was studied. The experiment result shows that the AMT monitor system based on Android smart phone realizes the function of AMT system data acquisiton, analysis and display,makes the researcher easy kown the dynamic parameter of the AMT system.
Key words : Android; Bluetooth; AMT; monitor system

    AMT(機(jī)械式自動(dòng)變速器)是在原來(lái)手動(dòng)變速汽車的基礎(chǔ)上,不改變?cè)瓉?lái)發(fā)動(dòng)機(jī)、變速器、離合器的結(jié)構(gòu),外加一套電控驅(qū)動(dòng)裝置和控制器,通過(guò)模擬最優(yōu)秀的駕駛習(xí)慣控制驅(qū)動(dòng)機(jī)構(gòu)驅(qū)動(dòng)離合器、選檔桿、換擋桿完成起步、變檔過(guò)程的一系列操作而實(shí)現(xiàn)自動(dòng)變速[1]。
    AMT系統(tǒng)是一個(gè)多輸入多輸出的復(fù)雜系統(tǒng),參數(shù)不僅多而且變化快,為了實(shí)時(shí)觀測(cè)AMT系統(tǒng)工作工況、評(píng)估系統(tǒng)性能、發(fā)現(xiàn)系統(tǒng)問(wèn)題,在AMT研發(fā)調(diào)試過(guò)程中,需要設(shè)計(jì)一個(gè)監(jiān)測(cè)系統(tǒng)來(lái)實(shí)時(shí)觀測(cè)系統(tǒng)相關(guān)參數(shù)的變化。參考文獻(xiàn)[2]介紹了一種基于LabVIEW的AMT監(jiān)測(cè)系統(tǒng)的設(shè)計(jì),參考文獻(xiàn)[3]介紹了一種采用VB語(yǔ)言編寫(xiě)上位機(jī)的AMT監(jiān)測(cè)系統(tǒng),它們都有一個(gè)共同的特點(diǎn)就是不能脫離PC機(jī)并且采用有線傳輸方式。由于調(diào)試AMT系統(tǒng)時(shí)是在空間有限的汽車駕駛艙內(nèi),同時(shí)汽車也是處于行駛狀態(tài),這些監(jiān)測(cè)手段顯得不方便。基于此,本文設(shè)計(jì)了基于Android平臺(tái)的AMT監(jiān)測(cè)系統(tǒng),采用藍(lán)牙技術(shù)將需要觀測(cè)的參數(shù)通過(guò)無(wú)線的方式發(fā)送到Android手機(jī)上,在Android手機(jī)上設(shè)計(jì)了應(yīng)用程序?qū)⑦@些信息呈現(xiàn)給開(kāi)發(fā)人員。相比于傳統(tǒng)的監(jiān)測(cè)手段,該系統(tǒng)充分將開(kāi)發(fā)人員的隨身物品作為科研開(kāi)發(fā)的工具,不僅簡(jiǎn)單方便易于攜帶而且降低了開(kāi)發(fā)成本。
1 系統(tǒng)原理
    AMT監(jiān)測(cè)系統(tǒng)的作用是在AMT系統(tǒng)開(kāi)發(fā)調(diào)試階段協(xié)助開(kāi)發(fā)人員實(shí)時(shí)了解AMT系統(tǒng)的工作狀態(tài)和評(píng)估性能參數(shù),此外開(kāi)發(fā)調(diào)試AMT系統(tǒng)時(shí)是在空間有限的駕駛艙內(nèi)進(jìn)行并且汽車處于行駛的狀態(tài)。因此AMT監(jiān)測(cè)系統(tǒng)要滿足以下要求:
    (1)能實(shí)時(shí)地采集系統(tǒng)狀態(tài)參數(shù);
    (2)提供可視化的、友好的、美觀的界面;
    (3)簡(jiǎn)單方便,易于攜帶。
    為滿足以上要求,以Android智能手機(jī)為平臺(tái),采用無(wú)線藍(lán)牙通信技術(shù)是一種比較滿意的方案。
    本文設(shè)計(jì)的AMT監(jiān)測(cè)系統(tǒng)包括三個(gè)部分,分別是AMT系統(tǒng)ECU、藍(lán)牙RF模塊、Android智能手機(jī),AMT系統(tǒng)ECU與藍(lán)牙RF模塊為系統(tǒng)下位機(jī)負(fù)責(zé)信息采集發(fā)送,Android智能手機(jī)為上位機(jī)負(fù)責(zé)信息接收以及提供可視化的界面。上位機(jī)與下位機(jī)通過(guò)藍(lán)牙進(jìn)行通信。系統(tǒng)組成結(jié)構(gòu)圖如圖1所示。

    系統(tǒng)的工作原理:在手機(jī)與下位機(jī)藍(lán)牙RF模塊配對(duì)建立連接之后,AMT系統(tǒng)ECU通過(guò)UART將采集到的數(shù)據(jù)按照定義好的格式發(fā)送給藍(lán)牙RF模塊,藍(lán)牙RF模塊將數(shù)據(jù)轉(zhuǎn)換成無(wú)線信號(hào),Android系統(tǒng)手機(jī)內(nèi)置的藍(lán)牙將數(shù)據(jù)接收后傳送至應(yīng)用程序,應(yīng)用程序?qū)⑦@些數(shù)據(jù)進(jìn)行處理并以可視化的界面呈現(xiàn)給開(kāi)發(fā)者。
2 系統(tǒng)下位機(jī)設(shè)計(jì)
2.1 硬件平臺(tái)設(shè)計(jì)

    系統(tǒng)的下位機(jī)包括兩個(gè)部分,分別是AMT系統(tǒng)ECU和藍(lán)牙RF模塊。ECU是AMT系統(tǒng)的大腦,負(fù)責(zé)信號(hào)的采集處理和控制決策。由于AMT系統(tǒng)是一個(gè)多輸入多輸出、參數(shù)變化快、實(shí)時(shí)性要求高的系統(tǒng),需要AMT的ECU有較高的實(shí)時(shí)處理能力;此外,在研發(fā)調(diào)試過(guò)程中為監(jiān)測(cè)系統(tǒng)狀態(tài)而加入的數(shù)據(jù)采集不能影響原有ECU的運(yùn)行流程,必須是一個(gè)獨(dú)立的并行運(yùn)行模塊,與原有ECU的運(yùn)行沒(méi)有任何的耦合關(guān)系,因此需要ECU有并行處理能力。一般的基于馮·諾依曼體系結(jié)構(gòu)的微控制都是在時(shí)鐘的指揮下串行執(zhí)行程序指令,要想獲得較高實(shí)時(shí)性和并行處理需要對(duì)軟件的設(shè)計(jì)進(jìn)行高度的實(shí)時(shí)性優(yōu)化,這樣的程序設(shè)計(jì)比較困難,因此很難滿足設(shè)計(jì)要求。基于此,采用FPGA設(shè)計(jì)AMT系統(tǒng)ECU,F(xiàn)PGA通過(guò)內(nèi)部邏輯門的互聯(lián),以硬件的方式實(shí)現(xiàn)對(duì)激勵(lì)的響應(yīng),具有很強(qiáng)的實(shí)時(shí)性同時(shí)還可以并行處理。使用的芯片為Actel的A3P250,A3P250是基于Flash架構(gòu)的FPGA,具有上電即可運(yùn)行、抗干擾能力強(qiáng)、無(wú)法破解等特點(diǎn)[4]。藍(lán)牙RF模塊采用的是CSR BC04藍(lán)牙芯片,該芯片內(nèi)部集成遵循V2.0藍(lán)牙規(guī)范的藍(lán)牙通信協(xié)議,數(shù)字2.4 GHz頻段收發(fā),3.3 V工作電壓,通過(guò)UART與AMT系統(tǒng)ECU通信,ECU只需將要發(fā)送的數(shù)據(jù)通過(guò)UART發(fā)送給藍(lán)牙模塊即可,無(wú)需對(duì)藍(lán)牙模塊編程。
2.2 軟件實(shí)現(xiàn)
    下位機(jī)的軟件功能主要是AMT系統(tǒng)ECU中的數(shù)據(jù)采集發(fā)送部分。程序結(jié)構(gòu)圖如圖2所示,包含3大部分:數(shù)據(jù)幀封裝部分、發(fā)送控制部分、UART部分。數(shù)據(jù)幀封裝部分將要發(fā)送的數(shù)據(jù)按一定的格式封裝成數(shù)據(jù)幀,一個(gè)數(shù)據(jù)幀包含13 B的數(shù)據(jù),其中第一個(gè)字節(jié)固定為0xbb作為幀的起始標(biāo)志,最后一個(gè)字節(jié)的內(nèi)容固定為0xaa作為幀的結(jié)束標(biāo)志,其余11個(gè)字節(jié)的內(nèi)容為AMT系統(tǒng)和汽車的狀態(tài)參數(shù);發(fā)送控制部分在時(shí)鐘的統(tǒng)一指揮下產(chǎn)生選通信號(hào)和發(fā)送使能信號(hào)將一幀數(shù)據(jù)依次傳輸給UART并啟動(dòng)UART進(jìn)行發(fā)送;UART是軟件的核心部分,AMT的FPGA主控制器A3P250自身不帶UART,因此采用Verilog語(yǔ)言實(shí)現(xiàn)UART的邏輯。在Libero集成開(kāi)發(fā)環(huán)境下編寫(xiě)調(diào)試程序,完成下位機(jī)軟件的開(kāi)發(fā)工作。

3 上位機(jī)實(shí)現(xiàn)
    上位機(jī)程序是一個(gè)Android的應(yīng)用程序運(yùn)行在Android智能手機(jī)上。Android系統(tǒng)為Android應(yīng)用程序提供了5個(gè)基本組件類型,應(yīng)用程序按自身需求將對(duì)應(yīng)的組件實(shí)例化。5個(gè)基本組件類型包括:Activity組件,該組件提供可視化的界面用于人機(jī)交互;Service組件,該組件無(wú)可視化的界面而是在一段時(shí)間內(nèi)運(yùn)行于后臺(tái);Intent組件,用于組件、應(yīng)用程序之間的消息傳遞;BroadcastReceiver組件,該組件用于接收廣播消息通知并啟動(dòng)其他組件進(jìn)行處理;ContentProvider組件,該組件用于應(yīng)用程序的數(shù)據(jù)管理。一個(gè)Android應(yīng)用程序都由以上的一個(gè)或多個(gè)組件構(gòu)成[5]。
3.1軟件架構(gòu)
    本系統(tǒng)應(yīng)用程序的設(shè)計(jì)采用典型的MCV分層設(shè)計(jì)模型[7],MCV分別代表模型層、控制層、表示層。表示層工作于前臺(tái),展現(xiàn)模型的狀態(tài),進(jìn)行數(shù)據(jù)顯示,提供人機(jī)交互;控制層提供表示層與模型層之間的流程控制,一方面要將表示層的輸入發(fā)送至模型層進(jìn)行處理,另一方面要將模型層的處理結(jié)果反饋到表示層進(jìn)行顯示;模型層工作于后臺(tái)進(jìn)行數(shù)據(jù)處理。在本應(yīng)用程序中表示層是界面顯示部分,使用Activity組件實(shí)現(xiàn),藍(lán)牙業(yè)務(wù)是模型層負(fù)責(zé)建立藍(lán)牙連接和藍(lán)牙通信,使用Service組件實(shí)現(xiàn),這兩個(gè)組件都是獨(dú)立的進(jìn)程,通過(guò)Handler實(shí)現(xiàn)跨進(jìn)程的通信,Handler即為控制層。軟件總體架構(gòu)如圖3所示。

 

 

3.2 用戶界面
    系統(tǒng)中需要觀測(cè)的參數(shù)有車速、發(fā)動(dòng)機(jī)轉(zhuǎn)速、檔位、離合器位置、換擋桿位置、選檔桿位置、加速踏板開(kāi)度、節(jié)氣門開(kāi)度等。以上這些參數(shù)都可以直接通過(guò)文本框顯示,但是這樣顯示不能反映參數(shù)之間的相互作用關(guān)系。因此有些參數(shù)需要在同一個(gè)時(shí)間軸上用曲線顯示,比如車速與離合器行程曲線,發(fā)動(dòng)機(jī)轉(zhuǎn)速與車速曲線。因此界面顯示部分包括兩個(gè)界面,一個(gè)是文本框顯示界面,一個(gè)是曲線顯示界面。
    界面的布局和控件資源通過(guò)XML文件進(jìn)行定義,采用絕對(duì)布局方式。文本框顯示界面包含若干個(gè)用于數(shù)據(jù)輸出顯示的EditText控件和作為標(biāo)簽的TextView控件,該界面為程序默認(rèn)顯示界面,應(yīng)用程序一打開(kāi)就顯示此界面。曲線顯示界面添加了一個(gè)SurfaceView控件,用于繪圖操作,兩個(gè)界面通過(guò)滑動(dòng)進(jìn)行切換。文本框顯示界面對(duì)象繼承Activity類,復(fù)寫(xiě)其OnCreate方法和OnStart方法,在OnCreate方法中進(jìn)行變量的初始化、調(diào)用setContentView設(shè)置界面布局的XML文件、調(diào)用findViewById方法獲取界面上各個(gè)控件對(duì)象;在OnStart方法中創(chuàng)建藍(lán)牙業(yè)務(wù)對(duì)象和通信接口Handler,同時(shí)創(chuàng)建Handler的消息處理函數(shù),在消息處理函數(shù)中接收藍(lán)牙發(fā)送過(guò)來(lái)的數(shù)據(jù)并將這些數(shù)據(jù)進(jìn)行處理顯示。
3.3藍(lán)牙業(yè)務(wù)
    Android系統(tǒng)對(duì)藍(lán)牙網(wǎng)絡(luò)協(xié)議棧提供了支持,提供了一系列基本類和API來(lái)實(shí)現(xiàn)藍(lán)牙設(shè)備之間的數(shù)據(jù)傳輸。藍(lán)牙通信的基本類有:(1)BluetoothAdapter類,該類代表了一個(gè)本地藍(lán)牙適配器,用于掃描其他藍(lán)牙設(shè)備,實(shí)例化藍(lán)牙設(shè)備和建立監(jiān)聽(tīng)線程來(lái)監(jiān)聽(tīng)來(lái)自遠(yuǎn)端設(shè)備的連接;(2)BluetoothDevice類,代表了一個(gè)遠(yuǎn)端的藍(lán)牙設(shè)備,封裝了遠(yuǎn)端藍(lán)牙設(shè)備的名稱、地址、種類和綁定狀態(tài)等信息;(3)Bluetoothsocket類,代表一個(gè)藍(lán)牙套接字接口,作用是通過(guò)輸入輸出流提供應(yīng)用程序與其他藍(lán)牙設(shè)備的通信接口;(4)Blueboothserversocket類,用于在主機(jī)端監(jiān)聽(tīng)可能到來(lái)的連接請(qǐng)求;(5)Bluetoothclass類,它是一個(gè)只讀性質(zhì)的集描述了藍(lán)牙的特點(diǎn)和能力[6]。
    藍(lán)牙設(shè)備之間的通信包括4個(gè)步驟: (1)設(shè)置藍(lán)牙設(shè)備;(2)尋找局域網(wǎng)內(nèi)可能或者匹配的設(shè)備;(3)連接設(shè)備; (4)數(shù)據(jù)傳輸。當(dāng)兩個(gè)藍(lán)牙設(shè)備擁有同一個(gè)套接字即在同一個(gè)RFECOMM信道上時(shí),這兩個(gè)設(shè)備就建立了連接可以進(jìn)行數(shù)據(jù)通信了。
    藍(lán)牙業(yè)務(wù)對(duì)象在文本框顯示界面Activity對(duì)象中的OnStart方法中被創(chuàng)建,創(chuàng)建之后作為service工作于后臺(tái)進(jìn)行藍(lán)牙業(yè)務(wù)。當(dāng)完成藍(lán)牙設(shè)備的掃描、配對(duì)、連接之后,創(chuàng)建數(shù)據(jù)監(jiān)聽(tīng)線程,監(jiān)聽(tīng)來(lái)自遠(yuǎn)端設(shè)備的數(shù)據(jù),當(dāng)接收到數(shù)據(jù)時(shí),通過(guò)bytes = mmInStream.read(buffer)讀出數(shù)據(jù),再通過(guò)Handler將數(shù)據(jù)發(fā)送給界面顯示的Activity。藍(lán)牙業(yè)務(wù)程序流程圖如圖4所示。在eclipse集成開(kāi)發(fā)環(huán)境中完成應(yīng)用程序的編寫(xiě)和調(diào)試工作。
    通過(guò)這個(gè)數(shù)據(jù)采集系統(tǒng),極大地方便了AMT的調(diào)試工作,特別是在試車過(guò)程中,能實(shí)時(shí)地觀測(cè)到AMT系統(tǒng)的工作狀態(tài)和汽車相關(guān)的狀態(tài)參數(shù),評(píng)估系統(tǒng)的性能。為AMT的研發(fā)工作提供了極大的便利。

參考文獻(xiàn)
[1] 葛安林,沈波.AMT換擋品質(zhì)的研究[J].汽車技術(shù), 2003(2):43-45.
[2] 趙梅,胡天亮,張倩,等.基于LabVIEW的AMT數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與研究[J].山東大學(xué)學(xué)報(bào)(工學(xué)版),2011,41(6):70-74.
[3] 董玉梁,陳慧巖. 車輛AMT的數(shù)據(jù)采集及分析系統(tǒng)[J].工業(yè)儀表與自動(dòng)化裝置,2003(4):46-48.
[4] 黃明金. 基于FPGA技術(shù)的虛擬數(shù)字存儲(chǔ)示波器的設(shè)計(jì)[D].四川:成都理工大學(xué),2011.
[5] 李黎國(guó),張輝,程號(hào). 基于Android健康服務(wù)終端藍(lán)牙傳輸軟件的設(shè)計(jì)[J]. 電子科技, 2012,25(5):115-118.
[6] 熊獅,吳效明. 基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù)[J].中國(guó)醫(yī)學(xué)物理學(xué)雜志,2012,29(6):3801-3803.
[7] 孟剛.基于Android藍(lán)牙聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 信息安全與技術(shù),2012(6):79-82.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。