<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è) > 手機與無(wú)線(xiàn)通信 > 設計應用 > nRF905模塊和SPI接口的點(diǎn)對點(diǎn)無(wú)線(xiàn)通信系統

nRF905模塊和SPI接口的點(diǎn)對點(diǎn)無(wú)線(xiàn)通信系統

作者: 時(shí)間:2007-09-21 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要 介紹一種利用無(wú)線(xiàn)射頻收發(fā)囂和單片機實(shí)現的無(wú)線(xiàn)數據傳輸;給出單片機PICl6F876控制通過(guò)口進(jìn)行數據交換,以及它們之間電路連接和軟件設計方法。該數據傳輸速度快、可靠性高、可移植性強,可廣泛應用于各類(lèi)無(wú)線(xiàn)數據通信中。
關(guān)鍵詞 單片機PICl6F876 無(wú)線(xiàn)數據通信

引 言
在某些環(huán)境監測、安防警報等環(huán)境下,不便進(jìn)行有線(xiàn)線(xiàn)路的鋪設,而采用無(wú)線(xiàn)數據通信方式。采用一般的無(wú)線(xiàn)傳輸方式時(shí)可能因為環(huán)境噪聲大,干擾信號強而導致接收數據的準確性很低。針對這種情況,設計一種低成本、高準確率的無(wú)線(xiàn)數據傳輸――基于PICl6F876(簡(jiǎn)稱(chēng)為“16F876”)的SPI和nRF905模塊的點(diǎn)對點(diǎn)系統。利用16F876和nRF90S模塊直接進(jìn)行SPI數據交換,時(shí)序同步性好,程序編寫(xiě)簡(jiǎn)單。16F876通過(guò)相應的I/O口連接到編程器,可直接進(jìn)行在線(xiàn)調試。鑒于環(huán)境中噪聲大,信號干擾大的特點(diǎn),采用的nRF905模塊引入自動(dòng)重發(fā),高抗干擾GFSK調制和最高16位CRC校驗機制,確保了數據傳輸的可靠性。

1 硬件電路規劃
16P876、nRF905模塊及編程器連接頭J1之間的電路連接,220V-5V電路實(shí)現,5V-3V電壓轉換電路如圖1、圖2、圖3所示。

在圖l中,單片機16F876輸入/輸出口與nRF905模塊相應連接情況:RC7~nRF905模塊時(shí)鐘分頻輸出,RC6~nRF905模塊地址匹配輸出AM,RC5~MISO,RC4~MOSI,RC3~SCK,RC2~CSN,RB7&RB6&RB3~J1編程器連接線(xiàn),RB5~nRF905模塊數據就緒輸出DR,RB2~PWR,RBl~TXEN,RB0~TRX_CE。單片機通過(guò)RB7、RB6和RB3與編程器相連,可進(jìn)行在線(xiàn)編程;由RC5輸出數據到nRF905模塊,由RC4從nRF905模塊輸入數據。由一個(gè)4 MHz陶瓷晶體振蕩器為單片機提供時(shí)鐘輸入。16F876的工作電壓是4.5~5.5V,通過(guò)圖2中的DBA元件實(shí)現從220V市電到5V電壓的轉換。由于nRF905模塊的工作電壓是1.9~3.6V,需從5V電壓轉換得到一個(gè)符合nRF905模塊正常工作的穩定電壓??紤]使用分壓電阻與3V穩壓管串聯(lián)分壓,從穩壓管兩端可得到一個(gè)穩定的3V電壓輸出,如圖3所示。

2 軟件設計
考慮到nRF905模塊內置完整的通信協(xié)議和CRC,軟件設計工作主要集中在如何實(shí)現對nRF905模塊的有效初始配置,以及16F876與nRF905模塊之間SPI通信的實(shí)現。其中須保證16F876與nRF905模塊時(shí)序的一致,并充分考慮nRF905模塊對時(shí)序的要求。SPI時(shí)序如圖4所示。

對應程序設計:

nRF905模塊存在4種工作模式:掉電和SPI編程模式、待機和SPI編程模式、發(fā)射模式、接收模式。


通過(guò)對16F876相應輸出口高低電平的轉換,可控制nRF905模塊工作模式的變化。將單片機的SPI接口與nRF905模塊的相應SPI口互連,實(shí)現16F876與nRF905模塊之間的數據傳遞或實(shí)現16F876向nRF905模塊發(fā)出控制命令;在編程模式下,可將預配置的命令或數據送入單片機收發(fā)緩沖器SSPBUF中,以16F876作為主控模式,并提供SPI通信必需的SCK時(shí)鐘,nRF905模塊作為從動(dòng)模式,在SCK上升沿,雙方進(jìn)行數據傳遞,啟動(dòng)SCK后可將單片機數據逐位移入nRF905模塊中,以完成對其初始配置。

參照nRF905模塊數據手冊進(jìn)行初始配置:nRF905模塊的發(fā)射功率,工作頻段,發(fā)送數據寬度,發(fā)送數據地址,接收數據寬度,接收數據地址,CRC校驗等。若該nRF905模塊作為發(fā)射部分,則將已采集并存儲在單片機中的數據送入nRF905模塊,以備發(fā)射。


設計一個(gè)SPI通信模塊程序進(jìn)行循環(huán)調用,以簡(jiǎn)化程序設計,提高可讀性。


程序流程如圖5所示。

結語(yǔ)
本無(wú)線(xiàn)數據傳輸系統已成功應用于無(wú)線(xiàn)抄表項目之中,在實(shí)際的工作環(huán)境運行半年多時(shí)問(wèn),情況良好。經(jīng)過(guò)現場(chǎng)測試,在空曠地,無(wú)須另加功放或外接天線(xiàn),的有效半徑約100m。本系統除可應用在無(wú)線(xiàn)抄表領(lǐng)域外,還可用于環(huán)境監測、門(mén)禁系統、無(wú)線(xiàn)遙控系統等。
如需全部源代碼,可E-mail致gerentlee@163.com索取。



評論


相關(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>