姜太平,郭建亮
(安徽工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 馬鞍山243002)
對(duì)于藍(lán)牙[1]設(shè)備間的通信技術(shù),國(guó)內(nèi)外學(xué)者都做了大量的研究。文獻(xiàn) [2]引進(jìn)了設(shè)備分類的概念,按照一定的分類標(biāo)準(zhǔn)把屬于同一類的藍(lán)牙設(shè)備進(jìn)行組網(wǎng);文獻(xiàn) [3]研究了基于多播協(xié)議相對(duì)坐標(biāo)RCMP (relative coordinatesbased multicasting protocol)在藍(lán)牙位置網(wǎng)絡(luò)中的應(yīng)用;文獻(xiàn) [4]提出了實(shí)現(xiàn)一個(gè)動(dòng)態(tài)的藍(lán)牙分散網(wǎng)的多播機(jī)制GCBT (general core-based tree)。
以上文獻(xiàn)都是從不同的角度對(duì)藍(lán)牙設(shè)備間的通信進(jìn)行研究,但是還存在以下問題:①?zèng)]有一個(gè)掌控全局的主設(shè)備,對(duì)網(wǎng)中的子設(shè)備依賴性太強(qiáng),如果某個(gè)子設(shè)備離開,整個(gè)網(wǎng)就會(huì)重新組織,另外如果某個(gè)子設(shè)備的性能較差,同時(shí)扮演著主設(shè)備的角色,就會(huì)影響整個(gè)網(wǎng)的通信質(zhì)量,同時(shí)也加速了子設(shè)備的耗電量,使得組建起來(lái)的網(wǎng)穩(wěn)定性較差;②對(duì)于一個(gè)主設(shè)備如何支持多于7個(gè)活躍的從設(shè)備尚未提出有效解決方案。
基于以上問題,本文提出了一個(gè)基于中央服務(wù)器的通信模型,通過對(duì)中央服務(wù)器的藍(lán)牙協(xié)議進(jìn)行更改,使其可以支持多于7個(gè)活躍的藍(lán)牙從設(shè)備;另外,為了縮短活躍度高設(shè)備間通信時(shí)間的延遲,提出了基于活躍度的平等調(diào)度算法EASA。
藍(lán)牙是一種工作在全球統(tǒng)一開放的2.4GHz ISM (industrial scientific medical)頻段的短距離無(wú)線通信技術(shù)[5]。為了防止受到工作在ISM 頻段的其它信號(hào)的干擾,藍(lán)牙采用跳頻技術(shù) (79跳或23跳)確保鏈路的穩(wěn)定。藍(lán)牙信道[6]被分為許多時(shí)隙 (slot),每個(gè)時(shí)隙長(zhǎng)度為625μs。幾個(gè)藍(lán)牙設(shè)備共享一個(gè)信道形成微微網(wǎng) (piconet),多個(gè)微微網(wǎng)間通過橋節(jié)點(diǎn)形成散射網(wǎng) (scatternet);微微網(wǎng)[7]中主動(dòng)發(fā)起請(qǐng)求的設(shè)備為主設(shè)備 (master),接受請(qǐng)求的設(shè)備為從設(shè)備(slave),主從設(shè)備采用時(shí)分雙工 (TDD)策略交替發(fā)送分組,主設(shè)備在偶時(shí)隙發(fā)送分組,從設(shè)備在奇時(shí)隙發(fā)送分組。每個(gè)微微網(wǎng)中的一個(gè)主設(shè)備最多只能和7個(gè)活躍的設(shè)備進(jìn)行通信,主設(shè)備采用輪詢算法對(duì)所有的活躍設(shè)備進(jìn)行調(diào)度。
藍(lán)牙協(xié)議是一種技術(shù)規(guī)范,是為了更好地使用藍(lán)牙技術(shù)而形成的共同約定;各種協(xié)議按照一定的規(guī)則進(jìn)行排列形成了藍(lán)牙協(xié)議棧,如圖1所示。藍(lán)牙協(xié)議棧中最重要的就是藍(lán)牙核心協(xié)議了,這也是本文研究的核心。
圖1 藍(lán)牙協(xié)議棧
藍(lán)牙核心協(xié)議包括服務(wù)發(fā)現(xiàn)協(xié)議、邏輯鏈路控制與適配協(xié)議、鏈路管理協(xié)議、基帶協(xié)議[8]。其中服務(wù)發(fā)現(xiàn)協(xié)議定義了藍(lán)牙客戶端查詢到可用的藍(lán)牙服務(wù)器提供的服務(wù)類型以及服務(wù)的具體屬性信息,利用搜尋到的服務(wù)可以使藍(lán)牙設(shè)備之間建立相應(yīng)的鏈接,所以它是所有用戶模式的基礎(chǔ);邏輯鏈路控制與適配協(xié)議支持協(xié)議的復(fù)用以及數(shù)據(jù)包的分段和重組技術(shù),并匯報(bào)服務(wù)的質(zhì)量等信息,其通過流量控制和重傳模式,可以對(duì)每個(gè)信道進(jìn)行流量控制和重傳,但是,此協(xié)議只支持可靠性好的面向無(wú)連接的數(shù)據(jù)分組傳輸;鏈路管理協(xié)議負(fù)責(zé)各個(gè)藍(lán)牙設(shè)備間建立連接,規(guī)定了鏈路管理器主要包括5個(gè)部分:設(shè)備功率管理,鏈路質(zhì)量管理,鏈路控制管理,數(shù)據(jù)分組管理,鏈路安全管理;基帶協(xié)議是藍(lán)牙協(xié)議中最重要的協(xié)議,是核心協(xié)議中最底層的協(xié)議,其規(guī)范定義了兩種物理連接方式:面向連接SCO(synclironous conneetion oriented)和 無(wú) 連 接ACL (asynehxonous conneetionles)[9],前 者 主 要 用 于 像 語(yǔ) 音 通 話 之 類對(duì)時(shí)間要求較為嚴(yán)格的數(shù)據(jù)傳送,后者適用于數(shù)據(jù)分組。經(jīng)過以上分析可知藍(lán)牙基帶協(xié)議在藍(lán)牙協(xié)議棧中扮演著重要的角色,所以本文從底層協(xié)議出發(fā),對(duì)藍(lán)牙基帶協(xié)議進(jìn)行了深入的研究。
微微網(wǎng)中參與通信的設(shè)備必須有個(gè)活動(dòng)成員地址,類似于TCP/IP體系中的IP地址,必須在全網(wǎng)內(nèi)保持唯一性。此地址在藍(lán)牙基帶協(xié)議的基帶分組中有詳細(xì)的定義,基帶分組[10]是藍(lán)牙主從設(shè)備之間進(jìn)行通信時(shí)數(shù)據(jù)在空中發(fā)送的基本格式,也是數(shù)據(jù)傳輸?shù)淖钚卧?,如圖2所示。
圖2 基帶分組格式
圖2中各個(gè)域的描述如下:
(1)接入碼:接入碼又叫識(shí)別碼,其長(zhǎng)度為72位,用于同步、識(shí)別及標(biāo)識(shí)微微網(wǎng)信道上交換的所有分組。其可分為3種類型:信道識(shí)別碼、設(shè)備識(shí)別碼、查詢識(shí)別碼。
(2)分組頭:是一個(gè)重復(fù)的18bit模式,各個(gè)模式具有如下的子域:
AM_ADDR:活動(dòng)成員地址,用于區(qū)分微微網(wǎng)中不同的活動(dòng)成員,主從設(shè)備在進(jìn)行交換時(shí)每個(gè)單元都會(huì)攜帶自身的AM_ADDR 的地址信息。當(dāng)一個(gè)從設(shè)備斷開與主設(shè)備的連接或進(jìn)入休眠狀態(tài)時(shí),就會(huì)釋放AM_ADDR。由于改字段被分配了3比特,所以就決定了一個(gè)主設(shè)備最多可有7個(gè)從設(shè)備 (1到7)。0地址用于保留。
Type:類型,定義了來(lái)自上層的數(shù)據(jù)類型。4 位類型碼表示分組可以有16種不同的類型,對(duì)于16種類型詳情可參閱文獻(xiàn) [11]。類型碼的首要任務(wù)是要確認(rèn)分組是來(lái)源于SCO 鏈路還是ACL 鏈路,同時(shí)類型碼也展現(xiàn)了當(dāng)前分組將有多少個(gè)時(shí)隙出現(xiàn)。
F:流控制,主要用于ACL 鏈接分組的流量控制,當(dāng)設(shè)置為1,表示該設(shè)備不能再接收數(shù)據(jù) (buffer已經(jīng)滿)。
A:確認(rèn)指示,用于無(wú)編號(hào)自動(dòng)請(qǐng)求重傳。如果值為1表示接收是成功的,如果為0表示接收失敗,需要重傳失敗的分組。
S:序列編號(hào),用于對(duì)分組流排序。當(dāng)發(fā)生分組重傳時(shí),通過對(duì)相鄰分組的S編號(hào)的比較,就可以不必重傳已經(jīng)正確接收的分組,避免了一些不必要的浪費(fèi)。
HEC:頭錯(cuò)誤校驗(yàn)碼,用來(lái)檢測(cè)18bit分組頭的完整性檢驗(yàn)。
(3)有效載荷:有效載荷包括語(yǔ)音和數(shù)據(jù)兩部分:SCO 分組僅包含語(yǔ)音有效載荷,ACL 分組僅包含數(shù)據(jù)有效載荷。語(yǔ)音字段的長(zhǎng)度固定位240比特,數(shù)據(jù)字段由3 部分組成:載荷頭、負(fù)載體和校驗(yàn)碼。載荷頭的長(zhǎng)度為1或2個(gè)字節(jié),其規(guī)定了邏輯信道、邏輯信道上的流量控制及有效載荷的長(zhǎng)度指示。
通過以上分析可知,決定藍(lán)牙設(shè)備數(shù)目的是AM_ADDR 字段,現(xiàn)有的藍(lán)牙協(xié)議把活躍設(shè)備限制在7個(gè),由此可見,若想支持多余7個(gè)活躍設(shè)備間通信,我們需要對(duì)藍(lán)牙協(xié)議進(jìn)行更改。本文重點(diǎn)研究藍(lán)牙的ACL 分組,所以本文將對(duì)藍(lán)牙的ACL基帶分組進(jìn)行重新設(shè)計(jì),在此基礎(chǔ)上我們提出自己的一套通信方案。
如圖3所示,該模型采用的是主從模式,中間有一個(gè)全局掌控者 (主設(shè)備)充當(dāng)著中央服務(wù)器的角色,在其周圍有S1,S2,S3…,Sn等n個(gè)從設(shè)備;從設(shè)備之間的通信,必須經(jīng)過中央服務(wù)器的轉(zhuǎn)發(fā)。這樣在組網(wǎng)過程中就擺脫了對(duì)從設(shè)備的依賴性,比如Sn離開 (現(xiàn)實(shí)生活中,這種情況時(shí)常發(fā)生,因?yàn)橛脩舻囊苿?dòng)性很大),并不會(huì)影響其它節(jié)點(diǎn)間的通信。
圖3 通信模型
本文中,我們假設(shè)S1,S2,S3…,Sn之間的通信是短消息通信且無(wú)信道錯(cuò)誤,即通信發(fā)送的消息分別在一個(gè)時(shí)隙內(nèi)完成;另外我們還設(shè)定通信之間最大的延遲時(shí)間為1 s。在此基礎(chǔ)上,本文從協(xié)議層對(duì)中央服務(wù)器提出了改進(jìn)策略,使得其可以支持多于7個(gè)活躍的設(shè)備,從設(shè)備 (可能是手機(jī)等藍(lán)牙設(shè)備)的藍(lán)牙協(xié)議不做改動(dòng),使用的是標(biāo)準(zhǔn)協(xié)議,所以此方案具有可行性;另外,為了縮短了活躍度高設(shè)備間通信時(shí)間的延遲,我們提出了EASA 調(diào)度算法。
藍(lán)牙微微網(wǎng)中主設(shè)備在偶時(shí)隙發(fā)送分組,從設(shè)備在奇時(shí)隙發(fā)送分組,所以主設(shè)備與從設(shè)備完成一次信息交互需要兩個(gè)時(shí)隙的時(shí)間。設(shè)Ti表示主設(shè)備與第i個(gè)設(shè)備Si通信時(shí)間,顯然Ti=625μs*2=1.25ms。如圖4所示,其中T1=T2=T3… =T2n-1=T2n=625μs。
圖4 主從設(shè)備間通信
微微網(wǎng)中,主設(shè)備對(duì)多個(gè)活動(dòng)的從設(shè)備進(jìn)行調(diào)度采用的是平均順序輪詢法RR[12],即主設(shè)備基于公平公正的原則針對(duì)多個(gè)設(shè)備按照時(shí)隙進(jìn)行輪詢。我們不妨假設(shè)輪詢的方式為:S1,S2,S3,…,Sn。
從S1發(fā)送一個(gè)分組到S2,S3,…,Sn分別響應(yīng)形成的消息隊(duì)列,如圖5所示。
圖5 消息隊(duì)列
t0時(shí)刻,p1分組準(zhǔn)備進(jìn)入消息隊(duì)列,t1時(shí)刻p1進(jìn)入隊(duì)列,到tn時(shí)刻,所有的各個(gè)節(jié)點(diǎn)都已經(jīng)接收過分組p1,所以從消息隊(duì)列中移除。從圖中可以看出,從p1進(jìn)入到p1出來(lái),共經(jīng)過了一個(gè)傳遞周期記為Tp=Ti*n =1.25ms*n。則n個(gè)分組都發(fā)送完成所經(jīng)歷的時(shí)間,我們表示為一個(gè)輪詢的周期Rc=Tp*n=1.25ms*n2。
由于我們能接受的最大延遲時(shí)間為1s,故有如下計(jì)算公式
可知nmax=28。即在延遲為1s的情況下,最多可支持28個(gè)活躍設(shè)備間的同時(shí)通信。由于藍(lán)牙協(xié)議最多只能支持7個(gè)活躍設(shè)備,所以,我們需要對(duì)藍(lán)牙協(xié)議進(jìn)行改進(jìn)。
在標(biāo)準(zhǔn)藍(lán)牙協(xié)議中AM_ADDR 字段只分配了3bit,所以最多只能支持7個(gè)設(shè)備。為了增加主設(shè)備所能支持的從設(shè)備的數(shù)目,需要對(duì)此字段進(jìn)行擴(kuò)展。
如圖6所示,具體修改步驟如下:
(1)AM_ADDR 擴(kuò)展為5位,這樣就保證了一個(gè)主設(shè)備最多可支持32個(gè)設(shè)備。由上文分析可知,備間進(jìn)行通信時(shí),時(shí)間的延遲也小。所以,此字段的擴(kuò)展,一方面保證了設(shè)備的數(shù)量,另一方面也保證了設(shè)備間通信時(shí)間延遲短。
(2)新增一個(gè)短消息類型ShortType,占1bit。此字段的增加是為了保證與傳統(tǒng)藍(lán)牙的協(xié)議相兼容。對(duì)此字段,我們定義以下約定:如果此字段值為0表示當(dāng)前通信模式為短消息通信模式,如果值為1表示為藍(lán)牙的標(biāo)準(zhǔn)通信模式,同時(shí)AM_ADDR 字段的高三位設(shè)為0;默認(rèn)情況下,此字段為0,即通信方式采用的是藍(lán)牙的標(biāo)準(zhǔn)協(xié)議。經(jīng)過這樣約定,不僅擴(kuò)展了藍(lán)牙設(shè)備,實(shí)現(xiàn)了n≥7 設(shè)備間的通信,而且也保證了我們修改后的協(xié)議與藍(lán)牙現(xiàn)有的標(biāo)準(zhǔn)協(xié)議相兼容。
(3)分組頭由54bits擴(kuò)展到了63bits。由于AM_ADDR字段多增加了2位和新增的ShortType 字段,使得的分組頭多增出9bits。所以,分組頭自然而然也就變成了63bits。
(4)其它字段與標(biāo)準(zhǔn)保持統(tǒng)一,保持不變。此處的保持不變是指字段的位數(shù)和字段的描述皆為藍(lán)牙標(biāo)準(zhǔn)的定義,本文并未給這些字段做出新的定義。
圖6 改進(jìn)后的分組格式
由上文部分分析得知。如果按照RR 調(diào)度算法,在通信的實(shí)時(shí)性上會(huì)有很大的延遲性。比如在某一段時(shí)間內(nèi),S1與Sn的通信比較頻繁,從S1發(fā)送一個(gè)分組到Sn響應(yīng),最大延遲時(shí)間為一個(gè)傳遞周期Tp,延遲性相對(duì)較長(zhǎng),為了保證設(shè)備間的通信質(zhì)量,我們需要對(duì)此調(diào)度算法進(jìn)行改進(jìn)。在此基礎(chǔ)上提出了基于活躍度的平等調(diào)度算法EASA?;钴S度的定義為:每個(gè)節(jié)點(diǎn)活躍的頻繁度,具體體現(xiàn)為節(jié)點(diǎn)發(fā)送分組時(shí)次數(shù)的大小。
設(shè)S為調(diào)度序列的集合,初始值為:S ={S1,S2,…,Sn};表示為序列的長(zhǎng)度;定義d(Si)為第i個(gè)節(jié)點(diǎn)的當(dāng)前活躍度,各個(gè)節(jié)點(diǎn)的初始值為-∞;如果節(jié)點(diǎn)每發(fā)送一次消息,則此節(jié)點(diǎn)的活躍度的值就加1。在下一個(gè)調(diào)度周期開始前,按照d(Si)對(duì)各個(gè)節(jié)點(diǎn)進(jìn)行降序排列,更新調(diào)度序列S。算法如下:
本文用java編程進(jìn)行了仿真實(shí)驗(yàn),圖7研究了節(jié)點(diǎn)數(shù)目的變化與消息延遲時(shí)間之間的關(guān)系,從圖中可以看出,隨著節(jié)點(diǎn)數(shù)目的增長(zhǎng),節(jié)點(diǎn)之間的通信延遲呈現(xiàn)曲線式的增長(zhǎng);在節(jié)點(diǎn)數(shù)目為16以后,變化幅度越來(lái)越大。
圖7 延遲時(shí)間
圖8比較了RR 算法和EASA 算法的性能。RR 算法采用的調(diào)度序列為S1,S2,S3,…,Sn,n 取值為16。為了和RR 算法進(jìn)行比較,實(shí)驗(yàn)中,令d(S1)=+∞,即S1節(jié)點(diǎn)的活躍度取最大值,保證其在調(diào)度序列的首部。從實(shí)驗(yàn)結(jié)果中可以得知,RR 調(diào)度算法不管Sn節(jié)點(diǎn)的活躍度多高,其收到S1發(fā)送的消息所需的時(shí)間為一個(gè)常數(shù) (20ms),而EASA 調(diào)度算法隨著節(jié)點(diǎn)活躍的變化而呈現(xiàn)曲線的走向,當(dāng)其活躍度越高時(shí),收到S1發(fā)送的消息所需的時(shí)間越短。
圖8 RR 算法與EASA 算法比較
本文首先討論了當(dāng)前藍(lán)牙多設(shè)備間通信存在的問題,對(duì)藍(lán)牙基帶進(jìn)行了分析并介紹了其分組格式,然后本文提出了一個(gè)適合于多設(shè)備間短消息通信的方案,并把藍(lán)牙標(biāo)準(zhǔn)只能支持7個(gè)活躍的從設(shè)備擴(kuò)展到了32個(gè),從而實(shí)現(xiàn)了更多個(gè)設(shè)備間的通信;同時(shí),對(duì)RR調(diào)度算法進(jìn)行改進(jìn),并在此基礎(chǔ)上提出了基于活躍度的平等調(diào)度算法EASA,縮短了活躍度較為大的從設(shè)備間的通信延遲時(shí)間。大量的實(shí)驗(yàn)結(jié)果表明,本文提出的方案,不僅實(shí)現(xiàn)了多個(gè)設(shè)備,而且縮短了設(shè)備之間信息交互的時(shí)間延遲,保證了通信的及時(shí)性。
[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與無(wú)線個(gè)域網(wǎng)藍(lán)牙之間的共存分析 [D].北京:北京郵電大學(xué),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).[張功偉.一種新型的分類藍(lán)牙組網(wǎng)技術(shù)[D].上海:上海交通大學(xué),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).[周瓊.藍(lán)牙協(xié)議棧的研究及其在串口通信中的應(yīng)用 [D].武漢:武漢理工大學(xué),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).[孫炎森.基于藍(lán)牙標(biāo)準(zhǔn)的點(diǎn)到多點(diǎn)音視頻傳輸技術(shù)的研究與設(shè)計(jì) [D].北京:北京工業(yè)大學(xué),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).[李冰.基于重傳的藍(lán)牙ACL鏈路傳輸性能研究 [D].吉林:吉林大學(xué),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). [侯金鳳.多個(gè)藍(lán)牙微微網(wǎng)之間同頻干擾問題的研究 [D].吉林:吉林大學(xué),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).[徐金茍.藍(lán)牙4.0底層核心技術(shù)協(xié)議研究與實(shí)現(xiàn) [D].上海:上海交通大學(xué),2012:42-45.]