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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應用 > 基于MSP430和NRF2401的WSN節(jié)點設(shè)計

          基于MSP430和NRF2401的WSN節(jié)點設(shè)計

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

          1.2 無線傳輸單元
          本系統(tǒng)采用2.4GHz無線單片收發(fā)芯片nRF2401,它具有體積小、功耗低,外設(shè)少的特點,非常適合于無線傳輸應用系統(tǒng)。nRF2401可以由SPI接口與微處理器連接,通過這個接口完成設(shè)置和收發(fā)數(shù)據(jù)工作。許多單片機都集成了SPI控制器,例如,可以非常方便地通過軟件設(shè)置最多40bit地址,只有收到本機地址時才會輸出數(shù)據(jù)(提供一個中斷指示),并且支持點對多點的操作,編程很方便。nRF2401與單片機采用SPI接口連接,原理圖如圖3所示。SPI總線接口技術(shù)是一種高速、高效率的串行接口技術(shù),主要用于擴展外設(shè)和進行數(shù)據(jù)交換。

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

          2 軟件
          軟件開發(fā)以IAR Workbench V3.1為平臺,采用C語言編寫,軟件編程的基本思路是:先對SPI、nRF2401控制端口初始化;使能SPI、UART端口,使能ADC,對nRF2401芯片初始化;開啟接收機后,就可以運行任務程序了,以實現(xiàn)接收或發(fā)送數(shù)據(jù),對nRF2401操作流程如下:
          nRF2401有4種工作模式:收發(fā)模式、配置模式、空閑模式和關(guān)機模式。nRF2401的工作模式由PWR_UP、CE、TX_EN和CS三個引腳決定。對nRF2401的操作主要是配置其工作方式和讀寫數(shù)據(jù),所有配置命令字和數(shù)據(jù)都是通過同步串行口的CLK和DATA兩個引腳完成的。要將nRF2401設(shè)置于ShockBurstTM方式,首先使PWR_UP引腳為高電平,CE引腳為低電平。配置字從最高位開始,依次送入nRF2401,CLK下降沿鎖定數(shù)據(jù)。配置命令字發(fā)送完后,在CS的下降沿按新配置字的設(shè)置開始工作。使用nRF2401進行發(fā)送數(shù)據(jù)時,采用以下的步驟:1)CE置高,使nRF2401開始工作;2)逐位寫入接收機的地址;3)逐位寫入要傳送的數(shù)據(jù);4)CE置低,激發(fā)nRF2401進行ShockBurstTM發(fā)射。nRF2401的ShockBurstTM發(fā)射過程是:給射頻前端供電,射頻數(shù)據(jù)打包(加字頭、CRC校驗碼),高速發(fā)射數(shù)據(jù)包,發(fā)射完成,nRF2401進入空閑狀態(tài)。nRF2401的接口模塊引腳包括CE、DR1、CLK1和DATA(接收通道1),接收端依照以下流程進行數(shù)的接收:1)配置本機地址和即將接收的數(shù)據(jù)包大小;2)進入接收狀態(tài),CE置高;3)200μs后,nRF2401進入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來;4)當接收到正確的數(shù)據(jù)包時,nRF2401自動除去字頭、地址和CRC;5)nRF2401通過把DR1(可用作中斷信號)置高來通知微控制器;6)微控制器把數(shù)據(jù)從nRF2401逐位移出;7)所有數(shù)據(jù)移完,nRF2401把DR1置低,此時如果CE為高,則等待下一個數(shù)據(jù)包,如果CE為低,開始其他工作流程。



          評論


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