關(guān) 閉

新聞中心

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

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

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

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

  3.2 信號強度閾值初始值的選擇

  信號強度閾值的初始值必須根據(jù)實際測試緄拇罅殼慷戎道瓷瓚ǎ如果設(shè)置失誤,將導(dǎo)致信道狀態(tài)判斷不準(zhǔn)確。本文假設(shè)兩個初值分別是initNoiseSignal和init2BusySignal。下面給出部分測試強度的數(shù)據(jù),如表1所列。

  測試時使用兩個節(jié)點,且兩個節(jié)點都是使用新電池(即電源充沛)。表中,“阻隔”指的是一堵大約10cm厚的墻。

  在雙方節(jié)點能通信的前提下,本文測到的busyRSSI的最小值為0x54。根據(jù)上一小節(jié)的論述,initBusySignal的值可以略高,但因為該值是在電量充足且有阻隔的情況下測試緄淖钚∏康髦擔(dān)因此可以直接取為busyRSSI的最小值,即initBusySignal的值設(shè)置為0x54。對于init2NoiseSignal的取值,從表1可以看出,檢測到的RSSI值非常穩(wěn)定,信道空閑時噪聲強度幅度不大,因此取值比0x4D略大就可以了。本文中initNoiseSignal取值為0x4E。

  3.3 本文的信道監(jiān)測機制的優(yōu)點

  本文的信道監(jiān)測機制比較完善且十分靈活。完善是指信道活動狀態(tài)判定規(guī)則十分完備,不僅有基本判定和擴展判定,而且還有閾值更新機制,進(jìn)一步確保了判定結(jié)果的正確性;靈活是指向調(diào)用方提供了采樣窗口數(shù)的設(shè)置,使得調(diào)用方可以在每次監(jiān)測時使用不同的采樣窗口數(shù),可以被LPL、B2MAC等有特殊要求的基于競爭的MAC直接調(diào)用。

  4 

  本文實現(xiàn)的CAMA是基于使用廣泛的非持續(xù)性協(xié)議的,即節(jié)點在發(fā)送數(shù)據(jù)包之前先監(jiān)測信道,如果監(jiān)測到信道空閑,則該節(jié)點就自己開始發(fā)送數(shù)據(jù)包。反之,如果監(jiān)測結(jié)果為信道繁忙,即信道已經(jīng)被鄰居節(jié)點占用,則該節(jié)點回退一段隨機時間后,再次開始監(jiān)測,重復(fù)上面的操作。

  在具體實現(xiàn)協(xié)議時,本文結(jié)合信道監(jiān)測提供的接口對協(xié)議做了一些優(yōu)化調(diào)整。另外,由于中節(jié)點間距離很短,一般忽略傳播延遲,因此具體的實現(xiàn)與標(biāo)準(zhǔn)的CSMA協(xié)議有些不同,但原理一致,其實現(xiàn)如下:

  如果節(jié)點要發(fā)送數(shù)據(jù)包,需要先進(jìn)行載波監(jiān)聽,首先隨機選擇一個采樣窗口數(shù)(即信道采樣次數(shù)),該采樣數(shù)屬于某一個范圍,本文選擇為8~32。采樣數(shù)隨機選擇的目的是減少沖突,舉例說明:假設(shè)信道目前空閑,A、B、C三個節(jié)點都是鄰居節(jié)點,且A、B節(jié)點有數(shù)據(jù)包要發(fā)送給節(jié)點C;A、B兩個鄰居節(jié)點同時開始監(jiān)測,如果采樣窗口數(shù)固定,根據(jù)信道監(jiān)測的規(guī)則,信道空閑必須等到采樣數(shù)用完才能下結(jié)論,那么A、B節(jié)點都在用完所有的采樣數(shù)后得縲諾攬障械慕崧郟然后都發(fā)送數(shù)據(jù)包,這樣數(shù)據(jù)在節(jié)點C處就發(fā)生了沖突,最后A、B兩節(jié)點就必須依靠隨機回退一段時間后再次監(jiān)測信道。采用隨機的采樣窗口數(shù)可以降低上面情況的發(fā)生率。因為采樣窗口數(shù)小的節(jié)點(假設(shè)為節(jié)點A)先得出信道空閑的結(jié)論并發(fā)送數(shù)據(jù)包,采樣窗口數(shù)大的節(jié)點B在后面的采樣中發(fā)現(xiàn)信道繁忙(因為節(jié)點A已經(jīng)占用了信道)就回退,避免了發(fā)生沖突。

  回退時間的選擇也是值得推敲的一個參數(shù)。CC2420是以數(shù)據(jù)包為單位發(fā)送的射頻芯片,其最大數(shù)據(jù)包的長度為128字節(jié),加上同步頭5字節(jié),總共是133字節(jié)。

  CC2420的發(fā)送速率是250kb/s,即發(fā)送一個字節(jié)的時間為32μs,因此發(fā)送一個最大數(shù)據(jù)包的時間為133×32=4256μs。根據(jù)信道采樣規(guī)則,只要一采樣到信道占用,就可以結(jié)束本次監(jiān)測并得出信道繁忙的結(jié)論,因此回退時間應(yīng)該要大于數(shù)據(jù)包的發(fā)送時間。又因為采樣窗口數(shù)已經(jīng)采用了隨機選取,所以回退時間可以使用固定值。因此可以將回退時間固定為4.5ms,回退功能的具體實現(xiàn)只需要一個定時器輔助就可以了。

  最后,要處理信道強度閾值更新的問題。如果MAC層連續(xù)對信道監(jiān)測的結(jié)果都是繁忙,且累計超過一個預(yù)設(shè)的閾值Y,就必須要調(diào)用MAC層提供的接口來對minSig2nal閾值進(jìn)行更新,參照上節(jié)信號強度閾值的更新機制。

  根據(jù)實際的測試分析,Y的取值一般為30~60。

  5 結(jié)語

  本文靈活利用CC2420射頻芯片的特點,設(shè)計并實現(xiàn)了一整套從物理層到MAC層的CSMA協(xié)議的實現(xiàn);并詳細(xì)闡述了協(xié)議中信道監(jiān)測使用的所有判定規(guī)則及各關(guān)鍵閾值參數(shù)的選擇。經(jīng)過實際的多節(jié)點通信測試,該CSMA協(xié)議可以正確、穩(wěn)定地進(jìn)行信道活動監(jiān)測,并實時動態(tài)地調(diào)整閾值;并且該CSMA協(xié)議的設(shè)計可以完全嵌入應(yīng)用到其他MAC層協(xié)議中,輔助其他協(xié)議完成信道競爭或信道檢測。

 CSMA協(xié)議是中運用得最為廣泛的競爭協(xié)議,因此網(wǎng)絡(luò)的MAC層大多使用CSMA機制來提供競爭信道的功能。隨著IEEE802.15.4標(biāo)準(zhǔn)的制定,各射頻芯片廠家也紛紛推出了性能更好、功能更強的射頻芯片。TI公司(原Chipcon)推出CC2420來替代原來無線傳感器網(wǎng)絡(luò)使用最多的射頻芯片CC1000。由于各射頻芯片特性功能各不相同,為了使CSMA協(xié)議達(dá)到更好的性能,根據(jù)射頻芯片的具體特性來重新優(yōu)化設(shè)計CSMA機制也就變得很有必要。

  本文使用TI公司的MSP4301611超低功耗MCU,以及CC2420射頻芯片作為硬件實驗平臺,充分利用CC2420部分IEEE802.15.4協(xié)議MAC封裝的特性,設(shè)計并實現(xiàn)了一個全新的、靈活的CSMA協(xié)議。

  1 信道監(jiān)測的設(shè)計

  實現(xiàn)CSMA協(xié)議的最基本的條件就是物理層必須提供可靠、實用的信道監(jiān)測手段,因此首先要了解射頻芯片的一些特性。

  1.1 CC2420的相關(guān)特性

  CC2420是TI公司推出的2.4GHz射頻芯片,其硬件封裝支持部分IEEE802.15.4的MAC層協(xié)議規(guī)定。

  CC2420的功能結(jié)構(gòu)如圖1所示,CC2420的數(shù)字接口具有自動CRC校驗、自動加密的功能,并維護兩個緩沖區(qū)(一個接收FIFO,一個發(fā)送FIFO)。數(shù)字接口通過SPI通信接口與微處理器相連。CC2420是以數(shù)據(jù)包為單位的射頻芯片,即必須從微處理器收滿一個數(shù)據(jù)包,才會發(fā)送該數(shù)據(jù)包。

  數(shù)字接口收滿一整包后,自動添加CRC校驗,并送入調(diào)制模塊進(jìn)行數(shù)據(jù)調(diào)制和整形,最后發(fā)送出去。當(dāng)監(jiān)測到信道有數(shù)據(jù)時,將數(shù)據(jù)經(jīng)過模/數(shù)轉(zhuǎn)換后送入數(shù)字解調(diào)器中進(jìn)行幀同步;如果同步就將數(shù)據(jù)填入接收緩沖區(qū)中,最后填充當(dāng)前信道內(nèi)的RSSI(ReceiveSignalStrengthIn2dicator,接收信號強度指示器)信息。

  CC2420提供一個讀取RSSI值的命令,開發(fā)者可以調(diào)用該命令來得到當(dāng)前信道的信號強度值,并通過對該值的解析來判定當(dāng)前信道是空閑還是繁忙。另外,CC2420在接收到數(shù)據(jù)包時,可以自動在數(shù)據(jù)包的倒數(shù)第二個字節(jié)里填充當(dāng)前接收數(shù)據(jù)包時的RSSI值。這種特性對于信號強度閾值的更新維護十分有用。



評論


相關(guān)推薦

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

關(guān)閉