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