藍芽協議分析(1)_基本概念
1. 前言
自1994年由愛立信推出至今,藍芽技術已經走過了20個歲月。從最初的Bluetooth V1.0,到Bluetooth V4.0(最新的為V4.1,2013年底釋出),經歷了近9個版本的修訂後,發展為當前的狀況。
說實話,如今的藍芽4.1,簡直是一個大雜燴:BR/EDR沿用舊的藍芽規範;LE抄襲802.15.4;AMP直接使用802.11。而這一切的目的,就是以相容性和易用性為基礎,在功耗和傳輸速率之間左右為難。蝸蝸以為,這並不是優雅的設計。
不過沒關係,存在即合理。因此蝸蝸就開出了這樣一個專題,希望能夠將藍芽技術上上下下的知識,整理出來,以便在加深自己對藍芽技術的理解的同時,能夠給從事藍芽相關工作的讀者一點啟發。
本文是這個專題的第一篇文章,主要基於藍芽4.1規範(Core_V4.1.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)。艾瑪,終於鬆口氣了,我們可以達到54Mbps了。
不過呢,由於藍芽自身的物理層和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
我們先從下面圖片對BR/EDR、AMP和BLE三種技術有些更進一步的認識(點選這裡可以檢視放大後的原圖):
該圖片是對Bluetooth Core的一個Overview,從RF的Physical Channel,到Baseband的Physical Link、Logical Link、LMP、L2CAP等概念,都有一些粗略的介紹。由該圖片可以看出,BR/EDR、AMP、BLE等技術有如下的特點:
1)BR/EDR技術,過於側重“點對點”通訊,以至於雖然在協議的底層(如Logical Link)有提及多播(Unidirectional)和廣播(Broadcast)的概念,但在上層的應用場景中,幾乎不存在(也不可能存在)相應的應用。
2)但隨著物聯網的發展,業界對簡單的、不需要連線的多播或廣播通訊的需求越來越迫切,因此BLE技術在RF和Baseband的協議中,就做出了修改,以適應這種需求,即:修改原有的79個channel的跳頻方式,將channel的個數減少為40個,並保留了不少於3個的固定channel,用於廣播通訊。為僅僅在剩下的37個data channel上跳頻。
3)正因為這種改變,原有的搜尋/連線/配對等概念,在BLE上就不再存在了,取而代之的是Advertisor、Initiator等概念。但在之後的資料通訊的層次上,儘量保持了一致。
4)對於AMP來說,是基於BR/EDR的controller,在完成通常的點對點連線之後,兩個藍芽裝置商議,是否需要將後續的資料通訊,轉移至AMP controller上。這就是Bluetooth 3.0引入的AMP技術。
我們暫時在這篇文章中對藍芽技術做一個感性認識,在後續的文章中,會基於各個層次的協議,一步一步展開、推進,爭取能把藍芽技術分析透徹。