1. BACnet标准
1.1 BACnet协议
进入80年代以后,随着经济活动中心城市化,大都市的高层与超高层建筑如雨后春笋般耸立起来。楼内的各种设备和系统逐渐增多,且日趋复杂,能量的消耗也大幅度上升。如何规范运行,节能,延长设备寿命,确保大楼内工作、生活的安全、舒适、高效和楼内外信息的处理、交换、传输,资源共享成为大楼(智能建筑)重要问题。可喜的是80年代以来,电子、微电子、通讯与计算机、网络、自控技术的迅猛发展,支持与造就了智能建筑各个子系统的诞生和完善。
智能建筑贵在集成,要集成就需要相关的机电设备和子系统具有开放性和互操作性。也就是说,这些设备和系统的数据通讯必须按同一标准协议来进行。
1987年l月ASHRAE(美国供热、制冷及空调工程师协会)组织了世界各地的20余名楼宇自动控制工业部门,包括大学、控制器制造商、政府机构与咨询公司的志愿者组成了一个名为"SPCl35P"的工作组。工作组的目标是制定一个关于楼宇能量管理与
控制系统(EMCS)的通讯协议。在长达8年多制定过程中,共收到来自12个国家741份的意见,经过3次公开评审,最后于1995年6月BACnet协议获得通过,成为ASHRAEl35-1995标准。井于同年12月升为美国国家标准。
自从BACnet协议作为美国国家标准发表以来,不但在美国本土引起巨大的反响,同时也引起了世界各国智能建筑业界的广泛注意。在发达国家,已纷纷成立了一些重要的组织,其中最重要的如在北美成立了BIG-NA(BACnet’s Interest Group-North America),在欧洲成立了BIG-Eu(BIG-Europe),在澳大利亚和亚洲成立了BIG-AA(BIG-AustraliaAsia),这些组织在本地区共同推进BACnet协议的实施。
早在1998年已被欧共体标准化委员会CEN TC247采纳为预备标准(pre-standard),目前,正对其进一步进行评价,以决定是否为欧共体的正式标准。
国际标准化组织(ISO)的TC205委员会也已于最近2003/01/03批准其为ISO正式标准。标准号为ISO 16484-5。
在1999年12月被韩国采纳为国家标准KS X 6909。
2000年8月。日本电气安装工程师协会进行了研究,准备采纳BACnet为该协会协议标准(protocol of the Institute of Electrical Installation Engineers of Japan IEIEJ/P)。
如从1999年9月到2000年4月,华中理工大学刘贤德、惠晓实、石岩等同志在“CAD与智能建筑”杂志上发表系列文章,详尽介绍了BACnet协议的内容。在其它有关智能建筑杂志上也有大量的文章在介绍和评价BACnet协议。
在1998年,江苏省地方标准“建筑智能化系统工程设计标准(DB32/181-1998)”中,已提出对于多个供应商不同系统之间的集成,建议采用BACnet标准。
1.1.1 BACnet协议的体系结构
国际标准化组织在制定计算机网络通讯协议标准时定义了一个模型,称为开放系统互联参考模型(OSI)(ISO 7498)。模型的目的是解决计算机与计算机之间普遍的通信问题。在这个模型中,将计算机通信这样一个复杂的问题分解成7个小的、容易解决的子问题,每个子问题只与某些通信功能相关,并且把这些子问题称为协议体系结构的一层,整个模型是一个七层的体系结构。在图4一1中给出这七层的体系结构图。
对于某个层次来说,它使用下面各层所提供的服务,同时也向它上面的各层提供服务。每一层可以想像成一个黑盒,黑盒的上面和下面都只有经过认真定义的接口。一个应用程序通过与OSI 应用层的相连,实现与另一个远程应用程序的通信。对于这种发生在两个应用程序之间的通信,看起来两个程序似乎是通过各自的应用层接口直接相连。各层之间仅仅需要了解其他层的很少的情况。通过类似的方式,协议的每一层利用下面各层的服务来提供通信服务,与另一个系统的同等层建立起一个虚拟的对等层通信。而真正的通信只发生在物理层。
OSI模型以高度概括的观点来分析计算机与计算机的通信,用来解决在全世界范围内的、巨大而复杂的计算机网络的通信问题。在这种情况下,互相通信的单个计算机之间可能相距很远,因此报文要通过一系列中间点才能到达。而这些中间点相应地可能需要实现路由选择功能、某种解析功能,以及复杂的同步和差错恢复功能。
实现OSI模型协议所需的费用较高,在绝大部分楼宇自动控制系统中,并不需要实现OSI模型的所有内容。不过只从OSI的功能性方面来考虑,经过简化,OSI模型仍然是楼宇自动控制协议的一个很好的参考。如果只选择OSI模型中需要的层次,形成一个简化的模型,作为楼宇自动控制系统的协议体系结构,就可以减少报文的长度,降低通信处理的开销,并且也满足楼宇自动控制系统的需要。这个简化的体系结构降低了楼宇自动控制工业的生产成本,同时处理器的大批量生产、局域网技术的发展,也为过程控制和办公自动化工业的发展起到了推动作用。另一方面,可以充分利用现有的、易用的、应用广泛的局域网技术,如以太网、ARCNET和LonTalk。这样不但可以降低成本,而且也有利于提高性能,为系统集成开辟新的途径。
1.1.2 BACnet简化的体系结构
BACnet建立在包含四个层次的简化分层体系结构上,这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。BACnet标准定义了自己的应用层和简单的网络层,对于其数据链路层和物理层,提供了以下五种选择方案。
第一种选择是ISO 8802-2类型l定义的逻辑链路控制(LLC)协议,加上ISO 8802-3介质访问控制 (MAC)协议和物理层协议。ISO 8802-2类型l提供了无连接 (Connectionlesss)不确认(Unackowledged)的服务,ISO 8802-3则是著名的以太网协议的国际标准。
第二种选择是lSO 8802-2类型l定义的逻辑链路控制协议,加上ARCNET(ATA/ANSI 878.1)。
第三种选择是主从/令牌传递(MS/TP)协议加上EIA-485协议。MS/TP协议是专门针对楼宇自动控制设备设计的,同ISO 8802-2类型1一样,它通过控制ElA-485的物理层,向网络层提供接口。
第四种选择是点对点(PTT)协议加上EIA-232协议,为拨号串行异步通信提供了通信机制。
第五种选择是LonTalk协议。
这些选择都支持主/从MAC、确定性令牌传递MAC、高速争用MAC以及拨号访问。拓扑结构上,支持星型和总线型拓扑。物理介质上,支持双绞线、同轴电缆、光缆。这五种选项将在7节到11节中深入论述。
简化的四层BACnet体系结构,是在仔细考虑了BACnet网络的独特特征和要求,以及尽可能少的协议开销原则后得出的。在下面的分析里,将讨论BACnet体系结构只包括物理层、数据链路层、网络层和应用层的原因。
BACnet完成其固有的操作到底需要哪些层次呢?仔细分析BACnet网络的特征后,可以得到以下两点:
首先,BACnet是一种局域网。即便在某些应用中,楼宇里没备间的远距离通信必不可少时,BACnet仍然是一种局域网。因为这种远距离的通信功能,由电信网来实现。通信中要完成的路由、中继、可靠的传输等问题都由电信网来处理,电信网可看成是BACnet外部的部分。
其次,BACnet设备是静态的(static),即在空间上,它们不会经常被移来移去。在要完成的功能上,从某种意义上说也是不变的,即不会今天生产的设备时功能是这样,明天就完全不同了。
在充分了解BACnet网络的特征后,就可讨论OSI模型的各层在BACnet网络中的适用性了。
物理层提供了链接设备和传输数据载波信号的方式,显然在BAcnet协议中,物理层是必不可少的。
数据链路层负责将数据组织成帧(frame)或分组(packet)、管理通讯介质的访问、寻址,以及完成一些差错校正和流量控制的任务,这些都是BACnet协议所需要的,因此数据链路层也是必不可少的。
网络层的功能包括:将全局地址解析为局部地址、在一个或多个网络中进行报文的路由、协调不同类型网络的差异(如不同网络所允许的最大报文长度)、序列控制、流量控制,差错控制以及多路复用。由于BACnet网络的拓扑特点,在各个设备之间只存在一条逻辑通路,这样便不需要最优路由的算法。其次,BACnet网络是由中继器或者网桥互联起来的一个或者多个网段所组成的网络,它具有单一的局部地址空间。在这样一种单一网络中,许多OSI网络层的功能也变得多余,或者与数据链路层相重复。但是在BACnet网络系统中,网络层又是必不可少的。例如,在一个BACnet的互联网*(internet)中,当两个或者多个网络使用了不同的MAC层时,便需要区别局部地址和全局地址,这样才能将报文路由到正确的网络中去。在BACnet协议中,通过定义了一个包含必要的寻径和控制信息的网络层头部,来完成这种简化了的网络层功能.
传输层主要是负责提供可靠的端到端的报文传输、报文分段、序列控制、流量控制,以及差错校正。传输层的许多功能与数据链路层相似,只是在作用范围上有所不同。传输层提供的是端到端的服务,而数据链路层则提供的是单一网络上点到点的服务。由于BACnet支持多种网络的配置,因此协议必须提供传输层端到端的服务。而可靠的端到端传输和差错校正功能,在BACnet协议中由BACnet的应用层利用报文超时重传方式来完成。其次,考虑到缓冲区和处理器资源的管理,报文分段和端到端的流量控制也是必要的。这是因为即使一个简单的BACnet请求,都可能会导致大量的信息回传。同样,这些功能也是由BACnet的应用层完成的。最后,为了实现报文的正确重组,序列控制也是必须的。这也是由BACnet的应用层中的分段过程实现的。总的来说,由于BACnet是建立在无连接的通信模型基础上的,因此所需的服务大大减少,并且可以被高层来实现,这样便省去了一个单独传输层所会增加的通信开销。在BACnet协议中,不设单独的传输层,所需的功能由应用层实现。
会话层的功能是在通信双方之间建立和管理长时间对话,其中的一个重要功能是建立同步标志点,用来在发生差错时回复到前一个标志点,以避免对话重新开始。但是在一个BACnet网络中,绝大部分的通信都是很简短的,比如读写一个值或者一些值,通知(notify)某个没备有某个警报或事件 (event)发生,或者更改某个设定值。当然长时间的信息交换偶然也会发生的,比如上载或下载某个设备参数。由于绝大部分事务处理都是简短的,会话层的服务极少用到,再考虑到设置单独的会话层所带来的开销,所以BACnet标准中不包括单独的会话层。
表示层为通信双方提供了屏蔽下层传送语法的服务。这种传送语法是用来将应用层中抽象的用户数据视图,作成适合下层传输的字节序列。但当只存在一种传送语法时,表示层的功能便减少到对应用程序的数据进行编码。由于在BACnet应用层中定义了一个固定的编码方案,因此一个独立的表示层也变得不再需要。
协议的应用层为应用程序提供了完成各自功能所需的通信服务。在此基础上,应用程序可以监控HVAC和其他楼宇自动控制系统。显然应用层是本协议所必须的。
1.1.3 BACnet网络的拓扑结构
为了适应各种应用,BACnet并没有规定严格的网络拓扑结构。BACnet设备可以直接连接到四种局域网(LANs)中的一种网络上,也可以通过专线或拨号异步串行线连接起来。这几种局域网由可以通过BACnet路由器进一步互联 。
按照局域网拓扑的观点,每个BACnet设备与物理介质相连,物理介质称之为物理网段。一个或多个物理网段通过中继器在物理层连接,便形成了一个BACnet网段。而一个BACnet网络则是由一个或多个BACnet网段通过网桥互联而成。每个BACnet网络都形成一个单一的介质访问控制MAC地址域,这些在物理层和数据链路层上连接各个网段的设备,可以利用MAC地址实现报文的过滤。将使用不同LAN技术的多个网络,用BACnet路由器互联起来,便形成了一个BACnet互联网(internetwork)。如前所述,在一个BACnet互联网中,任意两个节点之间恰好存在着一条报文通路。
从以上的讨论中,可以得到以下几点:
(a)实现一个完全的OSI七层体系结构需要大量的资源和开销,因此它对于目前的楼宇自动控制系统是不适用的。
(b)按照OSI模型的方式构造协议体系结构,并且采用现有的计算机网络技术,可以使得新协议具有实现成本低和便于与其他计算机网络系统集成的特点。
(c)根据楼宇自动控制系统的环境及要求,可以通过去除OSI某些层的功能,简化OSI模型,来制定新协议的体系结构。
(d)由物理层、数据链路层、网络层和应用层组成的一个简化体系结构,是当今楼宇自动控制系统的最佳解决方案。