(91388部隊93分隊 湛江 524022)
藍牙是1998年推出的一種新的無線傳輸方式,是當今世界公認的十大科技成果之一。通過低帶寬電波實現點對點,或點對多點連接之間的信息交流。具備一般無線通信的優點,也有其自身的特點,例如功耗小、傳輸穩定、可靠、安全,并且可以集成在任何需要無線傳輸的產品中。是實現語音和數據無線傳輸的開放性規范,是一種低成本、短距離的無線連接技術[1]。
Android系統是基于Linux的自由及開放源代碼的操作系統,主要適用于便攜設備。它以其開源性及良好設備適應性很快得到了發展,Android系統自帶對藍牙設備的支持,可快速方便地在上位機端對藍牙模塊進行開發編程[2]。
集成了Android系統和藍牙通信技術的信號源控制系統,不僅能有效地實現穩定可靠的無源信號控制,免于人工手動近距離操作,并且為設計員提供了一個開放平臺,開發更多新功能,進一步推動實驗快速高效的進展。
基于藍牙技術的信號源控制系統主要是在原有信號源控制端添加藍牙模塊,實現遠程控制信號源發生電路,藍牙模塊的軟件程序是在Android系統上開發完成的[3]。這套信號源控制系統的設計避免了在特殊用途的場合,比如操作員和設備搭載在不同的位置上,操作員就不便于進行有線控制[4]。該系統總體結構如圖1所示。
圖1 基于藍牙技術的信號源控制系統
圖1中,上位機端采用帶藍牙功能的平板電腦,操作系統為Android,程序開發基于Android 2.2.3 系統,開發平臺為PC,所用開發工具為E-clipse集成開發環境。Eclipse是著名的跨平臺的自由集成開發環境(IDE),最初主要用來Java語言開發,但是目前Google公司通過插件使其作為Android的開發工具,在此開發環境下開發軟件非常的方便。界面調試使用軟件自帶模擬器進行,功能調試只能將程序打包安裝在平板電腦運行[5~6]。
信號源端采用FPGA 硬件完成,通過DDS技術產生數字信號,經過DA 轉換、濾波后生成所需信號。信號接收采用藍牙串口模塊,藍牙串口模塊將接收到的數據通過串口形式發往FPGA,FPGA 將完成解碼后執行操作。
主程序要完成的功能主要是檢測本機藍牙設備是否已打開并正常工作、連接下位機藍牙模塊、各按鈕滑塊功能實現、數據發送與接收等功能[7~8]。本設計中,信號源設計為脈沖信號,脈沖填充信號為正弦,信號參數包括頻率、幅度、脈寬、周期四個參數。通信格式為定長數據包結構、十六進制、各參數按照特定順序排列,格式末尾加上開始工作命令控 制 字[9~10]。數據包格式從頭至尾依次為2B頻率、1B 幅度、2B周期、2B脈寬、1B工作命令控制字共8個字節長度。按照以上原則,確定軟件工作流程如圖2,Android上位機軟件程序界面如圖3。
圖2 軟件工作流程
圖3 Android上位機軟件程序界面
軟件工作流程如下:
1)軟件開始,獲取本地藍牙設備;
mBluetoothAdapter =BluetoothAdapter.getDefaultAdapter();
2)檢查本機藍牙設備是否開啟,若未開啟則提示是否開啟,確定后開啟藍牙,軟件正常工作,否則退出;
if(! mBluetoothAdapter.isEnabled()){};
3)軟件正常啟動后開啟藍牙服務,保證軟件在后臺時依然正常工作,不需重新連接設備。點擊連接設備按鈕,與下位機特定藍牙設備連接(考慮到下位機藍牙設備不會經常更換,采取固定地址連接方式,若下位機藍牙設備更換,則在源代碼中更改address值),連接方式通過更改UUID 值確定,本設計中,采用藍牙串口方式連接;
4)采用數字輸入或滑塊滑動設置頻率等參數,設置完成后發送數據,同時提示數據發送成功,下位機接收到數據后反饋數據,上位機提示數據已正常接收,設備開始工作。
5)需要更改參數時可重復第4步,需要停止工作時可點擊“停止”按鈕,在發送各項參數為零的數據包尾,發送工作命令停止控制字。程序需退出時可隨時退出。
下位機硬件設計如圖4所示,藍牙串口模塊接收上位機藍牙無線信號,并將信號“翻譯”為數據通過串口形式發往FPGA,FPGA 接收到數據后調整信號數據輸出,A/D 采集模塊的使用是檢測輸出是否正常,并將結果返回至上位機。
圖4 下位機硬件設計
下位機軟件設計主要是FPGA 編程,包括串口接收與發送、DDS信號發生、幅度調整、A/D 與D/A 芯片控制、FFT 與信號分析等。FPGA 編程采用Verilog HDL 語言,在Quartus9.0環境下編譯。
通過軟硬件聯調測試,整機工作正常,上位機端發送命令及參數,下位機輸出信號如圖5、圖6所示。
圖5 脈沖信號
圖6 脈沖填充信號
從示波器顯示結果來看,波形完整正確,滿足系統設計。
本文針對基于Android 和藍牙通信的信號源實驗系統,對藍牙無線通信技術及Android編程進行了實驗研究,提出了軟硬件設計及通信格式,據此實現了主、從系統之間的藍牙無線通信和信號源控制,并進行了實驗驗證。
實驗表明,該軟硬件設計和藍牙通信是有效的,能夠滿足信號源對操控實時性、準確性的要求,達到了預期的目標。
[1]蒲昌玖.基于藍牙的機器人通信控制方法[J].重慶教育學院學報,2010,11:45-47.
[2]林長青,成海量.基于Android系統和藍牙通信的手機遙控車設計[J].山西電子技術,2012,03:56-58.
[3]符強,任風華.基于手機藍牙的遙控小車的設計[J].現代計算機,2011(12):77-80.
[4]寧祎,薛文奎,劉站立.遙操作機器人數據打包算法及藍牙通信[J].制造業自動化,2009(5):37-40.
[5]侯新琦,李佳.基于Android藍牙通訊的研究[J].電子世界,2012(11):22-25.
[6]鄒川陽.Android平臺中藍牙設備的應用[J].軟件導刊,2012,11(7).
[7]Rafael Ruffolo.Android's Uphill Battle[J].ComputerWorld Canada,2008,24(17).
[8]楊豐盛.Android應用開發揭秘[M].北京:機械工業出版社,2010:50-52.
[9]肖俊,胡斌.基于藍牙技術的RFID-SIM 卡在SQLite中的數據存儲過程分析[J].軟件導刊,2011,10(5).
[10]劉信新,陳鯤.基于無線傳感器網絡的自適應交通燈控制系統[J].計算機與數字工程,2011(5).
[11]胡甜,楊莎,李長春.基于IP網絡門禁控制系統通信模塊的設計與開發[J].計算機與數字工程,2009(11).
[12]Volgyesi..Bluetooth-Based Android Interactive Applications for Smart Living[C].International Conference on Sensing Technology(ICST 2011)5th.2011.