周西峰,徐松松,郭前岗
(南京邮电大学 自动化学院,江苏 南京 210046)
摘 要: 分析了ZigBee技术在BACnet系统扩展应用中的基本原理,深入研究了BACnet网络与ZigBee网络互联的具体实现方式以及BACnet的数据链路层MS/TP协议的工作机制,最终实现了基于嵌入式STM32的BACnet/ZigBee互联网络。实验表明,该方案能够对现场温度数据进行采集与传输。
关键词: BACnet;ZigBee;MS/TP;互联网络
0 引言
BACnet是一个关于楼宇自控设备数据通信的唯一统一标准,可以实现不同厂家设备的互操作。ZigBee技术标准的发布,极大地推动了无线传感器网络的发展,其低功耗、低时延、低数据速率和低成本等特点,可以很好地应用于无线传感网络中。在楼宇控制中存在系统扩展的情况,如果采用传统的有线通信,由于受环境的影响,往往很难甚至无法进行。针对BACnet无线通信方面的不足以及ZigBee无线通信的优势,将BACnet网络和ZigBee网络互联,在现有BACnet网络的基础上,通过ZigBee无线网络,实现BACnet网络的延伸和扩展是值得进一步研究的问题。
本文给出了BACnet/ZigBee互联网络的硬件和软件设计,并对现场温度进行数据采集和传输,达到了预期结果,验证了该方案的可行性。
1 BACnet和ZigBee简介
BACnet标准是用于楼宇控制网络的数据通信协议[1],其作用是将各厂商的楼宇自控设备集成为一个高效、统一和具有竞争力的自控网络系统。作为一种开放性计算机局域网络协议,它采用的仍然是OSI模型的“分层”通信体系结构的概念,是简化后的一个包含四个层次的分层体系结构,这四个层次相对于OSI模型中的物理层、数据链路层、网络层和应用层。目前,BACnet是欧盟组织(CEM)的预备标准,也是国际标准组织(ISO)的证实标准,并在我国得到了大量的工程应用和认可。
ZigBee是由ZigBee联盟基于802.15.4开发的一种低成本、低功耗、双向近距离无线数据通信网络协议。ZigBee具有以下特点:自组网,网络容量大;网络时延短;低功耗,通信速率低;传输距离可扩展;成本低;可靠性好,安全性高。ZigBee的出现填补了近距离无线数据通信的低成本解决方案空白,将具有广阔的应用前景。
2 MS/TP协议
MS/TP协议作为BACnet标准的数据链路层,解决了EIA-485作为BACnet标准物理层传输介质的访问控制MAC问题。MS/TP[2]网络是一个混合网络,在这种网络中,存在主站点和从站点两种非对等的站点,并利用“令牌(Token)”机制进行传输介质的访问控制。令牌只在主站点间传递,但主站点只有在得到令牌时才能发送帧,否则只能处于接收和监听状态。从站点永远不会得到令牌,只有接收和监听的功能,只有在响应主站点时才具有发送响应帧的能力。
MS/TP协议规程可以用三个状态机来描述:接收状态机、主站点发送状态机和从站点发送状态机。接收状态机接收物理层的完整数据帧,进行帧和数据CRC校验;发送状态机根据MS/TP协议把数据帧发送给物理层。主站点状态机除了提供网络级连接外,主要负责令牌维护和管理。
3 BACnet与ZigBee网络互联
将ZigBee无线网络技术用于BACnet集成系统中,可以基于OSI应用层协议栈,将现有的BACnet设备集成到ZigBee系统结构中,也可以在现有的BACnet系统架构中加入ZigBee应用系统集成体系[3-4]。本文采用后者,即在现有BACnet系统架构中加入ZigBee应用系统集成体系。
在BACnet系统架构中扩展ZigBee 802.15.4标准的集成实现方案等同于在BACnet协议栈的数据链路层和物理层又加载了一个ZigBee网络,形成一个扩展的BACnet协议体系结构,如图1所示。
对BACnet网络通信系统的底层通信系统进行扩展,必须考虑与BACnet网络层接口的兼容,即在BACnet网络层和ZigBee协议之间定义一个BZLL[5](微协议层)。该协议层相当于Windows网络编程中的API,在此也相当于BACnet的链路层。当BACnet/ZigBee节点收到一个组播报文时,该节点通过查找组表得到对应的BACnet端口,再将报文通过该端口传输到BZLL处理。当该节点发送一个广播报文时,BZLL将报文通过BACnet协议隧道簇传输到ZigBee协议栈,然后绑定表中查找到对应的组ID,通过无线信道发送到该ZigBee组上。
本文研究中,MS/TP作为BACnet数据链路层,物理层采用EIA-485。
3.1 硬件设计
系统整体结构由四部分组成:微控制器、电源、EIA-485和ZigBee模块。硬件框图如图2所示。
其中,微控制器采用STM32F107实现系统控制和数据处理;EIA-485驱动采用MAX485芯片完成现场总线上数据收发的任务;RS232驱动采用MAX232芯片,方便与PC机交换数据;ZigBee模块采用WeBee ZigBee模块,实现数据的无线通信。
3.2 软件设计
3.2.1 系统软件设计
本文设计的BACnet/ZigBee互联网络中,BACnet采用MS/TP作为其数据链路层,采用EIA-485作为其物理层。故在整体系统的设计中,ZigBee充当BACnet协议的数据链路层和物理层,系统时刻监测是否有数据中断的发生,当有中断发生时,进行相应的数据发送和接收动作。系统软件流程图如图3所示。
(1)发送数据:负责数据的无线发送,主要由MS/TP协议的帧发送状态机和ZigBee协调器的数据发送完成。帧发送状态机检测发送器队列中是否有待发送的数据,当确定有数据发送并校验成功时,进入帧发送过程,一次发送的数据帧不能超过Nmax_info_frame,剩余的数据帧在下一次持有令牌时再发送;ZigBee发送中断,在中断函数实现数据的无线发送。
(2)接收数据:负责无线数据的接收,主要由MS/TP协议的帧接收状态机和ZigBee协调器的数据接收完成。当有数据发送到协调器时,触发UART中断存储数据,接收帧状态机检测到有数据接收,进行CRC校验,当数据正确无误时将数据存入接收队列。
(3)网络管理:负责整个网络的运行,主要由主站点状态机和ZigBee协调器完成。初始化过程中实现BACnet协议的初始化和ZigBee协调器的初始化,BACnet协议的初始化完成时钟、串口等初始化,保证BACnet协议的正常运行,ZigBee初始化完成ZigBee无线网络的组建,保证无线网络的正常运行。主站点状态机根据接收到的数据帧和MS/TP协议规范进行相应的状态转换,并负责令牌的维护和管理。
3.2.2 MS/TP软件设计
MS/TP软件包括三个模块:接收帧状态机、发送帧过程和主节点状态机。程序流程图如图4所示。
接收帧状态机接收物理层的数据帧,并进行CRC校验,将成功接收的数据帧存储在接收器队列中;主站点状态机不仅提供网络级的连接,还负责网络中令牌的维护和管理;发送帧过程主要负责数据的转换及发送至物理层。由于MS/TP协议要求很高的实时性,因此需要一个精确的时钟,本文中选择5 ms精度的计数器满足其对时钟的要求。协议中的时间参数均是5 ms的整数倍。
接收帧状态机的运行独立于主节点状态机,通过标志位来进行通信,从物理层正确接收数据帧。当串口有数据时,发送串口中断,在中断处理函数中使能接收帧状态机。接收并进行CRC校验,如果接收正确,则设置收到正确帧为TRUE,否则,设置收到正确帧为FALSE,然后进行相应的错误处理过程。
接收帧状态机将网络层传下来的数据变成帧结构数据,并以字节为单位填充串口寄存器,直到完成整个发送过程。
主站点状态机不仅提供网络级的连接,还负责网络中令牌的维护和管理,故其运行与令牌有关,根据令牌的持有情况以及接收帧状态机的数据参数进行相应的状态的转换。
4 应用实例
本文通过对现场温度数据的采集和传输实验验证基于嵌入式STM32的BACnet/ZigBee的可行性。实验硬件设计如上图2所示,协调器通过USART1与微控制器STM32F107连接,微控制器STM32F107通过串口与PC连接。当ZigBee节点采集温度数据发送给协调器时,协调器接收数据并触发USART1中断,中断函数将接收到的数据缓存到接收缓冲区。主函数无限循环执行函数bacnet_task(),当接收缓冲区有数据时,通过图3、图4的流程,将数据发送到PC。实验中采用两个ZigBee节点采集温度数据,系统采集的数据结果如下图5所示。
由图5中的串口信息可知,本文所设计的系统能够准确接收无线数据。
5 总结
BACnet是楼宇自控领域的国际标准,ZigBee是短距离无线通信的首选,将ZigBee无线技术应用于BACnet网络中,实现了BACnet网络的无线通信,具有重大意义。
参考文献
[1] 魏峰,付东翔,王亚刚.BACnet/ZigBee协议转换器的研究与实现[J].自动化仪表,2012,33(9):35-38.
[2] 刘泉,任平.基于MS/TP协议的无线Ad Hoc网络[J].计算机工程,2009,35(10):89-91.
[3] PARK T J, CHON Y J, PARK D K, et al. BACnet over ZigBee, a new approach to wireless datalink channel for BACnet[C]. Institute of Electrical and Electronics Engineers Conference on Industrial Informatics, 2007:23-27.
[4] PARK S C, LEE W S, KIM S H, et al. Implementation of a BACnet-ZigBee gateway[C]. Institute of Electrical and Electronics Engineers Conference on Industrial Informatics,2010:40-45.
[5] 李春旺,吴义民,田沛哲.基于BACnet/ZigBee的无线智能温度传感器[J].河南师范大学学报(自然科学版),2012,40(2):104-107.