姜太平,郭建亮
(安徽工業大學 計算機科學與技術學院,安徽 馬鞍山243002)
對于藍牙[1]設備間的通信技術,國內外學者都做了大量的研究。文獻 [2]引進了設備分類的概念,按照一定的分類標準把屬于同一類的藍牙設備進行組網;文獻 [3]研究了基于多播協議相對坐標RCMP (relative coordinatesbased multicasting protocol)在藍牙位置網絡中的應用;文獻 [4]提出了實現一個動態的藍牙分散網的多播機制GCBT (general core-based tree)。
以上文獻都是從不同的角度對藍牙設備間的通信進行研究,但是還存在以下問題:①沒有一個掌控全局的主設備,對網中的子設備依賴性太強,如果某個子設備離開,整個網就會重新組織,另外如果某個子設備的性能較差,同時扮演著主設備的角色,就會影響整個網的通信質量,同時也加速了子設備的耗電量,使得組建起來的網穩定性較差;②對于一個主設備如何支持多于7個活躍的從設備尚未提出有效解決方案。
基于以上問題,本文提出了一個基于中央服務器的通信模型,通過對中央服務器的藍牙協議進行更改,使其可以支持多于7個活躍的藍牙從設備;另外,為了縮短活躍度高設備間通信時間的延遲,提出了基于活躍度的平等調度算法EASA。
藍牙是一種工作在全球統一開放的2.4GHz ISM (industrial scientific medical)頻段的短距離無線通信技術[5]。為了防止受到工作在ISM 頻段的其它信號的干擾,藍牙采用跳頻技術 (79跳或23跳)確保鏈路的穩定。藍牙信道[6]被分為許多時隙 (slot),每個時隙長度為625μs。幾個藍牙設備共享一個信道形成微微網 (piconet),多個微微網間通過橋節點形成散射網 (scatternet);微微網[7]中主動發起請求的設備為主設備 (master),接受請求的設備為從設備(slave),主從設備采用時分雙工 (TDD)策略交替發送分組,主設備在偶時隙發送分組,從設備在奇時隙發送分組。每個微微網中的一個主設備最多只能和7個活躍的設備進行通信,主設備采用輪詢算法對所有的活躍設備進行調度。
藍牙協議是一種技術規范,是為了更好地使用藍牙技術而形成的共同約定;各種協議按照一定的規則進行排列形成了藍牙協議棧,如圖1所示。藍牙協議棧中最重要的就是藍牙核心協議了,這也是本文研究的核心。

圖1 藍牙協議棧
藍牙核心協議包括服務發現協議、邏輯鏈路控制與適配協議、鏈路管理協議、基帶協議[8]。其中服務發現協議定義了藍牙客戶端查詢到可用的藍牙服務器提供的服務類型以及服務的具體屬性信息,利用搜尋到的服務可以使藍牙設備之間建立相應的鏈接,所以它是所有用戶模式的基礎;邏輯鏈路控制與適配協議支持協議的復用以及數據包的分段和重組技術,并匯報服務的質量等信息,其通過流量控制和重傳模式,可以對每個信道進行流量控制和重傳,但是,此協議只支持可靠性好的面向無連接的數據分組傳輸;鏈路管理協議負責各個藍牙設備間建立連接,規定了鏈路管理器主要包括5個部分:設備功率管理,鏈路質量管理,鏈路控制管理,數據分組管理,鏈路安全管理;基帶協議是藍牙協議中最重要的協議,是核心協議中最底層的協議,其規范定義了兩種物理連接方式:面向連接SCO(synclironous conneetion oriented)和 無 連 接ACL (asynehxonous conneetionles)[9],前 者 主 要 用 于 像 語 音 通 話 之 類對時間要求較為嚴格的數據傳送,后者適用于數據分組。經過以上分析可知藍牙基帶協議在藍牙協議棧中扮演著重要的角色,所以本文從底層協議出發,對藍牙基帶協議進行了深入的研究。
微微網中參與通信的設備必須有個活動成員地址,類似于TCP/IP體系中的IP地址,必須在全網內保持唯一性。此地址在藍牙基帶協議的基帶分組中有詳細的定義,基帶分組[10]是藍牙主從設備之間進行通信時數據在空中發送的基本格式,也是數據傳輸的最小單元,如圖2所示。

