<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

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

作者: 時(shí)間:2011-07-31 來(lái)源:網(wǎng)絡(luò ) 收藏

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

1.2 信道監測的

  CC2420提供了一項CA的功能,稱(chēng)為CCA(Clear Channel Assessment,空閑信道評估),它使用一個(gè)寄存器來(lái)設置閾值。當CC2420收到CCA命令后,就開(kāi)始采樣RSSI值,只有采樣到的RSSI值小于寄存器中的閾值時(shí)才允許發(fā)送數據。CCA雖然了信道監測的基本功能,但是也有其自身的缺點(diǎn): 不夠靈活且開(kāi)放程度不夠,只能進(jìn)行一次完整的通道監測,并不能設置采樣次數。這就限制了它在其他中的使用,例如在LPL(Low Power Listening,低功耗偵聽(tīng))中,只需要進(jìn)行一次采樣作為偵聽(tīng)。另外,它的判定機制并不夠完善,只有一個(gè)閾值,因而開(kāi)發(fā)者難以找到合適的閾值。

  本文參照CCA的閾值機制,設置上下閾值并利用CC2420讀取RSSI采樣值的命令,用軟件來(lái)完成信道監測工作。本文使用的信道監測及判定的基本原理就是: 先設置兩個(gè)適當的信號強度閾值,一個(gè)是最小信號強度minSignal,其含義是信道中有數據發(fā)送時(shí)的最小信號強度值;另一個(gè)是噪聲強度noiseStrength,其含義是信道空閑時(shí)的信號強度值。然后物理層在一段時(shí)間內不斷地進(jìn)行RSSI采樣,并把采樣結果按照某種規則(在中有具體說(shuō)明)與閾值進(jìn)行比較,從而得到信道的活動(dòng)狀態(tài)。而且為了更準確地反映信道狀態(tài),在不能判斷信道活動(dòng)狀態(tài)時(shí),還應有擴展采樣機制。

  另外,這兩個(gè)信號強度閾值并不是一直不變的,它們必須根據信道一段時(shí)期的信號強度情況來(lái)動(dòng)態(tài)更新,因此本文還了一種閾值更新機制,它能根據當前的信道信號強度和一些強度統計信息來(lái)動(dòng)態(tài)地更新閾值。

  從接口上看,物理層的信道監測只是提供給MAC層的一個(gè)探測信道的接口。為了一個(gè)靈活的信道探測接口給上層,就必須給上層一些調整的接口,例如可以讓上層來(lái)設定具體某次監測的采樣次數,這樣上層就可以根據不同的實(shí)際情況來(lái)設定采樣數。圖2為物理層信道監測提供的接口與MAC層的關(guān)系簡(jiǎn)圖。

按此在新窗口瀏覽圖片
圖2 信道監測接口與CSMA關(guān)系簡(jiǎn)圖

2 信道監測的實(shí)現

2.1 信道活動(dòng)狀態(tài)判斷的基本規則

  采樣得到的RSSI值是一個(gè)有符號的振幅值,它只有一個(gè)字節。這樣的值并不利于分析,所以統一將其值上升128,即對讀出的RSSI值統一加上128,因此轉換后的值都是為正的,后面提到的RSSI值指的都是轉換后的值。

  假設上層設定信道采樣窗口數為N。為了完成連續的N次采樣,需要使用一個(gè)采樣定時(shí)器。CC2420的RSSI采樣時(shí)間約為128 μs,再加上硬件延遲以及軟件處理延遲時(shí)間,采樣定時(shí)器設置為1 ms循環(huán)觸發(fā)(這1 ms的采樣在CSMA中稱(chēng)為“采樣窗口”)。每次定時(shí)器觸發(fā)后,就向CC2420發(fā)送命令讀取當前信道的RSSI值,然后采用如下規則進(jìn)行信道活動(dòng)狀態(tài)判斷:

① 如果采樣到的RSSI值大于等于閾值minSignal,那么就判定信道正被其他節點(diǎn)使用,即使采樣未滿(mǎn)N次也不再采樣,并立即通知上層協(xié)議信道正被使用。反之如果該次采樣監測緄鬧敵∮諢虻扔minSignal,那么本次采樣不做任何判斷,繼續下次的采樣。
② 如果一直采樣到最后,且最后一次的RSSI值小于noiseLevel(噪聲強度),那么就判定信道為空閑,并給出修改閾值標志,通知上層可以發(fā)送數據。注意,只要判定為信道空閑,就要給出更新閾值標志,原因將在后面的閾值維護中說(shuō)明。

  如上所述,只要采樣值大于等于minSignal,就判定信道是繁忙的,而判定信道空閑時(shí)卻要求所有的采樣都小于minSignal,且最后一次的采樣值要小于noiseLevel。然而上面兩個(gè)規則并不完善,并不能處理任何情況,以下兩種情況就不能得出結論: 最后一次采樣绱礱揮械玫RSSI值,或者最后一次采樣的RSSI值介于noiseLevel和minSignal之間。此時(shí)就必須使用擴展規則。

2.2 信道活動(dòng)狀態(tài)判斷的擴展規則

  擴展規則是為了處理基本規則不能解決的問(wèn)題。擴展規則其實(shí)就是擴展m次采樣,在這m次的擴展采樣中使用對應的擴展規則來(lái)判定信道狀態(tài)。擴展規則涉及一些統計的方法,需要維護一個(gè)extCSVal的統計變量。擴展規則如下:

① 擴展采樣中,判定信道繁忙的規則與基本規則一樣。只要檢查到采樣RSSI值大于等于minSignal,就判定為信道忙,然后結束擴展采樣。
② 信道空閑的判定與基本規則不同,因為已經(jīng)處于擴展采樣,所以只要檢查到采樣RSSI值小于noiseLevel,就可判定信道為空閑,同時(shí)給出更新閾值的標志。
③ 如果在擴展采樣中并沒(méi)有出現以上兩種情況,那么就必須要計算extCSVal來(lái)做判斷。先說(shuō)明賦給extCSVal的初值,如果最后一次基本采樣的RSSI值介于兩閾值之間,那么直接將這個(gè)RSSI值賦給extCSVal;如果最后一次基本采樣讀取RSSI失敗,那么將第一次擴展采樣得到的介于兩閾值之間的RSSI值賦給extCSVal。如果extCSVal已經(jīng)賦值,而擴展采樣中又得到了介于兩閾值之間的RSSI值,那么更新extCSVal值:extCSVal = (extCSVal + RSSI)?1(即取平均值)。
④ 如果m次擴展采樣,依靠前兩個(gè)規則仍然不能判斷信道狀態(tài),且最后一次擴展采樣的結果仍然介于兩者之間,那就使用統計值extCSVal來(lái)輔助判斷。規則如下:如果extCSVal> = ((minSignal + noiseLevel)?1),那么就判定信道忙;反之,則判定信道空閑。
⑤ 最后是最壞的一種情況:當擴展采樣的最后一次采樣發(fā)生錯誤,讀取RSSI值失敗時(shí),并不知道信道的實(shí)際狀況,但也不能一直擴展下去,所以判斷為信道繁忙以避免出錯。

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

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

3 信號強度閾值的選擇和更新維護

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>