《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 嵌入式藍(lán)牙文件傳送方案的實(shí)現(xiàn)
嵌入式藍(lán)牙文件傳送方案的實(shí)現(xiàn)
賀 明, 周中華, 董利民, 吳武臣
(北京工業(yè)大學(xué) 集成電路與系統(tǒng)研究室, 北京100124)
摘要: 針對(duì)藍(lán)牙技術(shù)在無線通信中的應(yīng)用需求,基于ARM9微處理器S3C2440的嵌入式系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了藍(lán)牙文件傳送方案。系統(tǒng)已經(jīng)通過板級(jí)驗(yàn)證及實(shí)際應(yīng)用測(cè)試,完全實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)功能。
Abstract:
Key words :

摘  要: 針對(duì)藍(lán)牙技術(shù)在無線通信中的應(yīng)用需求,基于ARM9微處理器S3C2440的嵌入式系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了藍(lán)牙文件傳送方案。系統(tǒng)已經(jīng)通過板級(jí)驗(yàn)證及實(shí)際應(yīng)用測(cè)試,完全實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)功能。
關(guān)鍵詞: 嵌入式; 藍(lán)牙; 單點(diǎn)傳送; 多點(diǎn)傳送

    藍(lán)牙是一種低成本、短距離無線通信技術(shù),工作頻段使用全球統(tǒng)一開放的2.4 GHz的ISM頻段[1],并將此頻段分為79個(gè)跳頻點(diǎn),采用跳頻技術(shù),增強(qiáng)了藍(lán)牙通信的可靠性。藍(lán)牙技術(shù)現(xiàn)已被廣泛應(yīng)用于無線通信領(lǐng)域中,如個(gè)人無線通信設(shè)備、無線網(wǎng)絡(luò)通信以及各種傳宣系統(tǒng)[2]。
 利用藍(lán)牙技術(shù)實(shí)現(xiàn)不同類型的文件傳送是藍(lán)牙通信的重要應(yīng)用,而傳統(tǒng)的基于藍(lán)牙1.0規(guī)范的藍(lán)牙通信只支持單點(diǎn)傳輸,隨著藍(lán)牙技術(shù)的發(fā)展,藍(lán)牙2.0規(guī)范中增加了EDR(Enhance Data Rate)技術(shù),提高了藍(lán)牙數(shù)據(jù)傳輸?shù)耐掏铝?,為藍(lán)牙多點(diǎn)通信提供了條件。本文依據(jù)藍(lán)牙2.0規(guī)范,結(jié)合TDD技術(shù),在實(shí)現(xiàn)了單點(diǎn)文件傳送的基礎(chǔ)上,成功完成了嵌入式系統(tǒng)對(duì)遠(yuǎn)程藍(lán)牙設(shè)備的多點(diǎn)文件傳送方案,并應(yīng)用個(gè)人區(qū)域網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)了嵌入式系統(tǒng)與PC機(jī)之間的網(wǎng)絡(luò)文件傳送,擴(kuò)展了藍(lán)牙通信在網(wǎng)絡(luò)領(lǐng)域的應(yīng)用。藍(lán)牙文件傳送和網(wǎng)絡(luò)文件傳送功能為廣告產(chǎn)業(yè)及其他信息發(fā)布相關(guān)產(chǎn)業(yè)提供了廣闊的發(fā)展空間,具有良好的市場(chǎng)前景。