圖2 基帶分組格式
圖2中各個域的描述如下:
(1)接入碼:接入碼又叫識別碼,其長度為72位,用于同步、識別及標識微微網信道上交換的所有分組。其可分為3種類型:信道識別碼、設備識別碼、查詢識別碼。
(2)分組頭:是一個重復的18bit模式,各個模式具有如下的子域:
AM_ADDR:活動成員地址,用于區分微微網中不同的活動成員,主從設備在進行交換時每個單元都會攜帶自身的AM_ADDR 的地址信息。當一個從設備斷開與主設備的連接或進入休眠狀態時,就會釋放AM_ADDR。由于改字段被分配了3比特,所以就決定了一個主設備最多可有7個從設備 (1到7)。0地址用于保留。
Type:類型,定義了來自上層的數據類型。4 位類型碼表示分組可以有16種不同的類型,對于16種類型詳情可參閱文獻 [11]。類型碼的首要任務是要確認分組是來源于SCO 鏈路還是ACL 鏈路,同時類型碼也展現了當前分組將有多少個時隙出現。
F:流控制,主要用于ACL 鏈接分組的流量控制,當設置為1,表示該設備不能再接收數據 (buffer已經滿)。
A:確認指示,用于無編號自動請求重傳。如果值為1表示接收是成功的,如果為0表示接收失敗,需要重傳失敗的分組。
S:序列編號,用于對分組流排序。當發生分組重傳時,通過對相鄰分組的S編號的比較,就可以不必重傳已經正確接收的分組,避免了一些不必要的浪費。
HEC:頭錯誤校驗碼,用來檢測18bit分組頭的完整性檢驗。
(3)有效載荷:有效載荷包括語音和數據兩部分:SCO 分組僅包含語音有效載荷,ACL 分組僅包含數據有效載荷。語音字段的長度固定位240比特,數據字段由3 部分組成:載荷頭、負載體和校驗碼。載荷頭的長度為1或2個字節,其規定了邏輯信道、邏輯信道上的流量控制及有效載荷的長度指示。
通過以上分析可知,決定藍牙設備數目的是AM_ADDR 字段,現有的藍牙協議把活躍設備限制在7個,由此可見,若想支持多余7個活躍設備間通信,我們需要對藍牙協議進行更改。本文重點研究藍牙的ACL 分組,所以本文將對藍牙的ACL基帶分組進行重新設計,在此基礎上我們提出自己的一套通信方案。
如圖3所示,該模型采用的是主從模式,中間有一個全局掌控者 (主設備)充當著中央服務器的角色,在其周圍有S1,S2,S3…,Sn等n個從設備;從設備之間的通信,必須經過中央服務器的轉發。這樣在組網過程中就擺脫了對從設備的依賴性,比如Sn離開 (現實生活中,這種情況時常發生,因為用戶的移動性很大),并不會影響其它節點間的通信。

圖3 通信模型
本文中,我們假設S1,S2,S3…,Sn之間的通信是短消息通信且無信道錯誤,即通信發送的消息分別在一個時隙內完成;另外我們還設定通信之間最大的延遲時間為1 s。在此基礎上,本文從協議層對中央服務器提出了改進策略,使得其可以支持多于7個活躍的設備,從設備 (可能是手機等藍牙設備)的藍牙協議不做改動,使用的是標準協議,所以此方案具有可行性;另外,為了縮短了活躍度高設備間通信時間的延遲,我們提出了EASA 調度算法。
藍牙微微網中主設備在偶時隙發送分組,從設備在奇時隙發送分組,所以主設備與從設備完成一次信息交互需要兩個時隙的時間。設Ti表示主設備與第i個設備Si通信時間,顯然Ti=625μs*2=1.25ms。如圖4所示,其中T1=T2=T3… =T2n-1=T2n=625μs。

