<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)化 > 設計應用 > 基于nRF905的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )節點(diǎn)的設計與實(shí)現

基于nRF905的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )節點(diǎn)的設計與實(shí)現

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

2.1 路由協(xié)議
現有無(wú)線(xiàn)網(wǎng)狀網(wǎng)絡(luò )的路由協(xié)議通??煞譃椋罕眚寗?dòng)式路由協(xié)議和按需路由協(xié)議。前者需要網(wǎng)絡(luò )中的每個(gè)節點(diǎn)維護一張或多張路由表,以記錄到其他節點(diǎn)的路由,增加了路由開(kāi)銷(xiāo)。而按需路由協(xié)議——動(dòng)態(tài)源路由協(xié)議(DSR)使用了源路由,每一個(gè)數據分組的幀頭中包含整條路由的信息,中間節點(diǎn)不需要維持當前的路由信息,分組自己帶有路由信息,按需路由的特性避免了周期性路由廣播和鄰居節點(diǎn)的檢測。
DSR協(xié)議包括兩個(gè)過(guò)程:路由發(fā)現和路由維護。路由發(fā)現過(guò)程使用泛洪路由(Flooding Routing)。為了減少路由發(fā)現過(guò)程的開(kāi)銷(xiāo),每一個(gè)節點(diǎn)都包括一個(gè)緩存器,存放最近學(xué)到的和用過(guò)的路由信息。路由維護過(guò)程是源節點(diǎn)用來(lái)檢測網(wǎng)絡(luò )拓撲是否發(fā)生變化的機制。若拓撲發(fā)生變化、源路由發(fā)生中斷,源節點(diǎn)就會(huì )收到路由錯誤信息。其他節點(diǎn)收到路由錯誤信息后刪除中斷路由,并且重新發(fā)起廣播尋找路由。
本系統中的路由協(xié)議采用DSR協(xié)議,并對DSR協(xié)議進(jìn)行一些改進(jìn)。
(1)每個(gè)節點(diǎn)中到達目的節點(diǎn)含有最多兩個(gè)路由緩存。
(2)查到中斷節點(diǎn)后先檢查本節點(diǎn)中有無(wú)到中斷節點(diǎn)下級節點(diǎn)的信息,若有,則直接使用此路由,若無(wú),則立即廣播發(fā)送RRER。
(3)所有節點(diǎn)收到RRER后,檢查是否含有終端路由,有則刪除中斷路由。
系統通信協(xié)議格式如表1所示。其中,FRAME_TYPE表示命令幀類(lèi)型,SOURCE_ADDR表示源地址,FIRE_ADDR表示目的地址,MID表示路由節點(diǎn)地址,REMIAN表示最大跳數下剩余跳數,MAX表示最大跳數,DATA表示要傳輸的數據,ODD代表奇校驗。

2.2 程序設計
2.2.1 廣播

在廣播RREQ時(shí),為了避免廣播沖突,利用nRF905的載波檢測多路訪(fǎng)問(wèn)機制CSMA/CA,發(fā)送前先進(jìn)入接收模式,監聽(tīng)該信道是否空閑。如果檢測到CD信號為高,則表示該信道被占用,根據退避延時(shí)一段時(shí)間,再檢測CD信號是否為高。
而根據檢測,數據包接收的時(shí)間大致為20 μs,時(shí)隙為60 μs,加上程序運行的時(shí)間,定義短幀空間SIFS和時(shí)隙分別為50 μs及100 μs,分散幀空間DIFS為SIFS加2個(gè)時(shí)隙即250 μs。CSMA/CA程序流程如圖3所示,定義NB、CW和BE。


后退次數(NB):NB的初始值為0,當設備有數據要傳送時(shí),經(jīng)過(guò)一段后退時(shí)間(2BE-1)×100 μs后,檢測CD,若檢測到信道忙,則會(huì )再一次產(chǎn)生倒退時(shí)間。此時(shí)NB值會(huì )加1,NB值最大定義為4。當信道在經(jīng)過(guò)4次的后退延遲時(shí)間后仍為忙,則放棄此次的傳送,以避免過(guò)大開(kāi)銷(xiāo)。
嘗試次數(CW):循環(huán)判斷當前頻道是否空閑,當判斷到了一定次數后該頻道依然空閑則跳出循環(huán),開(kāi)始傳送數據,設初值為2。
后退指數(BE):初值設為2。
本設計中,CD信號為高時(shí)必須通過(guò)切換至standby模式來(lái)使CD信號復位,以保證下次CD信號的檢測。
根據nRF905模塊的時(shí)序可知,模塊從standby模式切換至接收或發(fā)送模式的時(shí)間為650 μs,發(fā)送和接收模式之間的切換需要550 μs,切換時(shí)間遠大于時(shí)隙及DIFS的值。因此,BE設置為2,最大為4。
2.2.2 數據傳輸
在進(jìn)行數據傳輸時(shí),源節點(diǎn)首先檢查自己的緩存中是否有到目的節點(diǎn)的路由信息,如果沒(méi)有,則先進(jìn)行路由發(fā)現,與廣播模式相同。如果有至目的節點(diǎn)的路由信息,則根據路由信息,先發(fā)送數據請求命令RTS。當目的節點(diǎn)接收到返回的允許發(fā)送命令CTS信號時(shí),則表示已經(jīng)建立了數據傳輸通道,由請求節點(diǎn)開(kāi)始傳輸數據,傳輸完畢后,由目的節點(diǎn)發(fā)送DATA_ACK給源節點(diǎn),表示數據發(fā)送完畢。其工作流程如圖4所示。



關(guān)鍵詞: 編解碼器

評論


相關(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>