孫中杰
(南京矽力微電子技術有限公司,江蘇 南京 210042)
隨著人們消費水平的提升,物聯網相關產品也越來越被大眾喜歡。藍牙低功耗(BLE)技術作為物聯網技術中的一種,以其低功耗、高安全性等優點,在物聯網應用領域發揮著不可或缺的作用。2019年,藍牙聯盟官方發布了BLE Mesh規范,規范中公布了一種利用BLE節點來構建Mesh網絡的方法[1-3]。BLE Mesh網絡突破了傳統藍牙一對一傳輸的局限,創新性地提出了基于多對多的低功耗藍牙網絡拓撲。
針對BLE Mesh網絡的路由轉發規則,規范中僅僅提出了一種簡單泛洪機制的實現方式,通過網絡中每個BLE節點的多次廣播來實現數據的轉發[4]。這樣的簡單泛洪機制,降低了原有BLE設備入網的要求;但是由于其無限制的泛洪方式很容易導致數據的碰撞,從而使得整個BLE Mesh網絡的通信效率變得很低[5]。
隨著BLE Mesh的規范公布,研究者們也開始對BLE Mesh網絡的轉發機制進行優化研究。孫吉武[6]提出了一種基于BLE Mesh 網絡中的機會路由協議,這種路由協議通過ACK包機制來實現路由協議的優化。與簡單泛洪機制相比,其能夠優化網絡的堵塞概率和開銷。Brandao等[7]提出了一種均衡的泛洪算法,其通過數據包交互的Trickle和Drypp方式,讓網絡中的高負載節點變得更加活躍,從而進一步提高了網絡的吞吐量。已有研究中提出了一種多信道轉發的泛洪算法[8],該算法通過將原有的3個廣播信道擴展為其余的37個數據信道,利用協議支持的跳頻算法極大地降低了網絡泛洪中的堵塞問題。周曉明等[9]提出了一種基于改進的泛洪算法的藍牙Mesh路由方法,該方法通過設置每個設備的有效RSSI區間,以此來實現區域泛洪的路由算法。區域泛洪能夠減少網絡中的堵塞,提高整個網絡的通信效率。
然而,以上的路由協議優化都是使用提前配置節點、數據交互ACK等方式來優化網絡中的路由協議。在實際的量產應用中,每個藍牙節點都要提前配置信息,這是一個十分耗時的過程。本文提出一種基于速率切換的BLE Mesh網絡路由轉發協議。通過改變節點的轉發速率,實現網絡中的區域路由泛洪,能夠降低BLE Mesh網絡中的轉發碰撞概率,節省Mesh網絡中各節點的功耗,提升整個網絡的傳輸效率。
BLE 4協議中規定了BLE設備傳輸速率為1 Mb/s,在廣播、掃描、連接等狀態下BLE設備的數據通信速率都是固定的。為適應多應用場景,在BLE 5協議中BLE設備的速率變成了1 Mb/s、2 Mb/s、500 Kb/s、125 Kb/s,即在原有的BLE_1M基礎上新增BLE_2M和BLE_CODED[10]。BLE_CODED采用的數據編碼方式與之前的BLE_1M也存在差異。
根據香農定理,則有:

其中:C是信道支持的最大速度或者信道容量;B是信道的帶寬;SNR為信噪比。
由于BLE_CODED比原有的BLE_1M速率低,根據香農定理可以推算,BLE_CODED速率設備會比原有的BLE_1M設備具備更強的發射功率,即具備更遠距離的通信性能。
傳統的BLE Mesh網絡路由泛洪是使用單一的BLE_1M速率進行通信,其基本的泛洪方式如圖1所示。圖中的節點1作為轉發節點,在其收到轉發消息后,開始使用BLE_1M速率轉發數據;節點2和節點3在收到節點1的轉發數據后,立即開始向節點4轉發,這兩個節點轉發數據時可能會發生碰撞;節點4在收到節點2或節點3的數據后,開始轉發給節點5。該轉發模型中,整個路由轉發泛洪過程需要所有節點參加,并且節點之間存在碰撞的風險。

