探討藍牙協(xié)議棧的原理和結(jié)構(gòu)
藍牙,這個已經(jīng)不是什么新鮮的技術(shù)了,相信大多數(shù)人都是了解的。那么對于這方面,我們可以在嵌入式操作中進行一下實現(xiàn)。在藍牙系統(tǒng)中,為了支持不同應用,需要使用多個協(xié)議,這些協(xié)議按層次組合在一起,構(gòu)成了藍牙協(xié)議棧.藍牙協(xié)議棧是藍牙技術(shù)的核心組成部分,它能使設備之間互相定位并建立連接,通過這個連接,設備間能通過各種各樣的應用程序進行交互和數(shù)據(jù)交換.
1、藍牙協(xié)議棧體系結(jié)構(gòu)
藍牙協(xié)議棧體系結(jié)構(gòu)為分層結(jié)構(gòu),具體如圖所示
藍牙技術(shù)規(guī)范的目的是使符合該規(guī)范的各種應用之間能夠?qū)崿F(xiàn)互操作.互操作的遠端設備需要使用相同的協(xié)議棧,不同的應用需要不同的協(xié)議棧.并不是任何應用都必須使用全部協(xié)議,而是可以只使用其中的一層或多層.但是,所有的應用都要使用藍牙技術(shù)規(guī)范中的數(shù)據(jù)鏈路層和物理層.
設計藍牙協(xié)議棧的主要原則是盡可能地利用現(xiàn)有的各種高層協(xié)議,保證現(xiàn)有協(xié)議與藍牙技術(shù)的融合以及各種應用之間的互通性以及充分利用兼容藍牙技術(shù)規(guī)范的軟硬件系統(tǒng).藍牙技術(shù)規(guī)范的的開放性保證了設備制造商可自由地選用其專利協(xié)議或常用的公共協(xié)議,在藍牙技術(shù)規(guī)范基礎上開發(fā)新的應用.藍牙技術(shù)規(guī)范包括Core和Profiles兩大部分.Core是藍牙的核心,主要定義藍牙的技術(shù)細節(jié);Profiles部分定義了在藍牙的各種應用中的協(xié)議棧組成,并定義了相應的實現(xiàn)協(xié)議棧.
按照各層協(xié)議在整個藍牙協(xié)議體系中所處的位置,藍牙協(xié)議可分為底層協(xié)議、中間層協(xié)議和高層協(xié)議三大類.
2、藍牙底層協(xié)議
藍牙底層協(xié)議實現(xiàn)藍牙信息數(shù)據(jù)流的傳輸鏈路,是藍牙協(xié)議體系的基礎,它包括射頻協(xié)議、基帶協(xié)議和鏈路管理協(xié)議.
(1)射頻協(xié)議(Radio Frequency Protoc01)
藍牙射頻協(xié)議處于藍牙協(xié)議棧的最底層,主要包括頻段與信道安排、發(fā)射機特性和接收機特性等,用于規(guī)范物理層無線傳輸技術(shù),實現(xiàn)空中數(shù)據(jù)的收發(fā).藍牙工作在2.4GHz ISM頻段,此頻段在大多數(shù)國家無須申須運營許可,使得藍牙設備可工作于任何不同的地區(qū).
信道安排上,系統(tǒng)采用跳頻擴頻技術(shù),抗干擾能力強、保密性好.藍牙SIG制定了兩套跳頻方案,其一是分配79個跳頻信道,每個頻道的帶寬為1MHz,其二是23信道的分配方案,1.2版本以后的藍牙規(guī)范目前已經(jīng)不再推薦使用第二套方案.
(2)基帶協(xié){,S((Base Band Protoc01)
基帶層在藍牙協(xié)議棧中位于藍牙射頻層之上,同射頻層一起構(gòu)成了藍牙的物理層.
基帶層的主要功能包括:鏈路控制,比如承載鏈路連接和功率控制這類鏈路級路由;管理物理鏈路,SCO鏈路和ACL鏈路;定義基帶分組格式和分組類型,其中SCO分組有HVl、HV2、HV3和DV等類型,而ACL分組有DMl、DHl、DM3、DH3、DM5、DH5、AUXl等類型;流量控制,通過STOP和GO指令來實現(xiàn);采用13比例前向糾錯碼、23比例前向糾錯碼以及數(shù)據(jù)的自動重復請求ARQ(Automatic Repeat Request)方案實現(xiàn)糾錯功能;另外還有處理數(shù)據(jù)包、尋呼、查詢接入和查詢藍牙設備等功能.
(3)鏈路管理協(xié)議(Link Manager Protocol,LMP)
鏈路管理協(xié)議(LMP)是在藍牙協(xié)議棧中的一個數(shù)據(jù)鏈路層協(xié)議.LMP執(zhí)行鏈路設置、認證、鏈路配置和其它協(xié)議:鏈路管理器發(fā)現(xiàn)其它遠程鏈路管理器(LM)并與它們通過鏈路管理協(xié)議(LMP)進行通信.
3、藍牙中間層協(xié)議
藍牙中間層協(xié)議完成數(shù)據(jù)幀的分解與重組、服務質(zhì)量控制、組提取等功能,為上層應用提供服務,并提供與底層協(xié)議的接口,此部分包括主機控制器接口協(xié)議、邏輯鏈路控制與適配協(xié)議、串口仿真協(xié)議、電話控制協(xié)議和服務發(fā)現(xiàn)協(xié)議.
(1)主機控制器接口協(xié)議(Host Controller Interface Protocol,HCI)
藍牙HCI是位于藍牙系統(tǒng)的邏輯鏈路控制與適配協(xié)議層和鏈路管理協(xié)議層之間的一層協(xié)議.HCI為上層協(xié)議提供了進入鏈路管理器的統(tǒng)一接口和進入基帶的統(tǒng)一方式.在HCI的主機和HCI主機控制器之間會存在若干傳輸層,這些傳輸層是透明的,只需完成傳輸數(shù)據(jù)的任務,不必清楚數(shù)據(jù)的具體格式.藍牙的SIG規(guī)定了四種與硬件連接的物理總線方式,即四種HCI傳輸層:USB、RS232、UART和PC卡
(2)邏輯鏈路控制與適配協(xié)議(Logical Link Control and AdaptationProtocol,L2CAP)
邏輯鏈路控制與適配層協(xié)議(L2CAP)是藍牙系統(tǒng)中的核心協(xié)議,它是基帶的高層協(xié)議,可以認為它與鏈路管理協(xié)議(LMP)并行工作.L2CAP為高層提供數(shù)據(jù)服務,允許高層和應用層協(xié)議收發(fā)大小為64 KB的L2CAP數(shù)據(jù)包.L2CAP只支持基帶面向無連接的異步傳輸(ACE),不支持面向連接的同步傳輸(sco).L2CAP采用了多路技術(shù)、分割和重組技術(shù)、組提取技術(shù),主要提供協(xié)議復用、分段和重組、認證服務質(zhì)量、組管理等功能.
(3)串口仿真協(xié)議(RFCOMM)
串口仿真協(xié)議在藍牙協(xié)議棧中位于L2CAP協(xié)議層和應用層協(xié)議層之間,基于ETSI標準TS 07.10,在L2CAP協(xié)議層之上實現(xiàn)了仿真9針RS232串口的功能,可實現(xiàn)設備間的串行通信,從而對現(xiàn)有使用串行線接口的應用提供了支持.
(4)電話控制協(xié)議(Telephony Control Protocol Spectocol,TCS)
電話控制協(xié)議位于藍牙協(xié)議棧的L2CAP層之上,包括電話控制規(guī)范二進制(TCS BIN)協(xié)議和一套電話控制命令(AT Commands).其中,TCS BIN定義了在藍牙設備間建立話音和數(shù)據(jù)呼叫所需的呼叫控制信令;AT Commands則是一套可在多使用模式下用于控制移動電話和調(diào)制解調(diào)器的命令,它SIG在ITU.TQ.931的基礎上開發(fā)而成.TCS層不僅支持電話功能(包括呼叫控制和分組管理),同樣可以用來建立數(shù)據(jù)
呼叫,呼叫的內(nèi)容在L2CAP上以標準數(shù)據(jù)包形式運載.
(5)服務發(fā)現(xiàn)協(xié)議(Service Discovery Protocol,SDP)
服務發(fā)現(xiàn)協(xié)議(SDP)是藍牙技術(shù)框架中至關(guān)重要的一層,它是所有應用模型的基礎.任何一個藍牙應用模型的實現(xiàn)都是利用某些服務的結(jié)果.在藍牙無線通信系統(tǒng)中,建立在藍牙鏈路上的任何兩個或多個設備隨時都有可能開始通信,僅僅是靜態(tài)設置是不夠的.藍牙服務發(fā)現(xiàn)協(xié)議就確定了這些業(yè)務位置的動態(tài)方式,可
以動態(tài)地查詢到設備信息和服務類型,從而建立起一條對應所需要服務的通信信道.
4 、藍牙高層協(xié)議
藍牙高層協(xié)議包括對象交換協(xié)議、無線應用協(xié)議和音頻協(xié)議.
(1)對象交換協(xié)議(Object Exchange Protocol,OBEX)
OBEX是由紅外數(shù)據(jù)協(xié)會(IrDA)制定用于紅外數(shù)據(jù)鏈路上數(shù)據(jù)對象交換的會話層協(xié)議.藍牙SIG采納了該協(xié)議,使得原來基于紅外鏈路的OBEX應用有可能方便地移植到藍牙上或在兩者之間進行切換.OBEX是一種高效的二進制協(xié)議,采用簡單和自發(fā)的方式來交換對象.它提供的功能類似于帥協(xié)議,在假定傳輸層可靠的基礎上,采用客戶機.服務器模 式.它只定義傳輸對象,而不指定特定的傳輸數(shù)據(jù)類型,可以是從文件到商業(yè)電子賀卡、從命令到數(shù)據(jù)庫等任何類型,從而具有很好的平臺獨立性.
(2)無線應用協(xié)議(Wireless Application Protocol,WAP)
無線應用協(xié)議(WAP)由無線應用協(xié)議論壇制定,是由移動電話類的設備使用的無線網(wǎng)絡定義的協(xié)議.WAP融合了各種廣域無線網(wǎng)絡技術(shù),其目的是將互聯(lián)網(wǎng)內(nèi)容和電話債券的業(yè)務傳送到數(shù)字蜂窩電話和其他無線終端上.選用WAP可以充分利用為無線應用環(huán)境開發(fā)的高層應用軟件.
(3)音頻協(xié)議(Audio)
藍牙音頻(Audio)是通過在基帶上直接傳輸SCO分組實現(xiàn)的,目前藍牙SIG并沒有以規(guī)范的形式給出此部分.雖然嚴格意義上來講它并不是藍牙協(xié)議規(guī)范的一部分,但也可以視為藍牙協(xié)議體系中的一個直接面向應用的層次.