摘 要: 針對藍牙技術在無線通信中的應用需求,基于ARM9微處理器S3C2440的嵌入式系統,設計并實現了藍牙文件傳送方案。系統已經通過板級驗證及實際應用測試,完全實現系統設計功能。
關鍵詞: 嵌入式; 藍牙; 單點傳送; 多點傳送
藍牙是一種低成本、短距離無線通信技術,工作頻段使用全球統一開放的2.4 GHz的ISM頻段[1],并將此頻段分為79個跳頻點,采用跳頻技術,增強了藍牙通信的可靠性。藍牙技術現已被廣泛應用于無線通信領域中,如個人無線通信設備、無線網絡通信以及各種傳宣系統[2]。
利用藍牙技術實現不同類型的文件傳送是藍牙通信的重要應用,而傳統的基于藍牙1.0規范的藍牙通信只支持單點傳輸,隨著藍牙技術的發展,藍牙2.0規范中增加了EDR(Enhance Data Rate)技術,提高了藍牙數據傳輸的吞吐量,為藍牙多點通信提供了條件。本文依據藍牙2.0規范,結合TDD技術,在實現了單點文件傳送的基礎上,成功完成了嵌入式系統對遠程藍牙設備的多點文件傳送方案,并應用個人區域網絡技術實現了嵌入式系統與PC機之間的網絡文件傳送,擴展了藍牙通信在網絡領域的應用。藍牙文件傳送和網絡文件傳送功能為廣告產業及其他信息發布相關產業提供了廣闊的發展空間,具有良好的市場前景。
1 方案設計概述
方案設計以ARM嵌入式系統作為硬件實現平臺,并基于Linux操作系統,完成藍牙文件傳送方案。文件單點傳送方案依據對象交換協議OBEX(Object Exchange),利用藍牙官方協議棧BlueZ以及openobex上層應用函數庫實現對象推送功能,從而完成對遠程設備的文件單點傳送。文件多點傳送方案將在底層應用全雙工時分復用(TDD)技術以及EDR(Enhance Data Rate)技術實現藍牙數據通道共享和寬帶、高吞吐量數據發送,在上層以文件單點傳送方案為基礎,輔以嵌入式技術建立并管理多個文件發送進程,完成文件向多個遠程設備的同時發送,加入了重發機制以保證文件多點傳送的可靠性。此外,基于個人區域網絡技術的網絡文件傳送功能,使用戶可在PC機端以FTP方式訪問并更新嵌入式系統中的文件。
2 方案硬件架構
本方案基于ARM硬件開發平臺,以SAMSUNG S3C2440作為核心處理器,并與64 MB SDRAM和64 MB Flash共同組成核心嵌入式系統,運行ARM-Linux-2.6.12內核操作系統,其中內核配置藍牙子系統,可為USB藍牙適配器提供驅動。藍牙適配器作為系統的核心通信部件接至USB Device接口,并通過適配器完成文件傳送功能。同時本硬件系統易于功能擴展和系統移植,開發人員可通過USB Host接口將操作系統內核以及上層應用程序下載到SDRAM或燒寫至Flash中,并通過RS232串口對應用程序進程調試。硬件整體架構如圖1所示。
3 方案軟件框架
軟件框架主要由藍牙核心協議、會話層協議以及上層應用程序構成,如圖2所示。其中藍牙核心協議包括:RF協議、基帶(Baseband)協議、LMP、L2CAP,主要完成藍牙數據由邏輯鏈路層到實際物理通道的控制和處理。
會話層協議將建立對應功能的模型描述,并定義相關操作方法,為上層應用程序提供接口。其中RFCOMM協議提供對基于L2CAP協議的串口仿真,基于ETSI07.10,可支持在兩個藍牙設備之間同時保持高達60路的通信連接。其次,本方案利用服務發現協議(SDP)獲取周邊藍牙設備服務信息,并自動篩選出帶有對象推送服務的遠程設備作為發送目標,此協議由BlueZ所提供的接口函數實現。而OBEX作為實現文件傳送的核心協議,將為被傳送文件建立對象模型,并面向對象及傳送過程定義對應操作方法,以實現文件傳送。PAN協議用于建立藍牙無線網絡與以太網之間的訪問點,以完成與TCP/IP之間的無縫連接。
上層應用程序將基于應用層協議所提供的接口函數,主要依據對象交換協議(OBEX)實現對象推送(OBEX PUSH)功能,從而完成文件的單點傳送,并在此基礎上,結合Linux多進程技術實現文件多點傳送。此外,利用BlueZ提供的PAN工具實現嵌入式系統與PC機之間的組網,完成網絡文件傳送功能。
4 文件傳送功能實現
4.1 文件單點傳送實現
文件單點傳送是多點傳送的基礎,也是本方案的核心技術,并基于對象交換協議(OBEX)。應用于藍牙系統的對象交換協議其目標是完成兩藍牙設備間的數據對象通信,其典型應用為實現對象推送功能。OBEX本身包括兩部分:數據對象模型和會話協議。對象模型包括將要傳輸的數據對象的各種信息以及數據對象本身。該模型的建立完全基于各種標準的或者用戶自定義的可分析的信息頭(headers),信息頭由信息頭ID和信息頭的值兩部分構成,ID描述了信息頭的內容及格式,信息頭的值由一個字節或多個字節組成,描述了對象屬性的具體含義。OBEX會話層操作由請求-應答成對組成,由客戶端發出請求,服務器做出應答,客戶端必須等待服務器做出應答后才能發起新的請求。
本方案利用openobex應用函數庫實現了系統對某一遠程設備的文件對象推送功能。openobex函數庫實現了OBEX協議的會話層操作及相應對象模型描述。圖3顯示了完成對象推送功能的全過程。
通過圖3所述過程,系統與目標設備可完成一次文件單點傳送。在實現文件多點傳送時,可循環調用此過程,完成文件傳輸。
4.2 文件多點傳送實現
文件多點傳送基于單點傳送,并利用藍牙協議中的TDD技術和EDR技術實現了嵌入式系統向多個藍牙設備節點并發傳送文件的功能。同時利用多進程技術,對多個發送進程進行合理管理,保證文件能高效及時地被發送到遠程設備中。其中采用TDD技術,使多臺設備能夠共享一個物理通道[4],并將數據進行分組,按時分復用方式發送。而EDR技術增加了藍牙數據的傳輸帶寬和傳輸吞吐量,從而提高了文件多點傳送的帶寬和吞吐量。
多點傳送流程如圖4所示。首先由文件發送父進程,根據查詢到的藍牙設備數目創建與之數目相等的文件發送子進程,每個文件發送子進程將獨立承擔向相應藍牙設備發送文件的任務,使文件向多臺設備同時進行傳送。
當所有發送任務建立完畢后,文件發送父進程首先判斷所有文件發送子進程是否都已經退出,若是則進入下一輪發送,否則將執行阻塞操作,等待其他子進程退出。
每個文件發送子進程又將創建對象推送子進程,該子進程調用對象推送功能,完成文件向某一設備的發送。在等待推送過程中,同時啟用重發機制,判斷子進程退出原因,若由于文件發送完畢或用戶拒絕接收而退出,則發送下一文件,若由于發生藍牙通道競爭致使建立連接失敗而退出,則向設備重新發起連接,重新發起連接次數不超過5次。
5 網絡文件傳送實現
方案應用個人區域網絡(PAN)技術成功建立了嵌入式系統與PC機之間基于TCP/IP協議的網絡通信。PAN協議主要描述了藍牙網絡封裝協議(BNEP)的使用,并且提供了網絡訪問點(NAP)服務和組網絡服務(GN)。BNEP 用于通過藍牙介質,傳輸通用聯網協議。BNEP將在藍牙協議與Ethernet間建立訪問點作為網橋[5],使用 BNEP 包頭取代Ethernet包頭,BNEP 包頭和Ethernet凈荷最終被 L2CAP 封裝,并通過藍牙介質發送。
在本方案中,采用網絡訪問點的方式進行組網,網絡中PC機的角色為客戶端(PANU),而嵌入式系統為NAP,充當服務器。首先使系統處于監聽狀態,此時,利用PC機的藍牙軟件,查詢嵌入式系統的NAP服務,并向其發起組網連接請求,系統在監聽到連接請求后做出回應。當組網成功后,嵌入式系統將自動分配給PC機IP地址,同時設置自身IP,此時,只需將PC機的IP改為與嵌入式系統同一網段,PC機即可與系統在TCP/IP協議上通信,并通過FTP協議對嵌入式系統中的文件進行訪問和更新。
6 測試與分析
6.1 文件單點傳送測試
以嵌入式系統作為發送端,將帶有對象推送協議的手機作為接收端,對某1臺手機進行5次文件發送,測試每次文件的傳送時間,并計算平均傳送速度,測試結果如表1。接收到的圖片均可在手機中正常顯示。結果表明,在傳送不同大小、不同格式圖片的情況下,系統單點傳送性能穩定,最高速度可達19.7 kb/s,可滿足一般藍牙通信需求。
6.2 文件多點傳送測試
此部分主要測試文件多點傳送情況下建立連接可靠性和文件傳送時間。首先通過對比加入重發機制前后的建立連接成功率,說明重發機制對提升多點傳送可靠性的重要作用。建立連接成功率計算方法如下:
建立連接成功率=(成功連接次數/(每組發送文件數×設備總數))×100%
測試未加入重發機制時,測試系統與遠程設備建立連接成功率。以手機作為接收終端,測試結果如圖5所示。
測試結果顯示,建立連接成功率隨設備數目增多而遞減。當設備數為5時,建立連接成功率僅為53.33%,不能滿足實際需要。但加入重發機制后,所有情況下建立連接成功率均達到100%,建立連接的可靠性得到明顯改善,可以滿足實際應用的需要。
嵌入式系統向手機終端統一發送大小為200 KB的JPEG格式圖片,手機臺數由1臺逐步增加至5臺。測試結果如圖6所示。接收到圖片在5臺手機上均能正常顯示,說明多點傳送穩定可靠,未丟失數據。隨著手機臺數的增多,發送時間增長,說明TDD技術對數據進行了合理分組,并以時分復用方式進行發送,傳輸穩定可靠。在設備數增至5臺時,其平均傳送速度約為58.8 kb/s,較單播平均傳送速度有較大提高。
6.3 網絡文件傳送測試
首先將嵌入式系統在piconet中設置為server,之后利用PC藍牙軟件向嵌入式系統發起連接,Windows任務欄中會出現正在連接的圖標提示,連接成功后,嵌入式系統為PC分配的IP地址是169.254.204.174;將此IP改為和系統預設IP(169.254.0.3)同一網段,改后IP是169.254.0.4。之后用普通FTP軟件登錄系統,即可訪問系統文件。更新了大小為6.36 MB的JPEG格式圖片文件,共用時92 s,平均傳送速度達71.5 kb/s,圖片可在系統中正常顯示,證明系統與PC機網絡連接穩定,傳輸準確可靠。
本方案成本低、可靠性高、實時性好、功能擴展靈活、可結合各種多媒體技術,應用于各種市政及公共場所的宣傳系統,也可以用于商業廣告的發布,具有良好的應用前景。
參考文獻
[1] DUMBILL E, JEPSON B, WEEKS R. Linux unwired[M]. Sebastopol: O′Reilly Media, 2004.
[2] 吳帆. 基于藍牙的文件傳輸系統的設計與實現[D]. 武漢: 武漢理工大學, 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.