首页 理论教育实现BACnet/IP互联网互操作性

实现BACnet/IP互联网互操作性

【摘要】:如果在BACnet/IP中使用TCP,就在同一体系结构中同时存在两套互相独立的确认机制,这还会使得整个BACnet/IP网络由于传输开销过大而效率降低。5)定义了“外来”设备接入BACnet/IP网络的方法。7)规定了多个BACnet/IP网络之间的路由。BACnet/IP能够比PAD设备更有效地处理在IP网络上进行BACnet广播传输。在图5-7中,IP子网A和IP子网B组成了一个BACnet/IP网络。

1.BACnet/IP体系结构

使用PAD设备实现在IP网络上互联BACnet网络尽管较为简单,但存在着一些不容易克服的缺点,其中之一是,不容易从网络中增删设备。如果要对BACnet网络进行重构,必须重新改写每一个PAD中的对等PAD设备表。为了能够更便利地利用IP网络实现BACnet网络的互联,以及克服直接利用UDP/IP难于对BACnet网络中的广播通信机制进行控制和管理的不足,同时实现动态增减BACnet设备的功能,常设标准方案135委员会(SSPC135)在PAD基础上改进、开发了新的互联协议,称为BACnet/IP,简称B/IP,作为附件J加入到BACnet标准中。ASHRAE于1999年1月正式发布附件J作为BACnet标准的附件,成为美国国家标准。附件J详细规范了使用TCP/IP通信的设备组建BACnet网络的技术,并且将这种网络称为BACnet/IP网络,简称B/IP。

在新的BACnet/IP互联协议中,B/IP路由器的主要作用就是直接将BACnet报文封装进IP帧中进行传输。重新定义了一个微协议层(Micro Protocol Layer)。该微协议层称为BACnet虚拟链路层,简称BVLL,位于BACnet网络层与IP之间,其作用是进行BACnet广播管理,并提供向其他通信协议扩展的扩展机制。同时,为了充分利用IP协议栈,使用IP用户数据报(UDP)进行BACnet报文传输。图5-6为这种扩展方式的体系结构图,该体系结构图即BACnet/IP体系结构。

在BACnet/IP的体系结构中,IP之上使用UDP,UDP层的作用是将来自BVLL(BACnet Vir-tual Link Layer,BACnet虚拟链路层)的数据封装成IP数据包,也将收到的IP数据包拆开,提取其中的相关数据给BVLL。

在此处使用UDP,可以避免重新定义新类型的IP包,又可以利用现有的IP网络建立BACnet网络。如果重新定义一个新类型IP包,则会因为IP路由器不能识别自定义的数据包将其简单丢弃,而加入传输层则可以利用端口机制进而扩展。选用UDP而不是TCP主要因为TCP不能实现“一对多”的广播,而且BACnet的应用层提供了可靠传输机制并提供了报文分段功能,这些都同TCP类似。如果在BACnet/IP中使用TCP,就在同一体系结构中同时存在两套互相独立的确认机制,这还会使得整个BACnet/IP网络由于传输开销过大而效率降低。

2.BACnet/IP网络

BACnet标准附件J对BACnet/IP网络的定义是:BACnet/IP网络是由一个或者多个IP子网组成的集合,其中整体具有一个单独的BACnet网络号。

BACnet/IP规范的内容有7个部分:

1)定义和描述由一个或者多个IP子网组成的BACnet网络的概念。

2)定义和描述了使用BACnet非确认服务进行在BACnet/IP网络和非BACnet/IP网络之间的本地、远程和全局广播的管理。

978-7-111-38144-0-Chapter05-10.jpg

图5-6 BACnet/IP体系结构

3)定义了BACnet广播管理新设备(BBMD),用来进行广播管理。

4)定义了一个BACnet虚拟链路层(BVLL)新的协议层,实现BACnet/IP网络通信。

5)定义了“外来”设备接入BACnet/IP网络的方法。

6)规定了在BACnet/IP网络和非BACnet/IP网络之间的路由。

7)规定了多个BACnet/IP网络之间的路由。

BACnet/IP网络是由一个或者多个具有IP域名的子网组成的、具有一个单独的BACnet网络号的集合网络。BACnet互联网由两个或者多个BACnet网络组成,这里的BACnet网络是BACnet/IP网络,如BACnet的以太网、ARCnet网络、MS/TP(主从/令牌传递)网络和LonTalk网络。BACnet/IP能够比PAD设备更有效地处理在IP网络上进行BACnet广播传输。BACnet/IP允许设备从Internet的任意接入点接入系统,能够有效地利用Internet或广域网、城域网作为BACnet局域网。

