<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > MSP430和nRF905的無(wú)線(xiàn)數傳系統設計

MSP430和nRF905的無(wú)線(xiàn)數傳系統設計

——
作者:鄭州威科姆公司 張曉健 李偉 張小雨 時(shí)間:2007-01-26 來(lái)源:《單片機與嵌入式系統應用》 收藏

在特殊環(huán)境的數據測控應用中,無(wú)線(xiàn)數據傳輸已經(jīng)越來(lái)越廣泛地被運用,msp430+nrf905的組合特別適合于低功耗,短距離(100-200m)、小數據量的無(wú)線(xiàn)數傳系統,msp430 cpu在低功耗應用方面有很大優(yōu)勢,nrf905無(wú)線(xiàn)收發(fā)芯片具有功耗低、控制簡(jiǎn)單、可自動(dòng)處理字頭和crc校驗的優(yōu)點(diǎn),兩者結合組成的數傳系統可以在很多產(chǎn)品中得到應用。

1 msp430簡(jiǎn)介

本文引用地址:http://dyxdggzs.com/article/21361.htm

msp430是ti公司新推出的16位系列單片機,在電池供電的低功耗應用中具有獨特的優(yōu)勢,其工作電壓在1.8-3.6v之間,正常工作時(shí)功耗可控制在200μa左右,低功耗模式使可實(shí)現2μa甚至0.1μa的低功耗,msp430具有非常高的集成度,通常在單個(gè)芯片上集成有12位的a/d、比較器、多個(gè)定時(shí)器,片內usart、看門(mén)狗、片內振蕩器、大量的i/o端口及大容量的片內存儲器,一般單片就可以滿(mǎn)足大多數的應用需要。

在低功耗應用中設計程序時(shí),最好采用以下方法:cpu在初始化完成后,處于低功耗工作模式,在有外部事件發(fā)生時(shí)喚醒進(jìn)入終端服務(wù)程序,完成后重新進(jìn)入低功耗模式,照此循環(huán)往復,可以最大限度地降低功耗。

2 nrf905簡(jiǎn)介

nrf905是挪威nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9-3.6v,32引腳qfn封裝(5mm×5mm),工作于433/868/915mhz3個(gè)ism頻道(可以免費使用)。nrf905可以自動(dòng)完成處理字頭和crt(循環(huán)冗余碼校驗)的工作,可由片內硬件自動(dòng)完成曼徹斯特編碼/解碼,使用spi接口與微控制器通信,配置非常方便,其功耗非常低,以-10dbm的輸出功率發(fā)射時(shí)電流只有11ma,在接收模式時(shí)電流為12.5ma。

nrf905傳輸數據時(shí)為非實(shí)時(shí)方式,即發(fā)送端發(fā)出數據,接收端收到后先暫存于芯片存儲器內,外面的mcu可以在需要時(shí)再到芯片中去取。nrf905一次的數據傳輸量最多為32b。

2.1 nrf905的工作模式及設置

nrf905的兩種工作模式和兩種節能模式,分別為掉電模式、待機模式、shockburst tm接收模式和shockburst tm發(fā)送模式,這幾種模式由外界cpu通過(guò)控制nrf905的3個(gè)引腳pwr_up、trx_ce和tx_en的高低電平來(lái)決定,如表1所列。

外界mcu通過(guò)spi總線(xiàn)配置nrf905的內部寄存器,讀寫(xiě)數據時(shí)必須把其置為待機或掉電模式,nrf905在待機模式時(shí)功耗為40μa,在掉電模式時(shí)功耗為2.5μa。

2.2 nrf905的狀態(tài)輸出

nrf905有3個(gè)引腳用于狀態(tài)輸出,分別是:cd(載波檢測)、am(地址匹配)和dr(數據就緒),均為高電平有效,nrf905在處于接收模式時(shí),若檢測到接收頻率段的載波,就置cd為高,接著(zhù)檢測載波數據中的地址字節,若與本身已配置的接收地址相同,則置am為高,若再檢測到接收數據中的crc校驗正確,則存儲有效數據字節,置dr為高。

此外,nrf905還有一個(gè)時(shí)鐘輸出引腳upclh,供用戶(hù)選擇使用。通過(guò)配置內部寄存器,可改變其頻率輸出,這一點(diǎn)在調試時(shí)很有用。無(wú)線(xiàn)系統至少需要一發(fā)一收兩個(gè)設備,調試時(shí)若出現問(wèn)題很難判斷是哪一方的故障??梢酝ㄟ^(guò)修改nrf905的寄存器,用示波器觀(guān)察upclk輸出是否變化的方法,來(lái)判斷其硬件電路和cpu操作,nrf905的程序是否正確,從而判斷及設備是否工作正常。

