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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 由MSP430和CC1100構(gòu)成的無線傳感器網(wǎng)絡(luò)

          由MSP430和CC1100構(gòu)成的無線傳感器網(wǎng)絡(luò)

          作者: 時間:2013-07-03 來源:網(wǎng)絡(luò) 收藏

          2.3 數(shù)據(jù)采集單元

            節(jié)點的數(shù)據(jù)采集單元可以根據(jù)實際需要和被監(jiān)測物理信號特征選擇合適的傳感器,如光照、壓力、振動、溫度、濕度、土壤鹽堿度等。

            本文數(shù)據(jù)采集單元采用了Sensirion公司的數(shù)字式溫濕度傳感器DHT90。DHT90集成了溫度/濕度傳感器、信號放大調(diào)理器、A/D轉(zhuǎn)換器和總線接口,能夠進(jìn)行全校準(zhǔn)數(shù)字輸出,可以直接提供溫度在-40℃~120℃范圍內(nèi)、分辨率為14位、濕度在0~100%RH范圍內(nèi)且分辨率為12位的數(shù)字輸出。

          2.4 時間控制單元

            時間控制單元用于設(shè)置、記錄數(shù)據(jù)采集的時間,以便后臺用戶能夠依靠采集時間對數(shù)據(jù)進(jìn)行處理。本文選用Maxim公司的串行實時時鐘芯片DS1337作為時間控制單元。DS1337可以工作在1.8~5.5 V,并且具有很低的功耗,在休眠模式下僅需要15 μA。

          2.5電源供應(yīng)單元

            本文采用兩節(jié)7號堿性南孚電池為整個節(jié)點供電。為了能夠及時獲取節(jié)點電池的電量狀況,并根據(jù)電池的剩余電量狀況和放電特性來調(diào)整節(jié)點的通信狀態(tài),本文利用F1611芯片內(nèi)部集成的ADC12模塊測量電源正極電平值,并通過將所測電平值與參考電平進(jìn)行比較,得到轉(zhuǎn)換數(shù)據(jù)NADC,最后電源的電壓Vin可以由下式得出:

            式中:VR+為參考電壓正極,VR-為參考電壓負(fù)極,Vin為ADC12轉(zhuǎn)換得到的電壓值,NADC為單片機(jī)轉(zhuǎn)換寄存器值。

          2.6 串口通信單元

            網(wǎng)絡(luò)中只有Sink節(jié)點才包含串口通信單元,終端節(jié)點無需串口通信單元。Sink節(jié)點的處理單元F1611通過串口通信單元與后臺監(jiān)控主機(jī)通信。Sink節(jié)點通過串口通信模塊可以將自身收集的全網(wǎng)信息數(shù)據(jù)傳送給后臺監(jiān)控主機(jī),研究人員根據(jù)監(jiān)控軟件對收集數(shù)據(jù)的智能處理結(jié)果向傳感器網(wǎng)絡(luò)發(fā)布數(shù)據(jù)和命令。

          3 協(xié)議軟件設(shè)計

          3.1 拓?fù)浣Y(jié)構(gòu)

            制定網(wǎng)絡(luò)協(xié)議首先要確定的是網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。本文所設(shè)計的協(xié)議采用簇-樹(cluster-tree)拓?fù)洹4?樹拓?fù)涫怯删W(wǎng)絡(luò)協(xié)調(diào)器(coordinator)展開生成樹狀的拓?fù)浣Y(jié)構(gòu),適合于節(jié)點靜止或者移動較少的場合;不需要存儲路由表,具有路由算法復(fù)雜度低、無初始延時等優(yōu)點。

          3.2 通信協(xié)議棧

            無線通信協(xié)議的設(shè)計目的是使具體的通信機(jī)制與上層的應(yīng)用分離,為傳感器節(jié)點提供網(wǎng)絡(luò)通信的功能。為了降低網(wǎng)絡(luò)設(shè)計的復(fù)雜性,采用分層設(shè)計,參考OSI模型,將整個協(xié)議分為4層:物理層,提供簡單但健壯的信號調(diào)制和無線收發(fā)技術(shù);MAC層,負(fù)責(zé)數(shù)據(jù)成幀、幀檢測、媒體訪問和差錯控制;網(wǎng)絡(luò)層,主要負(fù)責(zé)路由生成和路由選擇;應(yīng)用層,包括一系列基于監(jiān)測任務(wù)的應(yīng)用層軟件。

            整個系統(tǒng)協(xié)議設(shè)計包括Sink節(jié)點協(xié)議設(shè)計和終端節(jié)點協(xié)議設(shè)計。由于篇幅有限,本文僅介紹終端節(jié)點的軟件協(xié)議和系統(tǒng)主程序。

            終端節(jié)點在初始化成功后進(jìn)入信道掃描偵聽狀態(tài),當(dāng)偵聽到有鄰居節(jié)點活動時便向鄰居節(jié)點請求時標(biāo)幀;節(jié)點依據(jù)接收到的時標(biāo)幀同步自己的時鐘,節(jié)點時鐘同步后進(jìn)入接入狀態(tài),接人成功后節(jié)點進(jìn)入業(yè)務(wù)狀態(tài)。處于業(yè)務(wù)狀態(tài)的節(jié)點,執(zhí)行后臺和Sink節(jié)點發(fā)布的命令,進(jìn)行數(shù)據(jù)的傳感采集與傳輸,以及對鄰節(jié)點數(shù)據(jù)的中繼轉(zhuǎn)發(fā)。節(jié)點為了實現(xiàn)低功耗,必須在業(yè)務(wù)狀態(tài)與休眠狀態(tài)之間進(jìn)行輪換。

          4 系統(tǒng)節(jié)能問題

            在整個網(wǎng)絡(luò)系統(tǒng)的設(shè)計中,節(jié)約能量一直是考慮的重中之重。系統(tǒng)的節(jié)能,一靠硬件系統(tǒng)本身的低功耗,二靠軟件協(xié)議的低功耗。在硬件方面,本文節(jié)點選擇的都是低功耗的芯片,布板也充分考慮了低功耗要求;在軟件方面,除了采用休眠機(jī)制以外,還采用了基于電池能量模型的路由協(xié)議,使得節(jié)點能夠根據(jù)電池能量特性來工作,從而延長了電池的使用壽命。

          結(jié) 語

            本文主要介紹了一種基于F1611單片機(jī)和無線收發(fā)模塊,能夠?qū)崿F(xiàn)精確采集環(huán)境溫濕度信息的硬件設(shè)計和軟件設(shè)計方案。在實際組網(wǎng)測試中,筆者構(gòu)建了19個終端節(jié)點和1個Sink節(jié)點的演示系統(tǒng),節(jié)點每休眠兩個小時醒來一次,節(jié)點醒來之后采集數(shù)據(jù)并發(fā)送給觀察者。實驗表明,采用這種方式構(gòu)建的系統(tǒng)數(shù)據(jù)采集及時準(zhǔn)確,而且能以極低的功耗進(jìn)行工作。
          參考文獻(xiàn):

          [1].MSP430F1611datasheethttp://www.dzsc.com/datasheet/MSP430F1611_.html.
          [2].datasheethttp://www.dzsc.com/datasheet/_1132259.html.
          [3].DS1337datasheethttp://www.dzsc.com/datasheet/DS1337_1090248.html.
          [4].MSP430datasheethttp://www.dzsc.com/datasheet/MSP430_490166.html.
          [5].Maximdatasheethttp://www.dzsc.com/datasheet/Maxim_1062568.html.


          上一頁 1 2 下一頁

          評論


          相關(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); })();