1 方案設(shè)計(jì)概述
 方案設(shè)計(jì)以ARM嵌入式系統(tǒng)作為硬件實(shí)現(xiàn)平臺(tái),并基于Linux操作系統(tǒng),完成藍(lán)牙文件傳送方案。文件單點(diǎn)傳送方案依據(jù)對(duì)象交換協(xié)議OBEX(Object Exchange),利用藍(lán)牙官方協(xié)議棧BlueZ以及openobex上層應(yīng)用函數(shù)庫實(shí)現(xiàn)對(duì)象推送功能,從而完成對(duì)遠(yuǎn)程設(shè)備的文件單點(diǎn)傳送。文件多點(diǎn)傳送方案將在底層應(yīng)用全雙工時(shí)分復(fù)用(TDD)技術(shù)以及EDR(Enhance Data Rate)技術(shù)實(shí)現(xiàn)藍(lán)牙數(shù)據(jù)通道共享和寬帶、高吞吐量數(shù)據(jù)發(fā)送,在上層以文件單點(diǎn)傳送方案為基礎(chǔ),輔以嵌入式技術(shù)建立并管理多個(gè)文件發(fā)送進(jìn)程,完成文件向多個(gè)遠(yuǎn)程設(shè)備的同時(shí)發(fā)送,加入了重發(fā)機(jī)制以保證文件多點(diǎn)傳送的可靠性。此外,基于個(gè)人區(qū)域網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)文件傳送功能,使用戶可在PC機(jī)端以FTP方式訪問并更新嵌入式系統(tǒng)中的文件。
2 方案硬件架構(gòu)
 本方案基于ARM硬件開發(fā)平臺(tái),以SAMSUNG S3C2440作為核心處理器,并與64 MB SDRAM和64 MB Flash共同組成核心嵌入式系統(tǒng),運(yùn)行ARM-Linux-2.6.12內(nèi)核操作系統(tǒng),其中內(nèi)核配置藍(lán)牙子系統(tǒng),可為USB藍(lán)牙適配器提供驅(qū)動(dòng)。藍(lán)牙適配器作為系統(tǒng)的核心通信部件接至USB Device接口,并通過適配器完成文件傳送功能。同時(shí)本硬件系統(tǒng)易于功能擴(kuò)展和系統(tǒng)移植,開發(fā)人員可通過USB Host接口將操作系統(tǒng)內(nèi)核以及上層應(yīng)用程序下載到SDRAM或燒寫至Flash中,并通過RS232串口對(duì)應(yīng)用程序進(jìn)程調(diào)試。硬件整體架構(gòu)如圖1所示。


3 方案軟件框架
 軟件框架主要由藍(lán)牙核心協(xié)議、會(huì)話層協(xié)議以及上層應(yīng)用程序構(gòu)成,如圖2所示。其中藍(lán)牙核心協(xié)議包括:RF協(xié)議、基帶(Baseband)協(xié)議、LMP、L2CAP,主要完成藍(lán)牙數(shù)據(jù)由邏輯鏈路層到實(shí)際物理通道的控制和處理。

 會(huì)話層協(xié)議將建立對(duì)應(yīng)功能的模型描述,并定義相關(guān)操作方法,為上層應(yīng)用程序提供接口。其中RFCOMM協(xié)議提供對(duì)基于L2CAP協(xié)議的串口仿真,基于ETSI07.10,可支持在兩個(gè)藍(lán)牙設(shè)備之間同時(shí)保持高達(dá)60路的通信連接。其次,本方案利用服務(wù)發(fā)現(xiàn)協(xié)議(SDP)獲取周邊藍(lán)牙設(shè)備服務(wù)信息,并自動(dòng)篩選出帶有對(duì)象推送服務(wù)的遠(yuǎn)程設(shè)備作為發(fā)送目標(biāo),此協(xié)議由BlueZ所提供的接口函數(shù)實(shí)現(xiàn)。而OBEX作為實(shí)現(xiàn)文件傳送的核心協(xié)議,將為被傳送文件建立對(duì)象模型,并面向?qū)ο蠹皞魉瓦^程定義對(duì)應(yīng)操作方法,以實(shí)現(xiàn)文件傳送。PAN協(xié)議用于建立藍(lán)牙無線網(wǎng)絡(luò)與以太網(wǎng)之間的訪問點(diǎn),以完成與TCP/IP之間的無縫連接。
 上層應(yīng)用程序?qū)⒒趹?yīng)用層協(xié)議所提供的接口函數(shù),主要依據(jù)對(duì)象交換協(xié)議(OBEX)實(shí)現(xiàn)對(duì)象推送(OBEX PUSH)功能,從而完成文件的單點(diǎn)傳送,并在此基礎(chǔ)上,結(jié)合Linux多進(jìn)程技術(shù)實(shí)現(xiàn)文件多點(diǎn)傳送。此外,利用BlueZ提供的PAN工具實(shí)現(xiàn)嵌入式系統(tǒng)與PC機(jī)之間的組網(wǎng),完成網(wǎng)絡(luò)文件傳送功能。
