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