摘 要:利用短距离无线通信技术构成一个基于单片机的简易、低功耗的无线多点温度测量系统。系统以AT89C2051、AT89C51单片机为核心,采用数字式温度传感器DS18B20、无线收发芯片nRF24L01实现了温度的采集、控制、无线收发等,给出了系统硬件及软件的具体设计思想与实现方法。
关键词:无线传感器网络;单片机;温度检测;传感器节点
无线传感网络WSNs(Wireless Sensor Networks)是当前在国际上备受关注的、涉及多学科高度交叉、知识高度集成的前沿热点研究领域。其测量系统综合了现代传感器技术、微电子技术、通信技术、嵌入式计算技术和分布式处理技术等,能够通过各类集成化的微型传感器实时检测、感知和采集网络分布区域内的各种环境或检测对象的信息,并对这些信息进行处理,从而获得详尽而准确的信息[1]。
无线测温系统是通过无线传感网络建立的一种测温系统,系统中包含大量的无线传感节点。在任意时刻,传感节点间通过无线通信完成温度信息的处理。利用单片机、温度传感器及无线收发芯片等构成的无线多点测温系统电路简单,性能稳定,抗干扰能力强,可靠性高,功耗低,可广泛应用于环境监测及工农业等领域。
1 无线测温系统硬件电路设计
系统以短距离无线通信为基础,实现环境的多点温度检测。系统由多个无线节点组成,每个节点由单片机构成,并配置一个温度传感器,每个节点既实时监视该点附近的温度,同时也无线双向中转信息,将信息传输到天线范围内的其他节点上,这样使所有的节点都可以和接收节点链接起来。其系统框图如图1所示。
1.1 监测节点电路设计
1.1.1 温度采集模块[2-3]
温度采集的方法有多种,但考虑简单实用、易于实现、性能稳定、功耗低、可靠性高等因素,该模块采用DS18B20数字式温度传感器来实现环境温度的检测。DS18B20是美国Dallas开云棋牌官网在线客服公司生产的单总线温度传感器,其测温范围为-55 ℃~+125 ℃,最高分辨率可达0.062 5℃。信息经过单线接口送入DS18B20或从DS18B20送出。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。DS18B20的外围接线如图2所示。
1.1.2 无线收发模块[4-5]
该模块选用NORDIC公司推出的高速、低功耗、低成本的2 Mb/s工业级嵌人式2.4 GHz无线收发芯片nRF24L01,它具有增强型的ShockBurst功能,集成了双向通信所需要的链路层。同时,内置速率高达8 Mb/s的SPI接口能很好地解决nRF24L01与单片机数据传输率的问题。nRF24L01采用PCB天线,为保证其频率和阻抗与射频芯片匹配,以获取最大传输功率并抑制高频噪声,在nRF24L01外围电路接入了电感和电容。nRF24L01的外围部分接线如图3所示。
1.2 接收节点电路设计
接收节点的能量由稳定的电源供给,无需考虑节能问题。但考虑到数据显示控制等需要较多的管脚,故采用AT89C51作为控制芯片。此外,因为计算路由的过程非常繁琐,程序较长,电路中用27C256芯片扩展了一个32 KB的ROM来满足要求。另外,电路中的无线收发模块仍采用nRF24L01无线收发芯片。接收节点部分接线如图5所示。
2 无线测温系统软件设计
系统软件采用了模块化设计,主要包括监测节点的温度采集、接收节点的路径计算和温度显示、无线传输等。下面主要给出了主程序、温度采集程序、无线传输程序的设计思想。
2.1 主程序设计
系统的主程序设计主要完成系统初始化、中断优先级设定以及判断调用各模块程序,即主要实现各模块的连接,然后再确定各个监测节点所在位置对于接收节点的相对坐标。
2.1.1 接收节点主程序
系统上电以后,接收节点先进行初始化设置。初始化的内容包括给相应的字符名称赋值,打开中断,等待中断响应。当中断响应后,单片机进入相应的中断服务程序,接收来自所有监测节点的序列号信息,计算出每个节点的位置并存储,再计算出到达每个监测节点的路径,向监测节点发送温度测试指令,等监测节点接收到完整数据后,将接收节点置接收方式,准备接收测得的数据。在接收节点接收完监测节点上传的数据后,根据中断指令进行显示,保持一段时间以后,向第二个监测节点发送温度测试指令。按此顺序循环,直到所有监测节点的温度被显示。其流程图如图6所示。
2.1.2 监测节点主程序
监测节点主程序开始后首先进行初始化设置。初始化的内容包括给相应的字符名称赋值,设置串口通信参数。然后开始发送自己的序列号,接收其他节点的序列号组,如果其中不包含自己的序列号,则转发;若包含,则不发。进入睡眠模式,直到收到接收节点的温度测试指令,开始向DS18B20发初始化脉冲,然后发送skipROM命令,执行温度的检测;然后将测得的数据发送给接收节点,复位中断返回,准备进行新的测试。其流程图如图7所示。
2.3 无线传输程序设计
无线传输通过nRF24L01无线收发芯片实现。为使系统程序编制更加简单且稳定性高,在设计中使nRF24L01工作于Enhanced ShockBurstTM 收发模式下。ShockBurstTM的配置字使nRF24L01能够处理射频协议,在配置完成后,在nRF24L01工作的过程中,只需改变其最低一个字节中的内容,就可以实现接收模式和发送模式之间切换,流程图如图9、图10所示。
本系统经实验室测试,取得了很好的效果且具有一定的实用性。传感器节点间无障碍传输距离基本可达到50 m左右,当距离小于10 m时有很强的抗干扰能力,且温度数据可完成多跳传输,准确无误地到达接收节点。
参考文献
[1] 王雪.无线传感网络测量系统[M].北京:机械工业出版社,2007:1-13.
[2] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2004:166-171.
[3] 汤竞南,沈国琴.51单片机C语言开发与实例[M].北京:人民邮电出版社,2008:138-143.
[4] 曾勇,杨涛,冯月晖.基于nRF24L01的超低功耗无线传感器网络节点设计[J].电子技术应用,2008,34(7):45-48.
[5] 求是科技.单片机通信技术与工程实践[M].北京:人民邮电出版社,2005:317-328.