無(wú)線(xiàn)傳感器網(wǎng)絡(luò )中節能MAC協(xié)議的研究
引言
本文引用地址:http://dyxdggzs.com/article/159729.htm無(wú)線(xiàn)傳感器網(wǎng)絡(luò )是由大量傳感器節點(diǎn)構成的一種特殊 Ad Hoc 網(wǎng)絡(luò ),主要用于數據的 采集和傳輸,有著(zhù)廣泛的應用前景。由于傳感器節點(diǎn)一般由電池供電,且節點(diǎn)的體積微小, 而電池能夠攜帶的能量非量有限,因此,節省能耗是無(wú)線(xiàn)傳感器網(wǎng)絡(luò )中的一個(gè)研究熱點(diǎn)。 人們提出了許多有效的 MAC 層協(xié)議[1],其中以S—MAC 最具有代表性。它一方面繼承 了IEEE802.11 MAC[2] 協(xié)議中的基本機制,另—方面采用周期性睡眠工作方式,有效降低了 能耗,因此成為傳感器網(wǎng)絡(luò )中廣受關(guān)注的MAC 協(xié)議之一。本文將詳細分析以S—MAC 為代表的 Schedule 類(lèi)協(xié)議原理和性能,并在此基礎上探討更節能的MAC 協(xié)議的研究和設計。
一 Schedule 類(lèi)協(xié)議
1.1 S—MAC 協(xié)議
S—MAC(Schedules MAC)協(xié)議是基于時(shí)間調度協(xié)議的代表,它融合了幾乎所有的無(wú)線(xiàn) 網(wǎng)絡(luò )的節能技術(shù)。S—MAC 協(xié)議的主要目的就是節能,它的最主要的思想是通過(guò)周期性的 休眠來(lái)使得射頻低占空比運行。另外它還融入了其它的節能技術(shù),如沖突避免和串音避免, 還有消息傳遞以及自適應偵聽(tīng)機制。
周期性*和睡眠
周期性*和睡眠是 S—MAC 協(xié)議的最精華部分。在許多傳感器網(wǎng)絡(luò )應用中,大多都 是小數據量應用,即周期內只有少量數據,而其它很長(cháng)的時(shí)間內都沒(méi)有數據。因此,S—MAC 協(xié)議通過(guò)讓節點(diǎn)進(jìn)入周期性睡眠模式來(lái)減少*時(shí)間。例如,如果每秒鐘讓節點(diǎn)休眠半秒, 而另半秒進(jìn)入空閑*,那么該節點(diǎn)的radio 工作的占空因數(dutycyde)就減少到50%,即能 夠節省近50%的能量。
周期性*和睡眠的基本機制是偵察→睡眠→偵察→睡眠,每個(gè)節點(diǎn)在一段時(shí)間內睡眠,然后在醒過(guò)來(lái)后立即進(jìn)入空閑*狀態(tài)來(lái)*信道;在睡眠時(shí),節點(diǎn)關(guān)閉它的射頻,并 使用一個(gè)定時(shí)器來(lái)定時(shí)喚醒。*和睡眠的持續時(shí)間可以根據不同應用場(chǎng)景來(lái)選擇。一般為 了同步方便,所有節點(diǎn)可以設置相同的睡眠和喚醒時(shí)間。每個(gè)節點(diǎn)通過(guò)向鄰居廣播自己的調 度信息來(lái)實(shí)現鄰居節點(diǎn)間的調度信息的共享,同時(shí)每個(gè)節點(diǎn)都要為鄰居維護一張調度表,里 面記錄了各個(gè)鄰居節點(diǎn)的調度信息。
消息傳遞
S—MAC 的方法是把長(cháng)信息分割為許多小的片斷,然后傳輸它們。但是只在一開(kāi)始使 用一個(gè)RTS 分組和—個(gè)CTS 分組。每次傳輸一個(gè)數據片斷分組,發(fā)送者等待接收者送來(lái)的 ACK。每個(gè)數據片段和其ACK 都附帶有—個(gè)剩余時(shí)間域,其意義是告知鄰居節點(diǎn)還需占用 信道多長(cháng)時(shí)間,即相當于預約了信道整個(gè)消息發(fā)送所需要的時(shí)間。因此如果沒(méi)能夠接收到 ACK,節點(diǎn)可以擴展傳輸時(shí)間,并迅速重傳現有的片斷,如圖1 所示。

正常工作圖顯示了在發(fā)送 RTS 包的時(shí)候,剩余時(shí)間域就已經(jīng)為整個(gè)消息的發(fā)送預留了 占用信道的時(shí)間,而后的數據包和ACK 包中的時(shí)間隨著(zhù)包的發(fā)送依次遞減。而重發(fā)工作圖 中顯示,當發(fā)送方的一個(gè)片段包未收到ACK 時(shí),它立刻重發(fā)且擴展了剩余時(shí)間。由于每個(gè) 分組和ACK 都有剩余時(shí)間域,因此即使有節點(diǎn)提前醒來(lái)(由于重發(fā)耽誤了時(shí)間),也可以得 到新的剩余時(shí)間,而再次進(jìn)入睡眠,等待發(fā)送結束。在每個(gè)數據片斷后使用ACK 的目的是 預防隱藏終端問(wèn)題。在傳輸過(guò)程中,一個(gè)鄰居節點(diǎn)醒來(lái)或新節點(diǎn)加入都是可能的。如果節點(diǎn) 只是接收者的鄰居而不是發(fā)送者的,它就不會(huì )聽(tīng)到發(fā)送者正在傳輸的數據片斷。如果接收者 并沒(méi)有頻繁的發(fā)送ACK,新節點(diǎn)也許會(huì )錯誤的從它的載波偵聽(tīng)中推斷媒介是空閑的,并開(kāi) 始發(fā)送數據,從而導致現有的傳輸將會(huì )在接收者處被損壞。
評論