圖1 傳統的BLE Mesh網絡泛洪圖
本文的優化算法以圖1的泛洪為基礎,每當節點使用交替的數據傳輸速率轉發數據時,先使用BLE_1M速率轉發N次,再使用BLE_CODED速率轉發,如圖2所示。

圖2 基于速率切換節點轉發時序
由于兩種速率下,節點傳播距離不同。其他節點接收數據時,使用簡單判定算法即可實現區域泛洪,如圖3所示。

圖3 基于速率切換的判定算法
使用圖3所示的算法后,BLE Mesh網絡泛洪方式如圖4所示。圖中的節點1作為轉發節點,在其收到轉發消息后,開始使用BLE_1M速率轉發數據,然后使用BLE_CODED速率再次轉發;節點2和節點3在收到節點1的BLE_1M轉發數據后,立即進入等待BLE_CODED速率的狀態,最終因為等待超時導致不轉發數據;節點4位于節點1的區域泛洪范圍內,只會收到節點1的BLE_CODED速率數據,在等待超時后開始轉發給節點5。本文設計的轉發模型中,整個轉發泛洪的過程不需要所有節點參加,避免了節點2和節點3之間的碰撞風險,降低了BLE Mesh網絡中各節點的功耗,進而提升整個網絡的傳輸效率。

圖4 基于速率切換的BLE Mesh網絡泛洪圖
BLE Mesh網絡在實際生活中有著廣泛的應用,本文以智能燈的應用背景為前提,選取文獻中的燈具矩形仿真模型進行仿真[11]。如圖5所示,每個智能燈之間的距離為2 m。同時使用矽力微藍牙芯片傳輸距離數據進行仿真,BLE_1M傳輸距離為10 m;BLE_CODED(S2)傳輸距離為16 m,并設定設備轉發時延為1 ms。

圖5 智能燈具矩形布局模型
圖6給出了傳統的泛洪方式和基于速率切換方式的泛洪算法下,隨著傳輸時間的增加,網絡中所有節點的傳播個數變化對比圖。圖中傳統的泛洪方式下隨著時間推移,雖然網絡中的節點傳播個數越來越大,但是每個時間點的上升幅度很小;而基于速率切換方式的泛洪算法,傳播效果的變化幅度較大,每個時間點的上升幅度較快。隨著時間的推移,基于速率切換方式的泛洪算法能夠快速達到飽和狀態,即每個消息的傳播速度很快,能夠快速覆蓋整個網絡的所有節點。

圖6 泛洪傳播個數對比圖
圖7給出了傳統的泛洪方式和基于速率切換方式的泛洪算法下,整個網絡轉發消息量的對比圖。圖中傳統的泛洪方式隨著時間的推移,網絡中的轉發消息量先快速增加,達到一個高峰后,又開始緩慢降低,最終完成整個網絡信息的泛洪。基于速率切換方式的泛洪算法,起初網絡中的轉發消息量與傳統泛洪算法一致,但是其峰值要遠小于傳統方式,而且后期的洪峰也能快速下降,以較快速度結束泛洪。

圖7 泛洪網絡消息量對比圖
通過仿真可以發現,基于速率切換方式的泛洪算法,因選用了更低的速率,使得網絡的泛洪傳輸范圍變大。但是通過速率切換的方式,規定每個節點的區域泛洪規則,使得整個網絡實現了有效率的消息轉發。由于基于速率切換方式的泛洪算法能夠挑選合適的網絡節點進行轉發,使得整個網絡的轉發碰撞概率降低,整個網絡的通信效率得到提高。
本文在已有的BLE Mesh泛洪路由算法基礎上,針對其無限制的路由轉發規則進行了改進,提出了基于速率切換方式的泛洪算法,同時提出了適合的轉發時序;并通過仿真驗證了在相同傳輸功率下基于速率切換方式的泛洪算法能夠更少地使用網絡節點進行消息轉發,更快實現消息的網絡覆蓋。