張華南,金 紅,王 峰
(1.廣東培正學院數據科學與計算機學院,廣東 廣州 510830;2.湖北大學計算機與信息工程學院,湖北 武漢 430062;3.湖北文理學院計算機工程學院,湖北 襄陽 441053)
無線傳感器網絡WSNs(Wireless Sensor Networks)是一項成熟的技術,在環境監測、醫療保健和工業控制等領域有廣泛應用[1]。WSNs由多個無線傳感器節點組成,這些節點監視一個環境,信息數據通過無線通信發送到一個或多個名為sink的遠程主機。無線傳感器節點一般由處理單元、存儲器、傳感器和收發器等多個組件組成[2]。通常,這些設備由電池供電,因此使用壽命有限,這使得能源成為最寶貴的資源之一,尤其是在網絡運行數月甚至數年的情況下。

Figure 1 Energy management(EM)structure
為了解決傳感器能源消耗問題,一個可取的方法是能量收集EH(Energy Harvesting)與能量管理EM(Energy Management),節點由環境能源(如陽光、風、振動和水流等)提供動力。與傳統的電池供電方式相比,使用EH可以將WSNs的壽命提高一個數量級,并實現能量中性操作ENO(Energy Neutral Operation)狀態,即收獲的能量大于或等于長期消耗的能量[3]。
對于能量管理Kansal等人[4]有相關研究,利用能量預測采收能量,并根據預測能量與觀測能量差值計算占空比。Castagnetti等人[5]引入了閉環電源管理器CL-PM(Closed-Loop Power Manager),使用2種不同的能源管理策略,一種是使用環境能源;另一種用于收集能源低于固定閾值情況,也稱零能源時隙。Renner等人[6]提出了一種基于預測能源的算法,以超級電容為儲能裝置的能量采集傳感器節點,對消耗和收獲的超級電容器能量儲備進行預測。
針對無線傳感器節點能量收集EH-WSNs引入一種新的能量管理EM,其任務是根據當前剩余能量,通過吞吐量來動態調整節點的性能,EM可與多種MAC協議協同使用。假設把時間分成相等的時間間隔T,當前剩余能量用eR表示,喚醒時隙用TWI表示。
2個子模塊組成EM,如圖1所示。圖1中,τi表示節點數據傳輸狀態,NS是狀態數,Pi表示節點功耗,eR[k-1]表示EBC在時隙k-1的剩余能量,eb[k]表示節點在時隙k的能量預算,Tw[k]表示喚醒時隙,MACX和MACY表示不同的MAC協議。第1個模塊是能量預算EBC(Energy Budget Computation)模塊,評估節點在下一個時隙k中可以消耗的能量,以確保持續性,這部分能量稱為能量預算,用eB[k]表示。相應地,時隙k-1的剩余能量和能量的變化量分別用eR[k-1]和ΔeR[k-1]表示,定義為:
ΔeR[k-1]=eR[k-1]-eR[k-2]
(1)
第2個模塊是吞吐量計算TC(Throughput Computation)模塊,根據能量預算eB[k]計算喚醒時隙TWI[k]。當拓撲結構是星型網絡時,節點的唯一任務是將生成的數據發送到接收器。在多跳網絡中,每個節點還必須中繼其他節點發送的數據包。TC是特殊的星型網絡,因此EM可以通過設計一個模塊來代替TC,從而使其更容易適應多跳場景。TC負責分配多跳網絡所需的感知和中繼任務之間的能量預算。

Figure 2 Energy storage levels and rule


(2)
其中,δeB[k]為能量預算修正,根據剩余能量eR和能量的變化量△eR的當前值計算。環境影響評估有2個目標:一是在可獲得的環境能源很少的情況下,找出一項能源預算,在釋放速度和服務質量之間達成適當的折衷;二是當環境能源可用時,避免飽和或在充電率和服務質量之間找到一個好的折衷,可以通過調整能源預算值實現,該值取決于剩余能源及其變化。圖2b所示為能量預算EBC策略。在表中,ΔeB是EM的一個正參數,當儲能量處于ENI區間或處于飽和區間時,ΔeB對應于能量預算修正。選擇ΔeB需要在EBC的反應和分配的能源預算的可變性之間進行折衷。選擇的ΔeB值越高,導致EM的反應活性越高,但代價是能量預算的劇烈變化,這可能不適用于許多應用。另一方面,ΔeB值越低,EM的反應活性越低,能量平衡變化越平穩。因此,ΔeB的選擇取決于能源來源和應用要求。從圖2中可以考慮4種場景,后面將詳細介紹。
(1)飽和風險。

