BLE設備之間的交互過程


 本文的目標 :

  • 了解BLE之間設備是如何工作的,有哪些主要流程,為后續深入BLE協議分析做准備。

 

現在以HRS(Heart Rate Sensor)為例來說明。硬件:Heart Rate Sensor,手機

  •  Heart Rate Sensor:負責檢測心率等信息; 

  •  手機:同HRS通過BLE通信,搜集並展現出心率等信息

二者對應關系如下:

從協議的角度講,Heart Rate Sensor必須提供兩種服務(藍牙規范所定義):

  • Heart Rate Service:提供心率等服務,

  • Device Information Service提供設備信息服務。


連接圖:

手機就是充當Collector的角色;為了了解手機與HRS之間的交互流程,先來看手機端的操作:

    

     

      

  

手機操作經過三步:

  1.  搜索發現設備 My BLE,其藍牙地址是01:88:BE:51:41:44,此時手機只知道周圍有一個BLE設備;

  2. 連接該設備,並搜索發現設備提供的服務,發現其提供兩個服務:Heart Rate Service和Device Information Service

  3. 查看Heart Rate Service提供的服務和操作方法,可以看到,提供SensorLocation,HeartRate測量以及EnergyExpended功能,並且有一個STAR TNOTIFY開關。打開開關就能收到HeartRate Sensor通知的心率值,圖中的70bpm

     


這個過程如下:

Heart Rate Sensor對外廣播,手機掃描搜索周圍設備,並在收到Heart Rate Sensor的廣播數據后發起連接,連接成功后搜索其提供的服務,並發現HeartRate Sensor服務的特性和操作方法,進而獲取心率監測。

 

大致過程如下:


以下是整個過程對應的數據包,從中也可以印證:


  1. 廣播與連接:


2. 鏈路控制,例如更新鏈路參數

 

3.  發現服務(service),發現服務是一個過程,可能通過多次交互才能完成

 

4. 發現服務的特性(characteristics),發現特性也是一個過程,可能通過多次交互才能完成


5. 操作服務,這里包括手機讀或者寫Heartrate sesnsor提供的服務特性,Heart rate sesnsor的主動通知(Notify)方法:


6. 斷開連接

以上這個過程是一個典型的BLE設備之間的交互過程。幾個階段說明如下:(a)廣播與掃描:

一個設備要讓其他設備能發現,則必須向外廣播,而一個設備如果對廣播者感興趣,想進一步了解,則可以通過掃描該設備來進一步獲取該設備提供的信息,通過這個階段,掃描的設備已經基本清楚了廣播設備信息,以及提供的能力,從而可以判斷是否連接該設備。

(b)建立連接:當掃描者想與廣播者可以建立連接,那么設備之間就會有一個建立連接請求。

1) 在建立連接后,如果設備之間要設置一些連接信息或者獲取版本信息等等,這可以提供鏈路層定義的數據格式來發送數據實現,例如master更改連接參數,slave發起更新連接參數請求等等

2) 為了無線安全,例如數據加密,對數據完整性驗證,以及數據在傳送過程中有沒有被修改等,設備之間可以發起配對流程,該過程是可選實現的。

3) 建立連接請求后,為了能獲取設備提供的服務,讓客戶端能操作設備,那么就需要經歷一個設備服務發現過程,只有在這一步后,才能知道設備提供服務的具體操作方法以及操作handle。

4) 知道了設備的具體操作方法,就可以操作設備

5) 最后,設備任意一方可以發起斷開連接請求。

 

整個流程包括了廣播通道上的PDU(廣播和連接請求),以及數據通道上的PDU (L2CAP,ATT/GATT),后面具體章節將根據PDU類型來分析具體流程。

 

更多更新在微信公眾號:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM