基于nRF905的低功耗溫濕度無線測量系統
3.2 無線收發
對于無線發送而言,在測量發送數據以后,應考慮到數據傳輸的可靠性,因此加上校驗功能,并且為防止偶然的發送失敗帶來的不良后果,采取定時等待,超時后重發,收到接收主機命令后才進入休眠的模式。具體流程圖如圖8所示。
對于接收端而言,所完成的任務是時刻檢測無線接收模塊,對于收到的數據進行校驗,如果正確收到數據則無線發送相關指令告知接收端,使其能夠盡快進入休眠省電模式,并且通過上位機顯示溫濕度;而接收到錯誤數據后不做任何處理,等待接收端再次發送數據。
相應的初始化程序如下:
unsigned char RFConf[11]=
{
Ox00, //配置命令//
0x6C, //CH_NO,配置頻段在433.2 MHz
OxOC,//輸出功率為10 dB,不重發,節電為正常模式
0x44, //地址寬度設置,為4 B
0x02,0x02, //接收發送有效數據長度為3 B
0xE0,0xE0,0xE0,0xE0, //接收地址
0x1E, //CRC充許,16位CRC校驗,外部時鐘信號使能,16 MHz晶振
};
for(unsigned char i=0;i11;i++)
SPDR=RFConf[i];
//SPDR是Atmegal-16L的SPI數據寄存器,相應配置見數據手冊;
而實際操作過程中通過對nRF905發送與接收實現是通過以下命令實現:
寫發射數據命令:20H;
讀發射數據命令:21H;
寫發射地址命令:22H;
讀發射地址命令:23H;
讀接收數據命令:24H。
4 結 語
該系統采用AVR系列低功耗單片機ATmega16L作為控制芯片,低功耗芯片nRF905作為無線收發模塊,設計并實現了基于數字溫濕度傳感器SHT11的溫濕度無線測量系統,這些低功耗產品使得該系統耗電量小,并且又特別適合將該系統小型化,智能化,儀表化。無線發射功能又代替了人工抄表的繁瑣,使得本系統有著廣泛的應用前景。
評論