藍牙core_v5.2協議-3

繼續上篇文章內容,咱們繼續VOL1中的3.5 LOGICAL LINKS AND LOGICAL TRANSPORTS小節以後的內容學習。本章節講述了BLE傳輸數據時候,不一樣的數據流應該採用不一樣的協議去傳輸,即便用什麼樣的協議去傳輸什麼樣的數據。舉個比較簡單的例子:以前章節咱們提到,ADV的廣播方式是不可靠的數據傳輸方式,若是應用要求傳輸數據可靠度很高,就不能夠採用ADV的方式去傳播數據。算法

如下列舉了目前BLE支持的logical transport方式:ACL(基於connect的可靠傳輸), ADV(基於廣播的不可靠傳輸), ISO(流數據傳輸)安全


1. 傳輸使用的Logical transports介紹網絡

LE ACL:基於鏈接的,用於傳輸LL and L2CAP control signaling and best effort asynchronous user data。此種傳輸使用NESN/SN和access address來保證傳輸的可靠性。傳輸的link包括LE-C,LE-U.架構

LE advertising broadcast (ADVB):基於廣播的,broadcast control and user data to all scanning devices in a given area。不可靠的數據傳輸方式。傳輸的link包括ADVB-C,ADVB-U.框架

Connectionless Slave Broadcast (CSB):多鏈接狀況使用的,基於鏈接的,不可靠傳輸方式。通常在LE中比較少用。less

LE periodic advertising broadcast (PADVB):週期廣播方式,基於廣播的。transport periodic broadcast control and user data to all scanning devices in a given area。async

Connected Isochronous Stream (CIS):基於鏈接的,傳輸同步流數據,支持sochronous data rates, latencies, and re-transmissions。舉個例子:audio codec data can be generated at a 10 ms interval while the value of ISO_Interval for the CIS can be 11.25 ms.學習

Connected Isochronous Group (CIG):基於鏈接的,傳輸同步組數據,即多個CIS數據傳輸。加密

Broadcast Isochronous Stream (BIS):基於廣播的,傳輸同步流數據,支持sochronous data rates, latencies, and re-transmissions。設計

Broadcast Isochronous Group (BIG):基於廣播的,傳輸同步組數據,即多個CIS數據傳輸。


2. BLE拓撲圖

 上圖中存在5個網絡:

網絡A:ABCDE構成,AB,AC處於鏈接狀態,AD,CE處於廣播狀態。這是一個比較典型的BLE複雜應用網絡,屬於多鏈接狀況下的廣播數據交換。

網絡F:FG構成,FG處於鏈接狀態。這是一個簡單的BLE鏈接應用網絡,例如一個手機鏈接手環。

網絡H:HIJ構成,HIJ處於廣播狀態,同時互爲接受者。這是一個藍牙SIG MESH的基本網絡方式。

網絡K:KLMN構成,KL,KM處於鏈接狀態,KN處於廣播狀態。這類網絡應用較少,尤爲是K設備同時具有Master和slaver的功能,在協議的實現上很難實現。

網絡O:OPQR構成,OP,OP處於鏈接狀態,OR處於廣播狀態。這類網絡應用也比較少,設備O可以隸屬入多個master,在時序上很難保證。


這裏就不得不說下BLE藍牙設備的幾種基本形態了,方便理解上述圖:

如圖所示,BLE設備工做基本有四種形態:ADV-ing,SCAN-ing,INIT-ing,CONNECT-ing。這四種工做形態也決定了設備處於的角色,上圖中能夠看出設備處於connection狀態的前提是先要處於ADV或者INIT。因此人爲的把由ADV到connection的設備,稱爲slaver;相對應的由INIT到connection的設備,稱爲master。

上述的幾種網絡中不難看出,很多設備會兼容好幾種狀態。例如設備A,處於connect狀態下,還有能力進行ADV,這樣的設備在應用中很常見,同時也加大了芯片設計的難度。設備可以同時處於幾種BLE狀態,其必需要可以均衡好本身的時序,尤爲是connect狀態的時序,由於BLE的connect狀態下,必須按期進行空包交互,纔不至於丟失connect關係。


3. BLE安全相關SECURITY介紹

藍牙安全模型包括五個不一樣的安全功能:配對、綁定、設備身份驗證、加密和消息完整性(pairing, bonding, device authentication, encryption and message integrity)。