(2)能量中性區間。
如果剩余能量屬于ENI,則EBC的目標是保持節點處于ENO-MAX狀態。當剩余能量相對保持恒定時,達到ENO-MAX狀態,EBC修正ΔeR的能量預算,使節點保持在ENO-MAX狀態。能量中性區間如圖2b中R4,R5,R6所示。
(3)充電狀態。

(3)
其中,MC和KC為充電策略調整參數。μC隨著eR的增加而增加。當KC=1時,ΔeB隨eR線性增加;當KC≤1時,隨著剩余能量的增加,增長速率增大;而KC>1時,隨著eR的增加,增長速率減小。充電狀態如圖2b中R3所示。
(4)放電狀態。

(4)
其中,MD和KD為放電策略調整參數。μD隨著eR的增加而減小,能量儲存越少。KD和μD對放電策略的影響與KC和MC對充電策略的影響相似。放電狀態如圖2b中R2,R3所示。
吞吐量計算TC的目標是計算節點在一個時隙內的吞吐量,以消耗EBC指定的能量。由于無線通信最消耗能源,因此給定能量預算的節點吞吐量與MAC協議緊密相關[8]。
MAC協議傳輸一個數據包,通常需要很多步驟,比如接收/發送信標幀、發送數據幀、接收確認(ACK)幀等等。使用給定協議通信時節點可能處于的狀態數用NS表示。每個狀態由不同組件狀態(MCU、無線電芯片和傳感器)的組合定義。狀態i∈{1,…,NS},單包傳輸過程用τi表示,節點相應的功耗用Pi表示。因此,執行測量和發送單個數據包的整個過程的能量是:
(5)
節點在一個時隙k上消耗的能量為:
(6)

