BACnet通讯协议(一)

BACnet协议(A Data Communication Protocol for Building Automation and Control Networks),是由美国采暖、制冷和空调工程师协会(ASHRAE)制定的一个楼宇自动控制技术标准文件,BACnet协议最根本的目的是提供一种楼宇自动控制系统实现互操作的方法。

一、BACnet协议栈

​ BACnet协议是根据开放系统互联模型(OSI)(ISO7498)而提出的。开放系统互联模型采用分层结构,具有7层,解决了异构网络的互联通信。在楼宇自控领域,我们只需要一些特定的功能,因此BACnet协议具有四层结构。

​ BACnet协议具有四层结构,分别为:物理层,数据链路层,网络层,应用层。BACnet协议与标准OSI模型的各层对应关系如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gy0hF1HQ-1626007504032)(C:\Users\pfzhang\AppData\Roaming\Typora\typora-user-images\image-20210709142704907.png)]

BACnet协议四层结构的每层功能如下:

BACnet物理层:物理层提供了连接设备和传输数据的比特流的方式。物理层对于通讯协议来说是必不可少的。它是上层所有数据封装后产生可传输信号的层。是信号具体的产生层。BACnet数据链路层:负责将数据组织成帧(frame)或者分组(packet),管理通信介质的访问、寻址,以及完成一些差错校正和流量控制的任务,这些都是BACnet所需要的,因此数据链路层是必不可少的。**BACnet网络层:**在一个或多个网络中进行报文的路由、全局地址解析为局部地址、协调异构网络、流量控制、序列控制、差错控制以及信道复用。**BACnet应用层:**应用层为应用程序提供API接口,也就是提供通信服务。BACnet应用层还包括了OSI模型里表示层、会话层和传输层中BACnet所需要的功能。BACnet协议只需要上面三层中的很少一部分功能,因此为了减少成本,将这些功能放在应用层。 二、BACnet网络示意图

其中可以看到一个BACnet网络的示意图,有一些基本的概念:

BACnet设备:任何可以使用BACnet协议进行通信的真实或者虚拟的设备叫BACnet设备。物理网段:BACnet设备与物理介质相连,物理介质称为物理网段。网段:一个或多个物理网段通过中继器在物理层相连,形成一个BACnet网段中继器(Repeater):工作在物理层,用于连接物理网段。因此中继器工作在物理层。网桥(Bridge):网桥用于连接两个局域网络,从而扩大局域网络的规模。由网桥连接起来的具有相同网络地址的网段集合称为网络。网桥是用于连接两个网络的,而现在普遍使用的交换机,是用于连接多个网络进行数据交换的,相当于一个扩展的网桥。网桥工作在数据链路层。路由器(Router):网桥连接起来相同地址的网段形成网络后,路由器负责将网络连接起来。路由器的特色是可以连接两个异构网络。例如有些路由器可以实现BACnet网络和TCP/IP网络的互联。路由器工作在网络层。网关(Gateway):用于连接BACnet网络与非BACnet网络,网关工作在传输层以上。

其中几个主要设备工作的层如下:

三、BACnet中的服务

有证实(confirmed)服务:用CONF_SERV标记,表示客户方通过具体的服务请求实例向服务器方请求服务,服务器方通过响应请求来为客户方提供服务。存在客户/服务器模型、区分“请求方BACnet用户”和“响应方BACnet用户”等。

无证实(unconfirmed)服务:用UNCONF_SERV标记,只有“发送方BACnet用户”和“接收方BACnet用户”的概念,不存在客户/服务器模型,只有发送方和接收方,而不是请求-响应对。

分段确认(segment acknowledge)服务:用SEGMENT_ACK标记,为了实现长报文(长度大于通信网络、收/发设备所支持的长度)的传输,BACnet采取了应用层报文分段的机制来对报文进行分段。在BACnet中只有有证实请求(Confirmed-Request)和复杂确认(Complex-ACK)报文可能需要分段,因此分段还是BACnet的一个可选特性。

差错(ERROR)服务,拒绝(REJECT)服务,中止(ABORT)服务。

四、BACnet应用层的四种原语

应用层有四种原语,分别为:请求(request)、指示(indication)、响应(response)和证实(confirm)。

uest)、指示(indication)、响应(response)和证实(confirm)。