采用BACnet/IP体系结构的BACnet网络就是“BACnet/IP”网络,由一个或多个IP子网组成,并且每一个BACnet/IP网络只有一个BACnet网络号。当多个BACnet/IP网络或BACnet网络通过BACnet路由器连接时,就形成了一个BACnet/IP网络,如图5-7所示。

在图5-7中,IP子网A和IP子网B组成了一个BACnet/IP网络。与使用PAD组成BACnet互联网不同,网络的物理拓扑结构形式上基本类同,只是将PAD设备换成了BBMD(BACnet Broadcast Management Device,BACnet广播管理设备),并增加了一个称为“外部BACnet设备(foreign BACnet Device)”的BACnet设备。BACnet/IP网络中BACnet设备既是BACnet网络中的节点,同时也是IP网络中的节点,任意两个BACnet设备均可以直接进行“一对一”通信,或单播通信,无需经过封装和拆装的端到端处理。图5-7中的两个IP子网有各自不同的IP子网号,两个IP子网IP路由器和Internet组成一个BAC-net网络,并有一个且只有一个BACnet标识号。

在BACnet/IP网络中,BBMD是BVLL协议定义的关键设备,BVLL协议规定了BAC-net/IP网络中的每一个IP子网仅有一个BACnet广播管理设备(BBMD设备),负责注册外部BACnet设备,并对BACnet的广播通信过程进行协调管理,使BACnet/IP网络中的所有BACnet设备均可以进行BACnet广播。

BACnet广播管理设备BBMD使用广播路由表(Broadcast Distribution Table,BDT)管理BAC-net/IP网络内的广播通信机制,使用外部设备表(Foreign Device Table,FDT)实现对外部设备的注册和广播。

978-7-111-38144-0-Chapter05-11.jpg

图5-7 BACnet/IP网络

外部BACnet设备是指在BACnet/IP网络以外的IP子网中接入的BACnet设备,就是说外部BACnet设备所接入的IP子网不是组成BACnet/IP网络的组成部分。但是外部BACnet设备可以作为一个“移动的BACnet网络节点”随时方便地与BACnet/IP网络互联,成为BACnet/IP网络中的节点。因此外部BACnet设备被定义了这样的功能:能够随时接收来自BACnet/IP网络的广播,也可以主动向BACnet/IP网络进行广播,即外部BACnet设备和BACnet/IP网络之间可以实现双向广播通信。

3.BACnet/IP网络报文格式

BACnet/IP网络报文格式如图5-8所示。在网络报文格式结构图中,各个不同域的意义如下:

1)MAC媒体访问控制域是下层网络帧的地址

2)BIP域分为两部分,前面一部分是20B的标准IP数据报的头部固定部分,包含有各4B的信源节点IP地址和信宿节点IP地址,如图5-9所示。后面一部分是8B的标准UDP数据段的头部,包含有各2B的源和目的UDP端口号

3)BVLCI(BACnet Virtual Link Control Information,BACnet虚拟链路控制信息)域是BACnet虚拟链路控制信息域。

4)NPCI(Net Protocol Control Informa-tion,网络层协议控制信息域)。

5)APDU(Application Protocol Data U-nit,应用层协议数据单元)。

978-7-111-38144-0-Chapter05-12.jpg

图5-8 BACnet/IP网络报文格式

从IP网络的网络层来看,BACnet/IP网络报文是一个IP数据报,从IP网络的传输层来看,BACnet/IP网络报文又是一个UDP,因此BACnet/IP网络报文可以在IP网络中顺畅地传输。IP数据报、UDP用户数据报的关系如图5-10所示。

每个BACnet/IP设备都具有一个IP地址,是一个IP网络设备,而它的上层应用又是按照BACnet协议进行组织的,可以与其他的BACnet设备进行数据“对话”。

978-7-111-38144-0-Chapter05-13.jpg

图5-9 IP数据报格式

978-7-111-38144-0-Chapter05-14.jpg

图5-10 UDP数据报和IP数据报的关系

BACnet与Internet的两种互联技术:PAD技术和BACnet/IP技术,这两种技术各有优缺点。前者是一种异构网络互联技术,应用比较普遍,后者可以是实现BACnet与Internet的无缝连接,具有良好的扩展性。BACnet互联网是由两个或者多个BACnet网络所组成的网络。由于IP网络的出现,各种BACnet网络互联非常灵活,各种BACnet设备均可以在IP环境中实现互操作,但是PAD和BACnet/IP设备之间不能直接通信,这是构建BACnet互联网时的基本原则之一。