2.3 nrf905的數據接口

外圍mcu通過(guò)spi總線(xiàn)配置nrf905的內部寄存器和收發(fā)數據,nrf905的spi總線(xiàn)包括4個(gè)引腳:csn(spi使能)、sck(spi時(shí)鐘)、miso(主入從出)和mosi(主出從入)。這里nrf905為從機,其spi的時(shí)鐘范圍很寬,可以從1hz-10mhz,因此mcu在寫(xiě)控制程序時(shí)不必苛求時(shí)間的準確度。

spi總線(xiàn)的每次操作都必須在使能引腳csn的下降沿開(kāi)始,csn低電平有效,總線(xiàn)上的數據在時(shí)鐘的上升沿有效,mcu對spi總線(xiàn)的操作不外乎兩種方式:讀和寫(xiě),在進(jìn)行讀操作時(shí),先把csn置低,然后在mosi數據線(xiàn)上輸出一個(gè)表示讀命令的字節,與此同時(shí),nrf905會(huì )在miso數據線(xiàn)上輸出一字節表示狀態(tài)信息的數據,隨后輸出一地址字節,后面跟隨有效數據,在進(jìn)行寫(xiě)操作時(shí)比較簡(jiǎn)單,mcu先把csn拉低,然后在mosi線(xiàn)上輸出寫(xiě)命令字節和數據字節即可。

2.4 nrf905的寄存器配置

nrf905內部有5類(lèi)寄存器:一是射頻配置寄存器,共10個(gè)字節,包括中心頻點(diǎn)、無(wú)線(xiàn)發(fā)送功率配置、接收靈敏度、收發(fā)數據的有效字節數、結社地址配置等重要信息;二是發(fā)送數據寄存器,共32字節,mcu要向外發(fā)的數據就需要寫(xiě)在這里,三是發(fā)送地址,共4個(gè)字節,一對收發(fā)設備要正常通信,就需要發(fā)送端的發(fā)送地址與接收端的接手地址配置相同,四是接收數據寄存器,共32字節,nrf905接收到的有效數據就存儲在這些寄存器中,mcu可以在需要時(shí)到這里讀取,五是狀態(tài)寄存器,1個(gè)字節,含有地址匹配和數據就緒的信息,一般不用。

mcu若要操作這些寄存器,需遵循nrf905規定的操作命令,常用的有以下7種,都是1個(gè)字節;寫(xiě)射頻配置(0xh,“x”含4位二進(jìn)制位,該字節表示要開(kāi)始寫(xiě)的初始字節數)、讀射頻配置(1xh,“x”含4位二進(jìn)制位,該字節表示要從哪個(gè)字節開(kāi)始讀)、寫(xiě)發(fā)送數據(20h),讀發(fā)送數據(21h)、寫(xiě)發(fā)送地址(22h)、讀發(fā)送地址(23h)和讀接收數據(24h),關(guān)于寄存器的詳細信息可以參閱nrf905的數據手冊。

2.5 nrf905的工作過(guò)程

nrf905在正常工作前應由mcu先根據需要寫(xiě)好配置寄存器,或是按照默認配置工作,其后的工作主要是兩個(gè):發(fā)送數據和接收數據。

發(fā)送數據時(shí),mcu應先把nrf905置于待機模式(pwr_up引腳為高、trx_ce引腳為低)然后通過(guò)spi總線(xiàn)把發(fā)送地址和待發(fā)送的數據都寫(xiě)入相應的寄存器中,之后把nrf905置于發(fā)送模塊(pwr_up、trx_ce和tx_en全置高)數據就會(huì )自動(dòng)通過(guò)天線(xiàn)發(fā)送出去,若射頻配置寄存器中的自動(dòng)重發(fā)位(auto_retran)設為有,數據包就會(huì )重復不斷地一直向外發(fā),直到mcu把trx_ce拉低,退出發(fā)送模式為止。為了數據更可靠地傳輸,建議多使用此種方式。

接收數據時(shí),mcu先在nrf905的待機模式中把射頻配置寄存器中的接收地址寫(xiě)好,然后置其于接收模式(pwr_up=1、trx_ce=1、tx_en=0),nrf905就會(huì )自動(dòng)接收空中的載波,若收到地址匹配的和校驗正確的有效數據,dr引腳會(huì )自動(dòng)置高,mcu在檢測到這個(gè)信號后,可以改其為待機模式,通過(guò)spi總線(xiàn)從接收數據寄存器中讀出有效數據。