(7)
將式(6)中的eC[k]替換為eB[k],得到相應的吞吐量(以每分鐘包數計算)為:
(8)
通常MAC協議是基于偽異步方法,這使得τi值的估計具有挑戰性。事實上,對于不同包的傳輸,空閑狀態和接收狀態下花費的時間差異很大。由于這些值的估計不準確,節點所消耗的能量可能與EBC計算的能量預算相差很大,這可能導致電力故障或能源浪費[9]。
為了評估不同MAC協議的能源效率,將能源利用系數EUC(Energy Utilization Coefficient)定義為吞吐量與能源預算的比值:
(9)
EUC根據可用的能源預算對MAC協議實現的吞吐量進行量化,結合式(7)~式(9),得到:
(10)
其中H定義為:
H=eT-τTPS
(11)
H是與給定硬件和MAC協議相關的常數。實際上,τT值依賴于MAC協議,而Pi值依賴于硬件。對于給定的硬件和MAC,EUC不是常數,而是隨著能源預算eB的增加而增加。其次,EUC是有界的,其表達式為:
(12)
由式(12)可知,H值越小,ξ∞的值越大,因此H值越小越好。假設Pi值是固定的,睡眠狀態PS的功耗應該比其他狀態Pi的功耗小得多。這個假設適用于所有的WSNs。因此,通過最小化τi值來最小化H。為了使H最小,在每個數據包傳輸時只發送數據幀。然而,大多數MAC協議都引入了開銷來同步節點或錯誤控制[10]。
無線傳感器網絡中MAC協議的設計與實現已經有了大量的研究。MAC可以分為3種模式:同步、偽異步和異步。在第1種模式中,同步相鄰節點被同時喚醒。然而,在EH-WSNs環境下,環境電源提供的能量隨時間和空間不斷變化,使得同步模式不適用于此類應用場景。實際上,由能量收集提供動力的節點必須能夠動態調整其占空比,偽異步和異步方案允許每個節點獨立于其他節點選擇其活動調度。傳統偽異步方案依賴于占空比循環,其中節點根據自己特定時間表周期性地開關電源。
偽異步模式分為發送方發起和接收方發起,在發送方發起的方案中,接收節點被定期喚醒來監視信道,如果發現信道是空的,則在被短時間喚醒后返回睡眠狀態。當一個節點有一個數據包要發送時,它將發送請求發送到目標節點,每個節點都有一個監聽周期。目標節點醒來時獲取傳輸請求,并通過一條消息回答傳輸節點,數據包被發送出去。在接收方發起的方案中,接收節點定期醒來并發送一個信號,并對信道進行短時間監控,如果沒有檢測到信號,就會返回睡眠狀態。如果節點需要傳輸數據,它將偵聽來自接收器的清除發送信號通道,并在接收后開始發送數據包[11]。
使用ULP WuRx(Ultra Low Power Wake-up Receiver)可以實現全異步通信。由于ULP WuRx技術尚處于發展階段,且相對較新,目前對利用ULP WuRx設計通信協議研究較少。
使用ULP WuRx的星型網絡SNW-MAC(Star Network WuRx-MAC)協議,是一種用于數據收集的星型網絡協議。傳統協議使用占空比循環方法來降低能源消耗,但是,該方案并不能消除由于空閑監聽而產生的能量浪費,此外,傳統協議容易發生沖突,這會降低它們的可伸縮性并增加能源消耗。SNW-MAC利用ULP WuRx實現異步通信,將傳輸數據包所需的能量降至最低,同一SNW-MAC網絡的節點發送的數據包之間不發生沖突。
SNW-MAC是一種異步模式。使用SNW-MAC進行數據包傳輸的流程如圖3所示,其中,Tx表示星型網絡傳輸,Rx表示星型網絡接收,節點n在時隙k進行數據傳輸。接收器通過發送包含特定傳感器節點地址的喚醒信號WuB(Wake-up Beacon)來初始化通信,然后偵聽信道接收數據包。目標傳感器節點被其ULP WuRx喚醒,并開始發送數據包。每個傳感器節點在數據包中攜帶其喚醒時隙[12]。sink保存一個更新后的表,該表關聯每個節點的喚醒時隙,并在正確的時間輪詢每個節點。接收器為每個節點設置一個用于承載數據包中喚醒時隙的計時器,并在計時器每次過期時輪詢該節點。感知操作由每個節點在2個接收器輪詢之間的任何時間執行,以確保數據準備好在接收器發送喚醒信標時發送。與傳統的接收端發起協議相比,由于不需要匯聚過程,該方法降低了匯聚和節點的能量消耗,避免了不必要的周期性WuB發送,進一步降低了系統的能量消耗。由于喚醒時隙通常是16位整數,因此承載此信息所產生的開銷很小。此外,接收器可以使用WuB來監測傳感器節點的活動[13]。

