無(wú)線(xiàn)傳感網(wǎng)中一種基于即時(shí)信息的TDMA方案
0 引言
無(wú)線(xiàn)傳感網(wǎng)絡(luò )(Wireless Sensor Network)是由許多在空間中分布的自動(dòng)裝置組成的一種無(wú)線(xiàn)通信網(wǎng)絡(luò ),這些裝置使用傳感器監控不同位置的物理或環(huán)境狀況(比如溫度.聲音.振動(dòng).壓力.運動(dòng)或污染物),并相互協(xié)作,共享信息.無(wú)線(xiàn)傳感網(wǎng)絡(luò )最初起源于戰場(chǎng)監測等軍事應用,現已被應用于很多民用領(lǐng)域,如環(huán)境與生態(tài)監測.健康監護.家居自動(dòng)化以及交通控制等.其應用價(jià)值,已引起世界多國軍事部門(mén).工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注.
無(wú)線(xiàn)傳感網(wǎng)有TDMA 和CSMA 兩種基本的MAC 協(xié)議方案.其中基于TDMA的MAC協(xié)議實(shí)現信道分配的機制簡(jiǎn)單成熟,它沒(méi)有CSMA競爭機制的碰撞和重傳問(wèn)題,而是為傳感器網(wǎng)絡(luò )中每個(gè)節點(diǎn)分配獨立的時(shí)隙用于數據發(fā)送或接收,數據傳輸時(shí)不需要過(guò)多的控制信息,且節點(diǎn)在空閑時(shí)能夠及時(shí)進(jìn)入睡眠狀態(tài).因而在節點(diǎn)無(wú)移動(dòng)且網(wǎng)絡(luò )部署情況已知的場(chǎng)景,采用TDMA 方式進(jìn)行通信,可避免信道沖突以及沖突引起的丟包和能量損耗;保證數據傳輸的實(shí)時(shí)性和可靠性;令節點(diǎn)在不工作期間進(jìn)入睡眠狀態(tài),以保存能量.這些特點(diǎn)很適合無(wú)線(xiàn)傳感網(wǎng)中的節能要求.近年來(lái),有很多基于TDMA的改進(jìn)方案,像LEACH.BCMAC等.這些新的方案雖然在資源節約.性能提高上有了一些改進(jìn),卻存在調度方式復雜.時(shí)延過(guò)大.信道利用率低.資源浪費等不合理性.因此尋求新的方案以改進(jìn)存在的問(wèn)題,仍然是業(yè)界面臨的迫切任務(wù).
1 問(wèn)題描述
現有無(wú)線(xiàn)傳感網(wǎng)中,基于TDMA 的MAC 協(xié)議大多是與簇的組網(wǎng)方式相結合.將網(wǎng)絡(luò )劃分為若干個(gè)簇,每個(gè)簇選舉一個(gè)簇頭節點(diǎn)做為集中控制點(diǎn),對簇內成員進(jìn)行TDMA 調度,各簇內成員在其分配的時(shí)隙內發(fā)送數據.
典型的有LEACH協(xié)議,該協(xié)議以輪為單位周期性執行簇的重構過(guò)程.如圖1所示,每輪分為簇的形成階段和簇的穩定階段.簇的形成階段,主要完成簇頭節點(diǎn)的選擇.廣播.建立和調度機制的生成.簇的穩定階段,分為調度階段和數據傳輸階段.調度階段,簇頭根據收集來(lái)的簇內節點(diǎn)的信息,將數據傳輸階段分配為n個(gè)長(cháng)度相等的幀,每個(gè)幀內的時(shí)隙又固定分配給簇內的成員,每輪只調度分配一次.數據傳輸階段,根據調度結果,每個(gè)簇內成員在每幀中的固定時(shí)隙內進(jìn)行數據傳輸.每輪數據傳輸階段之后進(jìn)行下一輪的簇重構過(guò)程.這種基于簇的TDMA協(xié)議,采用周期性的選舉簇頭的方法,使得各簇頭節點(diǎn)的能量得到均衡,延長(cháng)了網(wǎng)絡(luò )的工作壽命;但是在每一輪中只進(jìn)行一次調度,且n 個(gè)幀的長(cháng)度相等,各節點(diǎn)在幀內的時(shí)隙固定.如圖1 所示,假設在一個(gè)幀內只有第1.5.m 三個(gè)節點(diǎn)有數據需要傳輸(圖中的陰影時(shí)隙,即表示有數據傳輸),則無(wú)數據傳送節點(diǎn)所占用的固定時(shí)隙就會(huì )被浪費,從而造成了信道利用率低下,時(shí)延加大.同時(shí)由于簇頭起到的是轉發(fā)信息的功能,因而在整個(gè)幀內,簇頭都需要保持監聽(tīng)狀態(tài),浪費了簇頭的能量.
類(lèi)似的還有BCMAC協(xié)議,如圖2 所示,該協(xié)議與LEACH協(xié)議在簇的形成階段相似.在穩定階段對TDMA協(xié)議進(jìn)行了一些改進(jìn),即在每幀開(kāi)始時(shí),由那些有數據傳輸的節點(diǎn)向簇頭發(fā)送申請,簇頭節點(diǎn)根據申請情況來(lái)分配時(shí)隙,并向簇內節點(diǎn)廣播調度方法,每個(gè)需要發(fā)送數據的節點(diǎn)獲得一個(gè)確定的發(fā)送時(shí)間,沒(méi)有數據需要發(fā)送的節點(diǎn)則處于睡眠狀態(tài),并在下一幀開(kāi)始時(shí)蘇醒.假設只有三個(gè)節點(diǎn)有數據傳輸,則簇頭節點(diǎn)將節點(diǎn)信息收集起來(lái)進(jìn)行時(shí)隙分配.由于簇頭無(wú)需在整個(gè)幀長(cháng)內保持偵聽(tīng)且無(wú)數據傳輸的節點(diǎn)可以處于睡眠狀態(tài),因而節約了大量的能量.同時(shí)由于采用了固定幀長(cháng),仍然會(huì )有時(shí)隙被浪費,因而沒(méi)有提高信道利用率,時(shí)延依然很大.該方案中,簇頭需要廣播各個(gè)節點(diǎn)的ID 號及調度方案,增加了調度開(kāi)銷(xiāo),增加了能量消耗.本文提出的IM-TDMA 方案是在現有TDMA 協(xié)議的基礎上,通過(guò)變長(cháng)幀長(cháng)來(lái)適應網(wǎng)絡(luò )流量變化,提高信道利用率,降低時(shí)延;并通過(guò)計數器管理方式來(lái)進(jìn)行TDMA 調度,降低調度復雜性,減少調度開(kāi)銷(xiāo),降低能耗;同時(shí)選取合適的時(shí)隙大小,進(jìn)一步優(yōu)化網(wǎng)絡(luò )性能.
2 IM-TDMA方案描述
2.1 基本算法
IM-TDMA方案與LEACH 協(xié)議和BCMAC協(xié)議在簇形成階段類(lèi)似,如圖3所示,仍是按輪運行的,每一輪由簇形成階段和簇穩定階段組成.簇形成階段,完成成簇.簇頭選舉及時(shí)鐘同步的任務(wù);簇穩定階段,根據節點(diǎn)的流量,分為n個(gè)長(cháng)度不等的幀,即每幀有幾個(gè)節點(diǎn)需要傳輸數據就分配幾個(gè)時(shí)隙.如圖3所示,假設一幀中有3個(gè)節點(diǎn)有數據傳輸,則該幀就只由3個(gè)時(shí)隙組成.該方案將每幀分為時(shí)隙申請.調度和數據傳輸三步.
2.1.1 時(shí)隙申請
這一階段主要按照節點(diǎn)ID 順序,給每個(gè)節點(diǎn)分配一個(gè)信令小時(shí)隙,每個(gè)信令小時(shí)隙占用1 b用于向簇頭申請時(shí)隙.有數據需要傳輸的節點(diǎn)在自己的信令小時(shí)隙內發(fā)送申請時(shí)隙的信息,觸發(fā)簇頭計數器,隨著(zhù)申請節點(diǎn)數的增加,計數器值依次增加,每個(gè)節點(diǎn)觸發(fā)計數器得到的計數值即為該節點(diǎn)在本幀的時(shí)隙位置值.由于各節點(diǎn)在各自不同的信令小時(shí)隙內向簇頭發(fā)送申請時(shí)隙的信息,因此不會(huì )發(fā)生碰撞.在此過(guò)程中,對上一幀中未傳完的數據節點(diǎn)優(yōu)先分配信令時(shí)隙,即在每幀開(kāi)始時(shí)先給在上一幀中未傳完數據的節點(diǎn)申請時(shí)隙,以讓續傳信息優(yōu)先完成數據傳輸,然后再給在本幀中有數據傳送的節點(diǎn)申請時(shí)隙,且每幀中每個(gè)節點(diǎn)只能進(jìn)行一次時(shí)隙申請.具體的時(shí)隙分配過(guò)程如圖4所示,每一幀信令時(shí)隙S0由兩部分組成,第一部分S0為續傳申請時(shí)隙,其由h個(gè)信令小時(shí)隙組成,h為前一幀數據傳輸所占用的總時(shí)隙數,且在每輪數據的第一幀,h值為0.第二部分S02由m個(gè)信令小時(shí)隙組成,m為該簇內的所有節點(diǎn)數.由于每幀每個(gè)節點(diǎn)只能發(fā)送一次申請時(shí)隙的信令信息,因而在S01中申請時(shí)隙的節點(diǎn)不會(huì )在S02中重復申請時(shí)隙.如果某個(gè)節點(diǎn)在上一幀中有未傳輸完的數據,需要在本幀中傳輸,假定其在上一幀中的第i個(gè)時(shí)隙傳送,則在本幀中S01時(shí)隙的第S01i個(gè)信令小時(shí)隙發(fā)送申請時(shí)隙信息,觸發(fā)簇頭計數器加1,計數器的值即為該節點(diǎn)在本幀中傳送的時(shí)隙位;如果某個(gè)節點(diǎn)在本幀中有需要傳輸的數據,假定其信令小時(shí)隙是第j個(gè),則在S02時(shí)隙中的第S02j個(gè)信令小時(shí)隙中發(fā)送申請時(shí)隙信令,觸發(fā)簇頭計數器加1,計數器的值即為該信息在本幀中傳送的時(shí)隙位.計數器在每輪開(kāi)始時(shí),初始化為0,并在每幀時(shí)隙申請完成之后立刻置0.
2.1.2 調度分配
這一階段簇頭根據時(shí)隙申請及觸發(fā)計數器生成的計數結果,廣播一個(gè)調度結果.該調度分配結果將數據時(shí)隙分為兩部分.第一部分是在S01申請續傳的時(shí)隙,假設有p個(gè);第二部分是在S02申請新傳的時(shí)隙,假設有q個(gè).
這兩部分所占用的時(shí)隙數之和,即為下一幀用于申請續傳信息的信令小時(shí)隙的h(h = p + q)值.
下面以一個(gè)實(shí)例來(lái)說(shuō)明:
假設有m個(gè)節點(diǎn),如圖5所示,用Ip表示第p個(gè)節點(diǎn)所傳的數據信息內容,用Sq表示第q個(gè)時(shí)隙,用S01i表示S01信令時(shí)隙中第i個(gè)信令小時(shí)隙,用S02j表示S02信令時(shí)隙中第j個(gè)信令小時(shí)隙.計數器的值在系統形成時(shí)已初始化為0.假設在第一幀中節點(diǎn)3.5.8有數據傳輸,因為是第一幀,所以不存在續傳信息,即沒(méi)有S01信令時(shí)隙,只有S02信令時(shí)隙.節點(diǎn)3在S02時(shí)隙中的第S023個(gè)信令小時(shí)隙中向簇頭發(fā)送申請時(shí)隙的信息,觸發(fā)計數器,因為該幀開(kāi)始時(shí),計數器初始化為0,因而觸發(fā)后其值為1,故節點(diǎn)3的數據在第1時(shí)隙中傳輸,可表示為I3在S1中傳;同理節點(diǎn)5在S02時(shí)隙中第S025個(gè)信令小時(shí)隙中向簇頭發(fā)送申請時(shí)隙的信息,觸發(fā)記數器,記數器值增為2,表明節點(diǎn)5的數據在第2時(shí)隙中傳輸,表示為I5在S2中傳;同樣的道理可得節點(diǎn)8的數據在第3個(gè)時(shí)隙中傳輸,即I8在S3中傳.第一幀時(shí)隙申請完之后,將計數器置為0.這樣在第一幀中,節點(diǎn)3.5.8的數據依次在S1.S2.S3三個(gè)時(shí)隙中傳輸.第一幀的時(shí)隙總數為3(即下一幀的h值).在第二幀中,假設節點(diǎn)3.8的數據在第一幀中未傳送完,需要在第二幀中續傳,同時(shí)節點(diǎn)1.4.9在本幀中有數據需要傳輸.由于前一幀的時(shí)隙總數為3,因而本幀的h值為3,即S01時(shí)隙中有3個(gè)信令小時(shí)隙,因為節點(diǎn)3在前一幀中所占的是第一時(shí)隙,因而節點(diǎn)3在S01時(shí)隙中的第S011個(gè)信令小時(shí)隙中發(fā)送申請時(shí)隙信息,觸發(fā)計數器,故節點(diǎn)3的續傳信息在本幀中的第1時(shí)隙傳送,可表示為I3在S1中傳;同理節點(diǎn)8在前一幀的第3時(shí)隙傳送數據,因而節點(diǎn)8在該幀中的S01時(shí)隙的第S013個(gè)信令小時(shí)隙發(fā)送申請時(shí)隙信息,觸發(fā)計數器,計數器值加1,故節點(diǎn)8在該幀中的續傳信息在第2 時(shí)隙傳送,可表示為I8在S2中傳.接著(zhù)分配本幀中需要傳送信息的節點(diǎn)的時(shí)隙位置,節點(diǎn)1 在本幀中有數據需要傳輸,因而節點(diǎn)1 在S02時(shí)隙的第S021個(gè)信令小時(shí)隙發(fā)送申請時(shí)隙信息,繼續觸發(fā)計數器,計數器值加1,故節點(diǎn)1在該幀中的第3時(shí)隙傳送,可表示為I1在S3中傳;同理節點(diǎn)4在本幀中有數據需要傳輸,因而在S02時(shí)隙的第S024個(gè)信令小時(shí)隙發(fā)送申請時(shí)隙信息,觸發(fā)計數器,計數器值加1,故節點(diǎn)4在該幀中的第4時(shí)隙傳送,可表示為I4在S4中傳;同理可得節點(diǎn)9在該幀中的第5時(shí)隙傳送,可表示為I9在S5中傳.由于每幀中每個(gè)節點(diǎn)只能申請一次時(shí)隙,因而續傳信息的節點(diǎn)不會(huì )在S02時(shí)隙中重復進(jìn)行時(shí)隙申請.本幀節點(diǎn)申請完時(shí)隙后,計數器初始化為0.這樣在第二幀中節點(diǎn)3.8的數據分別在第1.2時(shí)隙中進(jìn)行續傳,而節點(diǎn)1.4.9的數據分別在第3.4.5時(shí)隙中進(jìn)行傳輸.可以看出本幀總的傳輸時(shí)隙數為5(為下一幀的h值).
2.1.3 數據傳輸
這一階段各個(gè)節點(diǎn)按照簇頭發(fā)送的調度信息,在各自分配的數據時(shí)隙中傳輸數據.如果節點(diǎn)在下一幀中仍有數據傳輸,則繼續在下一幀信令時(shí)隙S01時(shí)隙中對應的信令小時(shí)隙進(jìn)行時(shí)隙申請,完成調度,然后在分配的時(shí)隙中進(jìn)行數據傳輸即可.
在這種調度分配中,難免會(huì )遇到需要傳輸的數據極少甚至無(wú)數據傳輸的情況,為了避免調度的頻繁進(jìn)行或睡眠時(shí)間過(guò)長(cháng),需要設定一個(gè)最小幀長(cháng),這個(gè)需要依據實(shí)際應用中要求的而定.本方案中依據所占用的平均時(shí)隙數而定.
2.2 時(shí)隙計算
在此調度方案中,使用的是幀長(cháng)不定.時(shí)隙定長(cháng)的方法,需要對時(shí)隙定義一個(gè)合適的長(cháng)度,過(guò)大會(huì )使空閑時(shí)間過(guò)長(cháng),浪費資源,過(guò)小又會(huì )使調度次數增多.按照節點(diǎn)的負載與信道容量的關(guān)系,給出如下時(shí)隙計算公式:
式中:ts表示所選的時(shí)隙大??;bavg表示各節點(diǎn)產(chǎn)生的業(yè)務(wù)通信負載的平均量;bk表示各個(gè)節點(diǎn)可能產(chǎn)生的業(yè)務(wù)負載量的值;m表示簇中的節點(diǎn)數;C表示信道容量.
3 仿真實(shí)驗及結果分析
3.1 仿真參數設置
為了驗證本方法的有效性和通用性,在不同負載情況下,對IM-TDMA,BCMAC和傳統的TDMA協(xié)議的平均時(shí)延和平均能量消耗進(jìn)行了仿真對比實(shí)驗.仿真環(huán)境如下:
無(wú)線(xiàn)網(wǎng)絡(luò )的覆蓋范圍為100 m×100 m,節點(diǎn)數為50,數據包大小為512 B,模擬時(shí)間為1 000 s,簇半徑為30 m,數據包由CBR流量產(chǎn)生器產(chǎn)生.
3.2 仿真結果分析
三種協(xié)議在平均時(shí)延方面的對比如圖6 所示.可以看出,IM-TDMA協(xié)議比TDMA協(xié)議和BCMAC協(xié)議的時(shí)延都小,這是因為IM-TDMA 協(xié)議根據節點(diǎn)流量來(lái)動(dòng)態(tài)調節幀長(cháng),提高了信道利用率,因而數據的傳輸時(shí)延較小.
三種協(xié)議在平均能量消耗方面的比較如圖7 所示.由圖7可以看出,當網(wǎng)絡(luò )數據流量較大時(shí),TDMA協(xié)議的能耗較??;而當網(wǎng)絡(luò )數據流量較小時(shí),IM-TDMA協(xié)議的能耗較小.這是因為當數據量較大時(shí),簇頭調度開(kāi)銷(xiāo)所消耗的能量占主導地位,因而TDMA的能耗較BC-MAC和IM-TDMA協(xié)議較小.當網(wǎng)絡(luò )數據較小時(shí),由于TDMA在沒(méi)有數據傳輸時(shí)也要保持偵聽(tīng)狀態(tài),因此能耗較大.而B(niǎo)CMAC 協(xié)議雖然不用在整個(gè)過(guò)程中保持偵聽(tīng),但幀長(cháng)度固定,因而能耗較IM-TDMA協(xié)議大.
從仿真結果可以看出,IM-TDMA 協(xié)議較TDMA 協(xié)議和BCMAC協(xié)議在能耗和時(shí)延方面更優(yōu).
4 結語(yǔ)
本方案是對無(wú)線(xiàn)傳感網(wǎng)的MAC協(xié)議方案進(jìn)行的設計.傳統的TDMA 分配方案在時(shí)隙分配上采用固定幀長(cháng)的方式,信道利用率低;在調度方法上偵聽(tīng)時(shí)間過(guò)長(cháng).過(guò)程復雜,造成能量的浪費.文中的IM-TDMA 調度方案能夠克服上述不足,在時(shí)隙分配上,采用依據即時(shí)信息,動(dòng)態(tài)改變幀長(cháng)的方式,提高了信道利用率;在調度方法上,采用計數器管理方式,簡(jiǎn)化了調度復雜性,節約了能量的消耗.仿真結果表明,本方案效果極好.
評論