對于藍牙,小伙伴們都已經(jīng)熟的不能再熟了,真可謂是已經(jīng)熟透了呀。尤其是在WiFi還沒有這么普遍的幾年以前,上網(wǎng)下載東西不是這么地方便,那時候一旦一個小伙伴有了什么音頻、視頻、文檔、圖像等的珍惜資源時,大家都是通過藍牙來進行資源共享的。用專業(yè)術語來講,藍牙其實是一個開放性的無線通信標準,通過使用隱形的連接線代替電纜來完成“保持聯(lián)系、不靠電纜、拒絕插頭”的目標,雖然目前它的魅力不足WIFI。
藍牙簡介
藍牙是一種支持設備短距離通信(一般是10m之內(nèi))的無線電技術。能在包括移動電話、PDA、無線耳機、筆記本電腦、相關外設等眾多設備之間進行無線信息交換。藍牙的標準是IEEE802.15,工作在2.4GHz 頻帶,帶寬為1Mb/s。
“藍牙”(Bluetooth)原是一位在10世紀統(tǒng)一丹麥的國王,他將當時的瑞典、芬蘭與丹麥統(tǒng)一起來。用他的名字來命名這種新的技術標準,含有將四分五裂的局面統(tǒng)一起來的意思。藍牙技術使用高速跳頻(FH,F(xiàn)requency Hopping)和時分多址(TDMA,me DivesionMuli—access)等先進技術,在近距離內(nèi)最廉價地將幾臺數(shù)字化設備(各種移動設備、固定通信設備、計算機及其終端設備、各種數(shù)字數(shù)據(jù)系統(tǒng),如數(shù)字照相機、數(shù)字攝像機等,甚至各種家用電器、自動化設備)呈網(wǎng)狀鏈接起來。藍牙技術將是網(wǎng)絡中各種外圍設備接口的統(tǒng)一橋梁,它消除了設備之間的連線,取而代之以無線連接。
藍牙協(xié)議棧
藍牙技術是一種無線數(shù)據(jù)與數(shù)字通信的開放性規(guī)范。它以低成本、近距離無線連接為基礎,為固定與移動設備建立了一種完整的通信方式和技術。
藍牙技術的實質(zhì)是建立通用無線接口及其控制軟件的標準,使移動通信與計算機網(wǎng)絡之間能實現(xiàn)無縫連接,由此,為不同廠家生產(chǎn)的便攜式設備提供了近距離(10m~100m)范圍內(nèi)的互操作通道。
協(xié)議層次
藍牙協(xié)議是通信協(xié)議的一種,為了把復雜問題簡單化,任何通信協(xié)議都具有層次性,特點如下:
從下到上分層,通過層層封裝,每一層只需要關心特定的、獨立的功能,易于實現(xiàn)和維護;
在通信實體內(nèi)部,下層向上層提供服務,上層是下層的用戶;
在通信實體之間,協(xié)議僅針對每一層,實體之間的通信,就像每一層之間的通信一樣,這樣有利于交流、理解、標準化。
藍牙協(xié)議也不例外,其協(xié)議層次如下:
從OSI(Open System Interconnecon)模型的角度看,藍牙是一個比較簡單的協(xié)議,它僅僅提供了物理層(Physical Layer)和數(shù)據(jù)鏈路層(Data Link Layer )兩個OSI層次。但由于藍牙協(xié)議的特殊性、歷史演化因素等原因,其協(xié)議層次又顯的不簡單,甚至晦澀難懂(如上面圖片所示的Physical Link、Logical Transport等)。
藍牙協(xié)議分為四個層次:物理層(Physical Layer)、邏輯層(Logical Layer)、L2CAP Layer和應用層(APP Layer)。
物理層,負責提供數(shù)據(jù)傳輸?shù)奈锢硗ǖ?通常稱為信道)。通常情況下,一個通信系統(tǒng)中存在幾種不同類型的信道,如控制信道、數(shù)據(jù)信道、語音信道等等。
邏輯層,在物理層的基礎上,提供兩個或多個設備之間、和物理無關的邏輯傳輸通道(也稱作邏輯鏈路)。
L2CAP層,L2CAP是邏輯鏈路控制和適配協(xié)議(Logical Link Control and Adaptaon Protocol)的縮寫,負責管理邏輯層提供的邏輯鏈路。基于該協(xié)議,不同Applicaon可共享同一個邏輯鏈路。類似TCP/IP中端口(port)的概念。
APP層,理解藍牙協(xié)議中的應用層,基于L2CAP提供的channel,實現(xiàn)各種各樣的應用功能。Profile是藍牙協(xié)議的特有概念,為了實現(xiàn)不同平臺下的不同設備的互聯(lián)互通,藍牙協(xié)議不止規(guī)定了核心規(guī)范(稱作Bluetooth core),也為各種不同的應用場景,定義了各種Application規(guī)范,這些應用層規(guī)范稱作藍牙profile。
藍牙協(xié)議棧體系結(jié)構
藍牙協(xié)議棧體系結(jié)構為分層結(jié)構,具體如圖所示
藍牙技術規(guī)范的目的是使符合該規(guī)范的各種應用之間能夠?qū)崿F(xiàn)互操作?;ゲ僮鞯倪h端設備需要使用相同的協(xié)議棧,不同的應用需要不同的協(xié)議棧。并不是任何應用都必須使用全部協(xié)議,而是可以只使用其中的一層或多層。但是,所有的應用都要使用藍牙技術規(guī)范中的數(shù)據(jù)鏈路層和物理層。
設計藍牙協(xié)議棧的主要原則是盡可能地利用現(xiàn)有的各種高層協(xié)議,保證現(xiàn)有協(xié)議與藍牙技術的融合以及各種應用之間的互通性以及充分利用兼容藍牙技術規(guī)范的軟硬件系統(tǒng)。藍牙技術規(guī)范的的開放性保證了設備制造商可自由地選用其專利協(xié)議或常用的公共協(xié)議,在藍牙技術規(guī)范基礎上開發(fā)新的應用。藍牙技術規(guī)范包括Core和Profiles兩大部分.Core是藍牙的核心,主要定義藍牙的技術細節(jié);Profiles部分定義了在藍牙的各種應用中的協(xié)議棧組成,并定義了相應的實現(xiàn)協(xié)議棧。
按照各層協(xié)議在整個藍牙協(xié)議體系中所處的位置,藍牙協(xié)議可分為底層協(xié)議、中間層協(xié)議和高層協(xié)議三大類。
藍牙底層協(xié)議
藍牙底層協(xié)議實現(xiàn)藍牙信息數(shù)據(jù)流的傳輸鏈路,是藍牙協(xié)議體系的基礎,它包括射頻協(xié)議、基帶協(xié)議和鏈路管理協(xié)議。
(1)射頻協(xié)議(Radio Frequency Protocol)
藍牙射頻協(xié)議處于藍牙協(xié)議棧的最底層,主要包括頻段與信道安排、發(fā)射機特性和接收機特性等,用于規(guī)范物理層無線傳輸技術,實現(xiàn)空中數(shù)據(jù)的收發(fā)。藍牙工作在2.4GHz ISM頻段,此頻段在大多數(shù)國家無須申須運營許可,使得藍牙設備可工作于任何不同的地區(qū)。
信道安排上,系統(tǒng)采用跳頻擴頻技術,抗干擾能力強、保密性好。藍牙SIG制定了兩套跳頻方案,其一是分配79個跳頻信道,每個頻道的帶寬為1MHz,其二是23信道的分配方案,1.2版本以后的藍牙規(guī)范目前已經(jīng)不再推薦使用第二套方案。
(2)基帶協(xié){,S((Base Band Protocol)
基帶層在藍牙協(xié)議棧中位于藍牙射頻層之上,同射頻層一起構成了藍牙的物理層。
基帶層的主要功能包括:鏈路控制,比如承載鏈路連接和功率控制這類鏈路級路由;管理物理鏈路,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)進行通信。
藍牙中間層協(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采用了多路技術、分割和重組技術、組提取技術,主要提供協(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)是藍牙技術框架中至關重要的一層,它是所有應用模型的基礎。任何一個藍牙應用模型的實現(xiàn)都是利用某些服務的結(jié)果。在藍牙無線通信系統(tǒng)中,建立在藍牙鏈路上的任何兩個或多個設備隨時都有可能開始通信,僅僅是靜態(tài)設置是不夠的。藍牙服務發(fā)現(xiàn)協(xié)議就確定了這些業(yè)務位置的動態(tài)方式,可
以動態(tài)地查詢到設備信息和服務類型,從而建立起一條對應所需要服務的通信信道。
藍牙高層協(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)絡技術,其目的是將互聯(lián)網(wǎng)內(nèi)容和電話債券的業(yè)務傳送到數(shù)字蜂窩電話和其他無線終端上。選用WAP可以充分利用為無線應用環(huán)境開發(fā)的高層應用軟件。
(3)音頻協(xié)議(Audio)
藍牙音頻(Audio)是通過在基帶上直接傳輸SCO分組實現(xiàn)的,目前藍牙SIG并沒有以規(guī)范的形式給出此部分。雖然嚴格意義上來講它并不是藍牙協(xié)議規(guī)范的一部分,但也可以視為藍牙協(xié)議體系中的一個直接面向應用的層次。
藍牙技術原理
藍牙系統(tǒng)主要由天線單元、鏈路控制單元、鏈路管理單元和藍牙軟件單元四部分構成組成。其中,天線單元即天線,用于完成電信號的接收與發(fā)送;鏈路控制單元中包括多個鏈路控制器,其中基帶鏈路控制器用于負責處理基帶協(xié)議和其它一些低層常規(guī)協(xié)議;鏈路管理單元用于攜帶鏈路的數(shù)據(jù)設置、鑒權、鏈路硬件配置和其它一些協(xié)議;藍牙軟件單元主要包括兩部分,其中第一部分為核心部分,用于規(guī)定諸如射頻、基帶、連接管理、業(yè)務搜尋、傳輸層以及與不同通信協(xié)議之間的互用、互操作性等組件,第二部分為協(xié)議子集部分,用于規(guī)定不同藍牙應用所需的協(xié)議和過程。