当前位置:文档之家› BACnet协议的体系结构

BACnet协议的体系结构

B A

C n e t协议的体系结

Revised by Petrel at 2021

B A

C n e t 协议的体系结构 国际标准化组织在制定计算机网络通讯协议标准时定义了一个模型,称为开放系统互联参考模型(OSI )(ISO7498)。模型的目的是解决计算机与计算机之间普遍的通信问题。在这个模型中,将计算机通信这样一个复杂的问题分解成7个小的、容易解决的子问题,每个子问题只与某些通信功能相关,并且把这些子问题称为协议体系结构的一层,整个模型是一个七层的体系结构。在图4-1中给出这七层的体系结构图。

层。信的单个计算机之间可能相距很远,因此报文要通过一系列中间点才能到达。

而这些中间点相应地可能需要实现路由选择功能、某种解析功能,以及复杂的同步和差错恢复功能。

实现OSI 模型协议所需的费用较高,在绝大部分楼宇自动控制系统中,并不需要实现OSI 模型的所有内容。不过只从OSI 的功能性方面来考虑,经过简化,OSI 模型仍然是楼宇自动控制协议的一个很好的参考。如果只选择OSI 模型中需要的层次,形成一个简化的模型,作为楼宇自动控制系统的协议体系结构,就可以减少报文的长度,降低通信处理的开销,并且也满足楼宇自动控制系统的需要。这个简化的体系结构降低了楼宇自动控制工业的生产成本,同时处理器的大批量生产、局域网技术的发展,也为过程控制和办公自动化工业的发展起到了推动作用。另一方面,可以充分利用现有的、易用的、应用广泛的局域网技术,如以太网、ARCNET 和LonTalk 。这样不但可以降低成本,而且也有利于提高性能,为系统集成开辟新的途径。 用户1

用户2 图4-1开放系统互联基本参考模型

4.1BACnet 简化的体系结构

BACnet 建立在包含四个层次的简化分层体系结构上,这四层相当于OSI 模型中的物理层、数据链路层、网络层和应用层,如图4-2所示。BACnet 标准定义了自己的应用层和简单的网络层,对于其数据链路层和物理层,提供了以下五种选择方案。 第一种选择是ISO8802-2类型1定义的逻辑链路控制(LLC )协议,加上ISO8802-3介质访问控制(MAC )协议和物理层协议。ISO8802-2类型1提供了无连接(Connectionless )不确认(Unacknowledged )的服务,ISO8802-3则是着名的以太网协议的国际标准。 第二种选择是ISO8802-2类型1定义的逻辑链路控制协议,加上ARCNET (ATA/ANSI878.1)。 第三种选择是主从/令牌传递(MS/TP )协议加上EIA-485协议。MS/TP 协议是专门针对楼宇自动控制设备设计的,同ISO8802-2类型1一样,它通过控制EIA-485的物理层,向网络层提供接口。

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

第五种选择是LonTalk 协议。

这些选择都支持主/从MAC 、确定性令牌传递MAC 、高速争用MAC 以及拨号访问。拓扑结构上,支持星型和总线型拓扑。物理介质上,支持双绞线、同轴电缆、光缆。这五种选项将在7节到11节中深入论述。

简化的四层BACnet 体系结构,是在仔细考虑了BACnet 网络的独特特征和要求,以及尽可能少的协议开销原则后得出的。在下面的分析里,将讨论BACnet 体系结构只包括物理层、数据链路层、网络层和应用层的原因。

BACnet 完成其固有的操作到底需要哪些层次呢?仔细分析BACnet 网络的特征后,可以得到以下两点:

首先,BACnet 是一种局域网。即使在某些应用中,楼宇里设备间的远距离通信必不可少时,BACnet 仍然是一种局域网。因为这种远距离的通信功能,由电信网来实现。通信中要完成的路由、中继、可靠的传输等问题都由电信网来处理,电信网可看成是BACnet 外部的部分。

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

BACnet 网络层 ISO8802-3 (IEEE802.3) ARCNET MS/TP (主从/令牌传递) PTP (点到点协议) EIA-485 (RS485) EIA-232 (RS232) ISO8802-2 (IEEE802.2)类型1 LonTalk

BACnet 应用层 BACnet 的协议层次 应用层 网络层 数据 链路层 物理层 对应的 OSI 层次 图4-2BACnet 简化的体系结构层次图

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

物理层提供了连接设备和传输数据载波信号的方式,显然在BACnet协议中,物理层是必不可少的。

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

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

传输层主要是负责提供可靠的端到端的报文传输、报文分段、序列控制、流量控制,以及差错校正。传输层的许多功能与数据链路层相似,只是在作用范围上有所不同。传输层提供的是端到端的服务,而数据链路层则提供的是单一网络上点到点的服务。由于BACnet支持多种网络的配置,因此协议必须提供传输层端到端的服务。而可靠的端到端传输和差错校正功能,在BACnet协议中由BACnet的应用层利用报文超时重传方式来完成。其次,考虑到缓冲区和处理器资源的管理,报文分段和端到端的流量控制也是必要的。这是因为即使一个简单的BACnet请求,都可能会导致大量的信息回传。同样,这些功能也是由BACnet的应用层完成的。最后,为了实现报文的正确重组,序列控制也是必须的。这也是由BACnet的应用层中的分段过程实现的。总的来说,由于BACnet是建立在无连接的通信模型基础上的,因此所需的服务大大减少,并且可以被高层来实现,这样便省去了一个单独传输层所会增加的通信开销。在BACnet协议中,不设单独的传输层,所需的功能由应用层实现。

相关主题