配對:建立一個或多個共享密鑰的過程。

綁定:將配對過程當中建立的密鑰存儲起來,以便在後續鏈接中使用,以造成一個受信任的設備對。

設備身份驗證:驗證兩個設備是否具備相同的密鑰。

加密:消息機密性。

消息完整性:防止消息僞造。

所謂的安全,就是經過必定的加密方式,使得數據通訊信息不被竊取。上圖中的一些算法,尤爲是AES算法,是BLE中最基本的加密方法。

正如咱們以前講到的包格式,BLE中若是想把數據包加密,能夠經過如下幾種方式:

a. 直接加密payload,這是一種比較常見的加密方式,即傳輸的有效數據進行加密;

b. 對包頭的地址進行加密,BLE中發送和接受數據都會有address這個說法,對其address進行加密,也能夠達到數據加密的目的;

上面的兩種方式,便是協議中說到的Encryption和Privacy。其中Privacy是BLE在4.2版本中(Link Layer privacy)提出的新feature,其實目前市場藍牙芯片大多不使用這個feature。


4. BLE的profile架構

 

GAP:Generic Access Profile (GAP)。衆多的profile中,GAP是一個通用的profile,它規定了一個設備的基本屬性,例如:Broadcaster, Observer, Peripheral, and Central.

Broadcaster role(廣播者):advertising to broadcast data. The Broadcaster role does not support connections. 即對應LL層如下的ADV設備。

Observer role (觀察者):receives broadcast data contained in advertisements. The Observer role does not support connections. 即對應LL層的SCAN設備。
Peripheral role(外設):即鏈接中的slaver設備,只能隸屬於一個master。

Central role(中心):即鏈接中的master設備,能夠鏈接多個slaver設備。

通常的用戶應用profile,基本都會包括GAP。以下圖所示:


5. 共存問題和定位問題

藍牙的工做頻段位於2.4G,許多其餘的無線設備也工做在這個頻段。因此如何保證共存,是一個值得探討的問題,藍牙官方spec中也對此作出了探討。目前市場上出現了很多wifi和ble同時可使用的芯片,這種芯片可以使用wifi鏈接雲端,同時還可使用ble和其餘設備進行通訊,這在物聯網時代是很不錯的產品,這個是一個新的市場商機。

咱們重點探討如何實現wifi和ble進行共存的問題,在這個章節,spec提到了AFH是面臨的一個基本問題,spec中不作具體說明。後面會繼續涉及。

關於定位的問題,BLE提出了一種新的定位方式:(AoA和AoD),須要注意的是,使用這種方式必須工做在LE Uncoded PHYs。

關於AoA的基本框架圖:

發送者在發送數據時候,正常發送。可是做爲接收者,須要有多組天線接收數據,這樣能夠經過天線之間接收數據的差別來定位本身的位置。 這裏有個重要的值:IQ採樣值(不知道和智商IQ有沒有關係。。。。),spec指出經過這個IQ採樣值,就能夠計算出本身的位置。

假設接收端有2根天線,同時天線之間的距離d爲已知數據。

根據上圖,咱們能夠計算出來,天線1和天線2的信號相位差ψ:

                                               ψ = (2πd cos(θ))/λ   (λ信號的波長,θ爲到達角度)
那麼:                                   

                                               θ = arccos((ψλ)/(2πd))

也就是說,一旦咱們可以經過必定手段知道ψ這個值,咱們就能夠算出到達角θ。便可以知道本身設備的相對位置。

關於AoD的基本框架圖:

和AoA存在很大的類似度,這裏就不作描述。


6.  歷屆版本的新feature

4.2版本到5.0版本的更新,添加了如下幾個feature:

 

5.0版本到5.1版本的更新,添加了如下幾個feature:

5.1版本到5.2版本的更新,添加了如下幾個feature:

之因此把版本更新列出來,主要是由於目前市場上的4.2芯片居多。不少自稱5.0的芯片,其實只是部分支持5.0的相關feature,不多有芯片可以所有支持全部feature。 

 

本篇文章繼續了以前Vol1剩下的章節,後面咱們會接着探討BLE的Vol 3:Host協議。。。。。

相關文章
相關標籤/搜索