關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > CSMA協(xié)議在無線傳感器網(wǎng)絡(luò)中的實(shí)現(xiàn)

CSMA協(xié)議在無線傳感器網(wǎng)絡(luò)中的實(shí)現(xiàn)

作者: 時(shí)間:2011-08-05 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://www.butianyuan.cn/article/161636.htm

 通過基本規(guī)則和擴(kuò)展規(guī)則已經(jīng)可以得出一個(gè)準(zhǔn)確性較高的信道活動(dòng)狀態(tài)判定,擴(kuò)展規(guī)則彌補(bǔ)了基本規(guī)則可能會(huì)出現(xiàn)的錯(cuò)誤。在實(shí)際的測(cè)試中,如果兩個(gè)閾值的初值選擇得很合適,那么一般并不會(huì)進(jìn)入擴(kuò)展采樣。若閾值初值選擇得不貼切,如mingSignal初值過大,則noiseLevel初值過小時(shí)都會(huì)導(dǎo)致進(jìn)入擴(kuò)展采樣。

  這里還需要說明的是m的取值。本文中采樣定時(shí)器設(shè)置為1ms,即1ms采樣一次。擴(kuò)展采樣次數(shù)m取值越大,準(zhǔn)確性自然就越高,但是整個(gè)性能有所下降(花去的額外時(shí)間過多)。m的值也不能過小,不然extCSVal統(tǒng)計(jì)值就不能發(fā)揮其作用。由于本文使用的初始閾值是經(jīng)過大量測(cè)試確定的精確值(參照信號(hào)強(qiáng)度閾值初值的選擇),因此使用該初始閾值進(jìn)行的測(cè)試結(jié)果顯示:只有極少情況進(jìn)入擴(kuò)展采樣(約5000次監(jiān)測(cè)進(jìn)入一次擴(kuò)展采樣)。鑒于這種實(shí)際情況,m的取值不需要很大,本文取其值為3。如果初始閾值不能精確設(shè)定,那么可將m值放大。

  3 信號(hào)強(qiáng)度閾值的選擇和更新維護(hù)

  從信道監(jiān)測(cè)的基本規(guī)則和擴(kuò)展規(guī)則可以看出,信號(hào)強(qiáng)度的兩個(gè)閾值對(duì)信道狀態(tài)的判定十分重要,因此這兩個(gè)閾值的初始值選擇必須十分慎重;而且必須要根據(jù)當(dāng)前信道狀態(tài)動(dòng)態(tài)更新閾值的機(jī)制。

  3.1 信號(hào)強(qiáng)度閾值的更新機(jī)制

  閾值的動(dòng)態(tài)更新必須使用大量的實(shí)時(shí)RSSI值作為統(tǒng)計(jì)值,且需要把RSSI值分為兩類:一類是信道繁忙時(shí)的RSSI,本文稱為busyRSSI;另一類是信道空閑時(shí)的RS2SI值,本文稱為noiseRSSI。這兩個(gè)值可以在物理層每接收到一個(gè)數(shù)據(jù)包時(shí)獲取,因?yàn)镃C2420接收到一個(gè)數(shù)據(jù)包時(shí)將在數(shù)據(jù)包的倒數(shù)第二個(gè)字節(jié)(FCS域)自動(dòng)填充接收時(shí)的RSSI值,因此busyRSSI值就無條件地得到了;而在剛接收完數(shù)據(jù)包后信道一般都是空閑的,所以這時(shí)立即讀取當(dāng)前的RSSI值,就可以得到noiseRSSI值。為避免例外,可將得到的noiseRSSI值與minSignal進(jìn)行比較,如果大于等于minSignal就丟棄。

  在獲得busyRSSI和noiseRSSI后就對(duì)其進(jìn)行統(tǒng)計(jì)操作,為這個(gè)目的需要維護(hù)一個(gè)統(tǒng)計(jì)變量avgSignal,用來統(tǒng)計(jì)所有的busyRSSI值。avgSignal的初值等于min2Signal的初值即初始閾值,并按1/4的權(quán)重進(jìn)行統(tǒng)計(jì),即avgSignal=(avgSignalm1)+((avgSignal+busyRSSI)m2)。noiseRSSI的值并不需要統(tǒng)計(jì),這是因?yàn)樽x出nois2eRSSI的值很穩(wěn)定幾乎不變。

  noiseLevel閾值的更新相對(duì)簡(jiǎn)單,因?yàn)樵肼曅盘?hào)強(qiáng)度十分穩(wěn)定,因此不必對(duì)noiseRSSI做統(tǒng)計(jì),每次讀取noise2RSSI后可直接對(duì)noiseLevel進(jìn)行更新。更新規(guī)則也是采用1/4權(quán)重,即noiseLevel=(noiseLevelm1)+((noiseLevel+noiseRSSI)m2)。

  minSignal閾值需要針對(duì)兩種互補(bǔ)的情況來進(jìn)行更新調(diào)整。第一種情況是一段時(shí)間內(nèi)的采樣結(jié)果全是信道空閑,說明所有的采樣值都小于minSignal,因此有可能min2Signal的值過高,應(yīng)對(duì)其調(diào)整將其適當(dāng)降低。該情況在監(jiān)測(cè)信道結(jié)果為空閑時(shí)觸發(fā)更新,更新方法是直接利用當(dāng)前的busyRSSI來更新;只要busyRSSI的值小于當(dāng)前的minSignal值,那么就將busyRSSI的值作為最新的min2Signal值。這樣做是因?yàn)樵赽usyRSSI的信號(hào)強(qiáng)度下已經(jīng)能夠接收數(shù)據(jù)了,而busyRSSI又比當(dāng)前的minSignal要小,所以更接近實(shí)際的閾值。

  第二種情況是對(duì)第一種情況的補(bǔ)充。在做了第一種情況的修改后,如果長(zhǎng)時(shí)間內(nèi)監(jiān)測(cè)到的都是信道繁忙(如載波監(jiān)聽?zhēng)状位赝撕蠖挤祷胤泵Γ敲淳涂赡苁莔inSig2nal的值設(shè)置得太低,因此要適當(dāng)調(diào)高該值,以避免使用第一種更新方式后由于設(shè)置的minSignal值太低而導(dǎo)致不能使用信道的情況。該情況提供一個(gè)接口由上層(MAC層)來調(diào)用更新。更新需要借助統(tǒng)計(jì)量avgSignal,更新的偽代碼如下(其中initBusySingal指的是minSignal的最初值):

  initBusySignal的選擇將在后面介紹,它的選擇對(duì)更新機(jī)制尤為重要。因?yàn)閙inSignal的更新機(jī)制建立的基礎(chǔ)就是initBusySignal非常接近實(shí)際臨界值。initBusySignal本身也是經(jīng)過大量測(cè)試后選擇的一個(gè)信道活動(dòng)最小強(qiáng)度值,而它肯定會(huì)大于(最小等于)實(shí)際的臨界值,所以min2Signal更新后應(yīng)該比initBusySignal小才對(duì)。


上一頁 1 2 3 4 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