1. 程式人生 > >藍芽協議分析_基本概念

藍芽協議分析_基本概念

1. 前言

自1994年由愛立信推出至今,藍芽技術已經走過了20個歲月。從最初的Bluetooth V1.0,到如今的Bluetooth V4.0(最新的為V4.1,2013年底釋出),經歷了近9個版本的修訂後,發展為當前的狀況。

說實話,如今的藍芽4.0,簡直是一個大雜燴:BR/EDR沿用舊的藍芽規範;LE抄襲802.15.4;AMP直接使用802.11。而這一切的目的,就是以相容性和易用性為基礎,在功耗和傳輸速率之間左右為難。蝸蝸以為,這並不是優雅的設計。

不過沒關係,存在即合理。因此蝸蝸就開出了這樣一個專題,希望能夠將藍芽技術上上下下的知識,整理出來,以便在加深自己對藍芽技術的理解的同時,能夠給從事藍芽相關工作的讀者一點啟發。

本文是這個專題的第一篇文章,主要基於藍芽4.0規範(Core_V4.0.pdf),描述藍芽技術的基本概念。

2. 藍芽技術的概述

2.1 兩種藍芽技術:Basic Rate(BR)和Low Energy(LE)

藍芽協議包括兩種技術:Basic Rate(簡稱BR)和Low Energy(簡稱LE)。這兩種技術,都包括搜尋(discovery)管理、連線(connection)管理等機制,但它們是不能互通的!這也是蝸蝸抱怨藍芽協議不優雅的原因之一。

廠商要麼實現這兩種技術中的一種,這時就只能和同樣實現了這個技術的裝置互通,而不能和實現另外一種技術的裝置互通。如果廠商要確保能和所有的藍芽裝置互通,那麼就只能同時實現兩種技術,而不去管是否真的需要,這樣就能碰到什麼人說什麼話了!

2.1.1 Basic Rate(BR)

Basic Rate是正宗的藍芽技術,可以包括可選(optional)的EDR(Enhanced Data Rate)技術,以及交替使用的(Alternate)的MAC(Media Access Control)層和PHY層擴充套件(簡稱AMP)。說著真拗口,不過通過背後的應用場景,就好理解了:

藍芽誕生之初,使用的是BR技術,此時藍芽的理論傳輸速率,只能達到721.2Kbps。在那個年代,56Kbps的Modem就是高大上了,這個速度可以說是驚為天人了啊!但是科技變化太快了,BR技術轉眼就過時了。那怎麼辦呢?縫縫補補一下,增強速度唄,Enhanced Data Rate就出現了。

使用EDR技術的藍芽,理論速率可以達到2.1Mbps。這一次的升級換代,還算優雅,因為沒有改變任何的硬體架構、軟體架構和使用方式上的改變。

也許你也猜到了,EDR又落伍了,看看人家WIFI(WLAN),幾十Mbps,上百Mbps,咱們才2.1Mbps,也太寒酸了吧!那怎麼辦呢?藍芽組織想了個壞主意:哎,WIFI!把你的物理層和MAC層借我用用唄!這就是AMP(Alternate MAC and PHY layer extension)。艾瑪,終於鬆口氣了,我們可以達到24Mbps了。

不過呢,由於藍芽自身的物理層和AMP技術差異太明顯了,這次擴充套件只能是交替使用(Alternate)的,也就是說,有我(BR/EDR)沒你(AMP)。嗯!不優雅!

埋個問題:只能交替使用,那它們怎麼切換呢?蝸蝸會在後續的內容中,根據主流藍芽晶片的解決方案,來探討一下該問題。

【注1:細心的讀者可能會注意到,這裡特別強調了optional和alternate這兩個字眼,這是藍芽Spec的原話。它意味著,BR和EDR是可以同時存在的,但BR/EDR和AMP只能二選一。】

2.1.2 Low Energy(LE)

上面所講的BR技術的進化路線,就是傳輸速率的加快、加快、再加快。但能量是守恆的,你想傳的更快,代價就是消耗更多的能量。而有很多的應用場景,並不關心傳輸速率,反而非常關心功耗。這就是Bluetooth LE(稱作藍芽低功耗)產生的背景。

LE技術相比BR技術,差異非常大,或者說就是兩種不同的技術,湊巧都加一個“藍芽”的字首而已。後面我們會詳細的解釋這種差異,以及LE的行為特徵。

2.2 藍芽系統的組成

藍芽系統的組成,涉及到Bluetooth Application、Bluetooth Core、Bluetooth Host、Bluetooth Controller等詞彙,不知道是因為對英文理解的歧義,還是因為藍芽規範本身定義的歧義,蝸蝸理解這些詞彙時感覺有點彆扭。因此特意在這個章節中,對相關概念及其背後的意義進行說明。

藍芽系統組成上圖描述了藍芽系統的組成, 我們需要注意如下特點:

1)圖中所描述的藍芽系統的組成部分,如Bluetooth Core和Bluetooth Application,如Host和Controller,都是指“邏輯實體”。所謂的“邏輯實體”,需要和日常生活中的“物理實體”區隔開。如在做電路設計時,一個藍芽晶片、一個主控CPU,就是指物理實體。而藍芽協議所描述的這些“邏輯實體”,不一定會和物理實體一一對應,如在實際應用中,Host和Bluetooth Application可能會位於同一個物理實體中(主控CPU),而Controller單獨位於另一個物理實體中(藍芽晶片)。

2)藍芽協議規定了兩個層次的協議,分別為藍芽核心協議(Bluetooth Core)和藍芽應用層協議(Bluetooth Application)。藍芽核心協議關注對藍芽核心技術的描述和規範,它只提供基礎的機制,並不關心如何使用這些機制;藍芽應用層協議,是在藍芽核心協議的基礎上,根據具體的應用需求,百花齊放,定義出各種各樣的策略,如FTP、檔案傳輸、區域網等等。

3)Bluetooth Core由兩部分組成,Host和Controller。這兩部分在不同的藍芽技術中(BR/EDR、AMP、LE),承擔角色略有不同,但大致的功能是相同的。Controller負責定義RF、Baseband等偏硬體的規範,並在這之上抽象出用於通訊的邏輯鏈路(Logical Link);Host負責在邏輯鏈路的基礎上,進行更為友好的封裝,這樣就可以遮蔽掉藍芽技術的細節,讓Bluetooth Application更為方便的使用。

4)在一個系統中,Host只有一個,但Controller可以一個,也可以有多個。如:單獨的LE Controller;單獨的BR/EDR Controller;單獨的LE+BR/EDR Controller;在單獨的BR/EDR Controller或LE+BR/EDR Controller基礎上,增加一個活多個額外的AMP Controller。

【注2:有關Bluetooth Core的詳細描述,蝸蝸會在下一篇文章中描述,本文就不再深入介紹了。】

3. BR/EDR vs LE vs AMP

From: http://www.wowotech.NET/bluetooth/bt_overview.html

From: http://blog.csdn.net/augusdi/article/details/25892479