4 文件傳送功能實(shí)現(xiàn)
4.1 文件單點(diǎn)傳送實(shí)現(xiàn)

 文件單點(diǎn)傳送是多點(diǎn)傳送的基礎(chǔ),也是本方案的核心技術(shù),并基于對(duì)象交換協(xié)議(OBEX)。應(yīng)用于藍(lán)牙系統(tǒng)的對(duì)象交換協(xié)議其目標(biāo)是完成兩藍(lán)牙設(shè)備間的數(shù)據(jù)對(duì)象通信,其典型應(yīng)用為實(shí)現(xiàn)對(duì)象推送功能。OBEX本身包括兩部分:數(shù)據(jù)對(duì)象模型和會(huì)話協(xié)議。對(duì)象模型包括將要傳輸?shù)臄?shù)據(jù)對(duì)象的各種信息以及數(shù)據(jù)對(duì)象本身。該模型的建立完全基于各種標(biāo)準(zhǔn)的或者用戶自定義的可分析的信息頭(headers),信息頭由信息頭ID和信息頭的值兩部分構(gòu)成,ID描述了信息頭的內(nèi)容及格式,信息頭的值由一個(gè)字節(jié)或多個(gè)字節(jié)組成,描述了對(duì)象屬性的具體含義。OBEX會(huì)話層操作由請(qǐng)求-應(yīng)答成對(duì)組成,由客戶端發(fā)出請(qǐng)求,服務(wù)器做出應(yīng)答,客戶端必須等待服務(wù)器做出應(yīng)答后才能發(fā)起新的請(qǐng)求。
 本方案利用openobex應(yīng)用函數(shù)庫實(shí)現(xiàn)了系統(tǒng)對(duì)某一遠(yuǎn)程設(shè)備的文件對(duì)象推送功能。openobex函數(shù)庫實(shí)現(xiàn)了OBEX協(xié)議的會(huì)話層操作及相應(yīng)對(duì)象模型描述。圖3顯示了完成對(duì)象推送功能的全過程。
 通過圖3所述過程,系統(tǒng)與目標(biāo)設(shè)備可完成一次文件單點(diǎn)傳送。在實(shí)現(xiàn)文件多點(diǎn)傳送時(shí),可循環(huán)調(diào)用此過程,完成文件傳輸。

4.2  文件多點(diǎn)傳送實(shí)現(xiàn)
   文件多點(diǎn)傳送基于單點(diǎn)傳送,并利用藍(lán)牙協(xié)議中的TDD技術(shù)和EDR技術(shù)實(shí)現(xiàn)了嵌入式系統(tǒng)向多個(gè)藍(lán)牙設(shè)備節(jié)點(diǎn)并發(fā)傳送文件的功能。同時(shí)利用多進(jìn)程技術(shù),對(duì)多個(gè)發(fā)送進(jìn)程進(jìn)行合理管理,保證文件能高效及時(shí)地被發(fā)送到遠(yuǎn)程設(shè)備中。其中采用TDD技術(shù),使多臺(tái)設(shè)備能夠共享一個(gè)物理通道[4],并將數(shù)據(jù)進(jìn)行分組,按時(shí)分復(fù)用方式發(fā)送。而EDR技術(shù)增加了藍(lán)牙數(shù)據(jù)的傳輸帶寬和傳輸吞吐量,從而提高了文件多點(diǎn)傳送的帶寬和吞吐量。
 多點(diǎn)傳送流程如圖4所示。首先由文件發(fā)送父進(jìn)程,根據(jù)查詢到的藍(lán)牙設(shè)備數(shù)目創(chuàng)建與之?dāng)?shù)目相等的文件發(fā)送子進(jìn)程,每個(gè)文件發(fā)送子進(jìn)程將獨(dú)立承擔(dān)向相應(yīng)藍(lán)牙設(shè)備發(fā)送文件的任務(wù),使文件向多臺(tái)設(shè)備同時(shí)進(jìn)行傳送。

    當(dāng)所有發(fā)送任務(wù)建立完畢后,文件發(fā)送父進(jìn)程首先判斷所有文件發(fā)送子進(jìn)程是否都已經(jīng)退出,若是則進(jìn)入下一輪發(fā)送,否則將執(zhí)行阻塞操作,等待其他子進(jìn)程退出。
 每個(gè)文件發(fā)送子進(jìn)程又將創(chuàng)建對(duì)象推送子進(jìn)程,該子進(jìn)程調(diào)用對(duì)象推送功能,完成文件向某一設(shè)備的發(fā)送。在等待推送過程中,同時(shí)啟用重發(fā)機(jī)制,判斷子進(jìn)程退出原因,若由于文件發(fā)送完畢或用戶拒絕接收而退出,則發(fā)送下一文件,若由于發(fā)生藍(lán)牙通道競(jìng)爭(zhēng)致使建立連接失敗而退出,則向設(shè)備重新發(fā)起連接,重新發(fā)起連接次數(shù)不超過5次。