圖4 主從設備間通信
微微網中,主設備對多個活動的從設備進行調度采用的是平均順序輪詢法RR[12],即主設備基于公平公正的原則針對多個設備按照時隙進行輪詢。我們不妨假設輪詢的方式為:S1,S2,S3,…,Sn。
從S1發送一個分組到S2,S3,…,Sn分別響應形成的消息隊列,如圖5所示。

圖5 消息隊列
t0時刻,p1分組準備進入消息隊列,t1時刻p1進入隊列,到tn時刻,所有的各個節點都已經接收過分組p1,所以從消息隊列中移除。從圖中可以看出,從p1進入到p1出來,共經過了一個傳遞周期記為Tp=Ti*n =1.25ms*n。則n個分組都發送完成所經歷的時間,我們表示為一個輪詢的周期Rc=Tp*n=1.25ms*n2。
由于我們能接受的最大延遲時間為1s,故有如下計算公式


可知nmax=28。即在延遲為1s的情況下,最多可支持28個活躍設備間的同時通信。由于藍牙協議最多只能支持7個活躍設備,所以,我們需要對藍牙協議進行改進。
在標準藍牙協議中AM_ADDR 字段只分配了3bit,所以最多只能支持7個設備。為了增加主設備所能支持的從設備的數目,需要對此字段進行擴展。
如圖6所示,具體修改步驟如下:
(1)AM_ADDR 擴展為5位,這樣就保證了一個主設備最多可支持32個設備。由上文分析可知,備間進行通信時,時間的延遲也小。所以,此字段的擴展,一方面保證了設備的數量,另一方面也保證了設備間通信時間延遲短。
(2)新增一個短消息類型ShortType,占1bit。此字段的增加是為了保證與傳統藍牙的協議相兼容。對此字段,我們定義以下約定:如果此字段值為0表示當前通信模式為短消息通信模式,如果值為1表示為藍牙的標準通信模式,同時AM_ADDR 字段的高三位設為0;默認情況下,此字段為0,即通信方式采用的是藍牙的標準協議。經過這樣約定,不僅擴展了藍牙設備,實現了n≥7 設備間的通信,而且也保證了我們修改后的協議與藍牙現有的標準協議相兼容。
(3)分組頭由54bits擴展到了63bits。由于AM_ADDR字段多增加了2位和新增的ShortType 字段,使得的分組頭多增出9bits。所以,分組頭自然而然也就變成了63bits。
(4)其它字段與標準保持統一,保持不變。此處的保持不變是指字段的位數和字段的描述皆為藍牙標準的定義,本文并未給這些字段做出新的定義。

圖6 改進后的分組格式
由上文部分分析得知。如果按照RR 調度算法,在通信的實時性上會有很大的延遲性。比如在某一段時間內,S1與Sn的通信比較頻繁,從S1發送一個分組到Sn響應,最大延遲時間為一個傳遞周期Tp,延遲性相對較長,為了保證設備間的通信質量,我們需要對此調度算法進行改進。在此基礎上提出了基于活躍度的平等調度算法EASA?;钴S度的定義為:每個節點活躍的頻繁度,具體體現為節點發送分組時次數的大小。
設S為調度序列的集合,初始值為:S ={S1,S2,…,Sn};表示為序列的長度;定義d(Si)為第i個節點的當前活躍度,各個節點的初始值為-∞;如果節點每發送一次消息,則此節點的活躍度的值就加1。在下一個調度周期開始前,按照d(Si)對各個節點進行降序排列,更新調度序列S。算法如下:

本文用java編程進行了仿真實驗,圖7研究了節點數目的變化與消息延遲時間之間的關系,從圖中可以看出,隨著節點數目的增長,節點之間的通信延遲呈現曲線式的增長;在節點數目為16以后,變化幅度越來越大。

圖7 延遲時間
圖8比較了RR 算法和EASA 算法的性能。RR 算法采用的調度序列為S1,S2,S3,…,Sn,n 取值為16。為了和RR 算法進行比較,實驗中,令d(S1)=+∞,即S1節點的活躍度取最大值,保證其在調度序列的首部。從實驗結果中可以得知,RR 調度算法不管Sn節點的活躍度多高,其收到S1發送的消息所需的時間為一個常數 (20ms),而EASA 調度算法隨著節點活躍的變化而呈現曲線的走向,當其活躍度越高時,收到S1發送的消息所需的時間越短。