Figure 3 SNW-MAC:packet transmission and Wake-up Beacon(WuB)
與傳統的偽異步模式相比,SNW-MAC通過協調接收器上的數據包傳輸,消除了沖突風險,每個節點都是輪詢的。然而,無線信道的干擾可能會導致幀的損壞,因此節能的錯誤控制和數據包重傳是一個重要的問題。由于接收端完全負責協調數據包的傳輸,因此它負責檢測傳輸錯誤并調度另一次嘗試。每個WuB嵌入一個預期8位序列號的數據包。接收器保存一個更新后的表,該表為每個節點關聯輪詢的下一個數據包序列號。當一個傳感器節點ULP WuRx獲得一個WuB時,同時讀取地址和序列號。由于ULP WuRx能夠直接識別地址,它只有在地址有效時才喚醒節點微處理器MCU(MicroController Unit),然后使用串口將序列號發送給節點MCU。所有序列號低于接收序列號的數據包都被認為是成功接收或由于傳輸嘗試次數過多而被丟棄了,因此將其從傳輸緩沖區中刪除。然后節點發送具有接收請求的數據包,數據包攜帶了它的序列號。當接收器從給定的傳感器節點成功接收到數據包時,接收器將檢查數據包序列號。如果數據包的序列號是接收器期望的序列號,則接收器將遞增與此節點關聯的序列號。當接收器檢測到傳輸失敗時,例如接收到的數據包已損壞,不會增加序列號并設置隨機回退。使用SNW-MAC,節點只發送數據幀,從而最小化每個數據包的能量消耗。此外,如果數據幀長度不變,每個數據包的能量消耗變化也會最小化。事實上,造成能源消耗變化的唯一可能原因是重新傳輸[14]。
利用多能源轉換MESC(Multiple Energy Source Converter)架構的單路徑體系結構中,只有一個儲能裝置,所有采集到的能量都用于給儲能裝置充電,儲能裝置通過DC-DC變換器直接為節點供電。圖4所示為MESC的塊結構,它可以與各種能源收割機(例如光伏電池、熱電發電機和風力渦輪機)一起使用,使用適當的能量適配器來標準化輸出能量[15]。選擇超級電容器作為存儲設備是因為它們比電池更耐用,能提供更高的功率密度。本文實驗基于MESC架構的PowWow平臺,采用CC1120無線電芯片。儲能裝置為0.9 F超級電容,最大電壓5.0 V,節點供電所需的最小電壓為2.8 V。剩余能量eR計算如下:
(13)
其中,C為超級電容,VC為電容器的電壓。由于超級電容通過DC-DC變換器向節點供電,如圖4所示,DC-DC變換器的效率隨著輸入電壓的變化而變化,因此節點所消耗的功率取決于超級電容的充電情況。因此,可以測量DC-DC轉換器在不同輸入電壓(2.8 V~5.0 V)下各τi的功耗Pi。實驗所用參數如表1所示,表1中提供了MAC協議、物理層PHY和能量預算EBC的相關實驗參數。

Figure 4 Hardware architecture of a WSNs node using the multiple energy source converter(MESC)
ULP WuRx采用開關鍵控OOK(On-Off

Table 1 Parameters of experiment
Keying)調制,是最簡單的幅移鍵控ASK(Amplitude-Shift Keying)調制形式。當ULP WuRx檢測到載波時,喚醒微控制器,微控制器讀取嵌入到WuB中的地址并進行地址匹配。如果接收到的地址無效,微控制器將返回休眠狀態,如果地址是有效的,將使用中斷喚醒節點MCU。
圖5所示為標準無線電電源管理架構UPMA(Unified Radio Power Management Architec-ture)-X-MAC和PW-MAC協議的比較。節點通過不斷發送數據包來啟動通信,直到接收到來自接收器的ACK幀為止。如果接收器檢測到數據包并完全接收,則由sink節點發送ACK幀,如圖5a所示。

Figure 5 UPMA-X-MAC and PW-MAC protocols
PW-MAC是一種接收端發起的協議,主要關注接收端和發送端的能源效率。使用PW-MAC的數據包傳輸如圖5b所示。在接收端,接收器周期性地醒來并發送信標(BCN)幀。在發射端,每個節點都精確地預測接收器將在何時醒來。如果需要發送數據包,節點將在接收發送下一個信標之前醒來。一旦獲得信標,節點將發送數據包并等待ACK幀。在每個數據包傳輸時,計算一個預測誤差,節點根據該誤差更新節點預測時間[16]。為了評估MAC協議的能量效率,測量單個數據包的傳輸和接收的能量消耗是很重要的。在10.2 Ω電阻和3.5 V電源串聯的情況下,測量這3種評估協議的能量軌跡。除了允許對能耗進行詳細分析外,這些微基準還用于設置式(5)中的τi值,并計算與EUC度量相關的H和ξ∞值。

