基于移动短信技术的无线传感器网络系统
1. 引言
在采用各种生化传感器进行现场环境环境污染监测过程中,往往需要进行多点和多参数监测。由于监测点的分散性和可变性,且使用条件复杂,采用常规的有线网络方式不能满足当今环境污染监测的需要。无线技术由于其具有电路简单、功耗小、体积小、成本低和调试方便且适合于那些不宜架设电缆线的现场等优点,因此,无线网络技术为现场环境污染监测提供了一种很好的解决方案。
目前,GSM(全球移动通信系统) 网络已经非常完善,而利用其提供的一项增值业务—SMS (短信服务),无须附加其他终端设备,只需GSM 模块便可进行中、英文信息的传输。根据GSM 规范,SMS一次可传送140 字节信息量的短信,因此可以利用SMS进行小流量数据传送,实现传感器远程监控或小流量数据采集。nRF401 短距离无线收发芯片具有串口通讯、功耗低、成本低等优点,在空旷环境条件下可实现100~200米范围内的信号无线传输,非常适用于短距离的信号无线收发[1]。在本系统设计中,为了节省系统成本,在下位GSM 模块端仅使用1个GSM模块,采用多个nRF401 短距离无线收发芯片模块与此下位GSM模块一起构成现场多个数据采集点的无线通信。
2. 系统结构和工作原理
系统结构如图1 所示,利用计算机作为整个系统的管理平台,系统GSM模块采用的是中兴通讯公司MZ28GSM模块;USB口通讯采用迅通公司的 USB130模块[2],其将USB口映射为计算机串口(如COM3口,注意不同计算机映射的串口可能不同),其使用与计算机通常串口一样,无需了解 USB相关协议。首先,计算机通过USB口与GSM模块1(上位GSM)通信,上位GSM以短信方式向GSM模块2(下位GSM)发送指令。下位GSM接收到指令后,将指令通过单片机串口传送给主MCU, 主MCU根据指令内容跳转到相应分支程序,再通过主无线收发模块,向从无线收发模块发送相应的指令。从MCU执行由从无线收发模块接收到相应指令,指导传感器和采样电路进行数据采集;数据采集完毕后,从MCU把采集到的数据发送回主MCU,主MCU再通过下位GSM模块以短信方式,把采集的数据或者监测端状态等信息发回上位GSM,上位GSM再把接收到的短信通过USB口传输给计算机。监测计算机接收到短信后通过监测软件和数据管理程序,执行相应的操作,最终实现远程数据采集和监控。
图1: 系统结构框图
3. 系统实现
MZ28 是中兴通讯推出的GSM 无线双频调制解调器,主要为语音传输、短信发送和数据业务提供无线接口。其集成了完整的射频电路和GSM 的基带处理器,特别适合于快速开发基于GSM 无线网络的无线应用产品。带有人机接口(HMI) 界面的应用产品内部与MZ28 的通信可通过USB口实现。挪威Nordic 公司的短距离无线收发芯片nRF401,其433 MHz的工作频率为国际通用的工业、科学和医用(ISM)频段,无须申请许可证。它采用FSK调制,抗干扰能力强,特别适合工业控制场合[1,3]。
系统硬件设计
计算机通过USB口与上位GSM连接,并向其提供电源。下位GSM模块、主无线收发模块与主MCU的硬件连接电路如图2 所示。图2中,主MCU串口通过一个多路复用开关MSW,分别与主无线收发模块RF和下位GSM(MZ28)连接。由于MZ28内部工作电压为2.8 V,而系统供电电压为4V,故 MZ28模块的RXD 端接上一个锗二极管,CTS端(低电平有效) 接上两个硅二级管,起降压保护作用。主无线收发模块与主MCU的通信连接比较简单,直接把模块的数据输入和数据输出端分别连接到主MCU的串口TXD、RXD 端即可。
图2:下位GSM模块、主无线收发模块与MCU的连接
系统软件设计
系统的软件设计包括监控计算机的监测程序与数据管理程序、主MCU和从MCU 程序。系统采用AT命令进行GSM模块的控制,其操纵GSM模块的一些有关短信的常用AT命令可查阅GSM 规范GSM07.05 及GSM07.07[4]
计算机信号采集及数据管理模块
这部分程序采用Visual Basic(VB6.0)语言开发,使用MsComm控件通过USB口与主GSM模块通讯,利用VB启动Excel,所采集的数据直接送Excel,充分利用Excel的强大数据处理功能实现对采集数据的显示(包括数据值及数据点曲线和趋势图等)、分析和存储[5,6]。 VB中启动和操作Excel的相关语句如下:
‘*** 首先要声明一个目标全局变量 ***
Global ch rtobj As ChartObject
‘*** 打开Excel ***
Dim ExcelApp As Excel.Application
Set ExcelApp = Excel.Application
ExcelApp.Visible = True
ExcelApp.Workbooks.Add
‘*** 往Excel单元格中写数据 ***
Range(Excel_Column).Value="ChNo"&OutCh(I)
‘*** Excel数据绘图 ***
ch rtobj.Chart.SeriesCollection.AddRange(Sel ect_to_Draw)
‘*** 增加趋势线 ***
ch rtobj.Chart.SeriesCollection(1).Sel ect
ch rtobj.Chart.SeriesCollection(1).Trendlines.Add_(Type:=xlPolynomial,Order:=4,_ Forward:=0,Backward:=0, DisplayEquation:=False,DisplayRSquared:=False).Sel ect
上位GSM模块的短信发送采用PDU 模式。对于PDU 格式的具体定义和其它参数,可查阅GSM规范GSM03.40 及GSM03.38[7]。相应的VB 程序如下:
MSComm1.Output ="AT + CMGF = 0"& Ch r (13) ‘设置模块短信格式为PDU 模式
Call Delay ‘ 延时
MSComm1.Output = "AT + CNMI = 2,2,0,0,0 "& Ch r(13) ‘有短消息到达立即送显
Call Delay ‘延时
MSComm1.Output = "AT+ CMGS = "&Length &Ch r (13) ‘发送短信,Length 为发送的字节数
Call Delay ‘延时,使GSM模块有时间响应上一条指令
MSComm1.Output = Sendstr & Ch r (26) ‘ 发送PDU 字符串,Sendstr 为PDU 字符串变量
接收短信采用TEXT 模式对收到的短信解码,TEXT模式比较简单,现举例如下:
RX : + CMT:“13601702443”,“00/ 05 / 18 ,09 :20 :16 + 02”,“4E00004100420043”其中,“+ CMT”为新短信指示, + CMT表示直接将新短信发送到终端设备; “13601702443” 为短信来源号码; 00/ 05/ 18 ,09 :20 :16 + 02 为短信到达时间; 4E00004100420043 为短信内容(这里为“一ABC”) 。
主MCU模块
系统采用Atmel公司的AT89C51单片机作为CPU,程序采用汇编语言编写[8]。主要功能包括:系统模块初始化(本机初始化、下位GSM模块初始化、主无线收发模块初始化);针对不同的上位GSM模块短信指令内容的跳转控制;采集数据的接收、存储控制;短信收发控制等。主MCU软件流程如图 3。单片机汇编语言进行短信收发原理同前所述,AT 指令相同。
系统的主无线收发模块与从无线收发模块之间构成一点对多点通信。为保证通信可靠,短距离无线模块之间的通信需要自己定义一个通信协议。本文设计的通信协议如下:每个从无线收发模块都分配一个地址码;数据传输采用短包方式打包,根据数据手册,噪声中不易产生00xFF跟 00x00。于是,数据包采用如下方式进行打包:在数据字节前加3个包头字节,即00xFF、00x00、00x00,然后加入待发送的2个字节的数据。根据经验,一般第1 个字节的数据在发送时容易丢失,因此发送数据的开始前,先发送一个任意内容的字节,然后才开始发送数据包。接收时规定只接收跟在00xFF、00x00、 00x00 这3个字节后面的2个字节数据;同时,采用奇偶校验的偶校验方式,如出错,则丢弃该数据包,接收下一个数据包。
从MCU模块
这部分程序主要是接收计算机传来的控制命令和实现数据的采集,主要包括A/D转换、数据预处理和采集数据的无线短距离传输。
4. 结束语
图3. 主MCU软件流程框图
将GSM 模块和短距离无线模块结合,实现了一种传感器数据采集和小流量无线传输功能,充分利用了现有GSM网络的优势和USB总线数据传输速率高、 USB设备可热插拔等功能,为远程监测、小流量数据采集提供了一种合理、高效的解决方案。该系统工作稳定,成本低,无短信丢失、无出错现象。目前,系统可以在小范围稳定运行,试验证明系统运行可靠。但该系统实时性不强,滞后一个短信发送接收周期时间。随着无线通讯技术的发展,该系统功能会随之完善,并能在医学临床检测和监测等更多的领域得到广泛应用。
本文作者创新点:将GSM 模块和短距离无线模块结合,充分利用了现有GSM网络的优势和USB总线数据传输速率高、USB设备可热插拔等功能,利用Excel强大的数据处理能力,为远程监测、小流量传感器数据采集提供了一种合理、高效的解决方案。
文章版权归西部工控xbgk所有,未经许可不得转载。