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