BLE設備角色


 

 

 

 

  1. BLE角色

對於一個BLE設備,當和其他藍牙設備通信或者加入一個BLE網絡時,其可能有四個角色:

  • Broadcaster: 又稱為Advertiser,周期性的向周圍設備廣播數據,

  • Observer:又稱為Scanner,可以監聽廣播數據或者搜索周圍設備,

  • Central: 又稱為master,負責掃描設備並發起建立請求,在建立連接后變成master

  • Peripheral: 可稱為slave,  負責廣播的並接收連接請求的設備在建立連接后稱為slave

     

 

這些角色是鏈路層定義的,是根據設備是否建立連接來划分分的,可以將這四個類型的設備邏輯的划分為兩組:

  • advertiser和scanner 

  • master和slave

advertiser 和 scanner屬於廣播階段的概念,即在建立連接之前設備角色。master 和slave屬於建立連接之后的概念,一旦建立連接,scanner角色變為master,advertiser變為slave。

 

例如一個心率感應器(Heart rate sensor)和手機連接:

 

                        

心率感應器HRS(Heart rate sensor)發送廣播數據,當手機掃描時,能發現心率感應器,並與其建立連接,那么建立連接后,心率感應器的角色是slave,而手機的角色是maser。

 

但是有的設備做法相反,例如小米手機和小米手環,在他們的實現中,則是由手機發送廣播,手環負責掃描周圍設備,來建立連接,這種情況,手機作為slave,而手環作為master。

 

 

2. Server 和client

 

根據應用場景的需求,一個設備可以是master,也可以是slave或者二者兼備。初始化建立連接的設備稱為master,負責廣播的並接收連接請求的設備稱為slave

 

通過上面的例子可以看到,在建立連接后,支持HRS的手環提供了檢測心率的功能,稱其為server,因為其提供了某種服務,而手機僅僅是將server端的功能獲取並展現出來,稱其為client。於是對於BLE設備,依據是否提供服務,可以將這個設備分為是server還是client。

 

Server 和client是ATT/GATT層定義的概念,ATT采用的是client/server模式的交互方式,Client從server端請求數據,server將數據發送給client。

Master和slaver是相對連接而言,client和server是獨立於master和slave的概念,每個BLE設備有可能是client或者server或者二者兼備。

 

舉例如下:

一個支持BLE的燈可以使用手機APP通過BLE協議來控制,手機負責發現燈並主動發起建立連接,燈的角色是Peripheral,手機的角色是Central。

而燈提供了亮度和色彩控制服務,可以使用手機來調節,因此燈是一個服務的提供者(Server)角色,而手機是響應的client。

3.  狀態轉換

BLE定義的角色,可以相互轉換,於是有一個或者多個狀態機(BLE4.0僅支持一個狀態機),每個狀態機可能有五種狀態。

 

Standby:沒有任何活動,即不發送數據也不接收數據,

Advertising:發送廣播數據

Scanning:監聽廣播數據或者主動掃描周圍設備

Initiating:接到廣播數據后,主動發起連接(CONNECT_REQ),由Scanning的角色發起。

Connection:master和slave建立連接,而后兩個設備在數據通道上通信,而不再使用廣播和掃描的方式。

 

https://mp.weixin.qq.com/s?__biz=MzI1NTIzMTk0Ng==&mid=2247483673&idx=1&sn=0d4666c65d2828cc8ab3ac97e2992a73&chksm=ea3853bcdd4fdaaa78e8e187a54027dd1fa8e573baef34ffb1a7f6919ca0f7958c9f5d45e06d&token=1514169698&lang=zh_CN#rd

 


免責聲明!

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



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