基于ATmega16和nRF905的無線射頻收發系統設計
2系統軟件設計
本系統中的無線數據傳輸主要由無線數據收發器nRF905、ATMEGA 16單片機和顯示部分組成。nRF905收發器與單片機ATMEGA16L間通過SPI口進行通信。因此,軟件設計過程中的重點是nRF905數據的發送和接收過程。
2.1 nRF905的數據發送過程
發送數據時的工作流程如圖5所示。當MCU有遙控數據節點時,接收點的地址(TX-address)和有效數據(Tx-payload)將通過SPI接口傳送給nRF905。設計時應使用協議或MCU來設置接口速度。
可用MCU設置TRX-CE,并使TX-EN為高電平來激活nRF905的ShockBurst傳輸。通過nRF905的ShockBurst可使無線系統自動上電,并完成數據包(應加前導碼和CRC校驗碼)的數據碼發送(100 kbps,GFSK,曼切斯特編碼)。
如果AUTO-RETRAN被設置為高電平,那么,nRF905將連續地發送數據包,直到TRX-CE被設置為低電平為止;而當TRX-CE被設置為低電平時,nRF905則結束數據傳輸,并將自己設置為standby模式。
2.2 nRF905的數據接收過程
當系統接收數據時,其接收數據流程圖如圖6所示。系統的工作過程如下:
首先,在650μs以后,nRF905將不斷監測空中的信息;當nRF905發現有和接收頻率相同的載波時,其載波檢測(CD)被置為高電平;此后,當nRF905接收到有效地址時,地址匹配(AM)被置為高電平;
在這之后,當nRF905接收到有效的地址包(CRC校驗正確)時,nRF905將去掉前導碼、地址和CRC位,同時將數據準備就緒位(DR)置為高電平,并用MCU設置TRX-CN為低電平,以進入standby模式,從而使MCU能夠以合適的速率通過SPI接口讀出有效的數據;當所有的數據讀出后,nRF905將AM和DR設置為低電平,以便使nRF905準備進入ShockBurst RX、ShockBurst TX或Powerdown模式。
3 結束語
無線射頻收發芯片nRF905內置有天線,同時內部集成有調制,解調、編碼/解碼等功能,故在通信過程中能自動生成前導碼和CRC校驗,而不需要"接人"網絡就能享受通信服務。本設計根據nRF905的特點設計的無線數據收發系統,經過多次實驗證明,其發射端能正確地將數據傳送出去;同時,經nRF905發射后,接收端也能正確接收并顯示數據,有效通信距離大于200米。在有障礙物體的混凝土結構的建筑內測試,其有效直線通信距離大于50 m。此外,該系統采用了比較完善的軟件、硬件設計以及抗干擾措施,這樣,就可以保證系統工作的安全性和可靠性,并具有通用性,便于投入實際應用,而且稍作改動就可以應用到小區傳呼、工業數據采集、生物信號采集,無線遙控等其它一些短距離無線通信領域,以實現無線數據的雙向傳輸,具有較好的市場應用價值。
評論