??? 摘? 要: 根據(jù)藍(lán)牙規(guī)范1.1版本,介紹了一種藍(lán)牙開發(fā)平臺" title="開發(fā)平臺">開發(fā)平臺的硬件結(jié)構(gòu)設(shè)計和軟件技術(shù)實現(xiàn)。該開發(fā)平臺提供了友好的用戶接口和簡潔的界面,適于學(xué)習(xí)藍(lán)牙技術(shù)和開發(fā)藍(lán)牙產(chǎn)品。?
??? 關(guān)鍵詞: 藍(lán)牙技術(shù); 藍(lán)牙開發(fā)平臺; 無線通信
?
??? 藍(lán)牙開發(fā)平臺是藍(lán)牙技術(shù)領(lǐng)域的關(guān)鍵產(chǎn)品。藍(lán)牙開發(fā)平臺主要用來開發(fā)、測試藍(lán)牙產(chǎn)品,也可作為學(xué)習(xí)藍(lán)牙技術(shù)的實用工具。本文根據(jù)藍(lán)牙規(guī)范1.1版本,給出了一種藍(lán)牙開發(fā)平臺的硬件結(jié)構(gòu)設(shè)計和軟件技術(shù)實現(xiàn)方案。?
1 硬件設(shè)計?
??? 本開發(fā)平臺設(shè)計了RS232和USB兩種接口供用戶進(jìn)行開發(fā)、調(diào)試使用,提供了獨立的可進(jìn)行藍(lán)牙語音傳輸?shù)囊纛l接口。藍(lán)牙模塊" title="藍(lán)牙模塊">藍(lán)牙模塊采用CSR公司的BlueCore02芯片,外加了一個微處理器,可以仿真外界的環(huán)境,用戶可以自己編寫基于單片機(jī)的程序來控制藍(lán)牙。藍(lán)牙開發(fā)平臺的系統(tǒng)結(jié)構(gòu)圖如圖1所示。?
?
?
1.1 藍(lán)牙模塊的實現(xiàn)?
??? 藍(lán)牙模塊的硬件設(shè)計是將所有的芯片、電阻、電容等集成在一塊電路板上,主要由兩部分組成:射頻芯片和基帶芯片,即無線收發(fā)單元(Bluetooth Radio)和基帶控制單元(Baseband Controller)。本開發(fā)平臺采用的是CSR公司的BlueCore02芯片模塊,該模塊是一個能在各種智能設(shè)備中實現(xiàn)藍(lán)牙功能的近距離范圍內(nèi)通信的模塊,支持語音和數(shù)據(jù)傳送,支持點對多點操作。該模塊的內(nèi)部結(jié)構(gòu)如圖2所示,圖的上半部分可以看成是射頻單元,由GMSK調(diào)制解調(diào)器(Modem)、濾波器(Filter)、功率放大器(PA)、低噪聲放大器(LNA)鎖相環(huán)(PLL)、壓控振蕩器(VCO)組成;圖的下半部分是基帶部分,包括UART、PCM、USB等硬件接口,還有8051系列MCU和高速閃存(高速閃存用來存放協(xié)議棧" title="協(xié)議棧">協(xié)議棧軟件代碼)。?
?
?
1.2 語音模塊的實現(xiàn)?
??? 語音編解碼芯片采用摩托羅拉公司的MC145483,該芯片不用考慮接口的時序問題,簡化了PCM接口電路的硬件設(shè)計,具體實現(xiàn)如圖3所示。?
?
?
??? PC機(jī)通過串行接口初始化藍(lán)牙模塊并建立語音連接,音頻接口連接耳機(jī)和麥克。復(fù)位電路向藍(lán)牙模塊提供復(fù)位信號RST,當(dāng)設(shè)備出現(xiàn)故障時,可以使其恢復(fù)初始狀態(tài)。?
??? MC145483芯片的外圍電路與耳機(jī)麥克相連,實現(xiàn)了多模轉(zhuǎn)換和語音編解碼的功能,具體連接如圖4所示。MC145483的數(shù)據(jù)發(fā)送(DT)引腳、數(shù)據(jù)接收(DR)引腳與藍(lán)牙模塊的PCM語音接口相連,收發(fā)PCM數(shù)字語音流;MC145483的FST腳、FSR腳與藍(lán)牙模塊的PCM_SYNC腳相連,提供PCM語音流的收發(fā)同步信號;MC145483的BCLKT腳、BCLKR腳、MCLK腳與藍(lán)牙模塊的PCM_CLK相連,藍(lán)牙模塊通過此通道向MC145483提供主時鐘信號。
?
?
1.3 接口擴(kuò)展模塊的實現(xiàn)?
??? 藍(lán)牙模塊要傳輸數(shù)據(jù),物理硬件接口上需要利用RS232接口或者USB接口,而邏輯鏈路" title="鏈路">鏈路要使用ACL和SCO鏈路。軟件部分含有藍(lán)牙協(xié)議的HCI驅(qū)動部分和上層應(yīng)用程序。首先通過RS232接口傳輸HCI指令,以建立ACL鏈路,然后通過此鏈路傳輸數(shù)據(jù)。RS232和USB都可以作為ACL鏈路的載體。藍(lán)牙模塊可以使用HCIRS232傳輸層,與擁有RS232串行口的主機(jī)互相傳輸數(shù)據(jù)。HCIRS232傳輸層的目標(biāo)是在藍(lán)牙主機(jī)和藍(lán)牙主控制器之間的物理RS232接口上使用藍(lán)牙HCI,通過RS232接口連接藍(lán)牙模塊和主機(jī)。?
??? 由于RS232接口本身支持的傳輸速率不夠大,所以這種方案雖然避開了相對復(fù)雜的USB協(xié)議,但是RS232自身就存在帶寬不足的問題。根據(jù)USB新的規(guī)范,傳輸速率理論上可以達(dá)到12Mb/s,完全可以滿足一般的傳輸要求,不會產(chǎn)生接口上的速率瓶頸。藍(lán)牙模塊通過USB接口接入到具有USB接口的設(shè)備中,如PC機(jī)、PDA等。藍(lán)牙模塊上固化了底層協(xié)議棧,所以底層的跳頻、加密和鏈路管理控制等可以不必考慮,需要做的只是正確使用HCI指令。其缺點是,開發(fā)過程涉及USB接口及其相關(guān)協(xié)議,不如串口" title="串口">串口簡單。不過己經(jīng)有廠家開始把USB驅(qū)動程序集成在藍(lán)牙模塊的存儲器中,簡化了用戶的開發(fā)過程。?
??? 接口擴(kuò)展模塊實現(xiàn)了靈活、方便的擴(kuò)展接口,ESDBK藍(lán)牙開發(fā)平臺在基板上為用戶提供了PCM接口、UART串口和+3.3V電源,用戶可以方便地通過設(shè)置在基板上的接口轉(zhuǎn)換開關(guān)將任意一個接口設(shè)置成獨立狀態(tài),用于調(diào)試用戶自行設(shè)計、開發(fā)的藍(lán)牙設(shè)備中的語音電路和單片機(jī)控制電路,在藍(lán)牙開發(fā)平臺的藍(lán)牙功能支持下,達(dá)到完全仿真的效果,從而可以大大縮短用戶的藍(lán)牙產(chǎn)品的開發(fā)時間。?
1.4 獨立的電源模塊的實現(xiàn)?
??? 電源采用直流+5V輸入方式,通過LM317降壓實現(xiàn)穩(wěn)壓在+3.3V,此電壓即為藍(lán)牙硬件開發(fā)平臺的工作電壓。電源輸入有兩種方式:一是采用專用的電源轉(zhuǎn)換器通過主板上的電源插座輸入;二是通過USB接口提供+5V電源,通過轉(zhuǎn)換開關(guān)可實現(xiàn)不同的電源輸入方式。?
2 軟件設(shè)計?
??? 軟件設(shè)計上采用Borland公司推出的Delphi6.0快速開發(fā)工具,實現(xiàn)了友好的全中文界面。該軟件平臺為藍(lán)牙開發(fā)人員提供了方便的測試接口及調(diào)試界面,用于藍(lán)牙數(shù)據(jù)傳輸、語音傳輸?shù)乃{(lán)牙應(yīng)用軟件和產(chǎn)品的開發(fā)與研究,可方便快捷地進(jìn)行藍(lán)牙指令分組、數(shù)據(jù)分組的測試,提供了藍(lán)牙規(guī)范的1.1b版本所有HCI指令的測試接口。?
2.1 軟件流程圖?
??? 藍(lán)牙模塊通過主機(jī)控制器接口HCI和PC機(jī)通信。由主設(shè)備發(fā)起建立ACL和(或)SCO連接。當(dāng)主、從設(shè)備建立ACL連接后,就可以進(jìn)行數(shù)據(jù)傳輸了。如果需要進(jìn)行語音通信,則還需在ACL連接的基礎(chǔ)上建立SCO連接。藍(lán)牙開發(fā)平臺軟件開發(fā)環(huán)境的主程序流程如圖5所示。?
?
?
2.2 軟件的功能與實現(xiàn)?
??? 軟件的功能包括:ACL鏈接;SCO鏈接;數(shù)據(jù)傳輸;文件傳輸; 語音通訊;提供全部HCI命令測試;L2CAP協(xié)議層數(shù)據(jù)交換過程;SDP協(xié)議層的服務(wù)、屬性實現(xiàn);RFCOMM協(xié)議層的數(shù)據(jù)交換;模擬串口服務(wù)實現(xiàn)。?
??? 應(yīng)用程序主界面如圖6所示,包括菜單項、工具欄、狀態(tài)欄和記錄窗口。?
?
?
??? (1)記錄窗口?
??? 記錄窗口用于記錄每條HCI指令及該指令所引起的HCI事件的內(nèi)容和ACL數(shù)據(jù)傳輸?shù)膬?nèi)容。?
??? (2)菜單功能項?
??? ①文件:該功能項提供普通的文件操作,包括新建、打開、保存、復(fù)制、粘貼、選擇、打印、退出等功能。?
??? ②藍(lán)牙協(xié)議棧:包括HCI、SDP和RFCOMM的藍(lán)牙協(xié)議棧模型。?
??? ③應(yīng)用模擬:包括數(shù)據(jù)傳輸、文件傳輸、語音通訊、語音和文件傳輸、指令測試5個子功能的演示。?
??? ④藍(lán)牙開發(fā)包括基于Windows平臺的開發(fā)、單芯片開發(fā)(BlueLab)和外部處理器(單片機(jī))的開發(fā)。?
??? ⑤幫助:提供基于HCI層開發(fā)的詳細(xì)的幫助。包括HCl說明、HCI指令、HCI事件、HCI錯誤代碼。?
??? (3)工具欄?
??? 可快速實現(xiàn)新建、打開已存文件、當(dāng)前記錄保存和打印功能。?
??? (4)狀態(tài)欄?
??? 由三個部分組成:指令執(zhí)行狀態(tài)指示、所使用的串口、已建立連接的遠(yuǎn)方藍(lán)牙設(shè)備的地址。
??? 對本藍(lán)牙開發(fā)平臺的硬件電路和軟件功能進(jìn)行了相關(guān)測試,測試結(jié)果:數(shù)據(jù)傳輸過程中沒有數(shù)據(jù)丟失現(xiàn)象,藍(lán)牙開發(fā)等一系列功能均正常;在進(jìn)行語音測試時,距離超過8m時有雜波出現(xiàn),但可以通過加大功率和改進(jìn)語音電路加以改善。?
??? 本開發(fā)平臺提供的友好、簡潔的用戶接口和界面,適用于廣大愛好者學(xué)習(xí)藍(lán)牙技術(shù)和開發(fā)藍(lán)牙產(chǎn)品。?
參考文獻(xiàn)?
[1]?朱則. 藍(lán)牙技術(shù)原理與協(xié)議[M]. 北京:北方交通大學(xué)出版社,2002.?
[2]?HELD G. 無線數(shù)據(jù)傳輸網(wǎng)絡(luò):藍(lán)牙、WAP和WLAN[M].北京:人民郵電出版社,2001.?
[3]?傅劍虹,汪敏,朱俊. 基于藍(lán)牙技術(shù)家庭網(wǎng)絡(luò)的研究和實現(xiàn)[J].計算機(jī)工程,2004;(03).?
[4]?Bluetooth. Specification of the bluetooth system version?(EB/OL). http://www.bluetooth.com,2005.?
[5]?李志軍.藍(lán)牙開發(fā)平臺的研究與實現(xiàn)[C].哈爾濱工程大學(xué)工學(xué)碩士論文,2004.