張 鑫,焦萬果
(南京林業大學,江蘇 南京 210037)
隨著物聯網時代的到來,作為智能化產業重要組成的無線傳感器網絡(WSN)面臨更高的網絡性能要求[1],包括更低的功耗和時延。在WSN中,多址接入協議(MAC)作為配置節點信道接入的重要手段,對網絡的吞吐量、時延及能量消耗等性能有著非常大的影響,是實現低功耗低時延傳感器網絡的重要研究對象[2]。
現有MAC協議一般基于時隙分配來實現多用戶接入,時隙分配算法極大影響著網絡性能[3]。文獻[4]論述了隨機多址接入協議在負載突增時表現很差,而基于時分多址的協議卻能很好地適應網絡流量變化。文獻[5]提出一種基于時分多址的改進MAC協議(I-MAC),該協議只適用于規模較小的傳感器網絡,一旦網絡規模擴大,同步誤差會迅速增大。文獻[6]提出一種面向可移動節點的MAC協議,基于競爭退避算法消除顯隱終端問題,并實現了擇優選擇中繼、減少傳輸跳數的目標,有效降低了傳輸時延和能耗。文獻[7]設計了一種預測喚醒機制,發送節點通過該機制選擇喚醒時間,接受節點自適應調整占空比,一次實現降低能耗和時延的目的。本文在文獻[5]的基礎上設計了一種按需時隙分配的多址接入協議,仿真結果顯示,該方案實現了減小功耗的同時降低傳輸時延并提高網絡魯棒性的目的。
I-MAC協議包含了一種鏈路質量估計算法,確保鏈路完整且雙向通信質量在一定程度上可靠,并確定節點之間的父子從屬關系。在此基礎上,進一步設計了時隙需求計算以及相應的時隙分配算法,達到對各層節點的時隙調度和按需分配數據時隙的目的。由于每個節點可以獨占被分配的時隙,傳輸過程中的沖突得到很大程度減少。此外,I-MAC還引入了周期拓撲維護機制和時鐘同步機制,使網絡具有良好的魯棒性和可拓展性。但因其采用的同步機制為洪泛時鐘同步機制,在多跳網絡中存在誤差積累效應,且隨著跳數的增加,同步誤差會迅速增大,進而直接影響時隙分配協議的性能。
此外,為有效獲取網內節點的時隙需求,I-MAC采用額外的時隙需求估算包,增大了網絡開銷[8-10]。
I-MAC協議的超幀結構如圖1所示,該超幀結構由網絡結構初始化階段和重復周期構成。在初始鏈路建立階段,網絡進行初始時隙分配;重復周期分為可靠性控制傳輸階段、可靠性數據傳輸階段和維護階段。

圖1 I-MAC協議的超幀結構
文獻[5]給出了新的鏈路質量參數linkq的表達式:
(1)

根據網絡結構,I-MAC協議采用逐層遞歸的方法,從葉節點到根節點為各層傳感器分配發送控制包和數據包所需要的控制時隙數和數據時隙數。在時隙調度階段,I-MAC分別采用時隙需求估算包和時隙需求分配包來計算時隙需求以及所需要分配的時隙數量。
時鐘同步對無線傳感器網絡系統極為重要,在許多依靠電池供電的WSNs中,大部分節能機制的正常運行都建立在時鐘同步的基礎上[11]。時鐘同步的作用是為整個網絡提供統一的時間尺度,是實現無線網絡系統的關鍵之一,是網絡運行其他各種應用或可拓展應用的重要前提[12]。時鐘同步問題是無線傳感器網絡的研究熱點之一。
本文將sink的時間作為全局標準時間,時間同步從sink節點開始,按照控制包中時間信息達到的順序層層同步。在無線傳感器網絡中,控制信號與數據信號占用不同信道,控制信號的傳輸穩定可靠,控制信號的發送總是成功的[13-14]。基于上述假設,本文設計了一種全局時鐘同步方案。
首先,sink節點或某個父節點在自身的本地時刻A1發送控制信號給下一級子節點,子節點在時刻B1收到控制信號后,立即返還一個確認信號ACK,父節點接收到該確認信號的時間記為TiA3,該時間可表示為TA1+2εi,其中i為節點編號。節點間距離不同,則εi的值不同。父節點根據接收到節點i的確認信號時間可以計算出相應的εi=(TiA3-TA1)/2。在數據傳輸階段,父節點每成功接收子節點i的數據包,立即返回一個確認信號,該確認信號包含εi的值。在維護階段,父節點廣播自身的本地時間TA4給每一個子節點,子節點根據TA4將本地時間修改為全局時間:
Tlocal=Tglobal=TA4+εi。
(2)
每組父子節點最終都同步到匯聚節點sink的時間,所有活躍的傳感器能夠保持時鐘同步,而這種同步在每個維護階段結束之前都要進行一次,這種機制使網絡所有節點能夠及時校準本地時間,有效降低數據融合時產生誤差的幾率,使網絡更加穩定。
網絡的初始路徑建立后,匯聚節點sink擁有所有節點的位置坐標、層號、ID和相互間的連接關系信息[15]。接下來,匯聚節點會根據網絡層數和每層子節點最多的那個父節點所需的時隙數,進行數據時隙和控制時隙的分配。網絡中節點初始獲得的總數據時隙數Stotal計算方法如下:
(3)
式中,L為網絡層數,Nulj為第l層第j列節點的子節點數。如圖2所示,L=4,最底層葉節點顯然是沒有子節點的,即max(Nulj)=0。

