基于TCP/IP的楼宇自控网BACnet(北京工业大学电子信息与控制工程学院,北京100022)王瑞华,王普,尹金玉,张红摘要:简要介绍了全球第一个楼宇自控行业通信标准BACnet协议与国际互联网协议TCP/IP的产生、内容以及发展。同时对使用TCP/IP协议实现BACnet网络互联和报文传输的应用进行了重点阐述。关键词:智能建筑;BACnet;TCP/IP;BACnet/IP.中图分类号:TN915.03文献标识码:A目前,楼宇自控系统(BAS)正在向系统集成方向发展,将各种子系统(消防报警、闭路监控、暖通空调、保安出入控制系统等)集成在一个网络平台上。BACnet的提出正是针对楼宇设备种类多样性的特点而制定的,它是12Q的信号传输与数据通信的统一通信协议。而智能建筑的发展一直与因特网有着紧密的联系。首先,智能建筑的通信自动化子系统(主要指综合布线系统和计算机网络系统)的重要目的之一就是为实现信息共享提供传输通道和数据交换设备;其次,随着因特网的迅猛发展,智能建筑与因特网之间产生了越来越多的结合点,可以看到目前基于因特网的智能建筑应用技术和产品大批的涌现出来。而把,TCP/IP协议与BACnet标准相结合,使用TCP/IP协议来实现BACnet网络的互联与报文传输,必将为智能建筑向开放性和灵活性的发展提供更广阔的空间。1BACnet与TCP/IPBACnet是楼宇自控网(buildingautomationandcontrolnetwork)的英文缩写。它是由美国供热制冷与空气调节工程师协会(ASHRAE)组织的标准项目委员会历经8年半的时间于1995年6月通过的开放的协议标准。世界上已有100多个公司承认并参加,已正式被批准为美国国家标准和欧洲标准。它的宗旨是使不同厂家生产的楼宇自动化控制器能够互相通信和共享信息,最终实现不同厂家的控制器在这一标准通信协议下相互交换数据,相互操作控制。BACnet协议充分考虑了控制网络中节点信息传输的任务相对比较简单,但实时性和快速性要求较高的特点,参考了OSI/RM的模型进行了简化,采用折叠式4层结构。即BACnet物理层、数据链路层、网络层以及应用层。它通过对象(网络设备间进行信息通信的实体)、属性(对象的特性,从对象获取信息和向对象发出指令的手段)和服务(设备间互换信息的方法)定义通信格式。TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。它是一个真正的开放系统,协议组件的定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到。它是因特网的基础。因特网经过多年的发展,已经成为世界上规模最大、信息资源最丰富的计算机网络。该网已包含超过100万台遍布世界各地的计算机。而TCP/IP协议作为Internet上的“世界语”,也成为计算机网络通信的首选。TCP/IP是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个4层协议系统。链路层通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。网络层处理分组在网络中的活动,例如分组的路由选择IP协议(网际协议)位于网络层。传输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议组件中,有两个互不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报文协议)。TCP为两台主机提供高可靠性的数据通信。UDP则为应用层提供一种非常简单的服务。它只是把称作数据报文的分组从一台主机发送到另一台主机,但并不保证该数据报文能到达另一端。任何必需的可靠性由应用层来提供。2BACnet/IP的实现2.1BACnet/IP的层次结构BACnet协议标准中指出了关于BACnet设备与非标准数据链路层的兼容问题,它指出:在某些特别场合,为了与其他的网络设备进行互操作,可能需要一个BACnet设备支持本标准定义的5个数据链路层之外的某个数据链路层技术和物理层技术,这种设备只要满足“最小的一致性要求”PICS、“数据链路层和物理层”规定的准则,就称为具有非标准数据链路层的符合BACnet的设备。这种设备可以使用与数据链路层和物理层不相同的非标准协议层传送标准的BACnet协议定义的准则编码的应用层和网络层信息。同时考虑到以下因素:①对现有的网络资源和网络互联设备的再利用,节约网络安装和维护成本;②利用TCP/IP中的分片重组机制,增加BACnet应用协议数据单元(APDU)的最大传输长度;③强大的TCP/IP网络通信函数库;④利用Internet进行设备的远程监控;⑤对BACnet/IP设备与BACnet设备(需BACnet路由器)的兼容性;⑥允许BACnet/IP设备在IP互联网的任何地方连入系统;⑦更好地处理在IP网络上的BACnet广播;⑧增加与删除设备的方便性、灵活性。可以采用BACnet协议附件J中规定的BACnet/IP方式来实现具有非标准数据链路层的符合BACnet的设备。即使用TCP/IP协议与以太网技术来实现BACnet数据链路层和物理层的功能。如图1所示层次结构。在TCP/IP功能实现中,由于TCP虽可将报文从一个设备传送到另一个单独设备,但它不能将报文从一个设备传送到所有本地网设备,即实现多播及广播传送功能。而UDP虽是一种不可靠的无连接的数据报文传输服务,但它能提供TCP所不能提供的多播及广播传送功能。由于BACnet协议本身已提供了包括传输的可靠性保证包重组流量控制功能,因此采用UDP协议较为合适。图1层次结构2.2BACnet/IP虚拟链路层除了BACnet本身规定的4层之外,协议附件J还规定了提供BACnet网络层与特定通信子系统之间的接口,主要是完成与广播管理设备(BBMD)有关的广播信息控制功能,称为虚拟链路层(BVLL)。报文各域的分布如图2所示。图2报文各域分布当所组建BACnet/IP网络只由单一的IP广播域(彼此接收IP广播消息的一组网络中的设备)组成,BVLL报文只由3个域组成,类型只有两种:原始单播NPDU与原始广播NPDU。2.3BACnet/IP网络报文格式图3所示为BACnet/IP网络报文格式。MAC域并没有被具体指定,它取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等。IP域包括20字节的标准IP数据报文的头部固定部分。UDP域包括8字节的标准UDP数据报文的头部。BVLCI域是BACnet虚拟链路控制信息域。NPCI是网络层协议控制信息域。APDU是应用层协议数据单元。由于其MAC域、IP域、UDP域格式分别符合TCP/IP协议所规定的链路层、网络层、运输层标准格式,因此可以在英特网上很好地被传输。NPCI域的编码顺序如图4所示。其中第2字节是一个控制字节,它的各个比特位的取值决定了其后面的每个部分的存留。BACnetAPDU(应用层协议数据单元)由APCI(应用层协议控制信息)和用户数据组成。APCI包含进行应用层协议操作所需的数据,包括AODU的类型、匹配服务请求和服务响应的信息,以及重组分段报文的信息。它位于APDU的“头部”(固定部分)。“用户数据”包含单个服务请求和服务响应的具体信息,它在APCI之后(可变部分),它也被称为“服务参数”。这些参数的类型为:BACnet有证实服务请求类型、BACnet无证实服务请求类型、BACnet有证实服务确认类型、BACnet差错类型。图3BACnet/IP网络报文格式当应用程序需要同远程的应用进程通信时,它调用API接口,并且将诸如服务请求接收设备的地址(由4个字节的IP地址和2个字节的UDP端口号组成的6个字节的地址)和协议控制信息等作为参数传递给API,而将通信内容作为数据传递给API。API将参数直接下传到网络层或数据链路层,而将数据组成APDU(应用层协议数据单元),通过网络层服务访问点NSAP下传到网络层。图4NPCI域的编码顺序2.4BACnet网络广播管理通常BACnet/IP设备之间通过发送和接收单播报文彼此通信,此时目的地址是单一的BACnet/IP地址。然而,有时一个BACnet/IP设备要向网上的所有其他BACnet/IP设备发送报文,这就是广播。例如WHOHAS服务报文就是一个典型的广播报文。如果BACnet/IP网络只由单一的IP广播域组成,发布广播报文的BACnet/IP设备的NPDU将在一个BVLL的原始广播NPDU报文中传输。因为在单一的IP广播域中,设备之间能彼此接受IP广播消息,所以此时报文将能够到达所有节点。如果BACnet/IP网络是由多个IP广播域组成的话,可以采用两种方式实现BACnet/IP报文广播功能:一种是可以使用IP组播方法。这种方法是通过使用D类IP地址(224.0.0.0到239.255.255.255)实现的。组播报文通过Internet网络被传送,但只有被分配了组播地址的设备才能接收络号。但在有些时候,组播可能被网络管理员所禁止,在这种情况下,每个IP广播域就需要使用BACnet/IP广播管理设备(BBMD)来处理网络广播。当一个IP广播域中的BBMD设备接收到需要在另一IP广播域中广播的信息时,它先将信息发送到另一IP广播域上的BBMD,接收方BBMD再将信息在本地IP广播域上广播。这样就实现了多个IP广播域的BACnet/IP网络的广播问题。2.5BACnet/IP的网络路由如果不对本地通信流量的状况和安全性作太多考虑,所有的BACnet/IP子网可以配置成为一个单一的BACnet/IP网络。即非路由的BACnet/IP网络。也可以构造成两个或者多个BACnet/IP网络,即有路由的BACnet/IP网络。在这种情况下,每个网络都具有惟一的网络编号,网络之间通过BACnet/IP路由器相互通信。这种配置可以有效地对本地广播报文进行限制,可以通过将通信流量局限于某一特定的地理或逻辑区域来提供有效的安全保证。另外,在单一物理设备中实现BACnet/IP路由器与BBMD的功能。BACnet/IP的典型网络结构如图5所示。图5典型网络结构3结束语以上介绍的基于TCP/IP的BACnet协议的实现,反映了楼宇控制的国际最新流行趋势,控制工程师可以根据实际情况,灵活地选择不同类型,最适合控制要求的产品,构成更完整、更优化的楼宇自控网络,使整个控制网络更加经济合理。建筑物业主可以灵活地选择设备和系统,而不受产品厂商的限制。参考文献:[1]ASHRAE.BACnet楼宇自动控制网络数据通信协议[M].广东:广东经济出版社,2000.[2]史蒂文斯.TCP/IP详解卷1:协议[M].范建华,胥光辉,张涛译.北京:机械工业出版社,2000.[3]黄志超.楼宇自控网BACnet[J].工程设计CAD与智能建筑,1999,(1):30-33[4]王焕新.IP技术在智能建筑中的应用[J].工程设计CAD与智能建筑,2001,(6):23-25