新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于ZigBee無線網絡的可控組網方法研究

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

        作者: 時間:2017-06-12 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201706/352656.htm

        無線網絡申節點多采用自組網的方式入網,這種方式容易引起網絡中部分節點的過度消耗。針對此種情況提出可控組網方式,通過對節點入網父節點的選擇控制,可以有效的監控管理整個網絡的拓撲結構和節點分布,并延長節點和網絡的壽命。通過在基于CC2530的開發系統申對可控組網方式編譯和實現,驗證了其可行性。

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

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

        1方法分析

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



        圖1 節點自組織流程圖


        2改進的組網方式

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

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

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



        圖2 新節點加入網絡中子節點的信息流程圖


        作為父節點的協調點或路由節點收到子節點發出的節點掃描信標幀后,NLME會先查看自己的近鄰表中是否存在與之相匹配的地址信息,以對新節點是否加入過網絡進行判斷。如果發現有相匹配的地址信息,則路由節點NLME會記錄此條地址信息,然后按照下文的網絡原有節點重新加入網絡進行操作;如果發現沒有相匹配的地址信息,則路由節點NLME會向MAC層發送一條響應原語MIME-ASSOCIATE.resPonse。MAC層收到響應原語后會指示節點物理層向新節點發送一條狀態信息,信息中記錄路由節點的地址和標識符等信息。

        等收到子節點發送來的整理完成的信息幀時,路由節點的MAC層會讀取信息幀中的頭地址信息,然后向NLME發送數據發送請求原語MLME-SEND.request,網絡層收到請求原語后判斷發送地址是否正確并尋找發送數據需要的路徑。路徑建立后網絡層向MAC層發送發送確認原語MLME-SEND.response,指示節點發送數據。

        當信息發送到協調點并經上位機選擇后會生成一條指示入網命令幀,然后發送。網絡會根據上位機選擇的父節點地址將命令幀轉發給對應的節點。選擇的父節點收到命令幀后會讀取命令信息,然后節點MAC層發送加入請求原語MLME-JOIN.request給網絡層,NLME收到原語后會給新節點分配網絡地址。父節點接收入網請求成功,NLME會在節點近鄰表中加入新節點的地址等信息,然后發送加入確認原語MLME-JOI N.confirm給MAC層以報告關聯成功。新節點加入網絡中時路由節點的信息流程圖如圖3所示。



        圖3 新節點加入網絡中路由節點的信息流程圖


        3組網過程的實現

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

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



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


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

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


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


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

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

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


        4結論

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵寿县| 胶州市| 紫阳县| 武威市| 柳州市| 滦平县| 亳州市| 丘北县| 疏勒县| 晋江市| 彩票| 乌兰浩特市| 普宁市| 红原县| 定结县| 合水县| 威信县| 盐源县| 松滋市| 安溪县| 康乐县| 彭山县| 大方县| 马鞍山市| 兴和县| 泸定县| 海安县| 涿鹿县| 通江县| 忻州市| 花垣县| 乌苏市| 宝应县| 萨嘎县| 苗栗县| 临汾市| 扎兰屯市| 武汉市| 浦县| 长沙县| 息烽县|