5 網(wǎng)絡(luò)文件傳送實(shí)現(xiàn)
 方案應(yīng)用個(gè)人區(qū)域網(wǎng)絡(luò)(PAN)技術(shù)成功建立了嵌入式系統(tǒng)與PC機(jī)之間基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信。PAN協(xié)議主要描述了藍(lán)牙網(wǎng)絡(luò)封裝協(xié)議(BNEP)的使用,并且提供了網(wǎng)絡(luò)訪問點(diǎn)(NAP)服務(wù)和組網(wǎng)絡(luò)服務(wù)(GN)。BNEP 用于通過藍(lán)牙介質(zhì),傳輸通用聯(lián)網(wǎng)協(xié)議。BNEP將在藍(lán)牙協(xié)議與Ethernet間建立訪問點(diǎn)作為網(wǎng)橋[5],使用 BNEP 包頭取代Ethernet包頭,BNEP 包頭和Ethernet凈荷最終被 L2CAP 封裝,并通過藍(lán)牙介質(zhì)發(fā)送。
 在本方案中,采用網(wǎng)絡(luò)訪問點(diǎn)的方式進(jìn)行組網(wǎng),網(wǎng)絡(luò)中PC機(jī)的角色為客戶端(PANU),而嵌入式系統(tǒng)為NAP,充當(dāng)服務(wù)器。首先使系統(tǒng)處于監(jiān)聽狀態(tài),此時(shí),利用PC機(jī)的藍(lán)牙軟件,查詢嵌入式系統(tǒng)的NAP服務(wù),并向其發(fā)起組網(wǎng)連接請(qǐng)求,系統(tǒng)在監(jiān)聽到連接請(qǐng)求后做出回應(yīng)。當(dāng)組網(wǎng)成功后,嵌入式系統(tǒng)將自動(dòng)分配給PC機(jī)IP地址,同時(shí)設(shè)置自身IP,此時(shí),只需將PC機(jī)的IP改為與嵌入式系統(tǒng)同一網(wǎng)段,PC機(jī)即可與系統(tǒng)在TCP/IP協(xié)議上通信,并通過FTP協(xié)議對(duì)嵌入式系統(tǒng)中的文件進(jìn)行訪問和更新。
6 測(cè)試與分析
6.1  文件單點(diǎn)傳送測(cè)試

 以嵌入式系統(tǒng)作為發(fā)送端,將帶有對(duì)象推送協(xié)議的手機(jī)作為接收端,對(duì)某1臺(tái)手機(jī)進(jìn)行5次文件發(fā)送,測(cè)試每次文件的傳送時(shí)間,并計(jì)算平均傳送速度,測(cè)試結(jié)果如表1。接收到的圖片均可在手機(jī)中正常顯示。結(jié)果表明,在傳送不同大小、不同格式圖片的情況下,系統(tǒng)單點(diǎn)傳送性能穩(wěn)定,最高速度可達(dá)19.7 kb/s,可滿足一般藍(lán)牙通信需求。