Figure 6 Microbenchmarks of the MAC protocols
測量結果如圖6所示,其中Pc為節點的功耗。圖6a顯示了與其他協議相比使用SNW-MAC協議發送數據包的功耗達到最低,它只需要發送數據幀(B)。如果數據有效載荷長度固定,則發送數據包的能量消耗是恒定的。對于圖6b中的sink,可以看到數據包接收的2個階段,發送WuB(A)然后接收數據幀(B)。由于與非WuB幀相比,發送WuB的比特率更低,傳輸功率更高,因此輪詢節點對接收器的能量開銷更大。這個結果會激發數據包中每個節點的喚醒時隙,允許接收器只在正確的時間輪詢節點[17]。
在圖6所示的MAC協議的測試中,顯示了數據包的傳輸情況,圖6c和圖6d分別顯示了使用PW-MAC進行分組傳輸和接收的能量消耗。使用此協議發送數據包需要接收信標(A)和幀ACK(C),這使得發送數據包的能量消耗高于使用SNW-MAC協議的。此外,發送方會在接收器發送信標之前短時間內醒來,以防止預測錯誤。這個時隙在每次傳輸時都是不同的,導致每個包傳輸的能量消耗是不恒定的。由于時鐘漂移,預測誤差變得非常大,當超過一個固定的閾值時,就會觸發預測狀態的更新,導致更高的能耗。使用SNW-MAC協議不需要傳輸ACK幀,與使用PW-MAC協議相比部分抵消了WuB傳輸所帶來的能量開銷[18]。
圖6e顯示了使用UPMA-X-MAC為節點發送數據包的能量消耗,在這種情況下,接收器在第6次嘗試時成功接收到了數據包。對于每次嘗試,都可以看到發送數據包(B)和偵聽ACK(C)這2個階段。如圖6f所示,sink在第5次嘗試(B)時醒來,因此沒有接收到完整的數據包,它保持蘇醒,以便在下一次嘗試時接收數據包(B)并發送ACK(C)。使用UPMA-X-MAC發送一個數據包的消耗在不同的傳輸中有很大的差異,這是由接收喚醒時間相對于節點傳輸開始時間的隨機性導致的。在成功接收數據包之前,節點必須等待接收器喚醒平均時隙的一半時間。在接收端,數據包接收的能量消耗也是可變的,除了傳輸ACK幀外,還需要監聽平均一個半數據包[19]。使用這些微基準,測量式(5)的值,并使用Pi的最低測量值計算了不同MAC協議的H和ξ∞,從而得到H和ξ∞的最佳可實現值。表2給出了得到的結果,可以看出,使用SNW-MAC可以更好地利用能源預算。
ULP WuRx的功耗是非常低的,因為它總是處于活動狀態,即使所有其他組件都處于睡眠狀態也同樣如此。ULP WuRx 測量功耗是1.83 μW。

Table 2 Best values of H and ξ∞ for the different MAC protocols
當可編程中斷控制器處于活動狀態時,ULP WuRx的功耗變得非常明顯。EM和MAC協議是在一個由6個節點(包括一個sink)組成的實驗臺上以星型拓撲結構實現的。節點被布置在一個沒有窗戶的房間里,完全由室內熒光燈供電。每個節點都配備了一塊太陽能電池板,且節點部署在不同光照條件下。每組實驗均持續3 h,白天進行,只有在評估SNW-MAC協議時,節點才配備ULP WuRx。在可變光照條件下,將單個傳感器節點暴露在室內環境的熒光燈下,觀察節點剩余能量,然后在沒有任何可用環境能量的情況下(關燈)放置2 h,觀察能量變化,最后再次暴露節點在室內光線下,觀察節點剩余能量的變化。
從星型網絡實驗結果(圖7)中可以看出,使用SNW-MAC協議的吞吐量都高于使用PW-MAC協議的,說明SNW-MAC協議具有更好的能效。實驗結果表明了EM在不同MAC協議下實現能量中性的能力,以及它與高效的SNW-MAC協議結合的好處,該協議利用ULP WuRx來支持異步通信[20]。

Figure 7 Results of the experiments on a star network
無線傳感器網絡能量收集與管理是解決能耗問題的重要環節。通過對能量收集與管理方案的研究,將異步MAC協議和超低功耗喚醒接收器配合使用。在星型拓撲結構數據采集傳感器網絡中的實驗表明,與PW-MAC協議相比,SNW-MAC協議可獲得更高的吞吐增益,提高了無線傳感器網絡的能源效率。