關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于nRF905的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)

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

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

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

2.2 程序設(shè)計(jì)
2.2.1 廣播

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


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



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

評(píng)論


相關(guān)推薦

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

關(guān)閉