6.2  文件多點(diǎn)傳送測(cè)試
 此部分主要測(cè)試文件多點(diǎn)傳送情況下建立連接可靠性和文件傳送時(shí)間。首先通過對(duì)比加入重發(fā)機(jī)制前后的建立連接成功率,說明重發(fā)機(jī)制對(duì)提升多點(diǎn)傳送可靠性的重要作用。建立連接成功率計(jì)算方法如下:
   建立連接成功率=(成功連接次數(shù)/(每組發(fā)送文件數(shù)×設(shè)備總數(shù)))×100%
 測(cè)試未加入重發(fā)機(jī)制時(shí),測(cè)試系統(tǒng)與遠(yuǎn)程設(shè)備建立連接成功率。以手機(jī)作為接收終端,測(cè)試結(jié)果如圖5所示。


 測(cè)試結(jié)果顯示,建立連接成功率隨設(shè)備數(shù)目增多而遞減。當(dāng)設(shè)備數(shù)為5時(shí),建立連接成功率僅為53.33%,不能滿足實(shí)際需要。但加入重發(fā)機(jī)制后,所有情況下建立連接成功率均達(dá)到100%,建立連接的可靠性得到明顯改善,可以滿足實(shí)際應(yīng)用的需要。
 嵌入式系統(tǒng)向手機(jī)終端統(tǒng)一發(fā)送大小為200 KB的JPEG格式圖片,手機(jī)臺(tái)數(shù)由1臺(tái)逐步增加至5臺(tái)。測(cè)試結(jié)果如圖6所示。接收到圖片在5臺(tái)手機(jī)上均能正常顯示,說明多點(diǎn)傳送穩(wěn)定可靠,未丟失數(shù)據(jù)。隨著手機(jī)臺(tái)數(shù)的增多,發(fā)送時(shí)間增長(zhǎng),說明TDD技術(shù)對(duì)數(shù)據(jù)進(jìn)行了合理分組,并以時(shí)分復(fù)用方式進(jìn)行發(fā)送,傳輸穩(wěn)定可靠。在設(shè)備數(shù)增至5臺(tái)時(shí),其平均傳送速度約為58.8 kb/s,較單播平均傳送速度有較大提高。

6.3 網(wǎng)絡(luò)文件傳送測(cè)試
    首先將嵌入式系統(tǒng)在piconet中設(shè)置為server,之后利用PC藍(lán)牙軟件向嵌入式系統(tǒng)發(fā)起連接,Windows任務(wù)欄中會(huì)出現(xiàn)正在連接的圖標(biāo)提示,連接成功后,嵌入式系統(tǒng)為PC分配的IP地址是169.254.204.174;將此IP改為和系統(tǒng)預(yù)設(shè)IP(169.254.0.3)同一網(wǎng)段,改后IP是169.254.0.4。之后用普通FTP軟件登錄系統(tǒng),即可訪問系統(tǒng)文件。更新了大小為6.36 MB的JPEG格式圖片文件,共用時(shí)92 s,平均傳送速度達(dá)71.5 kb/s,圖片可在系統(tǒng)中正常顯示,證明系統(tǒng)與PC機(jī)網(wǎng)絡(luò)連接穩(wěn)定,傳輸準(zhǔn)確可靠。
 本方案成本低、可靠性高、實(shí)時(shí)性好、功能擴(kuò)展靈活、可結(jié)合各種多媒體技術(shù),應(yīng)用于各種市政及公共場(chǎng)所的宣傳系統(tǒng),也可以用于商業(yè)廣告的發(fā)布,具有良好的應(yīng)用前景。
參考文獻(xiàn)
[1]     DUMBILL E, JEPSON B, WEEKS R. Linux unwired[M]. Sebastopol: O′Reilly Media, 2004.
[2]     吳帆. 基于藍(lán)牙的文件傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 武漢: 武漢理工大學(xué), 2007.
[3]    JOHNSON M K, TROAN E W. Linux application development[M]. Addison Wesley Professional, 2004.
[4]     Bluetooth SIG. Bluetooth specification version 2.0 + EDR [S].
[5]     MORROW R. Bluetooth Operation and use[M]. McGray-Hill, 2002.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。