文獻(xiàn)標(biāo)識碼: B
文章編號: 0258-7998(2014)03-0068-03
AMT(機械式自動變速器)是在原來手動變速汽車的基礎(chǔ)上,不改變原來發(fā)動機、變速器、離合器的結(jié)構(gòu),外加一套電控驅(qū)動裝置和控制器,通過模擬最優(yōu)秀的駕駛習(xí)慣控制驅(qū)動機構(gòu)驅(qū)動離合器、選檔桿、換擋桿完成起步、變檔過程的一系列操作而實現(xiàn)自動變速[1]。
AMT系統(tǒng)是一個多輸入多輸出的復(fù)雜系統(tǒng),參數(shù)不僅多而且變化快,為了實時觀測AMT系統(tǒng)工作工況、評估系統(tǒng)性能、發(fā)現(xiàn)系統(tǒng)問題,在AMT研發(fā)調(diào)試過程中,需要設(shè)計一個監(jiān)測系統(tǒng)來實時觀測系統(tǒng)相關(guān)參數(shù)的變化。參考文獻(xiàn)[2]介紹了一種基于LabVIEW的AMT監(jiān)測系統(tǒng)的設(shè)計,參考文獻(xiàn)[3]介紹了一種采用VB語言編寫上位機的AMT監(jiān)測系統(tǒng),它們都有一個共同的特點就是不能脫離PC機并且采用有線傳輸方式。由于調(diào)試AMT系統(tǒng)時是在空間有限的汽車駕駛艙內(nèi),同時汽車也是處于行駛狀態(tài),這些監(jiān)測手段顯得不方便?;诖耍疚脑O(shè)計了基于Android平臺的AMT監(jiān)測系統(tǒng),采用藍(lán)牙技術(shù)將需要觀測的參數(shù)通過無線的方式發(fā)送到Android手機上,在Android手機上設(shè)計了應(yīng)用程序?qū)⑦@些信息呈現(xiàn)給開發(fā)人員。相比于傳統(tǒng)的監(jiān)測手段,該系統(tǒng)充分將開發(fā)人員的隨身物品作為科研開發(fā)的工具,不僅簡單方便易于攜帶而且降低了開發(fā)成本。
1 系統(tǒng)原理
AMT監(jiān)測系統(tǒng)的作用是在AMT系統(tǒng)開發(fā)調(diào)試階段協(xié)助開發(fā)人員實時了解AMT系統(tǒng)的工作狀態(tài)和評估性能參數(shù),此外開發(fā)調(diào)試AMT系統(tǒng)時是在空間有限的駕駛艙內(nèi)進(jìn)行并且汽車處于行駛的狀態(tài)。因此AMT監(jiān)測系統(tǒng)要滿足以下要求:
(1)能實時地采集系統(tǒng)狀態(tài)參數(shù);
(2)提供可視化的、友好的、美觀的界面;
(3)簡單方便,易于攜帶。
為滿足以上要求,以Android智能手機為平臺,采用無線藍(lán)牙通信技術(shù)是一種比較滿意的方案。
本文設(shè)計的AMT監(jiān)測系統(tǒng)包括三個部分,分別是AMT系統(tǒng)ECU、藍(lán)牙RF模塊、Android智能手機,AMT系統(tǒng)ECU與藍(lán)牙RF模塊為系統(tǒng)下位機負(fù)責(zé)信息采集發(fā)送,Android智能手機為上位機負(fù)責(zé)信息接收以及提供可視化的界面。上位機與下位機通過藍(lán)牙進(jìn)行通信。系統(tǒng)組成結(jié)構(gòu)圖如圖1所示。
系統(tǒng)的工作原理:在手機與下位機藍(lán)牙RF模塊配對建立連接之后,AMT系統(tǒng)ECU通過UART將采集到的數(shù)據(jù)按照定義好的格式發(fā)送給藍(lán)牙RF模塊,藍(lán)牙RF模塊將數(shù)據(jù)轉(zhuǎn)換成無線信號,Android系統(tǒng)手機內(nèi)置的藍(lán)牙將數(shù)據(jù)接收后傳送至應(yīng)用程序,應(yīng)用程序?qū)⑦@些數(shù)據(jù)進(jìn)行處理并以可視化的界面呈現(xiàn)給開發(fā)者。
2 系統(tǒng)下位機設(shè)計
2.1 硬件平臺設(shè)計
系統(tǒng)的下位機包括兩個部分,分別是AMT系統(tǒng)ECU和藍(lán)牙RF模塊。ECU是AMT系統(tǒng)的大腦,負(fù)責(zé)信號的采集處理和控制決策。由于AMT系統(tǒng)是一個多輸入多輸出、參數(shù)變化快、實時性要求高的系統(tǒng),需要AMT的ECU有較高的實時處理能力;此外,在研發(fā)調(diào)試過程中為監(jiān)測系統(tǒng)狀態(tài)而加入的數(shù)據(jù)采集不能影響原有ECU的運行流程,必須是一個獨立的并行運行模塊,與原有ECU的運行沒有任何的耦合關(guān)系,因此需要ECU有并行處理能力。一般的基于馮·諾依曼體系結(jié)構(gòu)的微控制都是在時鐘的指揮下串行執(zhí)行程序指令,要想獲得較高實時性和并行處理需要對軟件的設(shè)計進(jìn)行高度的實時性優(yōu)化,這樣的程序設(shè)計比較困難,因此很難滿足設(shè)計要求?;诖?,采用FPGA設(shè)計AMT系統(tǒng)ECU,F(xiàn)PGA通過內(nèi)部邏輯門的互聯(lián),以硬件的方式實現(xiàn)對激勵的響應(yīng),具有很強的實時性同時還可以并行處理。使用的芯片為Actel的A3P250,A3P250是基于Flash架構(gòu)的FPGA,具有上電即可運行、抗干擾能力強、無法破解等特點[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工作電壓,通過UART與AMT系統(tǒng)ECU通信,ECU只需將要發(fā)送的數(shù)據(jù)通過UART發(fā)送給藍(lán)牙模塊即可,無需對藍(lán)牙模塊編程。
2.2 軟件實現(xiàn)
下位機的軟件功能主要是AMT系統(tǒng)ECU中的數(shù)據(jù)采集發(fā)送部分。程序結(jié)構(gòu)圖如圖2所示,包含3大部分:數(shù)據(jù)幀封裝部分、發(fā)送控制部分、UART部分。數(shù)據(jù)幀封裝部分將要發(fā)送的數(shù)據(jù)按一定的格式封裝成數(shù)據(jù)幀,一個數(shù)據(jù)幀包含13 B的數(shù)據(jù),其中第一個字節(jié)固定為0xbb作為幀的起始標(biāo)志,最后一個字節(jié)的內(nèi)容固定為0xaa作為幀的結(jié)束標(biāo)志,其余11個字節(jié)的內(nèi)容為AMT系統(tǒng)和汽車的狀態(tài)參數(shù);發(fā)送控制部分在時鐘的統(tǒng)一指揮下產(chǎn)生選通信號和發(fā)送使能信號將一幀數(shù)據(jù)依次傳輸給UART并啟動UART進(jìn)行發(fā)送;UART是軟件的核心部分,AMT的FPGA主控制器A3P250自身不帶UART,因此采用Verilog語言實現(xiàn)UART的邏輯。在Libero集成開發(fā)環(huán)境下編寫調(diào)試程序,完成下位機軟件的開發(fā)工作。
3 上位機實現(xiàn)
上位機程序是一個Android的應(yīng)用程序運行在Android智能手機上。Android系統(tǒng)為Android應(yīng)用程序提供了5個基本組件類型,應(yīng)用程序按自身需求將對應(yīng)的組件實例化。5個基本組件類型包括:Activity組件,該組件提供可視化的界面用于人機交互;Service組件,該組件無可視化的界面而是在一段時間內(nèi)運行于后臺;Intent組件,用于組件、應(yīng)用程序之間的消息傳遞;BroadcastReceiver組件,該組件用于接收廣播消息通知并啟動其他組件進(jìn)行處理;ContentProvider組件,該組件用于應(yīng)用程序的數(shù)據(jù)管理。一個Android應(yīng)用程序都由以上的一個或多個組件構(gòu)成[5]。
3.1軟件架構(gòu)
本系統(tǒng)應(yīng)用程序的設(shè)計采用典型的MCV分層設(shè)計模型[7],MCV分別代表模型層、控制層、表示層。表示層工作于前臺,展現(xiàn)模型的狀態(tài),進(jìn)行數(shù)據(jù)顯示,提供人機交互;控制層提供表示層與模型層之間的流程控制,一方面要將表示層的輸入發(fā)送至模型層進(jìn)行處理,另一方面要將模型層的處理結(jié)果反饋到表示層進(jìn)行顯示;模型層工作于后臺進(jìn)行數(shù)據(jù)處理。在本應(yīng)用程序中表示層是界面顯示部分,使用Activity組件實現(xiàn),藍(lán)牙業(yè)務(wù)是模型層負(fù)責(zé)建立藍(lán)牙連接和藍(lán)牙通信,使用Service組件實現(xiàn),這兩個組件都是獨立的進(jìn)程,通過Handler實現(xiàn)跨進(jìn)程的通信,Handler即為控制層。軟件總體架構(gòu)如圖3所示。
3.2 用戶界面
系統(tǒng)中需要觀測的參數(shù)有車速、發(fā)動機轉(zhuǎn)速、檔位、離合器位置、換擋桿位置、選檔桿位置、加速踏板開度、節(jié)氣門開度等。以上這些參數(shù)都可以直接通過文本框顯示,但是這樣顯示不能反映參數(shù)之間的相互作用關(guān)系。因此有些參數(shù)需要在同一個時間軸上用曲線顯示,比如車速與離合器行程曲線,發(fā)動機轉(zhuǎn)速與車速曲線。因此界面顯示部分包括兩個界面,一個是文本框顯示界面,一個是曲線顯示界面。
界面的布局和控件資源通過XML文件進(jìn)行定義,采用絕對布局方式。文本框顯示界面包含若干個用于數(shù)據(jù)輸出顯示的EditText控件和作為標(biāo)簽的TextView控件,該界面為程序默認(rèn)顯示界面,應(yīng)用程序一打開就顯示此界面。曲線顯示界面添加了一個SurfaceView控件,用于繪圖操作,兩個界面通過滑動進(jìn)行切換。文本框顯示界面對象繼承Activity類,復(fù)寫其OnCreate方法和OnStart方法,在OnCreate方法中進(jìn)行變量的初始化、調(diào)用setContentView設(shè)置界面布局的XML文件、調(diào)用findViewById方法獲取界面上各個控件對象;在OnStart方法中創(chuàng)建藍(lán)牙業(yè)務(wù)對象和通信接口Handler,同時創(chuàng)建Handler的消息處理函數(shù),在消息處理函數(shù)中接收藍(lán)牙發(fā)送過來的數(shù)據(jù)并將這些數(shù)據(jù)進(jìn)行處理顯示。
3.3藍(lán)牙業(yè)務(wù)
Android系統(tǒng)對藍(lán)牙網(wǎng)絡(luò)協(xié)議棧提供了支持,提供了一系列基本類和API來實現(xiàn)藍(lán)牙設(shè)備之間的數(shù)據(jù)傳輸。藍(lán)牙通信的基本類有:(1)BluetoothAdapter類,該類代表了一個本地藍(lán)牙適配器,用于掃描其他藍(lán)牙設(shè)備,實例化藍(lán)牙設(shè)備和建立監(jiān)聽線程來監(jiān)聽來自遠(yuǎn)端設(shè)備的連接;(2)BluetoothDevice類,代表了一個遠(yuǎn)端的藍(lán)牙設(shè)備,封裝了遠(yuǎn)端藍(lán)牙設(shè)備的名稱、地址、種類和綁定狀態(tài)等信息;(3)Bluetoothsocket類,代表一個藍(lán)牙套接字接口,作用是通過輸入輸出流提供應(yīng)用程序與其他藍(lán)牙設(shè)備的通信接口;(4)Blueboothserversocket類,用于在主機端監(jiān)聽可能到來的連接請求;(5)Bluetoothclass類,它是一個只讀性質(zhì)的集描述了藍(lán)牙的特點和能力[6]。
藍(lán)牙設(shè)備之間的通信包括4個步驟: (1)設(shè)置藍(lán)牙設(shè)備;(2)尋找局域網(wǎng)內(nèi)可能或者匹配的設(shè)備;(3)連接設(shè)備; (4)數(shù)據(jù)傳輸。當(dāng)兩個藍(lán)牙設(shè)備擁有同一個套接字即在同一個RFECOMM信道上時,這兩個設(shè)備就建立了連接可以進(jìn)行數(shù)據(jù)通信了。
藍(lán)牙業(yè)務(wù)對象在文本框顯示界面Activity對象中的OnStart方法中被創(chuàng)建,創(chuàng)建之后作為service工作于后臺進(jìn)行藍(lán)牙業(yè)務(wù)。當(dāng)完成藍(lán)牙設(shè)備的掃描、配對、連接之后,創(chuàng)建數(shù)據(jù)監(jiān)聽線程,監(jiān)聽來自遠(yuǎn)端設(shè)備的數(shù)據(jù),當(dāng)接收到數(shù)據(jù)時,通過bytes = mmInStream.read(buffer)讀出數(shù)據(jù),再通過Handler將數(shù)據(jù)發(fā)送給界面顯示的Activity。藍(lán)牙業(yè)務(wù)程序流程圖如圖4所示。在eclipse集成開發(fā)環(huán)境中完成應(yīng)用程序的編寫和調(diào)試工作。
通過這個數(shù)據(jù)采集系統(tǒng),極大地方便了AMT的調(diào)試工作,特別是在試車過程中,能實時地觀測到AMT系統(tǒng)的工作狀態(tài)和汽車相關(guān)的狀態(tài)參數(shù),評估系統(tǒng)的性能。為AMT的研發(fā)工作提供了極大的便利。
參考文獻(xiàn)
[1] 葛安林,沈波.AMT換擋品質(zhì)的研究[J].汽車技術(shù), 2003(2):43-45.
[2] 趙梅,胡天亮,張倩,等.基于LabVIEW的AMT數(shù)據(jù)采集系統(tǒng)設(shè)計與研究[J].山東大學(xué)學(xué)報(工學(xué)版),2011,41(6):70-74.
[3] 董玉梁,陳慧巖. 車輛AMT的數(shù)據(jù)采集及分析系統(tǒng)[J].工業(yè)儀表與自動化裝置,2003(4):46-48.
[4] 黃明金. 基于FPGA技術(shù)的虛擬數(shù)字存儲示波器的設(shè)計[D].四川:成都理工大學(xué),2011.
[5] 李黎國,張輝,程號. 基于Android健康服務(wù)終端藍(lán)牙傳輸軟件的設(shè)計[J]. 電子科技, 2012,25(5):115-118.
[6] 熊獅,吳效明. 基于Android系統(tǒng)的生理數(shù)據(jù)藍(lán)牙傳輸技術(shù)[J].中國醫(yī)學(xué)物理學(xué)雜志,2012,29(6):3801-3803.
[7] 孟剛.基于Android藍(lán)牙聊天系統(tǒng)的設(shè)計與實現(xiàn)[J]. 信息安全與技術(shù),2012(6):79-82.