3 系統硬件設計

msp430的usart模塊可通過(guò)寄存器配置為通用異步串行口或spi模塊功能,這里配置為spi模塊,本系統選用的mcu是msp430f133,在硬件設計時(shí)把mcu的spi接口和nrf9051spi接口相連即可,另外再選幾個(gè)i/o口連接nrf9051輸出輸出信號,如圖1所示。

對于初次接接觸無(wú)線(xiàn)系統的設計者,因其射頻部分的元件采購,焊接和調試比較麻煩,可以選用ptr8000模塊,該模塊內核使用nrf905,硬件電路已經(jīng)焊好,十月起來(lái)相對方便一些。

4 控制程序設計

本系統設計的重點(diǎn)是控制nrf901的程序設計,大致分為兩個(gè)階段:首先是對nrf905進(jìn)行初始配置,配置完成后按 需要便攜書(shū)記的發(fā)送或接收程序。

4.1 初始化配置

第一階段應完成初始化配置,分以下幾項:

1)msp430的spi接口設置,msp4301異步串行接口和spi接口用同一個(gè)usart模塊,賊里需要用軟件配置為spi功能,本設計中spi配置為主機模塊、3線(xiàn)制和8位數據,程序源代碼參見(jiàn)子程序“spi_set五”。(編者注:程序源代碼見(jiàn)本刊網(wǎng)站www.mesnet.com.cn)

2)初始化nrf901的射頻配置寄存器,這些寄存器中有很多信息,必須根據實(shí)際情況進(jìn)行配置,本設計中nrf905外界16mhz晶體,“xof應配置為“011”;“pa_pwr”為發(fā)射功率,rx_red_pwr”為接收命靈敏度,可根據需要配置;另外還有發(fā)送地址、接收地址、發(fā)送數據和結社數據的長(cháng)度(字節數)可根據實(shí)際應用配置,注意賊組寄存器中海油接收時(shí)的實(shí)際地址,不而發(fā)送地址在其他單獨的寄存器中。

3)配制nrf901的發(fā)送地址,最多4個(gè)字節(32位),發(fā)送端的發(fā)送地址應于接受端設備的結社地址相同,在實(shí)際工作中nrf901可以自動(dòng)濾濾除地址不相同的數據,只有地址匹配且校驗正確的數據彩繪被接受,并存儲在接收數據寄存器中。

4.2 發(fā)送數據

使nrf905發(fā)送數據前需要msp430通過(guò)spi總線(xiàn)在待機模式便板待法數據填進(jìn)發(fā)送數據寄存器中,一次最多32b,然而把nrf9051“trx_ce”、“tx_en” 因該都置為高電平,數據就會(huì )自動(dòng)發(fā)送出去,本設計射頻配置寄存器中選定了自動(dòng)重發(fā)位,因此在“trx_ce”被置高的時(shí)間內數據一直在重復不斷地發(fā)。本程序中設計延時(shí)500ms,之后拉低“tr x_ce”因該,回到待機模式。

4.3 接收數據

msp430把nrf905的“trx_ce”引腳置為高電平,“tx_ce引腳拉為低電平后就刻蝕結社數據,本設計中cpu在設定的35s內一直判斷nrf9051“dr”引腳是否便變高個(gè),若為高則證明接收到了有效數據,可以退出接收模式,弱一致沒(méi)有接受2到,待時(shí)間到時(shí)也退出接接受是模塊,退出后在待機模塊,cpu通過(guò)spi總線(xiàn)把nrf905內部的接收數據寄存器中數據讀出,即接收道德有效數據。

便攜接受部分程序時(shí),有一點(diǎn)應該注意,很多資料中都沒(méi)有提到,就是cpu在mosi信號線(xiàn)上發(fā)出讀命令字節后“miso”信號線(xiàn)上nrf905會(huì )自動(dòng)返回一字節數據,本本身的狀態(tài)寄存器信息,后續的接收數據并不會(huì )自動(dòng)跟著(zhù)輸出,只有cpu在mosi上輸出一個(gè)字節(可以是隨意值),nrf905才會(huì )在“miso”上返回一個(gè)字節,cpu再發(fā),nrf905再滿(mǎn)會(huì ),直到讀完為止。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>