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;i<11;i++)
SPDR=RFConf[i];
//SPDR是Atmegal-16L的SPI数据寄存器,相应配置见数据手册;
而实际操作过程中通过对nRF905发送与接收实现是通过以下命令实现:
写发射数据命令:20H;
读发射数据命令:21H;
写发射地址命令:22H;
读发射地址命令:23H;
读接收数据命令:24H。
4 结 语
该系统采用AVR系列低功耗单片机ATmega16L作为控制芯片,低功耗芯片nRF905作为无线收发模块,设计并实现了基于数字温湿度传感器SHT11的温湿度无线测量系统,这些低功耗产品使得该系统耗电量小,并且又特别适合将该系统小型化,智能化,仪表化。无线发射功能又代替了人工抄表的繁琐,使得本系统有着广泛的应用前景。