BACNet协议简要介绍

                                        (海思市场部提供推荐)   

一、BACnet简介

BACnet(A Data Communication Protocol for Building Automation and Control Network)是一种为楼宇自动控制网络所制定的数据通信协议,它由美国冷暖空调工程师协会组织的标准项目委员会135P(Standard Project Committee: SPC 135P)于1995年6月制定。BACnet标准产生的背景是用户对楼宇自动控制设备互操作性(Interoperability)的广泛要求,即将不同厂家的设备组成一个一致的自控系统。BACnet实现楼宇自控设备的互操作性的思想是这样的,一般楼宇自控设备从功能上讲分为两部分,一部分专门处理设备的控制功能,另一部分专门处理设备的数据通信功能,不同厂商生产的设备使用各自专门的数据通信的方式,所以不同厂商的设备之间没有很好的互操作性。BACnet就是要建立一种统一的数据通信的标准,用于设备的通信部分,从而使得按这种标准生产的设备,都可以进行通信,实现互操作性。BACnet标准只是规定了楼宇自控设备之间要进行“对话”所必须遵守的规则,并不涉及如何实现这些规则,各厂商可以用不断进步的技术来开发,从而使得整个领域的技术不断进步。

二、BACnet协议模型

SPC征集了各方面的意见,同时参考了国际上各种现已成文的或是事实上的数据通信标准,讨论得出了一个具有以下特性的网络协议模型:

(1)所有的网络设备,除了主从/令牌传递式从属机(MS/TP slaves: master-slave/token-passing slaves)以外,都是对等的(Peer)。当然某些同等设备可能比其他具有更多的特权(Privilege)和职责(Responsibility)。

(2)每一个网络设备都称之为是一个“对象”(Object)的实体(entity),这是一个具有网络访问特征的集合模型。每个对象又用一些“属性”(Property)来描述,这些属性表示了设备的硬件、软件以及操作的各个方面。在不需要了解设备内部设计或配置细节的情况下,对象提供了识别和访问设备信息的方法。尽管该标准规定了广泛的应用对象的类型以及它们的属性,但是一旦需要,利用开发工具仍可以自由地增加新的对象类型。

(3)通信功能是通过读写某些对象的属性,以及利用其他协议提供的“服务”(Service)来完成的。尽管该标准规定了一套详尽的服务,但是一旦需要,该标准的机制也同样允许利用开发工具增加新的服务。

(4)设备的完善性(Sophistication),即实现特定服务请求或理解特定对象类型种类的能力,是由设备的“一致性类别”(Conformance Class)所反映的。每一种类别定义了一个包括服务、对象、属性的最小集合,声明为某一类别的设备必须支持其相应的集合。


(5)由于该标准遵循了ISO的“分层”通信体系结构的概念,因此使用不同的网络访问方法和物理介质可以交换相同的报文。这样可以根据传输速度和吞吐量的要求,采用相宜的开销来配置BACnet网络。

(6)该标准是为暖气、通风、 空调、制冷控制设备所设计的,同时它也为其他楼宇控制系统的集成提供了基本原则,例如照明、保安、消防系统等。虽然这些扩展超出了该标准的范围,但实现起来却简单明了。并且,标准中定义的许多对象和服务也可以不加修改地被应用。当然,一旦这些其他类型的楼宇控制功能需要,也可以简单方便地定义新的对象和服务。

(7)该标准的目的是为暖气、通风、 空调、制冷控制设备和其它楼宇自控设备的监控定义数据通信的服务和协议。除此之外,标准还定义了抽象的、面向对象的表示法,用来描述这些设备间的信息通信,以便于在楼宇中使用数字控制技术。

所有的通信协议都是一个解决各种信息交换问题的方案的集合,并且随着时间的推移和技术的进步而不断改变,BACnet网络同样也不例外。

三、BACnet协议的体系结构

国际标准化组织在制定计算机网络通讯协议标准时定义了一个模型,称为开放式系统互联参考模型(OSI模型),模型的目的是解决计算机与计算机之间普遍的通信问题,并将这个复杂的问题分解成7个小的、易解决的子问题,每个子问题只与某些通信功能相关联,如图1-1所示。这样每个子问题便形成了协议体系结构中的一“层”。任何两个遵循该模型及有关标准的设备或系统,都可以实现互连和互操作。 

