• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ZigBee無線網絡的可控組網方法研究

      2014-01-16 05:57:40徐朋豪馮玉光奚文駿
      電子設計工程 2014年13期
      關鍵詞:網絡層原語信標

      徐朋豪,馮玉光,奚文駿

      (海軍航空工程學院 兵器科學與技術系,山東 煙臺 264001)

      隨著社會的發(fā)展,無線網絡在我們的各項活動中扮演著越來越重要的角色。無線通信技術有很多,其中ZigBee技術以其低速率、短距離、低功耗的特點,較好地適用于智能家庭、智能建筑、醫(yī)療應用和工業(yè)自動化等某些特定的需求[1]。

      文中主要是對ZigBee網絡通訊組網方式的研究。Zig-Bee2007/PRO中規(guī)定的ZigBee網絡中節(jié)點采取無線自組網的方式組建網絡。自組網容易將多個子節(jié)點經同一父節(jié)點入網,導致部分路由節(jié)點負擔過重耗電較快,進而引起過早死亡。本文主要是研究通過一種可控的組網方式,使得用戶可以通過上位機自動或手動的選擇父節(jié)點讓節(jié)點入網,這樣可以避免對個別關鍵節(jié)點的過量消耗,延長網絡壽命[2-3]。

      1 無線自組網方法分析

      無線自組網(Ad Hoc)又稱為多跳無線網,它是一種無中心節(jié)點、多跳的自組織技術。在ZigBee2007/PRO中倡導的組網方式中,一個新的節(jié)點在網絡中可以隨機放置,接通電源后先完成節(jié)點初始化,然后首先向協(xié)調點發(fā)送指令,協(xié)調點接收到請求分配級別指令后會記錄節(jié)點信息并分配對應級別,并發(fā)送分配級別指令。節(jié)點在設定的時間內如果收到了分配指令,就會協(xié)調點發(fā)送包含自組織信息的數(shù)據(jù)包,確定自己在網絡中的級別和父節(jié)點信息,接入網絡。如果在設定的時間內沒有收到分配級別的指令,該節(jié)點就會從待機狀態(tài)喚醒,再次發(fā)送分配級別請求指令,循環(huán)執(zhí)行,直到接入成功。當達到設置的上限次數(shù)但仍未獲得指令信息時,則節(jié)點接入失敗并報告錯誤[4]。節(jié)點自組織流程圖1所示。

      圖1 節(jié)點自組織流程圖Fig.1 Chart of Node self-organization

      2 改進的組網方式

      文中要實現(xiàn)的組網方式,是要讓子節(jié)點加入網絡時實現(xiàn)有效的全程可控。當新節(jié)點放入網絡后,會先廣播發(fā)送信標幀,有效范圍內的可用父節(jié)點收到信標后會回復確認消息,其中包含父節(jié)點本身的信息,新節(jié)點收到反饋的消息后會搜集父節(jié)點信息,整理后把包含父節(jié)點信息和自身信息的消息廣播發(fā)送給協(xié)調器。協(xié)調器接收到消息后會通過串口發(fā)送到上位機控制器,經判斷后自動或人為的選擇適合接入的父節(jié)點并將此消息發(fā)送給對應父節(jié)點,父節(jié)點接收到此消息后向新節(jié)點發(fā)送消息建立連接,節(jié)點入網完成。

      一個新節(jié)點放入網絡中,打開電源后會首先應用層會向網絡層發(fā)送一條發(fā)現(xiàn)網絡請求原語NLME-NETWORKDISCOVERY.request對節(jié)點進行初始化。網絡層收到網絡發(fā)現(xiàn)請求原語后會向MAC層發(fā)送節(jié)點掃描請求原語MLMESCAN.request,來指示MAC層進行網絡的主動掃描。MAC層收到此條原語后就會指示物理層向網絡中廣播發(fā)送一條掃描父節(jié)點信標幀,然后進入待機模式等待反饋。在可用的父節(jié)點接收到信標幀后,會向子節(jié)點反饋發(fā)送確認消息,其確認消息中將包含父節(jié)點本身的信息。節(jié)點的MAC層會接收每條具有有效負載的反饋信標,然后對收到的信息進行整理,確認信標負載、信標的對應節(jié)點地址等信息,整理后MAC層將會向NLME發(fā)送一條指示原語MLME-BEACONNOTIFY.indication。NLME在收到原語后會對接收到的數(shù)據(jù)中的地址字段進行標記,以確定是否與自己的近鄰表中現(xiàn)有地址相同。如果比對結果顯示二者相同,即重復節(jié)點,節(jié)點會把信標丟棄;如果二者不同,節(jié)點就保存信標信息,并把其中的地址信息添加到自己的近鄰表中。MAC層在達到設定的計時周期后,就會向NLME發(fā)送掃描確認原語MLME-SCAN.confirm,以標志掃描過程結束。然后網絡層向應用層法發(fā)送一條發(fā)現(xiàn)確認原語NLME-NETWORK-DISCOVERY.confirm,將其掃描到的節(jié)點信息反饋給應用層。應用層在接收到網絡層發(fā)送的發(fā)現(xiàn)確認原語后,會向NLME發(fā)送加入請求原語NLME-JOIN.request,發(fā)送的原語中對應的標識符參數(shù)與搜尋到的各節(jié)點的網絡標識符一致。網絡層在收到上層的加入請求指令后,會整理搜尋到的可用父節(jié)點信息,加入地址信息后發(fā)送加入請求原語MLME-JOIN.request給MAC層。MAC層收到原語后會指示物理層向網絡中廣播發(fā)送一條加入請求信標幀,然后節(jié)點會打開定時器并進入低功耗待機狀態(tài),等待上級響應。

      子節(jié)點會在指定的時間間隔周期的喚醒接收上級的指令。協(xié)調器完成父節(jié)點選擇后會給指定的父節(jié)點發(fā)送確認加入指令,父節(jié)點接收到消息后會給子節(jié)點發(fā)送一條加入請求原語NLME-DIRECT-JOIN.request來完成初始化,原語中的參數(shù)DeviceAddress記錄將要加入網絡的節(jié)點地址信息,然后向子節(jié)點發(fā)送一條請求加入的信標幀。子節(jié)點在收到父節(jié)點的信標幀后,MAC層會向網絡層發(fā)送指示原語MLMEASSOICATE.indication,將接收到的父節(jié)點信息發(fā)送到上層。網絡層收到原語后將記錄父節(jié)點信息并比對與近鄰表中記錄的可用父節(jié)點信息是否一致,若一致,則向MAC層發(fā)送加入請求原語MLME-JOIN.request;若不一致則發(fā)送錯誤報告。MAC層在與父節(jié)點關聯(lián)成功后會向網絡層發(fā)送加入確認原語MLME-JOIN.confirm指示加入成功,網絡層將向應用層發(fā)送加入確認原語NLME-JOIN.confirm,告知節(jié)點入網成功。新節(jié)點加入網絡中子節(jié)點的信息流程圖如2所示。

      圖2 新節(jié)點加入網絡中子節(jié)點的信息流程圖Fig.2 The information flow chart of new nodes join the network node of the neutron

      作為父節(jié)點的協(xié)調點或路由節(jié)點收到子節(jié)點發(fā)出的節(jié)點掃描信標幀后,NLME會先查看自己的近鄰表中是否存在與之相匹配的地址信息,以對新節(jié)點是否加入過網絡進行判斷。如果發(fā)現(xiàn)有相匹配的地址信息,則路由節(jié)點NLME會記錄此條地址信息,然后按照下文的網絡原有節(jié)點重新加入網絡進行操作;如果發(fā)現(xiàn)沒有相匹配的地址信息,則路由節(jié)點NLME會向MAC層發(fā)送一條響應原語MLME-ASSOCIATE.resPonse。MAC層收到響應原語后會指示節(jié)點物理層向新節(jié)點發(fā)送一條狀態(tài)信息,信息中記錄路由節(jié)點的地址和標識符等信息。等收到子節(jié)點發(fā)送來的整理完成的信息幀時,路由節(jié)點的MAC層會讀取信息幀中的頭地址信息,然后向NLME發(fā)送數(shù)據(jù)發(fā)送請求原語MLME-SEND.request,網絡層收到請求原語后判斷發(fā)送地址是否正確并尋找發(fā)送數(shù)據(jù)需要的路徑。路徑建立后網絡層向MAC層發(fā)送發(fā)送確認原語MLME-SEND.response,指示節(jié)點發(fā)送數(shù)據(jù)。當信息發(fā)送到協(xié)調點并經上位機選擇后會生成一條指示入網命令幀,然后發(fā)送。網絡會根據(jù)上位機選擇的父節(jié)點地址將命令幀轉發(fā)給對應的節(jié)點。選擇的父節(jié)點收到命令幀后會讀取命令信息,然后節(jié)點 MAC層發(fā)送加入請求原語MLME-JOIN.request給網絡層,NLME收到原語后會給新節(jié)點分配網絡地址。父節(jié)點接收入網請求成功,NLME會在節(jié)點近鄰表中加入新節(jié)點的地址等信息,然后發(fā)送加入確認原語MLME-JOIN.confirm給MAC層以報告關聯(lián)成功。新節(jié)點加入網絡中時路由節(jié)點的信息流程圖如圖3所示。

      3 組網過程的實現(xiàn)

      圖3 新節(jié)點加入網絡中時路由節(jié)點的信息流程圖Fig.3 The information flow diagram of routing node

      在進行ZigBee無線網絡的開發(fā)應用時,首先應選取合適的硬件設備。TI公司的CC2530微控制器是新一代的片上系統(tǒng)解決方案。本文選取了成都無線龍公司生產的較為成熟的基于ZigBee的無線網絡開發(fā)系統(tǒng)C51RF-CC2530-PK。軟件開發(fā)環(huán)境本文選取了IAR Embedded Workbench的C/C++交叉編譯器和調試器[5-6]。

      需要入網的子節(jié)點在完成初始化后,就會啟動入網過程。節(jié)點會向網絡中廣播信標幀,然后等待可用路由節(jié)點的反饋。廣播發(fā)送數(shù)據(jù)的函數(shù)如下所示:

      Void SampleApp_Send_All_Message(uint8*buff,

      intlength)

      {

      if (AF_DataRequest (&SampleApp_All_DstAddr,

      &SampleApp_epDesc,

      SAMPLEAPP_FLASH_CLUSTERID,

      length,

      buff,

      &SampleApp_TransID,

      AF_DISCV_ROUTER,

      ……}

      當收到反饋的可用父節(jié)點信息時,節(jié)點會將反饋的信息搜集整理后發(fā)送出去,然后進入待機狀態(tài),等待入網反饋。節(jié)點廣播入網請求信息函數(shù)段如下所示:

      void SampleApp_Send_Message(uint8*buff,uint16 Addr,int

      length)

      {

      SampleApp_Single_DstAddr.addr.shortAddr=Addr;

      if (AF_DataRequest (&SampleApp_Single_DstAddr,

      &SampleApp_epDesc,

      SAMPLEAPP_FLASH_CLUSTERID,

      length,

      buff,

      &SampleApp_TransID,

      AF_DISCV_ROUTER,

      ……}

      當上位機選取合適的父節(jié)點后,父節(jié)點會與子節(jié)點啟動經指定節(jié)點直接入網過程。此部分程序在ZigBee協(xié)議棧中有例子程序,在此不再詳述。

      在子節(jié)點有效距離內的路由節(jié)點和協(xié)調器會在子節(jié)點廣播消息時接收到掃描幀,當路由節(jié)點收到子節(jié)點的掃描幀時會首先判斷自身是否具有加入新節(jié)點的能力,包括是否有足夠地址空間等。路由節(jié)點反饋的函數(shù)段如下所示:

      if(SampleApp_NwkState==DEV_ROUTER)

      {

      Osal_memcpy(rftx.type,”ROU”,3)

      }

      afAddrType_t my_DetAddr;

      my_DstAddr.addrMode=(afAddrMode_t)Addr16Bit;

      my_DstAddr.endPoint=SAMPLEAPP_ENDPOINT;

      my_DstAddr.addr.shortAddr=0x0001;

      AF_DataRequest(&my_DstAddr,&Sample_epDesc,

      SAMPLEAPP_CLUSTERID,

      10,

      (uint8*)buf,

      &SampleApp_TransID,

      AF_DISCV_ROUTE,

      AF_DEFAULT_RADIUS);

      子節(jié)點搜集收到信息后會給路由節(jié)點發(fā)送入網請求,其入網請求信息中包含可用父節(jié)點信息。向協(xié)調器轉發(fā)請求入網信息的函數(shù)段如下所示:

      void SampleApp_SendRouterMessage(void)

      {……

      afAddrType_t my_DetAddr;

      my_DstAddr.addrMode=(afAddrMode_t)Addr16Bit;

      my_DstAddr.endPoint=SAMPLEAPP_ENDPOINT;

      my_DstAddr.addr.shortAddr=0x0000;

      AF_DataRequest(&my_DstAddr,&SampleApp_epDesc,

      SAMPLE_CLUSTERID,

      theMessageData,

      &SampleApp_TransID,

      char Router[10])

      ……}

      父節(jié)點收到指令后會啟動節(jié)點入網過程。

      文中用包括一個協(xié)調器、兩個路由節(jié)點和一個終端節(jié)點的網絡進行實驗驗證。程序編寫完成后將協(xié)調器代碼下載至節(jié)點1,并將此節(jié)點標記為協(xié)調器;將父節(jié)點程序分別下載至節(jié)點2和節(jié)點3,并將這兩個節(jié)點作為原網絡的路由節(jié)點,也即子節(jié)點入網時的可用父節(jié)點;將入網節(jié)點程序下載至節(jié)點4。

      下載完成后分別先打開協(xié)調器節(jié)點1和路由節(jié)點節(jié)點2節(jié)點3的電源,用USB線將協(xié)調器與上位機連接起來,等待路由節(jié)點自動加入網絡,組建所需主干網。待組建完成后打開節(jié)點4電源,并打開串口調試助手,此時會看到節(jié)點4掃描可用父節(jié)點信息后發(fā)送的入網請求信息,并在上微機軟件窗口顯示節(jié)點信息,此時選擇節(jié)點3作為接入父節(jié)點,此時可通過串口調試助手看到確認接入命令。節(jié)點3接收到指令后會啟動接收節(jié)點4為其子節(jié)點,節(jié)點4加入網絡。加入網絡成功后會在上位機軟件顯示網絡拓撲結構。

      4 結論

      通過對組建網絡和網絡節(jié)點入網過程的運行實現(xiàn),驗證了所做的可控組網改進方法達到了預期設定的目的,實現(xiàn)了上位機通過選取可用的父節(jié)點對入網過程的控制。這樣的情況下當在一些特殊情況下或者已知路由節(jié)點狀態(tài)的情況下可以很好地避開功能較弱或者剩余電量較低的節(jié)點,可有效地提高關鍵節(jié)點的壽命,進而提高了網絡的壽命。

      [1]朱瑩,林基明.基于ZigBee無線傳感器網絡網關的設計與實現(xiàn)[J].傳感器與微系統(tǒng),2009(7):80-82.ZHU Ying,LIN Ji-ming.Design and realization of wireless sensor network gateway based on ZigBee[J].Transducer and Microsystem Technologies,2009(7):80-82.

      [2]王飛,王黎明,韓焱.基于Zig Bee無線傳感器網絡技術的管道監(jiān)測系統(tǒng)[J].傳感器與微系統(tǒng),2011(12):85-87.WANG Fei,WANG Li-ming,HAN Yan.Pipeline monitoring system of Wireless Sensor Network based on ZigBee[J].Transducer and Microsystem Technologies,2011(12):85-87.

      [3]杜天旭,吳曉雯,莊偉.基于ZigBee技術的人體健康監(jiān)測平臺[J].測控技術,2012,31(7):10-11.DU Tian-xu,WU Xiao-wen,ZHUANG Wei.Human health monitoring platform based on ZigBee[J].Measurement and Control Technology,2012,31(7):10-11.

      [4]李剛,陳俊杰,葛文濤.一種改進的ZigBee網絡Cluster-Tree路由算法[J].測控技術,2009,28(9):52-55.LI Gang,CHEN Jun-jie,GE Wen-tao.An improved Cluster-Tree routing algorithm in ZigBee Networks[J].Measurement and Control Technology,2009,28(9):52-55.

      [5]劉煥強,顧曉峰,何磊.基于ZigBee網絡的多網關傳輸系統(tǒng)設計[J].江南大學學報,2012,12(3):262-267.LIU Huan-qiang,GU Xiao-feng,HE Lei.Multi-gateway system in single ZigBee network[J].Journal of Jiangnan University,2012,12(3):262-267.

      [6]劉政.基于能量優(yōu)化的ZigBee網絡路由算法[J].微型機與應用,2013,32(3):55-57.LIU Zheng.The improve of network routing algorithm based on ZigBee[J].Microcomputer and Applications,2013,32(3):55-57.

      猜你喜歡
      網絡層原語信標
      Noise-Tolerant ZNN-Based Data-Driven Iterative Learning Control for Discrete Nonaffine Nonlinear MIMO Repetitive Systems
      測試原語:存儲器故障最小檢測序列的統(tǒng)一特征
      RFID電子信標在車-地聯(lián)動控制系統(tǒng)中的應用
      密碼消息原語通信協(xié)議介紹及安全分析
      基于WPA的物聯(lián)網網絡層安全的研究
      基于信標的多Agent系統(tǒng)的移動位置研究
      無姿態(tài)補償?shù)乃滦艠私^對位置傳遞研究
      水道港口(2015年1期)2015-02-06 01:25:45
      基于原語自動生成的安全協(xié)議組合設計策略及應用研究
      Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
      物聯(lián)網網絡層安全
      洛宁县| 东丽区| 荣昌县| 新沂市| 徐汇区| 澎湖县| 苏尼特左旗| 武宣县| 珲春市| 武定县| 新绛县| 双桥区| 石门县| 阿拉善左旗| 尤溪县| 宁乡县| 荣成市| 磐安县| 平罗县| 甘孜| 湄潭县| 福清市| 湾仔区| 浙江省| 凤山县| 铁岭县| 修武县| 沁阳市| 海淀区| 潼南县| 西盟| 阿鲁科尔沁旗| 剑阁县| 文水县| 枝江市| 乌恰县| 疏附县| 娄烦县| 类乌齐县| 策勒县| 会同县|