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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 基于CC2430的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)

          基于CC2430的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)

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


          3.1 溫濕度數(shù)據(jù)采集模塊
            溫濕度傳感器SHT10采用類似但不兼容I2C總線的方式和處理器通信。數(shù)據(jù)通過DATA線直接讀取,控制流程如圖3所示。首先用一組啟動傳輸時序進(jìn)行數(shù)據(jù)傳輸?shù)某跏蓟缓蟀l(fā)送一組測量命令(‘00000101’表示相對濕度,‘00000011’表示攝氏溫度),釋放DATA線,等SHT10下拉DATA至低電平,表示測量結(jié)束,同時接收數(shù)據(jù)。
            其中產(chǎn)生啟動傳輸時序的程序片段如下:
            ……
            P1_1=1;
            P1_0=1;
            wait(1);//等待1ms
            P1_1=0;
            wait(1);
            P1_0=0;
            wait(1);
            P1_0=1;
            wait(1);
            P1_1=1;
            wait(1);
            P1_0=0;
            ……
            測量溫度后,通過T=d1+d2×SOT計(jì)算出溫度。
            測量濕度后,再根據(jù)當(dāng)前的溫度,通過RH=(T℃-25)×(t1+t2×SORH)+c1+c2×SORH+c3×SORH2,計(jì)算出相對濕度。其中常量d1、d2、t1、t2、c1、c2和c3由SHT1x數(shù)據(jù)手冊提供。
          3.2 電源能量檢測模塊
            無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)通常采用電池供電,電池的能量檢測是重要環(huán)節(jié)。CC2430的ADC模塊不僅可以采樣P0端口引腳上的輸入電壓,還可以采樣AVDD_SoC引腳上的1/3電壓。這個功能通常用于實(shí)現(xiàn)電池的能量檢測,即檢測當(dāng)前的電源電壓是否在CC2430所能工作電壓范圍2.0~3.6V內(nèi)。完成一次AD轉(zhuǎn)換的控制流程是:首先設(shè)置AVDD_SoC引腳上電壓的1/3為采樣輸入,然后啟動AD轉(zhuǎn)換,等待AD轉(zhuǎn)換結(jié)束,寄存器ADCH:ADCL中的數(shù)據(jù)即為參考電壓的相對數(shù)值。
            由于是對電池能量的檢測,可以采用CC2430內(nèi)部提供的1.25V電壓作為參考電壓。用這個參考電壓采樣AVDD_SoC引腳上的1/3電壓,從而得出當(dāng)前的電源電壓值。選用8位的采樣精度,則寄存器ADCCON3應(yīng)配置為0x0F。設(shè)置完寄存器后,ADC立即啟動一次AD轉(zhuǎn)化,寄存器ADCCON1的EOC位用于指示當(dāng)前的轉(zhuǎn)化是否結(jié)束。當(dāng)EOC位變?yōu)?時,證明當(dāng)前的轉(zhuǎn)換完成,轉(zhuǎn)換后的數(shù)值被存放在寄存器ADCH中。ADCH中的數(shù)值被讀取后,EOC位自動恢復(fù)為0。根據(jù)取出的數(shù)值計(jì)算得到當(dāng)前AVDD_SoC上引腳的電壓。通過連續(xù)采樣10次進(jìn)行均值濾波,用這個平均值與用戶設(shè)定的最低有效工作電壓2.4V相比,可判斷出當(dāng)前電壓是否正常。該模塊的程序流程圖如圖4。
            其中由DATA[0...9]的均值A(chǔ)verage計(jì)算實(shí)際電壓的代碼如下:
            ……
            Voltage=( (Average*15)>>9);//Voltage為實(shí)際電壓的10倍
            ……
          3.3 無線通信模塊
            無線傳感器網(wǎng)絡(luò)通信的基礎(chǔ)是節(jié)點(diǎn)之間的點(diǎn)對點(diǎn)通信。本小節(jié)以兩個節(jié)點(diǎn)之間的通信為例,介紹了點(diǎn)對點(diǎn)通信的過程和實(shí)現(xiàn)方法。首先,定義一種比IEEE802.15.4規(guī)范所定義的MAC協(xié)議層數(shù)據(jù)幀簡單的MAC層數(shù)據(jù)幀的格式:


            其中目標(biāo)地址和源地址分別用1個字節(jié)表示。本例中只有兩個節(jié)點(diǎn)互相通信,分別將兩個節(jié)點(diǎn)的地址設(shè)為0和1。標(biāo)志位Flags占1個字節(jié),用于表示當(dāng)前數(shù)據(jù)幀的類型。當(dāng)數(shù)據(jù)幀中Flags字節(jié)的最高位為1時,表示該幀是數(shù)據(jù)序列中的一幀;第3位為1時,表示該幀是超時重傳的數(shù)據(jù)幀;第2位為1時表示該幀是接收到數(shù)據(jù)幀后的答復(fù)幀;第1位為1時,表示目標(biāo)節(jié)點(diǎn)在收到該數(shù)據(jù)幀后要答復(fù)。幀校驗(yàn)FCS由2個字節(jié)表示,是MAC層協(xié)議數(shù)據(jù)單元MPDU的校驗(yàn)。如果CC2430的RF寄存器MDMCTRL0L.AUTOCRC控制位設(shè)為1,F(xiàn)CS將由硬件自動實(shí)現(xiàn),負(fù)責(zé)必須由軟件用多項(xiàng)式x16+x12+x5+1進(jìn)行CRC的生成和校驗(yàn)。
            由于IEEE802.15.4規(guī)范中定義了物理服務(wù)數(shù)據(jù)單元(PSDU)的最大長度為127字節(jié),而其中的5字節(jié)已經(jīng)被使用,因此有效負(fù)載payload的字節(jié)長度在1~122之間。如果需要傳送的數(shù)據(jù)長度超過122字節(jié),則發(fā)送時這個數(shù)據(jù)應(yīng)該被拆分成若干數(shù)據(jù)幀,以滿足最大長度的限制。目標(biāo)節(jié)點(diǎn)則必須能夠?qū)⒔邮盏降臄?shù)據(jù)幀整合成完整的數(shù)據(jù)。
            IEEE802.15.4規(guī)定了RF物理層的工作頻段為2.4GHz,共有16個頻道。每個頻道的實(shí)際工作頻率和頻道序號的關(guān)系式為:Fc=2405+5×(k-11)MHz,k=11,12,…26。兩個節(jié)點(diǎn)的RF必須工作在相同的頻道上,才能夠互相收發(fā)數(shù)據(jù)。完成一次數(shù)據(jù)發(fā)送的程序流程圖如圖5。



          評論


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