圖2 網絡分層結構
I-MAC協議中,根據每個傳感器節點數據包的數量進行時隙分配的方法,實現按需分配時隙。在I-MAC協議基礎上,提出一種先按層再按需分配數據時隙方法。

在本文提出的時隙分配方案中,需要獲得節點緩存區內數據包的數量。根據IEEE802.15.4的MAC和物理層相關標準[16],需要將隊列長度放在上行數據包的第一個字節。這種方式可以使sink獲取數據包時也能夠獲得相應節點的緩存區隊列信息,以此判斷當前分配的時隙是否足夠。
仿真中,每個節點產生的數據包長度均是L=8 000 bit,節點發送數據消耗能量為L(Epro+Eamp×d02),其中,Epro為處理每比特數據消耗的能量,Eamp為放大每比特數據消耗的能量,d0為兩點間距離。節點接收數據包消耗能量為LEpro,傳感器節點收集數據消耗能量為Epro×Z+Esens,其中Z為1個傳感器節點一天收集數據,Esen為傳感器進行監測每天固定能耗。仿真中,各參數值Epro為50 nJ/bit,Eamp為100 pJ/bit/m2,Esen為0.02 J。
首先,利用仿真比較了分別采用I-MAC協議和本文所提方案時,網絡所能獲得吞吐量,結果如圖3所示。在圖3中,橫坐標表示節點每秒產生的數據包個數。

圖3 網絡的吞吐量對比
從圖3可以看出,當網絡負載大于等于3個數據包/s時,本文所提方案與I-MAC相比,可以獲得更高的吞吐量。這是由于按需分配方案使得相應節點獲得了足夠多的時隙,即網絡能夠適應部分區域性的數據流量突增。
進一步對比每層每個節點在不同協議下的平均功耗,結果如圖4所示。與I-MAC相比,本文所設計的方案由于不再采用洪泛時鐘同步機制,網絡初始化后每個節點的εi的值只需計算1次,每次維護階段的同步開銷得到了減少。同時按需分配時隙的方式減少了不必要的信道占用,進而有效減少了節點在空閑信道監聽上的能耗。

圖4 功耗對比
最后比較了數據包投遞率。投遞率是指匯聚節點sink收到的數據包數量和其他所有活躍節點發送數據包數量的比值。2種協議的數據包投遞率如圖5所示。

圖5 包投遞率對比
圖5表明I-MAC協議和本文方案得到的包投遞率相差不大。由于I-MAC協議與本文協議均采用按需的時隙分配算法,均可以達到較高的數據包投遞率。隨著跳數不斷增加,不可避免的,路徑損耗與信號衰減使得投遞率隨著跳數增加而不斷下降。
針對I-MAC協議的時鐘同步算法和時隙分配算法的不足,首先提出了一種改進的全局同步方案,降低同步誤差。在此基礎上,進一步引入隊列長度指示的基礎上,設計了一種按需分配時隙機制,使得網絡能夠具有應對覆蓋區域內局部區域包數量突增的能力,提高了網絡的魯棒性。仿真結果證明,與I-MAC協議相比,改進協議具有很好的數據包投遞率,且能夠有效提高網絡吞吐量,降低網絡能耗,改善網絡的生存期,對傳感器網絡的發展和應用具有重要意義。