摘? 要: 對藍牙協(xié)議體系中的基帶數(shù)據(jù)傳輸機理進行分析,為進一步對藍牙技術(shù)做全面深入的研究和開發(fā)應(yīng)用奠定基礎(chǔ)。在介紹了基本概念的基礎(chǔ)上,重點對藍牙設(shè)備連接、數(shù)據(jù)傳輸和安全機制" title="安全機制">安全機制等內(nèi)容做了分析和討論。
關(guān)鍵詞: 藍牙? 基帶數(shù)據(jù)傳輸? 設(shè)備連接
?
藍牙(Bluetooth)是一種新型、開放、低成本、短距離的無線連接技術(shù),可取代短距離的電纜,實現(xiàn)話音和數(shù)據(jù)的無線傳輸。這種有效、廉價的無線連接技術(shù)可以方便地將計算機及外設(shè)、移動電話、掌上電腦、信息家電等設(shè)備連接起來,在它可達到的范圍內(nèi)使各種信息化移動便攜設(shè)備都能實現(xiàn)無縫資源共享,還可通過無線局域網(wǎng)(Wireless LAN)與Internet連接,實現(xiàn)多媒體信息的無線傳輸。
藍牙系統(tǒng)采用分散式(Scatter)結(jié)構(gòu),設(shè)備間以主從方式構(gòu)成微微網(wǎng)" title="微微網(wǎng)">微微網(wǎng)(Piconet),支持點對點和點對多點通信。它采用GFSK調(diào)制,抗干擾性能好,通過快速跳頻" title="跳頻">跳頻和短包技術(shù)來減少同頻干擾,保證傳輸?shù)目煽啃?。使用的頻段為無需申請許可的2.4GHz的ISM頻段。
藍牙協(xié)議從協(xié)議來源大致分為四部分:核心協(xié)議、電纜替代協(xié)議(RFCOMM)、電路控制協(xié)議和選用協(xié)議。其中核心協(xié)議是藍牙專利協(xié)議,完全由藍牙SIG開發(fā),包括基帶協(xié)議(BB)、連接管理協(xié)議(LMP)、邏輯鏈路" title="鏈路">鏈路控制和適配協(xié)議(L2CAP)以及服務(wù)發(fā)現(xiàn)協(xié)議(SDP)。藍牙協(xié)議從體系結(jié)構(gòu)又可分為底層硬件模塊、中間協(xié)議層和高端應(yīng)用層三大部分,其中鏈路管理層(LM)、基帶層(BB)和射頻層(RF)構(gòu)成藍牙的底層模塊。由此可見, 基帶層是藍牙協(xié)議的重要組成部分。本文主要對藍牙技術(shù)中最重要的基帶數(shù)據(jù)傳輸機理進行分析。
1 基帶協(xié)議概述
圖1給出藍牙系統(tǒng)結(jié)構(gòu)示意圖。在藍牙系統(tǒng)中, 使用藍牙技術(shù)將設(shè)備連接起來的網(wǎng)絡(luò)稱作微微網(wǎng)(Piconet),它由一個主節(jié)點(Master Unit)和多個從節(jié)點(Slave Unit)構(gòu)成。主節(jié)點是微微網(wǎng)中用來同步其他節(jié)點的藍牙設(shè)備,是連接過程的發(fā)起者,最多可與7個從節(jié)點同時維持連接。從節(jié)點是微微網(wǎng)中除主節(jié)點外的設(shè)備。兩個或多個微微網(wǎng)可以連接組成散射網(wǎng)(Scatternet)。
?
圖2給出藍牙協(xié)議結(jié)構(gòu)示意圖?;鶐游挥谒{牙協(xié)議棧的藍牙射頻之上,并與射頻層一起構(gòu)成藍牙的物理層。從本質(zhì)上說,它作為一個鏈接控制器,描述了基帶鏈路控制器的數(shù)字信號處理規(guī)范,并與鏈路管理器協(xié)同工作,負(fù)責(zé)執(zhí)行象連接建立和功率控制等鏈路層的任務(wù),如圖3所示。基帶收發(fā)器在跳頻(頻分)的同時將時間劃分(時分),采用時分雙工(TDD)工作方式(交替發(fā)送和接收),基帶負(fù)責(zé)把數(shù)字信號寫入并從收發(fā)器中讀入數(shù)據(jù)。主要管理物理信道和鏈接,負(fù)責(zé)跳頻選擇和藍牙數(shù)據(jù)及信息幀的傳輸、象誤碼糾錯、數(shù)據(jù)白化、藍牙安全等。基帶也管理同步和異步鏈接,處理分組包,執(zhí)行尋呼、查詢來訪及獲取藍牙設(shè)備等。
?
?
在藍牙基帶協(xié)議中規(guī)定,藍牙設(shè)備可以使用4種類型的地址用于不同場合和狀態(tài)。其中,48位的藍牙設(shè)備地址BD_ADDR(IEEE802標(biāo)準(zhǔn)),是藍牙設(shè)備連接過程的唯一標(biāo)識;3位的微微網(wǎng)激活節(jié)點地址AM_ADDR,用以標(biāo)識微微網(wǎng)中激活成員,該地址3位全用作廣播信息;8位的微微網(wǎng)休眠節(jié)點地址PM_ADDR,用以標(biāo)識微微網(wǎng)中休眠的從節(jié)點。微微網(wǎng)接入地址AR_ADDR,分配給微微網(wǎng)中要啟動喚醒過程的從節(jié)點。
當(dāng)微微網(wǎng)主從節(jié)點通信時,彼此必須保持同步。同步所采用的時鐘包括自身不調(diào)整也不關(guān)閉的本地設(shè)備時鐘CLKN,微微網(wǎng)中主節(jié)點的系統(tǒng)時鐘CLK以及為主節(jié)點時鐘對從節(jié)點本地設(shè)備時鐘進行周期更新以保持主從同步的補償時鐘CLKE。
與其它無線技術(shù)一樣,藍牙技術(shù)中微微網(wǎng)通過使用各種信道來實現(xiàn)數(shù)據(jù)的無線傳輸。其中,物理信道表示在79個或者23個射頻信道上跳變的偽隨機跳頻序列,每個微微網(wǎng)的跳頻序列是唯一的,并且由主節(jié)點的藍牙設(shè)備地址決定;此外,藍牙有5種傳送不同類型信息的邏輯信道,它們分別為:
(1)LC信道:控制信道,用來傳送鏈路層控制信息;
(2)LMC信道:鏈接管理信道,用在鏈路層傳送鏈接管理信息;
(3)UA信道:用戶信道,用來傳送異步的用戶信息;
(4)UI信道:用戶信道,用來傳送等時的用戶信息;
(5)US信道:用戶信道,用來傳送同步的用戶信息。
在藍牙系統(tǒng)中,主從節(jié)點以時分雙工(TDD)機制輪流進行數(shù)據(jù)傳輸。因此,在信道上又可劃分為長度為625μs的時隙" title="時隙">時隙(Time Slot),并以微微網(wǎng)主節(jié)點時鐘進行編號(0-227-1),主從節(jié)點分別在奇、偶時隙進行數(shù)據(jù)發(fā)送。
2 藍牙數(shù)據(jù)傳輸
藍牙支持電路和分組交換,數(shù)據(jù)以分組形式在信道中傳輸,并使用流控制來避免分組丟失和擁塞。為確保分組包數(shù)據(jù)正確傳輸,還進行數(shù)據(jù)的白化和糾錯,下面分別對這些傳輸機制進行分析。
2.1 藍牙分組
分組包數(shù)據(jù)可以包含話音、數(shù)據(jù)或兩者兼有。分組包可以占用多個時隙(多時隙分組)并且可以在下一個時隙繼續(xù)發(fā)送,凈荷(Payload)也帶有16位的錯誤校驗識別和校驗(CRC)。有5種普通的分組類型,4個SCO 分組包和7個ACL分組包。一般分組包格式如圖4。
?
?
其中,接入碼(Access code)用來定時同步、偏移補償、尋呼和查詢。藍牙中有三種不同類型的接入碼:
(1)信道接入碼(CAC):用來標(biāo)識一個微微網(wǎng);
(2)設(shè)備接入碼(DAC):用作設(shè)備尋呼和它的響應(yīng);
(3)查詢接入碼(IAC):用作設(shè)備查詢目的。
分組頭(Header)包含6個字段,用于鏈路控制。其中AM_ADDR是激活成員地址,TYPE指明分組類型,FLOW用于ACL流量控制位,ARQN是分組包確認(rèn)標(biāo)識,SEQN用于分組重排的分組編號,HEC對分組頭進行錯誤校驗。藍牙使用快速、不編號的分組包確認(rèn)方式,通過設(shè)置合適的ARQN值來區(qū)別確定是否接收到數(shù)據(jù)分組包。如果超時,則忽略這個分組包,繼續(xù)發(fā)送下一個。
2.2 鏈接及流控制
藍牙定義了兩種鏈路類型,即面向連接的同步鏈路(SCO)和面向無連接的異步鏈路(ACL)。SCO鏈接是一個對稱的主從節(jié)點之間點對點的同步鏈接,在預(yù)留的時間里發(fā)送SCO分組,屬于電路交換,主要攜帶話音信息。主節(jié)點可同時支持3個SCO鏈接,從節(jié)點可同時支持2~3個鏈接SCO,SCO分組包不支持重傳。SCO鏈路通過主節(jié)點LMP發(fā)送一個SCO建立消息來建立,該消息包含定時參數(shù)(Tsco和Dsco)。
ACL鏈接是為匹克網(wǎng)主節(jié)點在沒有為SCO鏈接保留的時隙中,提供可以與任何從節(jié)點進行異步或同步數(shù)據(jù)交換的機制。一對主從節(jié)點只可以維持一個ACL鏈接。使用多個ACL分組時,藍牙采用分組包重發(fā)機制來保證數(shù)據(jù)的完整性。ACL分組不指定確定從節(jié)點時,被認(rèn)為是廣播分組,每個從節(jié)點都接收這個分組。
藍牙建議使用FIFO(先進先出)隊列來實現(xiàn)ACL和SCO鏈接的發(fā)送和接收,鏈接管理器負(fù)責(zé)填充這些隊列,而鏈接控制器負(fù)責(zé)自動清空隊列。接收FIFO隊列已滿時則使用流控制來避免分組丟失和擁塞。如果不能接收到數(shù)據(jù),接收者的鏈接控制器發(fā)送一個STOP指令,并插入到返回的分組頭(Header)中,并且FLOW位置1。當(dāng)發(fā)送者接收到STOP指示,就凍結(jié)它的FIFO隊列停止發(fā)送。如果接收器已準(zhǔn)備好,發(fā)送一個GO分組給發(fā)送方重新恢復(fù)數(shù)據(jù)傳輸,FLOW位置0。
2.3 數(shù)據(jù)同步、擾碼和糾錯
由于藍牙設(shè)備發(fā)送器采用時分雙工(TDD)工作機制,它必須以一種同步的方式來交替發(fā)送和接收數(shù)據(jù)。微微網(wǎng)通過主節(jié)點的系統(tǒng)時鐘來實現(xiàn)同步,并決定其跳頻序列中的相位。在微微網(wǎng)建立時,主節(jié)點的時鐘傳送給從節(jié)點,每個從節(jié)點給自己的本地時鐘加上一個偏移量,實現(xiàn)與主節(jié)點的同步。在微微網(wǎng)生存期內(nèi),主節(jié)點不會調(diào)整自己的系統(tǒng)時鐘。為了與主節(jié)點的時鐘匹配,從節(jié)點會對偏移量進行周期的更新。藍牙時鐘應(yīng)該至少具有312μs的分辨率。主節(jié)點分組發(fā)送的平均定時與理想的625ms時隙相比,偏移不能超過20ppm,抖動(Jitter)應(yīng)該少于1ms。
在分組數(shù)據(jù)送出去并且在FEC編碼之前,分組頭和凈荷要進行擾碼,使分組包隨機化。接收數(shù)據(jù)分組包時,使用相同的白化字進行去擾處理。
為了提高數(shù)據(jù)傳輸可靠性及系統(tǒng)抗干擾性,藍牙數(shù)據(jù)傳輸機制采用三種糾錯方式:1/3率FEC編碼方式(即每一數(shù)據(jù)位重復(fù)3次)、冗余2/3率FEC編碼方式(即用一個多項式發(fā)生器把10位碼編碼成15位碼)以及數(shù)據(jù)自動請求重發(fā)方式(即發(fā)送方在收到接收方確認(rèn)消息之前一直重發(fā)數(shù)據(jù)包,直到超時)。
3 藍牙設(shè)備連接
藍牙鏈接控制器工作在兩種主要狀態(tài):待令(Standby)和連接(Connection)。在藍牙設(shè)備中,Standby是缺省的低功率狀態(tài),只運行本地時鐘且不與任何其他設(shè)備交互。在連接狀態(tài),主節(jié)點和從節(jié)點能交換分組包進行通信,所以要實現(xiàn)藍牙設(shè)備之間的互相通信,彼此必須先建立連接。由于藍牙使用的ISM頻帶是對所有無線電系統(tǒng)都開放的頻帶,會遇到各種各樣的干擾源,所以藍牙采用分組包快速確認(rèn)技術(shù)和跳頻方案來確保鏈路與信道的穩(wěn)定。在建立連接和通信過程中使用跳頻序列作為物理信道,跳頻選擇就是選擇通信的信道。
3.1 跳頻選擇
跳頻技術(shù)把頻帶分成若干個跳頻信道(Hop Channel)。無線電收發(fā)器按一定的碼序列(以產(chǎn)生隨機數(shù)的方式)不斷地從一個信道跳到另一個信道,并且收發(fā)雙方都按這個規(guī)律才能通信并同步。跳頻的瞬時帶寬很窄,通過擴頻技術(shù)展成寬頻帶,使干擾的影響最小。當(dāng)一個設(shè)備被激活時,該設(shè)備被分配32個跳頻頻點,以后該設(shè)備就在這些跳頻點上接收和發(fā)送信息。通用跳頻選擇方案由兩部分組成,即選擇一個序列并在跳頻頻點上映射該序列。對于每一種情況,都需要從-主和主-從兩種跳頻序列。藍牙系統(tǒng)中使用的跳頻序列有如下幾種:
(1)呼叫跳頻序列:在呼叫(Page)狀態(tài)使用;
(2)呼叫應(yīng)答序列:在呼叫應(yīng)答(Page Response)狀態(tài)使用;
(3)查詢序列:在查詢(Inquiry)狀態(tài)使用;
(4)查詢應(yīng)答序列:在查詢應(yīng)答(Inquiry Response)狀態(tài)使用;
(5)信道跳頻序列:在連接(Connection)狀態(tài)使用。
3.2 藍牙連接建立
從待令狀態(tài)到連接狀態(tài)的過程就是連接建立過程。通常來講,兩個設(shè)備的連接建立過程如下:
首先,主節(jié)點使用GIAC和DIAC來查詢范圍內(nèi)的藍牙設(shè)備(查詢狀態(tài))。如果任何附近的藍牙設(shè)備正在監(jiān)聽這些查詢(查詢掃描狀態(tài)),就發(fā)送它的地址和時鐘信息(通過FHS分組)給主節(jié)點(查詢響應(yīng)狀態(tài))。在發(fā)送信息后,從節(jié)點可以開始監(jiān)聽來自主節(jié)點的尋呼消息(尋呼掃描),主節(jié)點在發(fā)現(xiàn)附近的設(shè)備之后可以尋呼這些設(shè)備(尋呼狀態(tài)),建立鏈接。在尋呼掃描的從設(shè)備被這個主節(jié)點尋呼后,就會以DAC(設(shè)備訪問碼)來響應(yīng)(Slave response substate)。主節(jié)點在接收到從節(jié)點的響應(yīng)后,便可以發(fā)送主節(jié)點的實時時鐘、BD_ADDR、BCH奇偶位和設(shè)備類(FHS分組包),最后在從節(jié)點已經(jīng)接收到這個FHS分組之后,進入連接狀態(tài)。具體過程如圖5。
?
由圖5可見,在藍牙連接建立的各個不同階段,主節(jié)點和從節(jié)點分別處于不同的狀態(tài),這些狀態(tài)包括:
查詢(Inquiry):查詢是主節(jié)點用來查找可監(jiān)視區(qū)域中的藍牙設(shè)備,以便通過收集來自從節(jié)點響應(yīng)查詢消息中得到該節(jié)點的設(shè)備地址和時鐘,查詢過程使用IAC;
查詢掃描(Inquiry Scan):藍牙設(shè)備周期地監(jiān)聽來自其他設(shè)備的查詢消息,以便自己能被發(fā)現(xiàn)。掃描過程中,設(shè)備可以監(jiān)聽普通查詢接入碼(GIAC)和特定查詢接入碼(DIAC);
查詢響應(yīng)(Inquiry response):從節(jié)點以FHS分組響應(yīng)查詢消息,它攜帶從節(jié)點的DAC、本地時鐘等信息;
尋呼(Page):主節(jié)點通過在不同的跳頻序列發(fā)送消息,來激活一個從節(jié)點并建立連接,尋呼過程使用DAC;
尋呼掃描(Page Scan):從節(jié)點周期性地在掃描窗間隔時間內(nèi)喚醒自己,并監(jiān)聽自己的DAC,從節(jié)點每隔1.28s在這個掃描窗上根據(jù)尋呼跳頻序列選擇一個掃描頻率;
從節(jié)點響應(yīng)(Slave Response):從節(jié)點在尋呼掃描狀態(tài)收到主節(jié)點對自己的尋呼消息即進入響應(yīng)狀態(tài),響應(yīng)主設(shè)備的尋呼消息;
主節(jié)點響應(yīng)(Master Response):主節(jié)點在接收到從節(jié)點對它的尋呼消息的響應(yīng)后,主節(jié)點發(fā)送一個FHS分組給從節(jié)點,如果從節(jié)點響應(yīng)回答,主節(jié)點就進入連接狀態(tài)。
3.3 連接狀態(tài)
連接(connection)狀態(tài)以主節(jié)點發(fā)送一個POLL分組開始,表示連接已經(jīng)建立,此時分組包可以在主從節(jié)點之間來回發(fā)送。連接兩端即主從節(jié)點都使用主節(jié)點的接入碼和時鐘,并且使用的跳頻為信道跳頻序列。即在連接建立后,主節(jié)點的藍牙設(shè)備地址(BD_ADDR)決定跳頻序列和信道接入碼。在連接狀態(tài)的藍牙設(shè)備,可以有以下幾個子狀態(tài):
Active:在這個模式下,主從節(jié)點都分別在信道通過監(jiān)聽,發(fā)送和接收分組包,并彼此保持同步;
Sniff:在這個模式下,從節(jié)點不是在每個時隙都監(jiān)聽針對自己的來自主節(jié)點的消息,只是在特定時隙監(jiān)聽,從而節(jié)省能源;
Hold:在這個模式下,從節(jié)點可以暫時不支持ACL分組,也就是ACL鏈路進入低能源sleep模式,空出資源,使得象尋呼、掃描等活動、信道仍可用;
Park:當(dāng)從節(jié)點不必介入微微網(wǎng)信道,但仍想與信道維持同步,它能進入park (休眠) 模式,此時具有很少的活動而處于低耗模式,從節(jié)點放棄AM_ADDR,而使用PM_ADDR。
4 藍牙安全機制
如果允許利用藍牙技術(shù)來實現(xiàn)無鎖門或者在超市自動買單,則藍牙安全性非常重要。藍牙協(xié)議為用戶進行數(shù)據(jù)傳輸提供了一套可靠的安全機制。首先,藍牙基帶部分在物理層為用戶提供保護和信息加密機制,而在鏈路層通過同等鑒權(quán)并對用戶信息進行加密。藍牙設(shè)備在連接過程中采用查詢/應(yīng)答方式進行鑒權(quán)。一個設(shè)備發(fā)送一個口令或查詢,而從設(shè)備則響應(yīng)這個口令,這樣可以防止盜用和誤用。信息加密機制是在藍牙設(shè)備連接建立后,采用序列密碼加密算法對用戶數(shù)據(jù)或信息進行加密,從而增加系統(tǒng)安全性。鏈路層共有四種參數(shù)來保證通信的安全,分別是藍牙設(shè)備地址BD_ADDR、認(rèn)證私鑰、加密私鑰和隨機碼RAND。如果用戶有更高級別的保密要求,則可采用更為有效的傳輸層和應(yīng)用層安全機制??傊?藍牙安全機制的目的在于提供適當(dāng)級別的安全保護。由于藍牙安全是藍牙技術(shù)中一個非常復(fù)雜的問題,限于篇幅在此不做進一步的討論。
本文主要對藍牙技術(shù)中最基礎(chǔ)和最重要的基帶層進行了分析和討論,為進一步對藍牙技術(shù)進行全面深入的研究和開發(fā)應(yīng)用奠定了基礎(chǔ)。藍牙技術(shù)主要應(yīng)用于小范圍的家庭和辦公室信息傳輸系統(tǒng)和信息家電,因此對藍牙技術(shù)進行開發(fā)和應(yīng)用,具有重要的現(xiàn)實意義。尤其我國人口密集,具有廣闊的應(yīng)用前景,并將對我國國民經(jīng)濟建設(shè)產(chǎn)生重大影響。
?
參考文獻
1 Bluetooth Special Interest Group. Specification of the Bluetooth System-core. Http://www.bluetooth.org.
2 Bluetooth Special Interest Group. Specification of the Bluetooth System-profile. Http://www.bluetooth.org.
3 陳為懷.微波通信新技術(shù)——藍牙(Bluetooth)技術(shù).無線通信技術(shù); 2000(4):1~4
4 曹鳴鵬,翟增暉. 藍牙核心技術(shù).無線通信技術(shù), 2001;(4):29~33
5 吳永忠,韓江洪,謝 華. 藍牙基帶層包格式簡析及相關(guān)芯片簡介.計算機應(yīng)用,2001;(10):17~19