李敬兆, 劉 偉
(安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232001)
LoRa技術(shù)傳輸距離和鏈路預(yù)算性能同時(shí)提升,其數(shù)據(jù)傳輸速率低,約0.3~37.5 kbps,非常適合星型組網(wǎng)。當(dāng)組建大型星型網(wǎng)絡(luò)時(shí),現(xiàn)有的介質(zhì)訪問(wèn)控制(medium access control,MAC)協(xié)議不適合。星型網(wǎng)絡(luò)為避免擁塞,常采用基于時(shí)分多址(time division multiple address,TDMA)協(xié)議輪詢(xún)的方式,但網(wǎng)絡(luò)節(jié)點(diǎn)增加時(shí),延時(shí)增大,網(wǎng)絡(luò)性能降低。
信道競(jìng)爭(zhēng)退避算法在多個(gè)源節(jié)點(diǎn)競(jìng)爭(zhēng)信道時(shí),將數(shù)據(jù)發(fā)送時(shí)間錯(cuò)開(kāi),從而減少傳輸碰撞[1]。文獻(xiàn)[2]采用延時(shí)退避的方法避免傳輸碰撞,但信道競(jìng)爭(zhēng)窗口(contention window,CW)值保持不變,導(dǎo)致退避時(shí)間在網(wǎng)絡(luò)流量大時(shí)不足,網(wǎng)絡(luò)流量小時(shí)過(guò)長(zhǎng),退避效率低。文獻(xiàn)[3]介紹了載波偵聽(tīng)多路訪問(wèn)(carrier sense multiple access,CSMA)和IEEE.802.11 DCF協(xié)議,采用二進(jìn)制指數(shù)退避(binary exponential backoff ,BEB)算法,根據(jù)傳輸狀態(tài)來(lái)動(dòng)態(tài)調(diào)節(jié)CW值,但也不能自適應(yīng)流量的變化且易導(dǎo)致節(jié)點(diǎn)競(jìng)爭(zhēng)不公。文獻(xiàn)[1]提出基于概率選擇的退避(selection-probability-based backoff,SPB)算法,算法引入了能反映流量變化的參數(shù)和選擇概率,改善了節(jié)點(diǎn)競(jìng)爭(zhēng)的公平性,且隨網(wǎng)絡(luò)流量自適應(yīng)調(diào)整。但以上算法都未考慮節(jié)點(diǎn)的能量因素。路由算法中LEACH算法(low energy adaptive clustering hierarchy),能將網(wǎng)絡(luò)能耗分散到所有傳感器里[5]。但LEACH算法隨機(jī)選擇簇頭,能耗分?jǐn)偛痪?,使得能量低的某些?jié)點(diǎn)被選中但不適合當(dāng)簇頭,加速死亡[6]。
本文在SPB算法基礎(chǔ)上,CW調(diào)節(jié)計(jì)算引入能量因子,使剩余能量低的節(jié)點(diǎn)競(jìng)爭(zhēng)信道的機(jī)會(huì)更大。為避免LoRa星型網(wǎng)絡(luò)Sink節(jié)點(diǎn)的信道被頻繁占用,減少碰撞和延時(shí),對(duì)延時(shí)要求高的突發(fā)數(shù)據(jù),直接傳輸至Sink節(jié)點(diǎn),對(duì)延時(shí)要求低的周期數(shù)據(jù),先匯集至簇頭再上傳。本文優(yōu)化LEACH的簇頭選取公式,均衡節(jié)點(diǎn)能耗。從信道競(jìng)爭(zhēng)退避算法和路由方式兩方面來(lái)減少LoRa網(wǎng)絡(luò)的數(shù)據(jù)傳輸碰撞。
針對(duì)傳統(tǒng)星型組網(wǎng)絡(luò)在節(jié)點(diǎn)數(shù)量多時(shí),Sink節(jié)點(diǎn)負(fù)擔(dān)重效率低的缺點(diǎn),根據(jù)傳輸?shù)臄?shù)據(jù)類(lèi)型,結(jié)合網(wǎng)絡(luò)分簇的思想,設(shè)計(jì)一種混合路由的星型網(wǎng)絡(luò),每個(gè)分簇相互獨(dú)立并行運(yùn)行。
LoRa網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)有兩種:1)周期數(shù)據(jù),此類(lèi)數(shù)據(jù)需要所有終端節(jié)點(diǎn)每隔一段時(shí)間上傳一次,實(shí)時(shí)性要求低。若單靠Sink節(jié)點(diǎn)輪詢(xún)采集,信道被頻繁占用;2)突發(fā)數(shù)據(jù),同一時(shí)刻產(chǎn)生此類(lèi)數(shù)據(jù)的節(jié)點(diǎn)較少,通常為報(bào)警信息,需要立刻處理,實(shí)時(shí)性要求高。LoRa網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 LoRa網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
考慮節(jié)點(diǎn)傳輸能耗遠(yuǎn)大于休眠和計(jì)算能耗,參照文獻(xiàn)[7]提出的無(wú)線能耗模型。節(jié)點(diǎn)傳輸能耗包括收發(fā)電路和放大電路能耗。節(jié)點(diǎn)向距離d處發(fā)射和接收nbit數(shù)據(jù)的能耗ETx(n,d)和ERx(n,d);節(jié)點(diǎn)剩余能量Erest,網(wǎng)絡(luò)平均剩余能量Eavr_nest計(jì)算如下
ETx(n,d)=nEelec+nεfsd2
(1)
ERx(n,d)=Eelecn
(2)
Erest=E0-ETx(n,d)-ERx(n,d)
(3)
(4)
式中E0為初始能量;Eelec為收發(fā)電路耗能系數(shù);N為網(wǎng)絡(luò)終端節(jié)點(diǎn)總數(shù);εfs為功率放大電路耗能系數(shù)。
LoRa網(wǎng)絡(luò)流量大小正比于活躍節(jié)點(diǎn)數(shù)n,正比于延時(shí)計(jì)數(shù)器停止計(jì)數(shù)次數(shù)[8]。引入2個(gè)參數(shù),節(jié)點(diǎn)通信退避計(jì)數(shù)BC(backoff count),其值為節(jié)點(diǎn)延時(shí)計(jì)數(shù)器暫停次數(shù)和發(fā)送碰撞次數(shù)之和[8]。網(wǎng)絡(luò)平均流量(average network traffic,Avr_NT),如式(5)所示,其值為n個(gè)活躍節(jié)點(diǎn)通信退避計(jì)數(shù)BCi的平均值,這兩個(gè)參數(shù)能大致反映網(wǎng)絡(luò)流量變化。以NTM和NTL為閾值,網(wǎng)絡(luò)流量NT(netwok traffic)的大小按式(6)判斷
(5)
(6)
退避算法思想是,任意終端節(jié)點(diǎn)通信前,先偵聽(tīng)到信道空閑持續(xù)時(shí)間滿(mǎn)足條件,執(zhí)行一段退避延時(shí)再通信。延時(shí)期間,節(jié)點(diǎn)延時(shí)計(jì)數(shù)器在偵聽(tīng)到信道忙時(shí)停止計(jì)數(shù),空閑時(shí)每隔單位時(shí)隙減1,當(dāng)變?yōu)?才傳輸數(shù)據(jù)[9]。典型退避算法是二進(jìn)制指數(shù)退避BEB算法。但BEB只根據(jù)是否傳輸成功來(lái)調(diào)節(jié)CW∈[CWmin,CWmax]值,不能自適應(yīng)網(wǎng)絡(luò)流量改變。此外若數(shù)據(jù)傳輸成功,CW值直接恢復(fù)為CWmin,比傳輸失敗的節(jié)點(diǎn)信道競(jìng)爭(zhēng)能力更強(qiáng),導(dǎo)致不公平[4]。
本文在SPB算法基礎(chǔ)上引入剩余能量參數(shù),提出低能耗流量自適應(yīng)概率退避(low energy traffic adaptive probability backoff,LETAPB)算法。使低能量節(jié)點(diǎn)信道競(jìng)爭(zhēng)力提高,退避延時(shí)短。節(jié)點(diǎn)根據(jù)通信退避計(jì)數(shù)BC值,若BC 開(kāi)始時(shí)CW=CWmin,選擇概率為PC,其值很小。 1)若數(shù)據(jù)傳輸失敗,則增大CW值。 a.若BC CW=min(CWold×k,CWmax) (7) CW=min(CWold+1,CWmax) (8) (9) 式中CWold為調(diào)整前的CW值,k為競(jìng)爭(zhēng)窗口放大系數(shù)。若節(jié)點(diǎn)數(shù)據(jù)傳輸失敗次數(shù)多,能量剩余少,則k值相對(duì)小,競(jìng)爭(zhēng)信道的能力更強(qiáng)。 b.若BC≥NTL,節(jié)點(diǎn)長(zhǎng)時(shí)間未競(jìng)爭(zhēng)到信道,則競(jìng)爭(zhēng)窗口恢復(fù)到最小值,即CW=CWmin,提高該節(jié)點(diǎn)信道競(jìng)爭(zhēng)的能力,改善網(wǎng)絡(luò)節(jié)點(diǎn)的公平性。 2)若數(shù)據(jù)傳輸成功,則減小CW值。 a.若NTM≤BC CW=max(CWold/j,CWmin) (10) CW=max(CWold-1,CWmin) (11) (12) 式中j為競(jìng)爭(zhēng)窗口縮小系數(shù)。若節(jié)點(diǎn)能量剩余少,則j值相對(duì)大,退避延時(shí)相對(duì)較小,更容易競(jìng)爭(zhēng)到信道。 b.若BC 提出分簇混合路由(cluster hybrid routing,CHB)算法,分為2個(gè)階段:1)分簇建立采取和LEACH相同方式,但是加入距離和能量因素,改進(jìn)了簇頭選取條件。2)數(shù)據(jù)傳輸階段根據(jù)數(shù)據(jù)類(lèi)型采用不同路由方式。對(duì)于突發(fā)數(shù)據(jù),直接請(qǐng)求加入Sink節(jié)點(diǎn)輪詢(xún)隊(duì)列,保證實(shí)時(shí)性。為減少Sink節(jié)點(diǎn)信道被占用頻率,周期數(shù)據(jù)先傳給簇頭節(jié)點(diǎn),大大避免與突發(fā)數(shù)據(jù)產(chǎn)生碰撞,同時(shí)減輕Sink節(jié)點(diǎn)的負(fù)擔(dān)。 節(jié)點(diǎn)若能量剩余多、消耗速率慢且傳輸距離短,則更適合選作簇頭。鑒于此,優(yōu)化LEACH的閾值公式T(n),Tnew(n)更合理的選取簇頭 (13) 式中α,β和γ為影響因素權(quán)重系數(shù),且α+β+γ=1;p為所有節(jié)點(diǎn)里簇頭占有比例;r為目前網(wǎng)絡(luò)運(yùn)行輪數(shù);G為剩下1/p-r輪里可以勝任的簇頭集合;ΔEi為前一輪節(jié)點(diǎn)的能量變化量;mod為取模運(yùn)算;dis為距Sink節(jié)點(diǎn)的通信長(zhǎng)度。 根據(jù)TDMA傳輸機(jī)制,簇內(nèi)成員都分配有通信間隙。每個(gè)節(jié)點(diǎn)將周期數(shù)據(jù)在自己的間隙內(nèi)傳輸給簇頭,在非自己的間隙內(nèi)轉(zhuǎn)換為休眠態(tài)[5],具體步驟如下: 1)每輪進(jìn)行數(shù)據(jù)傳輸階段,在各自的通信間隙,終端節(jié)點(diǎn)從休眠態(tài)被喚醒; 2)簇頭節(jié)點(diǎn)按時(shí)隙表順序依次訪問(wèn)每個(gè)終端節(jié)點(diǎn),訪問(wèn)過(guò)程為簇頭先向終端節(jié)點(diǎn)發(fā)出數(shù)據(jù)采集命令,接著終端節(jié)點(diǎn)上傳周期數(shù)據(jù),最后簇頭節(jié)點(diǎn)對(duì)收到的數(shù)據(jù)校驗(yàn),無(wú)誤后返回確認(rèn)消息幀; 3)終端節(jié)點(diǎn)傳輸周期數(shù)據(jù)成功,在下一輪喚醒前,轉(zhuǎn)變?yōu)樾菝郀顟B(tài); 4)簇頭匯集所有終端節(jié)點(diǎn)的周期數(shù)據(jù),然后競(jìng)爭(zhēng)加入Sink節(jié)點(diǎn)輪詢(xún)隊(duì)列上傳。 突發(fā)數(shù)據(jù)和簇頭數(shù)據(jù)由相應(yīng)節(jié)點(diǎn)采用LETAPB退避算法,直接請(qǐng)求加入Sink節(jié)點(diǎn)的輪詢(xún)隊(duì)列,能夠得到快速響應(yīng),步驟如下: 1)節(jié)點(diǎn)向Sink節(jié)點(diǎn)競(jìng)爭(zhēng)發(fā)出請(qǐng)求,Sink節(jié)點(diǎn)收到請(qǐng)求后將該節(jié)點(diǎn)加入輪詢(xún)隊(duì)列,并返回確認(rèn)響應(yīng); 2)Sink節(jié)點(diǎn)依次訪問(wèn)輪詢(xún)隊(duì)列里的節(jié)點(diǎn),若終端節(jié)點(diǎn)數(shù)據(jù)傳輸完畢,則Sink節(jié)點(diǎn)對(duì)其服務(wù)結(jié)束,并將該節(jié)點(diǎn)從輪詢(xún)隊(duì)列里刪除; 3)Sink節(jié)點(diǎn)檢測(cè)到網(wǎng)絡(luò)流量很大時(shí),即平均網(wǎng)絡(luò)流量Avr_NT≥NTL時(shí),則會(huì)廣播抑制消息幀,處于喚醒并等待發(fā)數(shù)據(jù)的節(jié)點(diǎn)以一定抑制概率PS暫停發(fā)送,當(dāng)Avr_NT 從LoRa網(wǎng)絡(luò)的吞吐量、實(shí)時(shí)性和能耗3方面來(lái)測(cè)試算法的性能。利用NS2軟件搭建分布區(qū)域?yàn)?00 m2的LoRa網(wǎng)絡(luò)仿真環(huán)境,其中包含1個(gè)Sink節(jié)點(diǎn),100個(gè)初始能量為1 J的終端節(jié)點(diǎn)。先讓部分終端節(jié)點(diǎn)以一定速率對(duì)Sink節(jié)點(diǎn),傳輸標(biāo)記有時(shí)間戳的數(shù)據(jù)包,然后逐漸增加活躍節(jié)點(diǎn)的數(shù)量 ,增大網(wǎng)絡(luò)流量。對(duì)比LETAPB、SPB和BEB3種退避算法在相同條件下的性能。對(duì)比CHB和LEACH算法的能耗性能。仿真參數(shù)如表1。 表1 主要仿真參數(shù) 統(tǒng)計(jì)1 min內(nèi)Sink節(jié)點(diǎn)收到包數(shù)目,計(jì)算網(wǎng)絡(luò)吞吐量。收到包數(shù)目多,表明吞吐量大,通信效率更高,仿真結(jié)果如圖2所示。 圖2 LoRa網(wǎng)絡(luò)吞吐量性能 由圖2可見(jiàn),n值小,3種算法吞吐量性能近似。n值增加,吞吐量總體逐漸增大。當(dāng)n>50時(shí),LETAPB算法的吞吐量性能明顯遠(yuǎn)優(yōu)于SPB和BEB算法,相對(duì)于兩者分別有約3.8 %和9.2 %的提升。LETAPB算法能夠依網(wǎng)絡(luò)流量變化調(diào)節(jié)CW值。而SPB和BEB對(duì)網(wǎng)絡(luò)流量變化不敏感,活躍節(jié)點(diǎn)多時(shí),不能高效緩解碰撞和擁塞,影響吞吐量。 網(wǎng)絡(luò)總能耗規(guī)定為所有節(jié)點(diǎn)消耗能量之和,本文分別在不同活躍節(jié)點(diǎn)數(shù)目n下仿真10 min,計(jì)算3種退避算法的總能耗,仿真結(jié)果如圖3所示。 圖3 LoRa網(wǎng)絡(luò)總能耗 仿真結(jié)果表明,n變大,總能耗均逐漸增大,但LETAPB能耗明顯低于其他兩者,當(dāng)n>60時(shí)更明顯。LETAPB算法較SPB和BEB算法,能耗分別節(jié)省了約12.8 %和26.1 %。因?yàn)長(zhǎng)ETAPB算法CW值調(diào)整使能量越低的節(jié)點(diǎn)獲得更短的退避時(shí)間,傳輸能力更強(qiáng),更加節(jié)能。 Sink節(jié)點(diǎn)收到數(shù)據(jù)包,解析出包發(fā)送時(shí)間,根據(jù)當(dāng)前時(shí)間計(jì)算每個(gè)包延時(shí)時(shí)間,再計(jì)算所有包的平均傳輸延時(shí)時(shí)間,仿真結(jié)果如圖4所示。 圖4 LoRa網(wǎng)絡(luò)數(shù)據(jù)傳輸延時(shí) 仿真結(jié)果表明,n值較小時(shí),數(shù)據(jù)傳輸延時(shí)差距不明顯。當(dāng)n>50時(shí), LETAPB算法延時(shí)明顯低于SPB和BEB算法,分別減少了約16.7 %和26.8 %。因?yàn)長(zhǎng)ETAPB算法CW值調(diào)整考慮網(wǎng)絡(luò)流量的變化,在網(wǎng)絡(luò)流量大時(shí),競(jìng)爭(zhēng)窗口增大更加平緩,而B(niǎo)EB競(jìng)爭(zhēng)窗口猛然增大2倍。LETAPB算法使Sink節(jié)點(diǎn)信道占用更緊湊,信道利用率更高。 網(wǎng)絡(luò)生命周期為剩余50 %節(jié)點(diǎn)的時(shí)刻[10],統(tǒng)計(jì)CHB和LEACH算法節(jié)點(diǎn)存活情況。 由圖5可見(jiàn), LEACH和CHB的首個(gè)死亡節(jié)點(diǎn)分別出現(xiàn)在468,621輪,CHB相對(duì)LEACH算法時(shí)間推遲約32.6 %。50 %節(jié)點(diǎn)死亡,LEACH和CHB分別出現(xiàn)在912輪和1 245輪,CHB相對(duì)LEACH算法時(shí)間推遲約36.5 %。CHB在LEACH算法基礎(chǔ)上均衡節(jié)點(diǎn)能耗,使網(wǎng)絡(luò)壽命變長(zhǎng)[11~13]。 圖5 LoRa網(wǎng)絡(luò)節(jié)點(diǎn)存活情況 靜脈輸液監(jiān)控系統(tǒng)是典型的應(yīng)用場(chǎng)合,對(duì)一片區(qū)域所有輸液設(shè)備遠(yuǎn)程監(jiān)控。系統(tǒng)由監(jiān)測(cè)端、移動(dòng)手持端和監(jiān)控中心三部分組成,采用物聯(lián)網(wǎng)經(jīng)典的三層結(jié)構(gòu)。監(jiān)測(cè)端位于感控層,采集現(xiàn)場(chǎng)數(shù)據(jù)。網(wǎng)絡(luò)層使用LoRa無(wú)線模塊組網(wǎng),網(wǎng)絡(luò)可按區(qū)域進(jìn)行分簇,簇頭按式(13)選擇。服務(wù)中心和手持端位于應(yīng)用層,接收消息并在上位機(jī)上顯示。整個(gè)監(jiān)控系統(tǒng)結(jié)構(gòu)如圖6所示。 圖6 靜脈輸液監(jiān)控系統(tǒng)結(jié)構(gòu) 監(jiān)測(cè)端采集的數(shù)據(jù)有2種:滴速、余量等周期數(shù)據(jù)和報(bào)警、呼叫等突發(fā)數(shù)據(jù),周期數(shù)據(jù)按TDMA機(jī)制由簇頭匯總后再上傳至應(yīng)用層的Sink中心,突發(fā)數(shù)據(jù)由節(jié)點(diǎn)直接傳輸至Sink。簇頭節(jié)點(diǎn)和異常節(jié)點(diǎn)按LETAPB算法,競(jìng)爭(zhēng)加入Sink節(jié)點(diǎn)的輪詢(xún)隊(duì)列,Sink節(jié)點(diǎn)按輪詢(xún)隊(duì)列接收信息。 為了簡(jiǎn)化無(wú)線組網(wǎng)的復(fù)雜度,使用低功耗和傳輸距離兼得的LoRa技術(shù)進(jìn)行大規(guī)模星型組網(wǎng),同時(shí)借鑒幾種網(wǎng)絡(luò)防碰撞機(jī)制的優(yōu)點(diǎn),設(shè)計(jì)了防碰撞混合路由算法,提高LoRa網(wǎng)絡(luò)的性能。仿真實(shí)驗(yàn)表明,本文算法在能耗、網(wǎng)絡(luò)吞吐量和實(shí)時(shí)性等性能方面都得到提升。 參考文獻(xiàn): [1] 孫 鵬.基于流量自適應(yīng)機(jī)制的無(wú)線傳感網(wǎng)MAC協(xié)議研究[D].濟(jì)南:山東大學(xué),2017:24-47. [2] 陶志勇,袁永財(cái).適用于S-MAC協(xié)議的自適應(yīng)隨機(jī)退避機(jī)制研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(12):51-54. [3] 郭凱凱.無(wú)線網(wǎng)絡(luò)自適應(yīng)速率和退避指數(shù)算法研究[D].秦皇島:燕山大學(xué),2014:27-45. [4] 劉 晗.基于退避機(jī)制的自組織網(wǎng)絡(luò)接入算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016:36-48. [5] 余成波,鄧順華,方 軍,等.基于節(jié)點(diǎn)位置與剩余能量的LEACH協(xié)議優(yōu)化[J]傳感器與微系統(tǒng),2016,35(5):139-153. [6] Wan S H,Zhang Y D,Chen J.On the construction of data aggregation tree with maximizing lifetime in large-scale wireless sensor networks[J].IEEE Sensors Journal,2016,16(20):7433-7440. [7] 王 磊,謝彎彎,劉志中,等.非均勻分簇路由協(xié)議改進(jìn)算法[J].計(jì)算機(jī)科學(xué),2017, 44(2):152-156. [8] 張長(zhǎng)森,陳鵬鵬.過(guò)濾發(fā)送閾值退避算法[J].傳感器與微系統(tǒng),2016,35(7):143-146. [9] Sun X H,Dai L.Backoff design for IEEE 802.11 DCF networks:Fundamental tradeoff and design criterion[J].IEEE/ACM Tran-sactions on Networking,2015,23(1):300-316. [10] 付得勝.無(wú)線傳感網(wǎng)絡(luò)LEACH路由協(xié)議的改進(jìn)研究[D].重慶:重慶大學(xué),2016:23-39. [11] 董 穎,蘇真真,周占穎,等.一種基于節(jié)點(diǎn)剩余能量和位置的LEACH改進(jìn)算法[J].四川大學(xué)學(xué)報(bào):工程科學(xué)版,2015,47(2):136-141. [12] Siavoshi S,Kavian Y,Sharif H.Load-balanced energy efficient clustering protocol for wireless sensor networks[J].IET Wireless Sensor Systems,2016,6(3):67-73. [13] Kaddi Mohammed,Benahmed Khelifa,Omari Mohammed.LEACH-KANG:A new routing protocol for WSNs based on LEACH protocol and Kangaroo method[C]∥2017 International Conference on Mathematics and Information Technology(ICMIT),2017:273-278.4 優(yōu)化LoRa網(wǎng)絡(luò)分簇混合路由算法
4.1 LoRa網(wǎng)絡(luò)簇頭節(jié)點(diǎn)選舉公式改進(jìn)
4.2 LoRa網(wǎng)絡(luò)簇內(nèi)周期數(shù)據(jù)傳輸
4.3 LoRa網(wǎng)絡(luò)Sink節(jié)點(diǎn)輪詢(xún)
5 算法仿真與性能分析
5.1 LoRa網(wǎng)絡(luò)吞吐量測(cè)試
5.2 LoRa網(wǎng)絡(luò)總能耗測(cè)試
5.3 LoRa網(wǎng)絡(luò)數(shù)據(jù)傳輸延時(shí)測(cè)試
5.4 LoRa網(wǎng)絡(luò)生命周期測(cè)試
6 應(yīng)用案例
7 結(jié)束語(yǔ)