孫中杰
(南京矽力微電子技術(shù)有限公司,江蘇 南京 210042)
隨著人們消費(fèi)水平的提升,物聯(lián)網(wǎng)相關(guān)產(chǎn)品也越來越被大眾喜歡。藍(lán)牙低功耗(BLE)技術(shù)作為物聯(lián)網(wǎng)技術(shù)中的一種,以其低功耗、高安全性等優(yōu)點(diǎn),在物聯(lián)網(wǎng)應(yīng)用領(lǐng)域發(fā)揮著不可或缺的作用。2019年,藍(lán)牙聯(lián)盟官方發(fā)布了BLE Mesh規(guī)范,規(guī)范中公布了一種利用BLE節(jié)點(diǎn)來構(gòu)建Mesh網(wǎng)絡(luò)的方法[1-3]。BLE Mesh網(wǎng)絡(luò)突破了傳統(tǒng)藍(lán)牙一對(duì)一傳輸?shù)木窒蓿瑒?chuàng)新性地提出了基于多對(duì)多的低功耗藍(lán)牙網(wǎng)絡(luò)拓?fù)洹?/p>
針對(duì)BLE Mesh網(wǎng)絡(luò)的路由轉(zhuǎn)發(fā)規(guī)則,規(guī)范中僅僅提出了一種簡(jiǎn)單泛洪機(jī)制的實(shí)現(xiàn)方式,通過網(wǎng)絡(luò)中每個(gè)BLE節(jié)點(diǎn)的多次廣播來實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā)[4]。這樣的簡(jiǎn)單泛洪機(jī)制,降低了原有BLE設(shè)備入網(wǎng)的要求;但是由于其無限制的泛洪方式很容易導(dǎo)致數(shù)據(jù)的碰撞,從而使得整個(gè)BLE Mesh網(wǎng)絡(luò)的通信效率變得很低[5]。
隨著BLE Mesh的規(guī)范公布,研究者們也開始對(duì)BLE Mesh網(wǎng)絡(luò)的轉(zhuǎn)發(fā)機(jī)制進(jìn)行優(yōu)化研究。孫吉武[6]提出了一種基于BLE Mesh 網(wǎng)絡(luò)中的機(jī)會(huì)路由協(xié)議,這種路由協(xié)議通過ACK包機(jī)制來實(shí)現(xiàn)路由協(xié)議的優(yōu)化。與簡(jiǎn)單泛洪機(jī)制相比,其能夠優(yōu)化網(wǎng)絡(luò)的堵塞概率和開銷。Brandao等[7]提出了一種均衡的泛洪算法,其通過數(shù)據(jù)包交互的Trickle和Drypp方式,讓網(wǎng)絡(luò)中的高負(fù)載節(jié)點(diǎn)變得更加活躍,從而進(jìn)一步提高了網(wǎng)絡(luò)的吞吐量。已有研究中提出了一種多信道轉(zhuǎn)發(fā)的泛洪算法[8],該算法通過將原有的3個(gè)廣播信道擴(kuò)展為其余的37個(gè)數(shù)據(jù)信道,利用協(xié)議支持的跳頻算法極大地降低了網(wǎng)絡(luò)泛洪中的堵塞問題。周曉明等[9]提出了一種基于改進(jìn)的泛洪算法的藍(lán)牙Mesh路由方法,該方法通過設(shè)置每個(gè)設(shè)備的有效RSSI區(qū)間,以此來實(shí)現(xiàn)區(qū)域泛洪的路由算法。區(qū)域泛洪能夠減少網(wǎng)絡(luò)中的堵塞,提高整個(gè)網(wǎng)絡(luò)的通信效率。
然而,以上的路由協(xié)議優(yōu)化都是使用提前配置節(jié)點(diǎn)、數(shù)據(jù)交互ACK等方式來優(yōu)化網(wǎng)絡(luò)中的路由協(xié)議。在實(shí)際的量產(chǎn)應(yīng)用中,每個(gè)藍(lán)牙節(jié)點(diǎn)都要提前配置信息,這是一個(gè)十分耗時(shí)的過程。本文提出一種基于速率切換的BLE Mesh網(wǎng)絡(luò)路由轉(zhuǎn)發(fā)協(xié)議。通過改變節(jié)點(diǎn)的轉(zhuǎn)發(fā)速率,實(shí)現(xiàn)網(wǎng)絡(luò)中的區(qū)域路由泛洪,能夠降低BLE Mesh網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)碰撞概率,節(jié)省Mesh網(wǎng)絡(luò)中各節(jié)點(diǎn)的功耗,提升整個(gè)網(wǎng)絡(luò)的傳輸效率。
BLE 4協(xié)議中規(guī)定了BLE設(shè)備傳輸速率為1 Mb/s,在廣播、掃描、連接等狀態(tài)下BLE設(shè)備的數(shù)據(jù)通信速率都是固定的。為適應(yīng)多應(yīng)用場(chǎng)景,在BLE 5協(xié)議中BLE設(shè)備的速率變成了1 Mb/s、2 Mb/s、500 Kb/s、125 Kb/s,即在原有的BLE_1M基礎(chǔ)上新增BLE_2M和BLE_CODED[10]。BLE_CODED采用的數(shù)據(jù)編碼方式與之前的BLE_1M也存在差異。
根據(jù)香農(nóng)定理,則有:
其中:C是信道支持的最大速度或者信道容量;B是信道的帶寬;SNR為信噪比。
由于BLE_CODED比原有的BLE_1M速率低,根據(jù)香農(nóng)定理可以推算,BLE_CODED速率設(shè)備會(huì)比原有的BLE_1M設(shè)備具備更強(qiáng)的發(fā)射功率,即具備更遠(yuǎn)距離的通信性能。
傳統(tǒng)的BLE Mesh網(wǎng)絡(luò)路由泛洪是使用單一的BLE_1M速率進(jìn)行通信,其基本的泛洪方式如圖1所示。圖中的節(jié)點(diǎn)1作為轉(zhuǎn)發(fā)節(jié)點(diǎn),在其收到轉(zhuǎn)發(fā)消息后,開始使用BLE_1M速率轉(zhuǎn)發(fā)數(shù)據(jù);節(jié)點(diǎn)2和節(jié)點(diǎn)3在收到節(jié)點(diǎn)1的轉(zhuǎn)發(fā)數(shù)據(jù)后,立即開始向節(jié)點(diǎn)4轉(zhuǎn)發(fā),這兩個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)可能會(huì)發(fā)生碰撞;節(jié)點(diǎn)4在收到節(jié)點(diǎn)2或節(jié)點(diǎn)3的數(shù)據(jù)后,開始轉(zhuǎn)發(fā)給節(jié)點(diǎn)5。該轉(zhuǎn)發(fā)模型中,整個(gè)路由轉(zhuǎn)發(fā)泛洪過程需要所有節(jié)點(diǎn)參加,并且節(jié)點(diǎn)之間存在碰撞的風(fēng)險(xiǎn)。
圖1 傳統(tǒng)的BLE Mesh網(wǎng)絡(luò)泛洪圖
本文的優(yōu)化算法以圖1的泛洪為基礎(chǔ),每當(dāng)節(jié)點(diǎn)使用交替的數(shù)據(jù)傳輸速率轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),先使用BLE_1M速率轉(zhuǎn)發(fā)N次,再使用BLE_CODED速率轉(zhuǎn)發(fā),如圖2所示。
圖2 基于速率切換節(jié)點(diǎn)轉(zhuǎn)發(fā)時(shí)序
由于兩種速率下,節(jié)點(diǎn)傳播距離不同。其他節(jié)點(diǎn)接收數(shù)據(jù)時(shí),使用簡(jiǎn)單判定算法即可實(shí)現(xiàn)區(qū)域泛洪,如圖3所示。
圖3 基于速率切換的判定算法
使用圖3所示的算法后,BLE Mesh網(wǎng)絡(luò)泛洪方式如圖4所示。圖中的節(jié)點(diǎn)1作為轉(zhuǎn)發(fā)節(jié)點(diǎn),在其收到轉(zhuǎn)發(fā)消息后,開始使用BLE_1M速率轉(zhuǎn)發(fā)數(shù)據(jù),然后使用BLE_CODED速率再次轉(zhuǎn)發(fā);節(jié)點(diǎn)2和節(jié)點(diǎn)3在收到節(jié)點(diǎn)1的BLE_1M轉(zhuǎn)發(fā)數(shù)據(jù)后,立即進(jìn)入等待BLE_CODED速率的狀態(tài),最終因?yàn)榈却瑫r(shí)導(dǎo)致不轉(zhuǎn)發(fā)數(shù)據(jù);節(jié)點(diǎn)4位于節(jié)點(diǎn)1的區(qū)域泛洪范圍內(nèi),只會(huì)收到節(jié)點(diǎn)1的BLE_CODED速率數(shù)據(jù),在等待超時(shí)后開始轉(zhuǎn)發(fā)給節(jié)點(diǎn)5。本文設(shè)計(jì)的轉(zhuǎn)發(fā)模型中,整個(gè)轉(zhuǎn)發(fā)泛洪的過程不需要所有節(jié)點(diǎn)參加,避免了節(jié)點(diǎn)2和節(jié)點(diǎn)3之間的碰撞風(fēng)險(xiǎn),降低了BLE Mesh網(wǎng)絡(luò)中各節(jié)點(diǎn)的功耗,進(jìn)而提升整個(gè)網(wǎng)絡(luò)的傳輸效率。
圖4 基于速率切換的BLE Mesh網(wǎng)絡(luò)泛洪圖
BLE Mesh網(wǎng)絡(luò)在實(shí)際生活中有著廣泛的應(yīng)用,本文以智能燈的應(yīng)用背景為前提,選取文獻(xiàn)中的燈具矩形仿真模型進(jìn)行仿真[11]。如圖5所示,每個(gè)智能燈之間的距離為2 m。同時(shí)使用矽力微藍(lán)牙芯片傳輸距離數(shù)據(jù)進(jìn)行仿真,BLE_1M傳輸距離為10 m;BLE_CODED(S2)傳輸距離為16 m,并設(shè)定設(shè)備轉(zhuǎn)發(fā)時(shí)延為1 ms。
圖5 智能燈具矩形布局模型
圖6給出了傳統(tǒng)的泛洪方式和基于速率切換方式的泛洪算法下,隨著傳輸時(shí)間的增加,網(wǎng)絡(luò)中所有節(jié)點(diǎn)的傳播個(gè)數(shù)變化對(duì)比圖。圖中傳統(tǒng)的泛洪方式下隨著時(shí)間推移,雖然網(wǎng)絡(luò)中的節(jié)點(diǎn)傳播個(gè)數(shù)越來越大,但是每個(gè)時(shí)間點(diǎn)的上升幅度很??;而基于速率切換方式的泛洪算法,傳播效果的變化幅度較大,每個(gè)時(shí)間點(diǎn)的上升幅度較快。隨著時(shí)間的推移,基于速率切換方式的泛洪算法能夠快速達(dá)到飽和狀態(tài),即每個(gè)消息的傳播速度很快,能夠快速覆蓋整個(gè)網(wǎng)絡(luò)的所有節(jié)點(diǎn)。
圖6 泛洪傳播個(gè)數(shù)對(duì)比圖
圖7給出了傳統(tǒng)的泛洪方式和基于速率切換方式的泛洪算法下,整個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)消息量的對(duì)比圖。圖中傳統(tǒng)的泛洪方式隨著時(shí)間的推移,網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)消息量先快速增加,達(dá)到一個(gè)高峰后,又開始緩慢降低,最終完成整個(gè)網(wǎng)絡(luò)信息的泛洪?;谒俾是袚Q方式的泛洪算法,起初網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)消息量與傳統(tǒng)泛洪算法一致,但是其峰值要遠(yuǎn)小于傳統(tǒng)方式,而且后期的洪峰也能快速下降,以較快速度結(jié)束泛洪。
圖7 泛洪網(wǎng)絡(luò)消息量對(duì)比圖
通過仿真可以發(fā)現(xiàn),基于速率切換方式的泛洪算法,因選用了更低的速率,使得網(wǎng)絡(luò)的泛洪傳輸范圍變大。但是通過速率切換的方式,規(guī)定每個(gè)節(jié)點(diǎn)的區(qū)域泛洪規(guī)則,使得整個(gè)網(wǎng)絡(luò)實(shí)現(xiàn)了有效率的消息轉(zhuǎn)發(fā)。由于基于速率切換方式的泛洪算法能夠挑選合適的網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),使得整個(gè)網(wǎng)絡(luò)的轉(zhuǎn)發(fā)碰撞概率降低,整個(gè)網(wǎng)絡(luò)的通信效率得到提高。
本文在已有的BLE Mesh泛洪路由算法基礎(chǔ)上,針對(duì)其無限制的路由轉(zhuǎn)發(fā)規(guī)則進(jìn)行了改進(jìn),提出了基于速率切換方式的泛洪算法,同時(shí)提出了適合的轉(zhuǎn)發(fā)時(shí)序;并通過仿真驗(yàn)證了在相同傳輸功率下基于速率切換方式的泛洪算法能夠更少地使用網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行消息轉(zhuǎn)發(fā),更快實(shí)現(xiàn)消息的網(wǎng)絡(luò)覆蓋。
物聯(lián)網(wǎng)技術(shù)2021年11期