一、引言
現代通信技術的趨勢走向網絡核心技術分組化、窄帶接入技術無線化。
在無線接入領域,早期采用電路型傳輸方式,但是現在也開始出現了分組傳輸技術,如CDPD、GPRS、EDGE等;除了這些無線運營數據網絡之外,最近由Ericsson、Intel、Nokia、Toshiba、IBM五家公司組成的藍牙特殊利益集團SIG(SPecial Interest GrouP)聯手推出的藍牙計劃致力于解決SoHo無線組網,倍受網絡界的矚目。
雖然藍牙還沒有正式成為國際標準,但是有越來越多的組織正在吸納這種技術。藍牙技術的目標是采用無線接口技術來取代傳統各種有線連接。雖然藍牙主要用來解決電話、數據終端等的連接組網問題,但是SIG也想將該技術應用到家電上去:家庭通過這種方式組成小型無線數據網,實現智能控制與管理。藍牙技術的關鍵是很小的藍牙芯片(即無線電收發信機),可以裝在各種設備上,如手機、冰箱等等。藍牙的應用非常廣泛,例如手機與微機之間通過藍牙無線連接,這種無束縛的接收和發送信息很有可能改變人們的生活方式;藍牙與 WAP的結合也會創造出新的電子商務模式。
二、藍牙的協議體系結構
藍牙協議體系結構同樣采用分層方式,包括藍牙專用協議和一些通用協議。專用協議位于協議棧的底部,從底到上依次是藍牙無線層(Bluetooth Radio)、基帶層(Baseband)、LMP層(Link ManagerProtocol)、L2CAP層(Logical link Control andAdaptation Protocol)、SDP層(Service DiscoveryProtocol)。另外RFCOMM層以ETSI TS07.10為基礎,目的是取代電纜連接;TCS(Telephony Control Protocol SPecification)以ITU-T的Q.931為基礎,目的是進行呼叫控制。在藍牙專用協議之上可以承載PPP、TCP/IP、UDP/IP、WAP等 通用高層協議。
無線層規范物理層無線傳輸技術。藍牙工作在2.4GHz的ISM頻段,大部分國家采用2400~2483.5NHZ,f=2402+kMHZ,k=0~78:即將該頻段劃分為79個帶寬為1MHz的信道;在低頻端留有2MHz的保護帶,在高頻端留有3.5MHz的保護帶。調制方式采用GFSK,BT=0.5,正頻偏表示“1”,負頻偏表示“0”。系統采用跳頻擴頻技術,抗干擾能力強、保密性好。
LMP負責藍牙設備之間的鏈路建立,包括鑒權、加密等安全技術及基帶層分組大小的控制和協商。它還控制無線設備的功率以及藍牙節點的連接狀態。L2CAP在高層和基帶層之間作適配,它與LMP是并列的,區別在于L2CAP向高層提供負載的傳送,而LMP不能。L2CAP向高層提供面向連接的和無連接的數據服務,具備多協議復用功能和拆/裝適配功能。SDP是藍牙體系中非常關鍵的部分,只有通過SDP了解通信雙方的設備信息、業務類型、業務特征,然后才能在藍牙設備之間建立通信連接。
三、基帶層
1.物理信道與物理鏈路
藍牙技術的特點體現在底層技術,而基帶層是底層中的關鍵技術之一。注意藍牙基于微微小區機制,需具備強壯性、低復雜度、低功率、低成本的特點,而這在基帶層技術中有所體現。
前面說過藍牙采用挑頻擴頻技術,每秒1600跳,從時間域看即每個時隙長度是625μs,即每個時隙從79個信道中選擇一個。時隙編號0~ 2的27次方-1,即以2的27個次方雙工方式采用TDD。藍牙既支持電路型數據,也支持分組型數據;既支持點對點連接,也支持點對多點連接。在一個微微網絡(Piec.net)中,一個單元作為主節點,其他作為從節點,最多可以有7個從節點;但是允許有更多從節點與主節點保持在Park狀態。從節點對信道的接入由主節點控制。微微網絡在覆蓋上可以有重疊:每個網絡有各自的跳頻方案,一個網絡的主節 點可以同時作為另一個網絡的從節點;一個從節點可以屬于多個網絡。
主節點向從節點發送數據只能占用偶時隙,反之從節點只能在奇時隙才能向主節點發送數據。一個分組(Packet,實際上更習慣的說法是幀,因為在基帶層其地位類似于OSI的第2層、部分涉及物理層,分組的確切用法在第3層,但是藍牙基帶層規范中采用Packet術語)的傳送最多可以占用5個時隙,在一個分組的傳送期內,維持初始時隙所占用的信道而不再跳頻。
在主從節點之間,有兩種不同類型的鏈路,即同步面向連接SCO(Synchronous Connection-Oriented)鏈路和異步無連接ACL(Asynchronous Connection-Less)鍵路。SCO是點到點鏈路,立節點在周期性的保留時隙上維持SCO;ACL是點到多點鏈路。主節點可以利用SCO本占用的時隙建立ACL鏈路,從節點可以同時參與SCO和ACL。
SCO具備雙向對稱性,可以看作電路型連接,通常用于支持語音等實時業務。主節點可與一個或多個從節點建立多達3個的SCO鏈路;一個從節點也與多個主節點建立SCO鏈路(最多3條)。SCO分組不采用重傳機制。SCO鏈路的建立通過主節點發送LMP的SCOsetup消息,該消息中包含了Tsco和Dsco等參數。Dsco用于標識SCO開始的時隙相對數,而Tsco用于表示時隙的重復周期。
未被SCO占用的時隙可用于ACL,在一對主從節點之間只有一條ACL。ACL的分組傳送來用重傳機制以確保正確性。只有主節點在發往從節點的分組中以某種方式允許某從節點發送數據時,該從節點才能在規定時隙發送數據。ACL支持廣播。
2.分組組成
每個分組由3部分組成,即接入碼(Aclearcase/" target="_blank" >ccessCode)、頭(Header)、負載(Payload)。其中接入碼和頭字段為固定長度,分別為72比特和54比特;負載是可變長度,從0~2745比特。一個分組可以僅包含接入碼字段(此時為縮短的68比特),或者包含接入碼與頭字段,或者包含全部3個字段。
接入碼有三種類型:Channel Access Code(CAC)、Device Access Code(DAC)和Inquiry Access Code(IAC)。CAC用于標識一個Piconet,所有在該Piconet中傳送的分組都包含CAC;DAC用于特殊的信令過程,如尋呼和響應尋呼;IAC又分為General(GIAC)和Dedicated(DIAC)兩類:GIAC對該區域內所有設備都是一樣的,用于發現其它的藍牙單元;DIAC用于根據某種特性劃分特定用戶群。
分組頭包含鏈路控制信息,由6個字段組成:3比特的AM-ADDR、4比特的TYPE、1比特的FLOW、1比特的ARQN、1比特的SEQN、8比特的HEC,一共18個比特;再加速率為1/3的FEC,編碼保護后一共是54比特。在主節點與從節點通信時,需要區分不同的從節點,用AM-ADDR來表示激活的從節點地址。全“0”地址用于廣播,顯然3比特的編碼最多可以支持的激活從節點數為7(扣除全0)。4比特的TYPE字段可以區分16種不同類型的分組,詳細情況見本節第3點。FLOW字段用于ACL鏈路上的流量控制:如果接收端緩存滿,則FLOW=0指示發端停止發送數據;如果緩存清空,則FLOW=1指示發端繼續發送。ARQN=0時表示NAK;ARQN=1時表示ACK,用于對負載傳送正確性的確認。SEQN比特在每發送一個新的分組時翻轉一次,因為藍牙采用無編號ARQ機制,所以SEQN對于重傳是必需的,這樣可以避免由于 ACK的去失而造成分組重復接收。分組頭用8比特的校驗碼以檢查分組頭的正確性。
3.分組類型
在16種分組中,有4種是公共的;另外12種根據SCO和ACL不同鏈路而不同。
?。?)公共分組
ID分組:由DAC或IAC組成,長度固定為68比特,用于尋呼、探詢、響應。
NULL分組:僅包含 CAC和分組頭,沒有負載,長度固定為126比特。NULL分組用于通過ARQN、FLOW等字段將鏈路信息返回給發送端。NULL分組無需確認。
POLL分組:POLL分組與NULL分組類似,也沒有負載字段,但是需要接收端的確認。當從節點收到POLL分組后,必須響應,即使當時沒有數據信息需要發送。
FHS分組:是一種特殊的控制分組,它宣告發端的設備地址和時鐘信息,以實現跳頻同步。負載字段包含144個信息比特加16比特的CRC校驗碼,然后用速率為2/3的FEC保護,最終長度為240比特。FHC的結構比較復雜,限于篇幅不作介紹。
DM1分組:DM代表Data Medium rate,該分組僅攜帶數據信息,負載包含18個信息字節和16比特的CRC校驗碼,然后用速率為2/3的FEC保護(即每10個信息比特附加5個校驗比特)。
?。?)SCO分組
SCO分組在SCO鏈路上傳送,分組不采用CRC校驗和重傳機制?,F在定義了3種SCO分組,SCO分組通常用于64kbit/s的語音傳送。
HV1分組:HV代表High quality Voice,該分組攜帶10個字節的信息,用1/3速率的FEC保護,編碼后負載長度為240比特。一個HV1分組可以攜帶1.25ms的64kbit/s的語音,每兩個時隙HV1分組必須發送一次,即sco=2。
HV2分組:HV2分組攜帶20個字節的信息,采用速率為2/3的FEC,編碼后負載長度也為240比特。一個HV2分組可以攜帶2.5ms的64kbit/s的語音,每四個時隙HV2分組必須發送一次,即Tsco=4。
HV3分組:HV3分組攜帶30個字節的信息,沒有采用FEC,負載長度也為240比特。一個HV3分組可以攜帶3.75ms的64kbit/s的語音,每六個時隙HV3分組必須發送一次,即Tsco=6。
DV分組:DV分組是數據和語音的混合,負載由80比特的語音字段和最多150比特的數據字段組成。語音字段沒有 FEC保護,數據字段有10字節信息,加16比特的CRC校驗碼,然后用2/3FEC保護。語音處理和數據處理是獨立的。
?。?)ACL分組
ACL分組在ACL錯路上傳送,承載的信息可以是控制信息或用戶數據。如果包含DM1,則一共有7種ACL分組,除了AUX1外其它6種ACL分組采用CRC校驗及重傳機制。
DH1分組:與DM1分組類似,但是負載數據不經過FEC。DH1分組攜帶28字節信息加16比特的CRC校驗碼。DH代表Data-High rate。
DM3