<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應用 > 基于最小能耗的無線傳感器網(wǎng)絡(luò)路由算法

          基于最小能耗的無線傳感器網(wǎng)絡(luò)路由算法

          作者: 時間:2011-08-16 來源:網(wǎng)絡(luò) 收藏

          通信模塊存在發(fā)送、接收、空閑和睡眠4種狀態(tài)。通信模塊在空閑狀態(tài)一直監(jiān)聽信道的使用情況,檢查是否有數(shù)據(jù)發(fā)送給自己,而在睡眠狀態(tài)則關(guān)閉通信模塊。從圖2中可看到,無線通信模塊在發(fā)送狀態(tài)的能量消耗最大,在空閑狀態(tài)和接收狀態(tài)的能量消耗接近,略少于發(fā)送狀態(tài)的能量消耗,在睡眠狀態(tài)的能量消耗最少。

          本文引用地址:http://www.ex-cimer.com/article/161585.htm

          b.jpg


          1.2 LEACH協(xié)議分析
          最早的分簇協(xié)議是由Wendi等三人在2000年提出的LEACH,全稱為“低功耗自適應集簇分層型協(xié)議”。LEACH的每一輪操作分為兩個運行階段:簇建立階段和簇穩(wěn)定運行階段。由于簇建立階段是屬于額外的通信需求,所以穩(wěn)定運行的持續(xù)時間要遠大于建立階段持續(xù)的時間。
          在簇建立階段,節(jié)點隨機生成一個0,1之間的隨機數(shù),并且與閾值T(n)做比較,如果小于該閾值,則該節(jié)點就會當選為簇首。T(n)按照下面公式計算:
          c.jpg
          式中:P為節(jié)點成為簇首節(jié)點的百分數(shù);r為當前輪數(shù);G為在這一輪中未當選簇首的節(jié)點集合。
          簇首節(jié)點選定后,廣播自己成為簇首的消息,節(jié)點根據(jù)接收到的消息的強度決定加入哪個簇,并告知相應的簇首,完成簇的建立過程。然后,簇首節(jié)點采用TDMA的方式,為簇內(nèi)成員分配傳送數(shù)據(jù)的時隙。以上LEACH存在一個很大的缺陷,即協(xié)議沒有說明蔟首節(jié)點的數(shù)目怎么分布才能遍及于整個。因此,很可能出現(xiàn)被選的簇首節(jié)點集中在某一區(qū)域的現(xiàn)象,這樣就會使得一些節(jié)點的周圍沒有任何簇首節(jié)點。同時,由于簇首節(jié)點是隨機選擇的,有可能出現(xiàn)某個節(jié)點剩余能量過低而不能成為簇首節(jié)點,從而導致失效。

          2 的無線網(wǎng)絡(luò)算法
          2.1 算法拓撲結(jié)構(gòu)
          圖3所示為無線網(wǎng)絡(luò)路由算法的拓撲結(jié)構(gòu)。整個網(wǎng)絡(luò)的節(jié)點被分為匯聚節(jié)點、簇首節(jié)點和普通節(jié)點。網(wǎng)絡(luò)由若干個子區(qū)域組成,子區(qū)域自主產(chǎn)生簇首節(jié)點,區(qū)域內(nèi)的其他節(jié)點和簇首節(jié)點通信并通過簇首節(jié)點將數(shù)據(jù)傳輸給匯聚節(jié)點。

          d.jpg



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();