SPC制定BACnet标准时,确定BACnet作为一种开放性计算机局域网协议,它仍然采用OSI模型的“分层”通信体系结构的概念。在确定分层的层数时,考虑了下列两个因素:第一,OSI模型的实现需要很高的费用,实际上在绝大部分楼宇自控系统应用中也并不需要这么多的层次。但是从OSI的功能性方面考虑,经过简化后,OSI模型仍然是设计楼宇自控协议的一个很好参考,如果只包含OSI模型中被选择的层次,其它各层则去掉,这样减少了报文长度,降低了通信处理开销,同时也会节约楼宇自控工业的生产成本。第二,如果能够充分利用现有的、易用的、广泛使用的局域网技术,如Ethernet、ARCNET和LonTalk,不但可以降低成本,同时也有利于性能的提高。由此,SPC确定BACnet标准协议体系结构为一个包含四个层次的分层体系结构,这四个层次相对于OSI模型中的物理层、数据链路层、网络层和应用层,如图1-2所示。BACnet标准定义了自己的应用层和网络层,对于其数据链路层和物理层,提供了以下五种选择方案:

第一种选择是ISO 8802-2类型1定义的逻辑链路控制(LLC)协议,加上ISO 8802-3介质访问控制(MAC)协议和物理层协议。ISO 8802-2类型1提供了无连接不确认的服务,ISO 8802-3则是著名的以太网协议的国际标准。

第二种选择是ISO 8802-2类型1定义的逻辑链路控制(LLC)协议,加上ARCNET(ATA/ANSI 878.1)。

第三种选择是主从/令牌传递(MS/TP)协议加上EIA-485协议。MS/TP协议是专门针对楼宇自控设备设计的,它通过控制EIA-485的物理层,向网络层提供接口。

第四种选择是点对点(PTP)协议加上EIA-232协议,为拨号串行异步通信提供了通信机制。

第五种选择是LonTalk协议。

这些选择都支持主/从MAC、确定性令牌传递MAC、高速争用MAC以及拨号访问。拓扑结构上,支持星型和总线型拓扑;物理介质上,支持双绞线、同轴电缆、光缆。

 

以下详细讨论BACnet选择一个四层体系结构的原因。首先仔细考虑BACnet网络的独特特征。BACnet的特征主要有以下两点:

(1) BACnet网络是一种局域网。即使在某些应用中,楼宇中设备间远距离的通信必不可少时,这一点仍然是不变的。这种远距离的通信功能,是由电信网来实现。通信过程中要解决的路由、中继、可靠传输等问题,都由电信网来处理。在此电信网可看成是BACnet网络外部的部分。

(2) BACnet设备是静态的,即在空间上,它们不会经常被移来移去。在要完成的功能上,从某种意义上说也是不变的,即不会今天生产的设备的功能是这样,明天就完全不同了。

在充分了解BACnet网络的特征后,就可讨论OSI模型的各层在BACnet网络中的适用性了。

OSI模型的物理层提供了设备间的物理连接,以及传输载波信号的方式。显然在BACnet协议中,物理层是必不可少的。

OSI模型的数据链路层,负责将数据组织成帧(Frame)或分组(Packet)、管理通讯介质的访问、寻址(Address),以及完成一些错误校正(Error Recovery)和流量控制。这些都是BACnet协议所需要的,因此数据链路层也是必不可少的。

OSI网络层的功能,包括将全局地址解析为局部地址,在一个或多个网络中进行报文的路由,协调不同类型网络的差异(如不同网络所允许的最大报文长度),序列控制,流量控制,差错控制,以及多路复用。由于BACnet网络的拓扑特点,在各个设备之间只存在一条逻辑通路(参见图3),这样便不需要最优路由的算法。其次,BACnet网络是由中继器或网桥互联起来的一个或多个网段所组成的网络,它具有单一的局部地址空间。在这样一种单一网络中,许多OSI网络层的功能也变得多余,或者与数据链路层相重复。当然在某些BACnet网络系统中,网络层也可能是必不可少的。例如,在一个BACnet的网际网(internet)中,当两个或多个网络使用了不同的MAC层时,便需要区别局部地址和全局地址,这样才能将报文路由到正确的网络上去。在BACnet协议中,通过定义了一个包含必要的寻径和控制信息的网络层头部,来完成这种简化了的网络层功能。