圖8 RR 算法與EASA 算法比較
本文首先討論了當前藍牙多設備間通信存在的問題,對藍牙基帶進行了分析并介紹了其分組格式,然后本文提出了一個適合于多設備間短消息通信的方案,并把藍牙標準只能支持7個活躍的從設備擴展到了32個,從而實現了更多個設備間的通信;同時,對RR調度算法進行改進,并在此基礎上提出了基于活躍度的平等調度算法EASA,縮短了活躍度較為大的從設備間的通信延遲時間。大量的實驗結果表明,本文提出的方案,不僅實現了多個設備,而且縮短了設備之間信息交互的時間延遲,保證了通信的及時性。
[1]WANG Xuanxuan.The analysis of IEEE 802.11bWi-Fi bluetooth and wireless personal area network coexistence[D].Beijing:Beijing University of Posts and Telecommunications,2013:23-25 (in Chinese). [王宣宣.IEEE 802.11bWi-Fi與無線個域網藍牙之間的共存分析 [D].北京:北京郵電大學,2013:23-25.]
[2]ZHANG Gongwei.A scatter net for mation algorithm for solving a new emerging problem [D].Shanghai:Shanghai Jiao Tong University,2009:1-56(in Chinese).[張功偉.一種新型的分類藍牙組網技術[D].上海:上海交通大學,2009:1-56.]
[3]Chang C Y,Shih K P,Hsu C H,et al.A location-aware multicasting protocol for bluetooth location networks [J].Information Sciences,2007,177 (15):3161-3177.
[4]Yang C H,Lee S J.Efficient multicast protocol for supporting mobile nodes in bluetooth scatter nets[J].Journal of Information Technology and Applications,2008,3 (1):1-11.
[5]Shi X,Xiaoming W.The control technology of physiological data transmission through the interface of bluetooth in android[C]//World Congress on Medical Physics and Biomedical Engineering May.Beijing:Springer Berlin Heidelberg,2013:1298-1301.
[6]Gomez C,Oller J,Paradells J.Overview and evaluation of bluetooth low energy:An emerging low-power wireless technology [J].Sensors,2012,12 (9):11734-11753.
[7]Salaberria I,Perallos A,Azpilicueta L,et al.Ubiquitous connected train based on train-to-ground and IntraWagon communications capable of providing on trip customized digital services for passengers [J]. Sensors,2014,14 (5):8003-8025.
[8]ZHOU Qiong.The study of the bluetooth protocol stack and its application in serial communication [D].Wuhan:Wuhan University of Technology,2009:12-36 (in Chinese).[周瓊.藍牙協議棧的研究及其在串口通信中的應用 [D].武漢:武漢理工大學,2009:12-36.]
[9]SUN Yansen.Research and design of point to multipoint audio and video transmission technology base on bluetooth [D].Beijing:Beijing University of Technology,2009:11-13 (in Chinese).[孫炎森.基于藍牙標準的點到多點音視頻傳輸技術的研究與設計 [D].北京:北京工業大學,2009:11-13.]
[10]LI Bing.Study on the performance of bluetooth ACL link based on retransmission [D].Jilin:Jilin University,2009:19-33 (in Chinese).[李冰.基于重傳的藍牙ACL鏈路傳輸性能研究 [D].吉林:吉林大學,2009:19-33.]
[11]HOU Jinfeng.Reseasrch on the co-channel interference among multiple bluetooth piconets [D].Jilin:Jilin University,2011:13-15 (in Chinese). [侯金鳳.多個藍牙微微網之間同頻干擾問題的研究 [D].吉林:吉林大學,2011:13-15.]
[12]XU Jingou.Research and implementation of bluetooth 4.0 core protocol[D].Shanghai:Shanghai Jiao Tong University,2012:42-45 (in Chinese).[徐金茍.藍牙4.0底層核心技術協議研究與實現 [D].上海:上海交通大學,2012:42-45.]