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