其實BLE是個通用的技術術語,與平臺無關的,即ios和Android以及一些嵌入式系統或單片機都可以有BLE模塊。

那今天先對Android BLE相關的應用開發的進行講解,不過在瞭解之前,我們有必要去了解BLE簡單介紹和藍牙協議的一些知識。

BLE簡單介紹

BLE: Bluetooth Low Energy,即藍牙低功耗,它是一種技術,從藍牙4.0開始支持。

低功耗藍牙晶元有兩種模式:單模和雙模。

* 單模:只能執行低功耗協議棧,也就是隻支持BLE;

* 雙模:即支持傳統藍牙又支持BLE的使用。

BLE較傳統藍牙具有傳輸速度更快,覆蓋範圍更廣,安全性更高,延遲更短,耗電低等優點。

關鍵術語

Gatt(Generic Attribute Profile)即通用屬性協議,用於在BLE鏈路上發送和接收的數據塊。目前所有的BLE應用都是基於GATT的。一個設備可以實現多個配置文件。

BLE交互的橋樑是Characteristic、Desciptor、Service。

Characteristic:可以理解為一個數據類型,它包括一個value和0至多個對此characteristic的描述(Descriptor);

Descriptor:對Characterisctic的描述,如範圍、單位等;

Service:是Characteristic的集合,它可以包含多個Characteristic。

重點:一個BLE終端可以包含多個Service,一個Service可以包含多個Characteristic,一個Characteristic包含一個value和多個Descriptor,一個Descriptor包含一個value(其中Characteristic比較重要,用的比較多)。

BLE中有四個角色

廣播者(Braodcaster):廣播發送者,是不可連接的設備;觀察者(Observer):掃描廣播,不能夠啟動連接。

註:廣播者和觀察者不能建立連接。

一般應用:感測器和顯示器等。

中央(central):掃描廣播,啟動連接,在單一或多鏈路層作為主機;外圍(periphery):廣播發送者,可連接的設備,在單一鏈路層作為從機。

註:中央和外圍可以進行配對、連接、數據通信。值得注意的是一個中央可以同時連接多個周邊,但是一個周邊只能連接一個中央。

一般應用:手機和手錶等。

---------------------------------------------------------------------------------------------

藍牙協議基礎概念

藍牙協議包括兩種技術:一種是Basic

Rate(簡稱BR),另一種是Low Energy(簡稱LE)。

Basic Rate是正宗的藍牙技術,可以包括可選的EDR(Enhanced Data Rate)技術,以及交替使用的MAC(Media Access Control)層和PHY層擴展(簡稱AMP)。

知識點:BR的發展方向是傳輸速率越快越好,但隨之的是功耗也會越來越大,而在某些場景下,功耗是用戶比較關注的,於是BLE就產生了,即Bluetooth LE。

協議層次

藍牙協議分為四個層次:

(1)物理層:負責提供數據傳輸的物理通道(通常稱為信道);

(2)邏輯層:在物理層的基礎上,提供兩個或多個設備之間,和物理無關的邏輯傳輸通道;

(3)L2CAP: L2CAP是邏輯鏈路控制和適配協議的縮寫,負責管理邏輯層提供的邏輯鏈路;

(4)應用層:基於L2CAP提供的channel,實現各種各樣的應用功能。

藍牙協議是通信協議的一種,為了把複雜問題簡單化,任何通信協議都具有層次性,特點如下:

(1)從下到上分層,通過層層封裝,每一層只需要關心特定,獨立的功能,易於實現和維護;

(2)在通信實體內部,下層向上層提供服務,上層是下層的用戶;

(3)在通信實體之間,協議僅針對每一層,實體之間的通信,就像每一層之間的通信一樣,這樣有利於交流,理解和標準化。

Android 藍牙簡介

Android提供默認的藍牙協議棧是BlueDroid,分為兩層:藍牙嵌入式系統(BTE)和藍牙應用層(BTA),BTE層主要實現藍牙的核心功能,BTA層則主要負責和Android框架通信。

通過這兩幅圖我們可以看到,Android

8.0的藍牙架構和Android7.x以及之前版本還是有差別的。主要差別在供應商的擴展方式上,Android 8.0和以前版本之間的本地藍牙堆棧的最大變化是使用高音。Android 8.0中的供應商實現必須使用HIDL而不是libbt-vendor。

另外Android 8.0還增強了平臺對藍牙的以下三點支持:

支持 AVRCP 1.4 標準,該標準支持音樂庫瀏覽;

支持藍牙低功耗 (BLE) 5.0 標準;

將 Sony LDAC 編解碼器集成到藍牙堆疊中。


推薦閱讀:
相關文章