藍(lán)牙低功耗(BluetoothLE)是世界上功率最高的短距離無線通信技術(shù)之一。其低功耗被開發(fā)商和消費(fèi)者廣泛贊譽(yù)。隨著藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)(Mesh)的發(fā)布,開發(fā)人員可能會(huì)想知道藍(lán)牙網(wǎng)格是否也被設(shè)計(jì)為低功耗。它是否繼承了藍(lán)牙LE低功耗的優(yōu)勢(shì)?
答案是肯定的!藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)包括優(yōu)化功耗的各種措施,特別是稱為“友鄰節(jié)點(diǎn)(Friendship)”的功能。
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)標(biāo)準(zhǔn)概述
藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)中的Friendship功能的應(yīng)用可能非常多樣化。一些產(chǎn)品,如燈,將連接到主電源,藍(lán)牙網(wǎng)格模塊的功耗與光線本身的功耗相比,可以忽略不計(jì)。但是其他產(chǎn)品,如智能傳感器或鎖具,將受到功率限制,這意味著它們需要由小型電池或能量采集技術(shù)供電。像這樣的產(chǎn)品最有可能利用藍(lán)牙網(wǎng)格的Friendship概念。
如果您已經(jīng)閱讀了我們的藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)系列中的較早的文章,那么您已經(jīng)知道節(jié)點(diǎn)是已經(jīng)被設(shè)置并且是網(wǎng)狀網(wǎng)絡(luò)成員的設(shè)備。節(jié)點(diǎn)具有與產(chǎn)品類型相關(guān)的功能,但是也可以具有關(guān)于網(wǎng)絡(luò)本身的操作的功能,并且可以承擔(dān)特殊的角色。
這由他們支持的網(wǎng)格特征決定。所有節(jié)點(diǎn)都可以在網(wǎng)絡(luò)中發(fā)送和接收mesh消息。此外,節(jié)點(diǎn)還可以選擇性地支持一個(gè)或多個(gè)額外的網(wǎng)絡(luò)功能,如下所列:
· 中繼功能:通過廣播承載接收和重傳網(wǎng)狀消息的能力,以實(shí)現(xiàn)更大的網(wǎng)絡(luò)。
· 代理功能:在GATT和廣播承載之間接收和重傳網(wǎng)狀消息的能力。
· 低功耗特性:能夠以顯著降低的接收機(jī)占空比在網(wǎng)狀網(wǎng)絡(luò)內(nèi)工作。使無線電接收器的時(shí)間最小化導(dǎo)致節(jié)點(diǎn)的功耗降低,只有在嚴(yán)格必要時(shí)才能使接收機(jī)使能。低功耗節(jié)點(diǎn)(LPN)通過與Friend節(jié)點(diǎn)建立Friendship來實(shí)現(xiàn)這一點(diǎn)。
· 友鄰功能:通過存儲(chǔ)發(fā)往LPN的消息來幫助LPN運(yùn)行的能力,并且只有在LPN明確地從“Friend”節(jié)點(diǎn)請(qǐng)求消息時(shí)才轉(zhuǎn)發(fā)它們。
要了解Friendship如何使LPN降低功耗,請(qǐng)考慮傳感器。傳感器是一種可能利用Friendship并充當(dāng)LPN的節(jié)點(diǎn)的一個(gè)很好的例子。他們通?;ㄙM(fèi)最多的時(shí)間來傳輸數(shù)據(jù),而且很少需要接收數(shù)據(jù)。也許傳感器只有在超出一組配置的限制范圍內(nèi)才能發(fā)送溫度讀數(shù),也許這只會(huì)每天發(fā)生兩次。這種不頻繁的數(shù)據(jù)傳輸保持了這種類型的設(shè)備的能量消耗低。
但是如果這些溫度限制需要修改以根據(jù)季節(jié)使用不同的值,并且通過向傳感器發(fā)送配置消息來實(shí)現(xiàn)這些限制的修改呢?對(duì)于傳感器直接接收這樣的消息,需要切換無線并進(jìn)行收聽。大多數(shù)時(shí)候它正在聽,沒有收到任何東西,但能量消耗了。
所以,與Friend合作允許LPN安排使用無線接收消息到任何頻率對(duì)于該設(shè)備是有意義的,并且以比其它需要的頻率低得多的頻率,如果它必須一直接收消息。 LPNs輪詢他們的Friend的新消息,Friend只會(huì)偶爾存儲(chǔ)。這是如何節(jié)省電力。
友鄰和低功耗節(jié)點(diǎn)
LPN必須與支持Friend功能的另一個(gè)節(jié)點(diǎn)建立Friendship關(guān)系,以減少其接收器占空比并節(jié)省能源。圖1取自藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)規(guī)范。另外,它說明了LPN和Friend節(jié)點(diǎn)之間的關(guān)系。特別是它顯示:
·Light blue: LPNs
·Dark grey: Friend nodes associated with and service specific LPNs
·Light grey: Friend nodes which do not have a relationship with anLPN
·淺藍(lán)色:LPN
·深灰色:與特定LPN相關(guān)聯(lián)的Friend節(jié)點(diǎn)
·淺灰色:與LPN沒有關(guān)系的Friend節(jié)點(diǎn)
圖1 - 網(wǎng)狀網(wǎng)絡(luò)的拓?fù)涫纠?/span>
Friend節(jié)點(diǎn)P與LPNI,J和K具有Friendship關(guān)系。Friend節(jié)點(diǎn)O與LPN L和M具有Friendship關(guān)系。因此,尋址到節(jié)點(diǎn)I,J或K的消息將被Friend P存儲(chǔ)并轉(zhuǎn)發(fā)。節(jié)點(diǎn)L或M將被Friend O存儲(chǔ)和轉(zhuǎn)發(fā)。由Friend節(jié)點(diǎn)轉(zhuǎn)發(fā)僅在LPN輪詢Friend以獲得等待傳送的消息時(shí)發(fā)生。
友鄰節(jié)點(diǎn)參數(shù)
LPN需要找到“Friend”節(jié)點(diǎn)并與他們建立Friendship關(guān)系。所涉及的程序稱為Friend建立。我們稍后會(huì)檢查這個(gè)過程,但在我們介紹一些關(guān)于LPN行為的關(guān)鍵參數(shù)之前,因?yàn)檫@些參數(shù)是在Friend建立過程中設(shè)置的。
1. ReceiveDelay是LPN之間經(jīng)過的時(shí)間,向Friend節(jié)點(diǎn)發(fā)送請(qǐng)求,并開始收聽響應(yīng)。這允許“Friend”節(jié)點(diǎn)時(shí)間準(zhǔn)備其響應(yīng)并將其發(fā)送回來。
2. ReceiveWindow是LPN花費(fèi)時(shí)間來收聽響應(yīng)的時(shí)間。圖2說明了涉及ReceiveDelay和ReceiveWindow的時(shí)序。
圖2- ReceiveDelay和ReceiveWindow時(shí)序
1. PollTimeout建立在LPN發(fā)送給其“Friend”節(jié)點(diǎn)的兩個(gè)連續(xù)請(qǐng)求之間可能經(jīng)過的最長(zhǎng)時(shí)間。如果在PollTimeout計(jì)時(shí)器到期之前,Friend節(jié)點(diǎn)沒有收到LPN的請(qǐng)求,則Friendship將被終止。
圖3- PollTimeout時(shí)序
友鄰節(jié)點(diǎn)建立
如果兩個(gè)人想建立友誼,只要一瞥就夠了!為了建立藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)的Friendship,還需要幾個(gè)步驟。
1.LPN發(fā)布一個(gè)Friend請(qǐng)求消息。此消息不被中繼,因此只有直接無線范圍中的“Friend”節(jié)點(diǎn)才能處理它。沒有Friend功能的節(jié)點(diǎn)丟棄它。Friend請(qǐng)求消息包括LPN的ReceiveDelay,ReceiveWindow和PollTimeout參數(shù)。
1.可以支持“Friend請(qǐng)求”消息中指定的要求的附近的每個(gè)“Friend”節(jié)點(diǎn)準(zhǔn)備好“Friend offer”消息并將其發(fā)送回LPN。該消息包括各種參數(shù),包括支持的ReceiveWindow大小,可用的消息隊(duì)列大小,可用的列表大小以及由Friend節(jié)點(diǎn)測(cè)量的RSSI值。
2.在接收到“Friendoffer”消息時(shí),LPN通過應(yīng)用實(shí)現(xiàn)特定的算法來選擇合適的Friend節(jié)點(diǎn)。該算法可能會(huì)考慮各種各樣的點(diǎn)。某些設(shè)備可能會(huì)將接收窗口大小置于優(yōu)先級(jí),以盡可能減少功耗,而有些設(shè)備可能會(huì)更加關(guān)注RSSI值,以確保它們能夠與“Friend”節(jié)點(diǎn)保持良好的鏈接質(zhì)量。使用的精確算法由產(chǎn)品開發(fā)人員決定。
3.選擇Friend節(jié)點(diǎn)后,LPN將向Friend節(jié)點(diǎn)發(fā)送一個(gè)Friend Poll消息。
4.從LPN收到Friend Poll消息后,Friend節(jié)點(diǎn)回復(fù)一個(gè)Friend Update消息,該消息結(jié)束了Friend建立過程并提供安全參數(shù)。在這一點(diǎn)上,建立了Friendship。
友鄰節(jié)點(diǎn)信息
Friendship建立之后,“Friend”節(jié)點(diǎn)將LPN的所有消息存儲(chǔ)在Friend Queue中。這些被稱為存儲(chǔ)的消息。下面的圖4說明了在Friend節(jié)點(diǎn)和關(guān)聯(lián)LPN之間的消息交換。
· 當(dāng)“Friend”節(jié)點(diǎn)收到一個(gè)尋址到“Friend”節(jié)點(diǎn)的LPN的消息時(shí),“Friend”節(jié)點(diǎn)緩沖此消息,將其存儲(chǔ)在稱為“Friend Queue”的區(qū)域中。在圖4中,我們可以看到消息1和2代表LPN存儲(chǔ)在Friend節(jié)點(diǎn)中。
· 定期地,LPN使其收發(fā)器發(fā)送一個(gè)Friend Poll到Friend節(jié)點(diǎn),要求為它存儲(chǔ)任何緩沖的消息。
· “Friend”節(jié)點(diǎn)首先將一個(gè)存儲(chǔ)的消息發(fā)送回LPN作為對(duì)“Friend Poll”的回復(fù)。
· 在每個(gè)接收到來自“Friend”節(jié)點(diǎn)的消息之后,LPN將繼續(xù)發(fā)送“Friend Poll”消息,直到收到“MD(MD =更多數(shù)據(jù))”字段設(shè)置為0的“FriendUpdate”消息為止。這意味著LPN沒有更多消息被緩沖。此時(shí),LPN停止輪詢“Friend”節(jié)點(diǎn)。
圖4- Friendship messaging
安全性
藍(lán)牙網(wǎng)絡(luò)中的安全無處不在。Friendship也是如此,它使用兩個(gè)特殊的安全憑證:
· Master security material:從NetKey派生,也可以由同一網(wǎng)絡(luò)中的其他節(jié)點(diǎn)使用。使用master security material加密的消息可以由同一網(wǎng)絡(luò)中的任何節(jié)點(diǎn)解密。
· Friend security material:從NetKey派生,還有一些額外的計(jì)數(shù)器號(hào)由LPN和Friend節(jié)點(diǎn)生成。使用Friend security material加密的消息只能由擁有它的Friend和LPN解密。
LPN和Friend節(jié)點(diǎn)使用的兩種security materials如何?總結(jié)如下:
與Friend的securitymaterials加密的相應(yīng)Friendship消息是:
·Friend Poll
·Friend Update
·Friend Subscription ListAdd/Remove/Confirm
·存儲(chǔ)Friend節(jié)點(diǎn)傳遞給LPN的消息
使用master security material加密的相應(yīng)的Friendship消息是:
·Friend清除
·Friend清除確認(rèn)
根據(jù)應(yīng)用程序設(shè)置,從LPN發(fā)送到Friend節(jié)點(diǎn)的消息將使用master或Friend的安全資料進(jìn)行加密。
終止友鄰節(jié)點(diǎn)
在某些情況下可以終止Friendship:
· 如果沒有Friend poll,Friend Subscription List Add或Friend Subscription List Remove消息在PollTimeout計(jì)時(shí)器到期之前由Friend節(jié)點(diǎn)收到,Friendship終止。
· LPN可以通過將Friend Clear消息發(fā)送給Friend節(jié)點(diǎn)來啟動(dòng)Friendship終止過程,從而導(dǎo)致Friendship節(jié)點(diǎn)被Friend終止。
平臺(tái)選擇建議
開發(fā)人員在選擇實(shí)施Friend和LPN的平臺(tái)時(shí),應(yīng)考慮以下準(zhǔn)則:
· RAM容量:可用的RAM數(shù)量直接影響了Friend節(jié)點(diǎn)可以支持多少個(gè)LPN,以及它可以為相關(guān)的LPN緩沖多少個(gè)消息。
· LPN:所選MCU和模塊的一般功耗性能是LPN的關(guān)鍵。此外,從休眠模式到運(yùn)行模式的喚醒/預(yù)熱時(shí)間會(huì)影響LPN的響應(yīng)速度和延遲。
作為一名開發(fā)人員,我相信我們可以分享您對(duì)藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)SDK的期待。然后我們可以一起分享藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)“友鄰節(jié)點(diǎn)”!
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5843瀏覽量
170777 -
友鄰節(jié)點(diǎn)
+關(guān)注
關(guān)注
0文章
1瀏覽量
955
原文標(biāo)題:藍(lán)牙網(wǎng)狀網(wǎng)絡(luò)特點(diǎn)功能介紹-友鄰節(jié)點(diǎn)
文章出處:【微信號(hào):SiliconLabs,微信公眾號(hào):Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論