监控系统软件程序设计必须依赖于硬件平台而存在,本系统软件设计主要包含上位机软件设计和ZigBee网络软件设计两部分。
1.上位机软件设计
上位机监控终端用于实时监测相关参数,其软件设计是在VisualStudio2005编译环境下开发生成的,Visual Studio 2005是一个集成开发环境。Visual Studio 2005的NET Frame-work 2.0类库中包含了Serial Port类,可以方便地调用串口通信所需要的多种功能。上位机是本监控系统的处理核心,接收并分析协议转换器发送上来的数据,进行相关处理,为监控人员提供现场环境参考,或者当监测数据不正常时,发出报警提示。上位机程序流程如图5-16所示。
图5-16 上位机程序流程
2.ZigBee网络软件设计
ZigBee网络软件采用TI公司提供的基于ZigBee标准的Z-Stack协议栈,它包含了Zig-Bee标准描述的各层次的功能组件模块,向开发人员提供了一系列的API,通过调用这些API可实现ZigBee标准中各层次的相应功能,模块的任务调度具体方式是为需要实现的功能建立任务,且每一个任务有不同的事件,运行时系统会不间断地轮询所有任务的标志位,若标志位有效,表明该任务有时间发生,调用任务事件处理函数,并在处理函数中根据标志位判断是什么事件发生,然后系统进行对应的操作并清标志位,如果同时有几个事件发生,先判断优先级,然后逐次处理事件,当没有任务事件发生时,系统进入低功耗模式,当有事件发生时,唤醒系统进入中断处理事件,结束后继续进入低功耗模式。ZigBee、网络转换单元的功能,最终实现终端节点与上位机之间数据的透明传输。协调器程序流程图如图5-17所示。
图5-17 协调器程序流程
路由器负载路由的发现与维护,它能够自愈ZigBee网络,为断开的网络连接寻求新的路径,保证了系统的可靠性。除了完成路由的功能外,路由器还需在数据传输过程中起着“接力棒”的作用,将终端节点采集的数据转送给协调器,路由器的程序流程如图5-18所示。
终端节点负责采集大楼内的敏感数据,并将数据转送给协调器,最终上传给上位机处理。本系统包含3种终端节点,终端节点的通用程序流程如图5-19所示。
3.节点通信的实现(www.daowen.com)
CC2530是通过寄存器TXFIFO和RXFIFO来实现数据收发的。发送数据时,向TXFIFO中写入数据,无线电模块自动添加PHY层同步头和FCS,通过选通命令STXON或STXONC-CA发送数据;数据接收完成时,产生RXPKTDONE中断,在中断服务程序中通过读取RXFIFO即可。根据IEEE802.15.4协议,定义的精简MAC层帧格式如图5-20所示。
图5-18 路由器程序流程
图5-19 终端节点程序流程
图5-20 精简的MAC层帧格式图
帧控制域占1字节。其中,帧类型占2位,00表示同步帧,01表示数据帧,10表示确认帧,11表示命令帧;确认请求占1位,1表示接收设备在接收到数据帧或命令帧时如果判断其为有效帧就要向发送设备反馈一个确认帧,0表示该接收设备不需要反馈确认帧。帧序号唯一标识各个帧,用于确认帧和数据帧或命令帧的匹配。目标地址和源地址分别用2字节表示。由于IEEE802.15.4规范中定义了物理服务数据单元(PSDU)的最大长度为127字节,而其中的8字节已经被使用,因此有效负载(pay-load)的字节长度为1~119字节。
数据发送有3种模式:非CSMA/CA、时隙CSMA/CA和非时隙CSMA/CA。待数据按上述格式写入TXFIFO后,执行“RFST=ISTXON”启动CSP(指令选通协处理器)程序。以下为基于时隙CSMA/CA模式的CSP程序代码:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。