• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    HBE-ZigbeX無線傳感器網(wǎng)絡(luò)平臺 3種拓?fù)浣Y(jié)構(gòu)的 Ti nyOS實(shí)現(xiàn)

    2011-01-25 05:39:08,高,王
    關(guān)鍵詞:樹狀網(wǎng)絡(luò)拓?fù)?/a>數(shù)據(jù)包

    李 慧 ,高 飛 ,王 兵

    (云南民族大學(xué)電氣信息工程學(xué)院,云南昆明 650500)

    無線傳感器網(wǎng)絡(luò)是由大量具有特定功能的傳感器節(jié)點(diǎn)通過自組織的無線通信方式,相互傳遞信息,協(xié)同地完成特定功能的智能專用網(wǎng)絡(luò).它綜合了傳感器技術(shù)、嵌入式計(jì)算機(jī)技術(shù)、通信技術(shù)、分布式信息處理技術(shù)、微電子制造技術(shù)和軟件編程技術(shù)等,可以實(shí)時(shí)監(jiān)測、感知和采集網(wǎng)絡(luò)所監(jiān)控區(qū)域內(nèi)的各種環(huán)境或監(jiān)測對象的信息,并對收集到的信息進(jìn)行處理后傳送給終端用戶[1].無線傳感器網(wǎng)絡(luò)在工業(yè)、農(nóng)業(yè)、交通、軍事、安全醫(yī)療、空間探測,以及家庭和辦公環(huán)境等眾多領(lǐng)域都有著廣泛的應(yīng)用.傳感器網(wǎng)絡(luò)采用自組織方式進(jìn)行組網(wǎng)[2],其拓?fù)浣Y(jié)構(gòu)根據(jù)具體應(yīng)用場景來設(shè)計(jì),基本結(jié)構(gòu)仍是星型網(wǎng)、樹型網(wǎng)、環(huán)型網(wǎng)這 3種基本的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu).傳感器網(wǎng)絡(luò)節(jié)點(diǎn)是無線傳感器網(wǎng)絡(luò)的基本單元.本文利用 HBEZigbeX試驗(yàn)平臺,對已嵌入節(jié)點(diǎn)的實(shí)驗(yàn)包 TestTree進(jìn)行分析并加以改進(jìn),編程實(shí)現(xiàn)了星型、環(huán)形和樹狀這 3種基本拓?fù)浣Y(jié)構(gòu),并進(jìn)行了組網(wǎng)實(shí)驗(yàn),驗(yàn)證了我們設(shè)計(jì)方案的有效性.

    HBE-ZigbeX[3]是韓國韓伯電子公司設(shè)計(jì)開發(fā)的一款性價(jià)比較高無線傳感器網(wǎng)絡(luò)試驗(yàn)平臺.其硬件系統(tǒng)中,采用了 8位微型控制器 At mega128L,無線收發(fā)模塊采用支持 ZigBee協(xié)議的 CC2420通信芯片,ZigbeXMote設(shè)備作為可以構(gòu)成傳感器最基本的模塊,集成了溫度、濕度、照度等傳感器來獲取多種物理信息.HBE-ZigbeX軟件平臺采用了廣泛應(yīng)用于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備的專用操作系統(tǒng) Tiny-OS,該操作系統(tǒng)設(shè)計(jì)時(shí)考慮到了無線傳感器節(jié)點(diǎn)的一般特征 (最少的硬件、低容量存儲器、低 CPU性能).使用 Zigebx平臺提供的節(jié)點(diǎn)結(jié)合 nesC的語法編程,能夠方便地實(shí)現(xiàn)對環(huán)境因素的檢測,并且為實(shí)現(xiàn)網(wǎng)絡(luò)互連提供了豐富的軟件接口和編程組件.

    1 TestTree框架分析

    1.1 樹路由

    樹路由,就是指匯聚節(jié)點(diǎn)與周邊節(jié)點(diǎn)形成樹狀結(jié)構(gòu)的路由協(xié)議,樹路由與無線傳感器網(wǎng)絡(luò)一樣,最終會將路由數(shù)據(jù)傳送給匯聚節(jié)點(diǎn).圖 1是樹狀路由的模型,其中 Sink是匯聚節(jié)點(diǎn),編號為 HC:x,表示在樹狀路由中處于第 x層的節(jié)點(diǎn).路由樹中的節(jié)點(diǎn)自動(dòng)尋找上一層節(jié)點(diǎn)轉(zhuǎn)發(fā)已測量的傳感器數(shù)據(jù).樹路由拓?fù)浣Y(jié)構(gòu)在幾乎固定的網(wǎng)絡(luò)中非常有效,在樹路由形成的拓?fù)浣Y(jié)構(gòu)中最大的特點(diǎn)是不會形成環(huán)路.

    在韓伯Mote設(shè)備中,提供了樹路由組件.樹路由組件每隔約 10 s周期性生成 Hello數(shù)據(jù)包 (定義如表 1所示,BeaconFrame數(shù)據(jù)結(jié)構(gòu)),向周邊節(jié)點(diǎn)通知自已的存在,以 Hello數(shù)據(jù)包的跳數(shù)為標(biāo)準(zhǔn),選擇自身的上層父節(jié)點(diǎn).針對周邊節(jié)點(diǎn)的信息保持 5個(gè)路由表,當(dāng)跳數(shù)相同時(shí),以 LQ I和 RSSI值為標(biāo)準(zhǔn)選擇最佳的父節(jié)點(diǎn).

    表1 Hello數(shù)據(jù)包字段定義

    1.2 基于 nesC語言的數(shù)據(jù)包格式

    在網(wǎng)絡(luò)中傳輸一般數(shù)據(jù)報(bào)文 (NWKFrame數(shù)據(jù)結(jié)構(gòu))所使用的數(shù)據(jù)格式如表 2所示.

    在樹路由協(xié)議中,多跳路由的下一跳地址由圖2中的多跳路徑時(shí)中間地址決定,需要傳輸?shù)臄?shù)據(jù)由最后一個(gè)字段確定.

    表2 一般數(shù)據(jù)包字段定義

    當(dāng)一個(gè)節(jié)點(diǎn)收到以上結(jié)構(gòu)的數(shù)據(jù)后,會自動(dòng)根據(jù) NWKFrame結(jié)構(gòu)體中的 Dst3_for_multihop成員分量,來判斷下一跳路由地址,將數(shù)據(jù)包發(fā)送給它所指示的分量.Dst2_for_multihop成員分量是 Dst3_for_multihop預(yù)處理部分,當(dāng)傳送數(shù)據(jù)時(shí)實(shí)際將 Dst2_for_multihop的值復(fù)制給 Dst3_for_multihop,然后將發(fā)送數(shù)據(jù)的節(jié)點(diǎn)地址 TOS_LOCAL_ADDRESS復(fù)制給Dst2_for_multihop.

    1.3 樹路由實(shí)現(xiàn)方法

    首先在 nesC中為每一個(gè)節(jié)點(diǎn)指定了 1個(gè)地址編號,該地址編號由 2個(gè)字節(jié)組成,其值由 TOS_LOCAL_ADDRESS指定.在實(shí)現(xiàn)樹路由時(shí),首先規(guī)定編號在 1~4的節(jié)點(diǎn)為第 1跳路由,大于 4的編號節(jié)點(diǎn)為第 2跳路由,0號節(jié)點(diǎn)為匯聚節(jié)點(diǎn)[3].

    首先在發(fā)送 (Send)組件中對下一條路由地址做如下初始化:

    NWKFp->Dst2_for_multihop=UnkownAddress;

    NWKFp->Dst3_for_multihop=UnkownAddress;

    然后在數(shù)據(jù)發(fā)送函數(shù) For wardingDataFrame中,根據(jù) Dst2_for_multihop來指定下一跳地址.如下面代碼所示:

    task void ForwadingDataFrame()

    {

    //…

    if(NWKFp->Dst2_for_multihop==UnkownAddress)

    {

    NWKFp->Dst2_for_multihop=TOS_LOCAL_ADDRESS;

    }

    else

    {

    NWKFp->Dst3_for_multihop=NWKFp->Dst2_for_multihop;

    NWKFp->Dst2_for_multihop=TOS_LOCAL_ADDRESS;

    }

    NWKFp->FrameControl=For wardDataFrame;

    if(call Tree_send.send (NextAddress,sizeof(NWKFrame),&ForwardingFrame))

    {

    //…

    }

    }

    由ForwadingDataFrame函數(shù)的具體實(shí)現(xiàn)可以看出,下一跳地址是由 NWKFp->Dst2_for_multihop決定的,于是我們可以由改變 NWKFp->Dst2_for_multihop的值來改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu).

    2 3種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下的實(shí)現(xiàn)

    2.1 星型網(wǎng)絡(luò)結(jié)構(gòu)

    星型網(wǎng)絡(luò)由中心節(jié)點(diǎn)和其它子節(jié)點(diǎn)組成,中心節(jié)點(diǎn)可直接與匯聚節(jié)點(diǎn)通信,而其他子節(jié)點(diǎn)必須通過中心節(jié)點(diǎn)才能和匯聚節(jié)點(diǎn)和其他子節(jié)點(diǎn)通信,在有限網(wǎng)絡(luò)中,中心節(jié)點(diǎn)通常由集線器或交換設(shè)備充當(dāng),在無線傳感器網(wǎng)絡(luò)中,中心節(jié)點(diǎn)可以有設(shè)備較其他子節(jié)點(diǎn)負(fù)載的節(jié)點(diǎn)擔(dān)當(dāng).這種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的優(yōu)點(diǎn)是,在中心節(jié)點(diǎn)處理速度和容量范圍內(nèi),可以任意增刪子節(jié)點(diǎn),中心節(jié)點(diǎn)和子節(jié)點(diǎn)程序無須修改.其缺點(diǎn)是,一旦中心節(jié)點(diǎn)癱瘓,整個(gè)網(wǎng)絡(luò)也就隨之癱瘓.如圖 2所示,每一個(gè)節(jié)點(diǎn)右邊都顯示了它獲取的物理信息 :溫度 Temp、光照強(qiáng)度 Light、濕度 Humi、紅外Ultrared、Energy Consumption能量損耗[4].

    實(shí)驗(yàn)采用 1號節(jié)點(diǎn)為中心節(jié)點(diǎn),以其他編號節(jié)點(diǎn)作為子節(jié)點(diǎn),形成星型網(wǎng)絡(luò).其實(shí)現(xiàn)代碼如下:

    if(TOS_LOCAL_ADDRESS!=SinkAddress){

    if(TOS_LOCAL_ADDRESS==0x01){

    //0x01表示 1號節(jié)點(diǎn),0表示匯節(jié)點(diǎn),SinkAddress=0

    NWKFp->Dst2_for_multihop=SinkAddress;

    }

    else

    {

    NWKFp->Dst2_for_multihop=0x01;

    }

    }

    2.2 自定義固定結(jié)構(gòu)樹狀網(wǎng)

    樹狀拓?fù)涫菑目偩€型拓?fù)溲葑兌鴣淼?它把星狀和總線型結(jié)合起來,形狀像 1棵倒置的樹,頂端有1個(gè)帶分支的根,每個(gè)分支還可以延伸出子分支.樹狀拓?fù)涞膬?yōu)點(diǎn)是易于擴(kuò)展和故障隔離,樹狀拓?fù)涞娜秉c(diǎn)是對根的依賴性太大,如果根發(fā)生故障,則全網(wǎng)不能正常工作,對根的可靠性要求很高.圖 3中,根節(jié)點(diǎn)為 1號節(jié)點(diǎn)和 2號節(jié)點(diǎn),3、4和 5號節(jié)點(diǎn)經(jīng)過 1號節(jié)點(diǎn)將數(shù)據(jù)轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn),6和 7號節(jié)點(diǎn)經(jīng)過 2號節(jié)點(diǎn)轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn).如圖 3所示,每一個(gè)節(jié)點(diǎn)右邊都顯示了它獲取的物理信息:溫度 Temp、光照強(qiáng)度 Light、濕度 Humi、紅外 Ultrared、Energy Consumption能量損耗.如果需要增刪節(jié)點(diǎn)或者擴(kuò)展網(wǎng)絡(luò),則

    代碼需要重新編制.其實(shí)現(xiàn)代碼如下:

    //樹形網(wǎng)絡(luò)結(jié)構(gòu)

    if(TOS_LOCAL_ADDRESS!=SinkAddress){

    if(TOS_LOCAL_ADDRESS==0x01||TOS_LOCAL_ADDRESS==0x02){

    NWKFp->Dst2_for_multihop=SinkAddress;

    }

    else if(TOS_LOCAL_ADDRESS==0x03||TOS_LOCAL_ADDRESS==0x04||TOS_LOCAL_ADDRESS==0x05)

    {

    NWKFp->Dst2_for_multihop=0x01;

    }

    else if(TOS_LOCAL_ADDRESS==0x06||TOS_LOCAL_ADDRESS==0x07)

    {

    NWKFp->Dst2_for_multihop=0x02;

    }

    }

    2.3 環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)

    環(huán)狀網(wǎng)絡(luò)使整個(gè)無線傳感器網(wǎng)絡(luò)形成 1個(gè)環(huán)路,在環(huán)形網(wǎng)絡(luò)中,傳感器數(shù)據(jù)像接力棒一樣,被一棒一棒的傳往下一個(gè)節(jié)點(diǎn),然后再某一個(gè)節(jié)點(diǎn)處,將數(shù)據(jù)傳遞給匯聚節(jié)點(diǎn).這種網(wǎng)絡(luò)可以用于湖泊,以及公共群體周邊,實(shí)現(xiàn)對監(jiān)視區(qū)域的包圍監(jiān)視.

    本文中的環(huán)形網(wǎng)絡(luò)的實(shí)現(xiàn)是從 1號節(jié)點(diǎn)開始,將下一跳地址設(shè)置為 TOS_LOCAL_ADDRESS值加1,當(dāng)數(shù)據(jù)達(dá)到末節(jié)點(diǎn)時(shí),讓下一跳地址等于 1號節(jié)點(diǎn)地址,于是形成環(huán)形網(wǎng)絡(luò)結(jié)構(gòu).如圖 4所示,每一個(gè)節(jié)點(diǎn)右邊都顯示了它獲取的物理信息:溫度Temp、光照強(qiáng)度 Light、濕度 Humi、紅外 Ultrared、Energy Consumption能量損耗.

    代碼如下所示[5]:

    NWKFp->Dst2_for_multihop=TOS_LOCAL_ADDRESS+1;

    if(TOS_LOCAL_ADDRESS==END_NODE_ADDRESS)

    {

    NWKFp->Dst2_for_multihop=0x01;

    }

    實(shí)現(xiàn)效果如圖 4所示.

    如果想增加網(wǎng)絡(luò)環(huán)路中的節(jié)點(diǎn)數(shù),只需更改宏END_NODE_ADDRESS,然后重新編譯各個(gè)節(jié)點(diǎn)的程序[6].如果想要實(shí)現(xiàn)自動(dòng)添加或增刪的節(jié)點(diǎn)的環(huán)形網(wǎng)絡(luò),可以在每一個(gè)節(jié)點(diǎn)的內(nèi)部 RAM中,添加 1個(gè)字節(jié)單元來表示環(huán)形網(wǎng)絡(luò)中節(jié)點(diǎn)的最大數(shù)目,如果有 1個(gè)節(jié)點(diǎn)增加,則網(wǎng)絡(luò)廣播有 1個(gè)節(jié)點(diǎn)添加的消息,每個(gè)節(jié)點(diǎn)收到這個(gè)消息之后,則將自己內(nèi)部相應(yīng)的 RAM單元表示總結(jié)點(diǎn)數(shù)目加 1,如果減少網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)目,則在節(jié)點(diǎn)退出工作之前,向網(wǎng)絡(luò)廣播有1個(gè)節(jié)點(diǎn)要退出的消息,當(dāng)每個(gè)節(jié)點(diǎn)收到消息之后,將相應(yīng)的內(nèi)存單元表示的數(shù)減 1.各個(gè)節(jié)點(diǎn)根據(jù)這個(gè)單元尋找環(huán)路的終點(diǎn).但這種做法無疑會使程序的結(jié)構(gòu)變得復(fù)雜,不易實(shí)現(xiàn).

    3 結(jié)語

    從以上實(shí)現(xiàn)方法可以看出,若要更改網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),只需要更改每一個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)報(bào)文字段中的 NWKFp->Dst2_for_multihop即可,因此在以TinyOS為操作系統(tǒng) HBE-ZigbeX硬件平臺上實(shí)現(xiàn)網(wǎng)絡(luò)不同的網(wǎng)絡(luò)拓?fù)涫窍喈?dāng)方便的.

    [1]張鶴峰.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) [M].大連:大連理工大學(xué)出版社 ,2001:4-5

    [2]張侃侃,劉曄,艾斯喀爾·喀迪爾,等.基于 TinyOS操作系統(tǒng)的無線傳感器網(wǎng)絡(luò)自組網(wǎng)研究[J].傳感技術(shù)學(xué)報(bào) ,2007,20(6):1 350-1 352.

    [3]徐昌洙,李哲熙.Ubiquitous傳感器網(wǎng)絡(luò)[K].韓國:韓伯電子技術(shù)研究所.

    [4]GAYD.nesC 1.1 language reference manual[K].2003.

    [5]LEV IS P,GAYD.TinyOSprogramming[M].CambridgeU-niversity Press,2009:241-245.

    [6]曾黎,蔣沅.多傳感器數(shù)據(jù)融合的數(shù)學(xué)方法研究[J].云南民族大學(xué)學(xué)報(bào):自然科學(xué)版,2010,19(5):321-324.

    猜你喜歡
    樹狀網(wǎng)絡(luò)拓?fù)?/a>數(shù)據(jù)包
    基于通聯(lián)關(guān)系的通信網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)方法
    電子制作(2018年23期)2018-12-26 01:01:16
    鋼結(jié)構(gòu)樹狀支撐柱施工設(shè)計(jì)
    SmartSniff
    樹狀月季的嫁接技術(shù)及后期管理
    勞斯萊斯古斯特與魅影網(wǎng)絡(luò)拓?fù)鋱D
    電測與儀表(2016年5期)2016-04-22 01:13:46
    樹狀月季培育關(guān)鍵技術(shù)
    列表畫樹狀圖各有所長
    基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
    沛县| 峨眉山市| 沁阳市| 黄大仙区| 赞皇县| 大城县| 明溪县| 梧州市| 伊通| 怀来县| 望奎县| 奉化市| 广宁县| 巴楚县| 五原县| 安图县| 敖汉旗| 西吉县| 屯门区| 新巴尔虎左旗| 进贤县| 鄂州市| 翁牛特旗| 红桥区| 同心县| 湖口县| 彰化市| 拜城县| 从江县| 临沂市| 舒兰市| 阿勒泰市| 台北县| 凌云县| 南澳县| 常山县| 股票| 兴宁市| 溧水县| 万山特区| 渑池县|