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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于傳感器網(wǎng)絡(luò)的巖土工程應(yīng)力監(jiān)測解決方案

          基于傳感器網(wǎng)絡(luò)的巖土工程應(yīng)力監(jiān)測解決方案

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

            2、軟件設(shè)計

            系統(tǒng)主要通過TI公司提供的編譯器IAR Embedded Workbench 430 4.21進行編程,通過對SPI口、ADC口、定時器以及CC2420的配置,完成一系列數(shù)據(jù)收發(fā)。本文將以點對點通信為例,將系統(tǒng)程序分為數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊予以介紹。

            2.1 數(shù)據(jù)發(fā)送模塊

            本模塊主要負(fù)責(zé)控制傳感器定時采集數(shù)據(jù),并通過模數(shù)轉(zhuǎn)換將采集到的電信號轉(zhuǎn)換為數(shù)據(jù),最后通過設(shè)置CC2420將數(shù)據(jù)通過2.4 GHz信道發(fā)送出去。

            程序首先對單片機的各個需要模塊進行初始化,再通過SPI串口對CC2420進行配置寄存器以及設(shè)置源地址、目的地址等。初始化完成后,單片機進入低功耗模式等待定時中斷到來。通過軟件設(shè)置,可以設(shè)定采集數(shù)據(jù)周期。當(dāng)采集數(shù)據(jù)數(shù)目達(dá)到預(yù)定值后,將按預(yù)先規(guī)定格式將所采集數(shù)據(jù)、目的地址等依次寫入發(fā)送緩沖器,然后發(fā)送出去。按照自定義協(xié)議,若數(shù)據(jù)成功接收,發(fā)送端將會接收到確認(rèn)幀。具體發(fā)送流程如圖5所示。

          5.jpg

            2.2 數(shù)據(jù)接收模塊

            數(shù)據(jù)接收模塊的功能是把從發(fā)送節(jié)點發(fā)送過來的數(shù)據(jù),通過單片機控制GPRS模塊,將數(shù)據(jù)以短信形式發(fā)送出去,具體程序流程如圖6所示 。初始化過程與數(shù)據(jù)采集模塊相同,初始化完成后單片機進入低功耗模式等待接收數(shù)據(jù)。在配置CC2420時,已預(yù)先設(shè)置好觸發(fā)FIFOP中斷的條件,當(dāng)接收數(shù)據(jù)長度超出預(yù)設(shè)值時,F(xiàn)IFOP電平變化,觸發(fā)單片機中斷。CC2420首先進行地址確認(rèn),若數(shù)據(jù)中的目的地址與本節(jié)點地址吻合,則地址確認(rèn)成功,硬件自動發(fā)送確認(rèn)幀。發(fā)送后,按照協(xié)議規(guī)定,依次讀出幀長度、控制幀以及用戶數(shù)據(jù)等。通過對收到數(shù)據(jù)的分析,在應(yīng)力數(shù)據(jù)值超過預(yù)定門限值時,調(diào)用函數(shù)將應(yīng)力數(shù)據(jù)通過短信發(fā)送到監(jiān)測人員手機。

          6.jpg

            另外,傳感器采集節(jié)點發(fā)送的整型數(shù)據(jù)需要通過ASCII碼轉(zhuǎn)換將其變?yōu)樽址蛿?shù)據(jù)才能發(fā)送。將編碼后的數(shù)據(jù)封裝到AT命令中,然后通過串口寫入GPRS模塊便可達(dá)到發(fā)送短信的目的。



          評論


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