基于nRF905的无线温度采集系统设计与实现
2011-05-21潘小龙张建滨孟俊杰胥保春汪木兰
潘小龙,张建滨,孟俊杰,胥保春,汪木兰
(南京工程学院 先进制造技术工程中心,江苏 南京 211167)
环境温度参数监测是环境研究和火灾安全防备的重要手段,传统的有线定点采集、人工上报,这种方法正逐渐被新的技术所代替。目前常用的技术是基于无线模块的环境监测方式,但是在一些用途精度要求不是很高的场所,如单位或家庭火灾安全监测,这样的产品价格过于昂贵,协议比较复杂,缺少灵活度[1-3]。针对这一情况,本文利用STC12LE5630AD单片机和nRF905设计了一个无线温度采集系统。一般传统的温度传感器的输出信号均为模拟信号,需经过放大电路和A/D转换后才能与单片机连接,系统结构比较复杂。笔者因此采用带有A/D转换功能的单片机STC12LE5630AD简化了系统外围电路。nRF905是Nordic公司推出的单片射频发射器芯片,可以自动完成处理字头和CRC,配置简单方便,功耗低。本文的系统不仅克服了温度采集系统在使用空间上的局限性,而且大大简化了系统硬件电路 。本文设计的无线节点温度采集系统能够用于实际多点温度采集,结果也表明系统工作稳定,数据可靠,可以应用于室内和室外的温度监测。
1 系统介绍
多点温度监测系统由测量装置、无线传输终端、上位机控制中心组成。如图1为系统结构框图。下位机(监测器)利用温度传感器将相应温度值转换成模拟电压值,直接由单片机进行A/D转换,再将自己的地址值即转换的数据值打包送至无线模块(nRF905)。上位机无线模块将下位机发送来的地址值即采集值送至单片机,在由串口通信方式送至PC。由PC进行相应的判断、采集值数据的修正最后显示数据并画图。因此系统设计包括了硬件和软件设计。
图1 系统结构图Fig.1 Structure of system
2 系统硬件设计
系统硬件主要包含:由LM35芯片构成的温度采集电路、nRF905芯片构成的无线节点模块与PC与单片机的串口通信系统。
2.1 温度采集电路及无线模块设计
温度传感器采用由National Semiconductor所生产的LM35,其输出电压与摄氏温标呈线性关系,转换公式如式(1),0 时输出 0 V,每升高 1°,输出电压增加 10 mV。 在常温下,LM35不需要额外的校准处理即可达到±1/4℃准确率。本文采用单电源模式,其在25°下静默电流约50 μA[4]。
通信模块为nRF905,该芯片工作在433/868/915 MHz的ISM频段。由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。数据传输速率可达100 kb/s,支持点对点传输模式和广播传输模式。nRF905工作电压1.9~3.6 V,功耗很低,该芯片处于接受模式时工作电流为12.5 mA,但在掉电模式下工作电流仅为25 μA。nRF905采用Nordic公司的VLSI ShockBurst技术,该技术使得nRF905在没有高速MCU下,也能实现高速数据传输[5]。
STC12CE5620AD系列单片机工作电压为 3.6~2.2 V,每个I/O驱动能力可达到20 mA,是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,代码与传统8051兼容但速度快8~12倍,内部集成8路高速10位的A/D转换[6]。无线模块具体接线原理图如图2所示。系统设计的电源电路可以利用电网供电,也可以使用电池。
图2 无线温度节点原理图Fig.2 Principle diagram of wireless temperature node
2.2 串口通信硬件系统设计
基于PC机与单片机的串口通信系统电路如图3所示,主要包括单片机、串口通信电路、ISP程序下载接口电路和系统复位电路。本电路基于RS-232接口标准,使用DB-9连接器。由于单片机输出的TTL电平与PC机的RS-232串口电平的电气特性不匹配。为了使单片机能与PC机正常通信,采用美信公司的MAX232芯片进行电平转换。MAX232是专门为电脑的RS-232标准串口设计的接口芯片,功能比较强大。MAX232芯片与计算机连接的端口中有3个驱动端和5个接收端,因此可以同时进行多路通信。另外MAX232芯片的传输速率最高可以达235 kb/s[7]。在所设计的串口通信电路系统中,单片机的数据通过RXD、TXD与MAX3232相连,经MAX3232完成电平转换后成为RXD1、TXD1信号,再通过串口线与主机相连。
图3 RS232接口示意图Fig.3 Diagram of RS232 interface
3 软件系统设计
软件主要包括:由微软公司推出可视化,面向对象的结构化程序设计语言Visual Basic构成的上位机应用软件与C语言编写的下位机控制程序设计。
3.1 下位机软件设计
nRF905突出的优点就是收发模块电路设计简单,所需要的外围器件少[7]。nRF905在正常工作前应由STC11L60XE先根据需要写好配置寄存器,其后的工作主要是两个:发送数据和接收数据。通过TRX-CE,TX-EN,PWN-UP的设置来实现nRF905不同的工作模式,模式设置如表1所示[5]。
表1 nRF905的工作模式Tab.1 Working mode of nRF905
1)发送流程 当微控制器有数据要发送时,STC11L60XE先把PWR_UP引脚置为电平、TRX_CE引脚置为低电平。从而使nRF905置于待机模式;然后按时序通过SPI总线把发送地址和待发送的数据都写入nRF905相应寄存器中。SPI接口的速率在通信协议和器件配置时确定。微控制器将PWR_UP、TRX_CE和TX_EN全置高电平,激发nRF905的ShockBurstTM发送模式。 nRF905的ShockBurstTM发送包括以下步骤:射频寄存器自动开启;数据打包;发送数据包;当数据发送完成,数据准备好,引脚被置高。当TRX_CE被置时,nRF905发送过程完成,自动进入空闲模式。ShockBurstTM工作模式保证一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完,并且只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。数据包的具体格式见图4,具体温度采集发送程序流程见图5。
图4 数据包格式Fig.4 Packet format
图5 发送程序流程图Fig.5 Flow chart of sending program
2)接收流程 当微控制器有数据要接收时,STC11L60XE先把TRX_CE置为高电平、TX_EN置为低电平,此时nRF905进入 ShockBurstTM 接收模式;650 μs后,nRF905不断监测,等待接收数据;当nRF905检测到同一频段的载波时,载波检测引脚被置高;当接收到一个相匹配的地址,地址匹配引脚被置高。当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据备好引脚置高。微控制器把TRX_CE置低,nRF905进入空闲模式。微控制器通过SPI口以一定的速率把数据移到微控制器内。当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低。nRF905可进入ShockBurstTM接收模式、发送模式或关机模式。具体接收程序流程见图6。
3.2 上位机软件设计[8]
对于多机通信利用PC机(IPC)实现测控主要有两种方式:一是通过串行接口(RS_232或RS_485),二是通过各种数据采集板卡。微软公司推出可视化,面向对象的结构化程序设计语言Visual Basic是很好的选择。因此采用Visual Basic开发Windows下的测控软件使用简单、容易上手、开发效率高,尤其是软件界面设计非常便捷,编程工作量较小、开发周期短,特别适合非计算机专业工程技术人员掌握使用。
图6 接收程序流程图Fig.6 Flow chart of accepting program
本课题针对串口开发,Visual Basic提供了串口通信控件MScomm,在软件设计中首先对MScomm控件进行初始化设置:MSComm1.CommPort=1设置串口通道为 1;MSComm1.Settings="9600,N,8,1" 设置依次为波特率、同位检查、数据位和停止位;MSComm1.PortOpen=True设置串口打开;MSComm1.RThreshold=1设置接收缓冲区每接收一个字符就触发一次接收事件,MSComm1.InputMode=comInputModeBinary设置串口接收数据格式为二进制,MSComm1.SThreshold=0'设置串口为禁止发送事件,MSComm1.InputLen=0读取接收缓冲区的所有字符等等[8]。上位机运行首先进行串口初始化,相应进行坐标建立,等待串口中断。当数据缓冲区接到数据时触发程序中断,将Comm1.input的数据送至Buffer(i)的数组中,当接收四个字节的数字后,进行判断,起始字符和结束字符是否正确,判断正确后根据不同的地址值将Buffer(2)的数组中的温度值相应保存然后进行数据转换、处理,再显示在图形区,退出中断。上位机具体流程图如图7所示。
图7 上位机流程图Fig.7 Flow chart of PC
4 系统测试结果
传统多点温度测控系统,多采用有线传输方式将温度采集端与监控端相连,当温度采集点较多时,必然导致系统布线复杂、成本增加、故障率高且维护困难。该研究的无线射频模块采用低发射功率、高接收灵敏度的设计方案,通过优化电路,屏蔽无线干扰,通讯距离可达500~800 m。应用该设计实现了学校档案室外无线多点温度采集与监控。采集监控设备分布如图8所示,系统于3月29号19时18分至3月30号19时18分连续运行1天并每分钟采集一次。温度图表记入如图9所示[9],红色图线为室外温度,黑色为档案室温度。据当天南京气象公布气温5℃到21℃与采集数据和绘制曲线相比误差甚微。室外由于采集设备要求太阳直射所以采集温度偏高,白天温度波动由当天东南风造成和采集时间周期造成,11点和12点之间由于云层遮挡造成采集温度下滑,与同类产品相比,该系统体积小、采集相同数据信息用时少、抗干扰能力强、性价比高。
图8 采集分布图Fig.8 Acquisition distribution
图9 温度采集曲线图Fig.9 Curve of temperature gathering
5 结束语
基于STC12CE5620AD单片机的无线多点数字温度测控系统是一个集单片机技术、数字传感器技术、无线射频技术于一体的测控系统,该系统实现了监控系统与温度采集系统之间数据的无线传输;完成采集现场与监控装置真正意义上的分离.并且系统的终端可以构成无线传感网络,实现指定区域的传感器数据的采集和接收,也可广泛应用于工业控制、数据采集等多个领域.且系统硬件电路简单、响应速度快、可靠性高。在多点温度采集及复杂的工作现场使用该系统可取得较好的工作效果。
[1]杜尚丰,李迎霞,马承伟,等.中国温室环境控制硬件系统研究进展[J].农业工程学报,2004,20(1):7-12.DU Shang-feng, LIYing-xia, MA Cheng-wei, etal.Development of greenhouse environment control system in China[J].Journal of Agricultural Engineering, 2004,20(1):7-12.
[2]连承飞,张荣标,谷国栋.基于nRF2410A的无线温室测控系统通信实现[J].农机化研究,2008,8(8):151-153.LIAN Cheng-fei,ZHANG Rong-biao,GU Guodong.Wireless communication realization of greenhouse control system based on nRF2410A[J].Study on the Agricultural Mechanization,2008,8 (8):151-153.
[3]王栋,王富东,袁子程.基于CH372的单片机温度采集系统设计[J].工业控制计算机,2009,22(2):13-14.WANG Dong, WANG Fu-dong, YUAN Zi-cheng.Single-chip microcomputer temperature data acquisition system design based on CH372[J].Industrial control computer, 2009, 22 (2):13-14.
[4]刑国泉.LM35温度传感器的温度特性及其应用[J].医疗设备信息,2007(11):49-50.XING Guo-quan.LM35 temperturesensortemperature characteristic and applied [J]. Medical Equipment Information,2007(11):49-50.
[5]杭州威步科技有限公司.NewMsg-RF905开发指南[EB/OL].[2011-05-18]http://www.newmsg.com
[6]宏晶科技.STC12C5620AD+系列单片机器件手册[EB/OL].[2011-05-18]http://www.stcmcu.com/
[7]黄智伟.无线通信集成电路[M].北京:北京航空航天大学出版社,2005:99-104.
[8]范逸之.Visual Basic与RS232串口通讯控制[M].北京:中国青年出版社,2000.
[9]李江全.Visual Basic串口通信与测控应用技术实践详解[M].1版.北京:人民邮电出版社,2007.