吴建勇 苏建欢 张成研
【摘 要】本文通过ZigBee(CC2530模块)构建无线传感网络系统,通过传感器采集航标灯工作情况,使用北斗卫星导航系统的定位功能(UM220模块)实现定位数据的采集,并使用STC89C52单片机系统处理导航定位数据,所有数据通过北斗短报文(GYM2003B)发送到陆地控制中心。
【关键词】无线传感网络系统;数据采集;北斗卫星导航系统
随着全球经济的发展,航标灯对船舶的指引作用越发重要。而随着科技的不断进步,航标灯已经从原始的天然航标发展为人工航标,对航标灯的维修检测也从定期排查发展成远程航标监控,实现远程无人监控,大大缩减的人力的消耗。目前,大部分的系统使用的是“GSM+GPS+微处理器”的模式,此系统能够完成远程监控系统的功能,却也存在着一些缺点:GSM系统在海洋领域存在着信号无法覆盖的盲区,导致通信无法实现;GPS系统是美国军方产品,在我国使用有着诸多限制。本文的设计则是基于我国自主研发的北斗卫星导航系统的基础上,通过北斗系统所特有的短报文发送功能实现远程无线通信,而且在海洋领域也不存在信号盲区,而使用ZigBee系统则可以大大减少系统的成本。
1 系统总体设计
系统的网络结构体系可以分为3种类型:星状结构、片状结构、网状结构。主要有ZigBee协调器节点、路由器节点和终端节点构成。无线传感网络系统一般主要由一个主节点和多个节点组成,主节点主要负责ZigBee网络的组网和网内设备的管理,同时主节点上接有GYM2003B模块,负责北斗短报文通信功能,而所有节点都接有UM220模块实现定位功能。
如图1系统结构图所示,系统结构图分为两个部分。其中路由或终端节点部分结构相同,由UM220模块采集定位数据,通过微处理器进行处理,ZigBee模块接收微处理器发来的数据以及传感器采集的数据,通过ZigBee网络发送给协调器节点部分,协调器节点部分将所收集的信息通过北斗短报文模块(GYM2003B)将信息发送给地面控制中心进行处理。
图1 系统结构图
2 终端硬件设计
本系统是基于ZigBee的短距离无线传感网络系统的基础上,在一个ZigBee网络中拥有一个协调器节点和多个路由、终端节点,节点会将它所采集的信息通过ZigBee无线网络发送给协调器节点,协调器节点则通过北斗短报文发送功能将信息发送到地面控制中心。
2.1 ZigBee模块设计
ZigBee模块是构建底层无线网络的核心。主要负责构建无线传感网络,将各航标联系在一起,使各个节点能够与汇聚节点通信。ZigBee模块选择TI公司的CC2530模块,它具有低成本、高性能且能够建立强大的网络节点的特点,它在空旷地带不使用增加发射功率的情况下,通信距离能够达到100m,而示两航标灯之间的距离可适当增加发射功率,其最远通信距离可达到1000m,在ZigBee网络中也可以通过增加路由器使得通信距离无线增加。并且CC2530内嵌增强型8051MCU系统,可在其IO口接传感器用于接收采集到的信息。本系统中,通过CC2530模块实现无线通信需要遵循以下步骤:调用协议栈提供的组网函数、加入网络函数,实现网络的建立与节点的加入;发送设备调用协议栈提供的无线数据发送函数,实现数据的发送发送数据的函数:afStatus_t AF_DataRequest(afAddrType_t *dstAddr,
endPointDesc_t *srcEP,
uint16 cID,
uint16 len,
uint8 *buf,
uint8 *transID,
uint8 options,
uint8 radius)
此函数最重要的核心参数是:uint16 len--发送数据的长度;uint8 *buf--指向存放发送数据的缓冲区的指针。cID为每一个消息的消息ID,用于消息识别并作相应处理。其在接收消息时使用osal_msg_receive
函数从消息队列中接收一个消息,如果消息ID是AF_INCOMING_MSG_
CMD(协议栈中所定义的新消息的ID)再使用switch语句对消息ID判断,并进行相应的数据处理。
2.2 北斗定位模块
北斗定位模块选用和芯星通公司的UM220型号,和芯星通UM220-ⅢN双系统高性能GNSS模块,能够同时支持BD2B1、GPSL1两个频点,定位精度为2.5m,首次定位时间为32s,并且具有两个串口,串口1为主串口,支持数据传输、固件升级功能,信号类型为LVTTL电平;串口2仅支持数据传输,不支持固件升级。其上电之后会通过串口把接收到的消息发送出去,其消息的基本格式如下:$MSGNAME,data1,data2,data3,…[*CC]\r\n。每条消息均为全ASCII字符组成的字符串,所有的消息都以‘$(0x24)开始,后面紧跟着的是消息名,之后跟有不定数目的参数或数据,消息名与数据之间以逗号(0x2c)进行分隔,最后是可选的校验和,以‘*(0x2a)与前面的数据分隔。由于UM220会不断的占用处理器的串口资源,并且需要处理器从接受的消息中提取出位置信息,则用一个微型处理器STC89C52用于接收并处理定位消息,并将位置消息通过串口发送给CC2530。
2.3 北斗短报文通信模块
北斗短报文模块GYM2003B则可以建立海洋与陆地的远程无线通信系统,GYM2003B模块通过北斗短报文收发信号的低噪声放大、功率放大、上下变频和基带处理,实现北斗短报文收发功能。此模块和外设之间传输以语句格式进行,每一个语句以字符‘$开始,紧接着5个语句ID字符,其后是数据体,末尾为校验。
北斗短报文通信模块中的消息分为用户设备输出至外设的语句和外设输入到用户设备的语句。当外设需要通过北斗短报文模块发送消息时,需要先发送通信申请指令,例如,使用汉字编码格式发送00时的16进制申请指令如下所示:
24 54 58 53 51 00 16 03 00 FF 44 03 00 FF 00 20 00 A3 B0 A3 B0 58上述短报文通信格式解析为:报头前5个字节$TXSQ,0016表示通信申请指令的数据长度为22个字节,发送方ID占3个字节,电文编码形式占1个字节,接收方ID占3个字节,本例中发送方与接收方为同一ID,00 20表示电文长度即电文内容为32位,是否应答位占1个字节,A3 B0 A3 B0为汉字编码电文内容,最后为异或校验和,除电文内容以外的固定字节数为18个字节。电文内容若用汉字编码,则两个字节表示一个汉字,电文内容总长度不超过200字节。
3 结束语
本文基于北斗卫星导航技术与ZigBee无线传感网络技术,利用北斗系统的短报文通信功能实现远程通信及其定位功能,采用ZigBee无线传感技术实现航标灯工作信息的采集以及实现短距离通信功能。系统采用ZigBee与北斗技术相结合的方式,综合降低了建设成本,使用我国自主研发的北斗技术更加安全可靠,进一步扩展北斗系统的应用领域。
【参考文献】
[1]章伟聪,俞新武,李忠成.基于CC2530及ZigBee协议栈设计无线网络传感器节点[J].计算机系统应用,2011,07:184-187+120.
[2]周权,盛党红.基于ZigBee的无线传感器网络设计[J].中国科技信息,2014.11.
[3]王小强,欧阳骏.ZigBee无线传感器网络设计与实现[M].化学工业出版社,2012.
[责任编辑:王楠]