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