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