传输层主要是负责提供可靠的端到端的报文传输、报文分段、序列控制、流量控制,以及差错校正。传输层的许多功能与数据链路层相似,只是在作用范围上有所不同。传输层提供的是端到端的服务,而数据链路层则提供的是单一网络上点到点的服务。由于BACnet支持多种网络的配置,因此协议必须提供传输层端到端的服务。在BACnet网络中要提供三个方面的传输层的功能,第一是可靠的端到端传输和差错校正功能,第二是报文分段和端到端的流量控制,第三是实现报文的正确重组,序列控制。由于BACnet是建立在无连接的通信模型基础上的,因此所需的服务大大减少,并且可以被高层来实现,所以,传输层的这些功能可以通过BACnet应用层来实现,这样,在BACnet协议体系中不单独设置传输层,相应的功能放在应用层中完成,从而节省了通信开销。

会话层的功能是在通信双方之间建立和管理长时间对话。包括建立同步标志点,用来在出错时回复到前一个标志点,以避免对话重新开始。但在一个BACnet网络中,绝大部分的通信都是很简短的,比如读写一个或一些值,通知某个设备某个警报或事件,或者更改某个设定值。当然长时间的信息交换偶然也会发生的,比如上载或下载某个设备。由于绝大部分事务处理都是简短的,会话层的服务极少用到,再考虑到带来的开销,因此BACnet标准中不包括这层。

表示层为通信双方提供了屏蔽下层传送语法的服务。这种传送语法是用来将应用层中抽象的用户数据表示,变成适合下层传输的字节序列。但当只存在一种传送语法时,表示层的功能便减少到对应用程序的数据进行编码。由于在BACnet在应用层中定义了一个固定的编码方案,因此一个独立的表示层也变得不再需要。

协议的应用层为应用程序提供了完成各自功能所需的通信服务。在此基础上,应用程序可以监控HVAC&R和其它楼宇自控系统。显然应用层是本协议所必需的。

   从以上讨论中,可以得到以下几点:

1. 实现一个完全的OSI七层体系结构需要大量的资源和开销,因此它对于目前的楼宇自控系统是不适用的。

2. 根据OSI模型,采用现有的计算机网络技术将会带来以下好处:节约成本,便于与其它计算机网络系统集成。

3. 根据楼宇自控系统的环境及要求,可以通过去除OSI某些层的功能来简化OSI模型。

4. 由物理层、数据链路层、网络层和应用层组成的一个简化体系结构,是当今楼宇自控系统的最佳解决方案。

四、BAC网络的拓扑结构

为了应用的灵活性,BACnet并没有严格规定网络的拓扑结构。BACnet设备可以通过专线或拨号异步串行线,与四种局域网之一进行物理相连。而这些网络可以通过BACnet路由器或一对半路由器进一步互联。

在BACnet网络中,定义了如下这样一些拓扑结构:

1. 物理网段(Physical Segment):直接连接一些BACnet设备的一段物理介质。

2. 网段(Segment):多个物理网段通过“中继器”在物理层连接,所形成的网络段。

3. 网络(Network):多个BACnet网段通过“网桥”互连而成,每个BACnet网络都形成一个单一的MAC地址域。这些在物理层和数据链路层上连接各个网段的设备,可以利用MAC地址实现报文的过滤。

4. 网际网(Internetwork):将使用不同LAN技术的多个网络,用BACnet“路由器”互联起来,便形成了一个BACnet“网际网”。在一个BACnet网际网中,任意两个节点之间恰好存在着一条报文通路。

 

返回顶部

    版权所有:南京海思自动化系统有限公司    网站地图:Sitemap        苏ICP备13027346号-1
电话:025-52804590 52804690 地址:南京市白下高新产业园区永丰大道8号B2-503室 网址: www.highsys.com.cn
版权所有:南京海思自动化系统有限公司
总机:025-52804590 / 52804690
市场部:8008分机  售后部:8006分机
手机:18905184663(市场)  邮箱:highsys@163.com
南京市白下高新产业园区永丰大道8号B2-503室