BACnet协议模型是参考ISO的OSI/RM的七层级模型进行简化得到的,BACnet标准采取了简化的4层级结构,其中的物理层、数据链路层和网络层保留了OSI模型的底三层的结构形式,并定义了简单的应用层,
BACnet协议的数据链路层和物理层采用了成熟的局域网标准、协议作为自身的一部分内容,
兼容性很强。

BACnet的简化结构
BACnet四层级中的最底下两层与0SI模型的数据链路层和物理层对应提供了5种选择方案:
方案1是以太网的通信协议,采用的是非确认的、无连接的通信协议。
方案2是将非确认、无连接的服务类型与ARCNET相结合。
方案3是专门为楼宇自动化和控制设备设计的主一从标志传递(MS/TP:MasterSlave/Token-Passing)协议,MS/TP协议提供了网络层的界面,可控制对于EIA-485物理层的访问。
方案4是点到点的通信协议,提供了硬件互联或拨号串行异步通信。
方案5是LonTalk通信协议。
BACnet协议从硬/软件实现、数据传输速率、系统兼容和网络应用等几方面考虑,目前支持五种组合类型的数据链路/物理层规范。其中主从/令牌传递(MS/TP)协议是专门针对楼宇自控设备设计的数据链路规范。BACnet在物理介质上,支持双绞线、同轴电缆和光缆。在拓扑结构上,支持星型和总线拓扑。
BACnet标准选择简化的4层结构可以将通信协议的实现成本降低到最小。一般情况下,信息传输的距离较近。当有时需要进行较远的信息传输时,可通过电话网络来进行。
与OSI的物理层一样,BACnet网络的物理层也是提供了设备之间的连接和传送数据的电信号。数据链路层将数据组织成数据帧或数据报文,和具体的介质有关,提供了寻址、错误恢复和流量控制。
网络层提供的功能包括全局地址到局部地址的翻译、多个网络互连后的路由信息、调整由于不同网络对数据报尺寸大小要求的不同、进行时序、流量和多路访问的控制。在BACnet网络中,不同的设备之间只有一个逻辑通路,故不需要采用最佳路由的算法。当一个网络是由多个网段用中继器或网桥连接起来时,它仍然具有单一的网络地址空间。这种情况下,OSI模型中的网络层的许多功就不需要了。对于某些BACnet网络中,如果有两个或多个采用不同MAC(MediaAccessControl:介质访问控制)的网络互联,这时整个网络有了多于一个的网络的地址空间,就需要关于不同的网络的路由信息。BACnel网络具有一定的网络层能力,可以去定义包含必要的寻址和控制信息的网络层数据报的头部。
应用层为通信对象提供了相互协商传输的语义,以便能够顺畅地交互数据信息,传输语义是在应用层对低层8位组序列数据的翻译。如果只允许一个翻译语义,应用层的功能便简化为表示应用数据的编码方案。BACnet定义了这样的一个编码方案,并把它包括在应用层中。
BACnet没有采用完整的OSI的7层模型,是充分地考虑楼宇自控功能实现的成本要尽可能地小,由于OSI的模型体系是计算机网络普遍采用的体系,BACnet网络,易于和其他计算机网络系统进行集成。BACnet网络使用简化的结构包括物理层、数据链路层、网络层和应用层,是现代建筑楼宇自控功能实现的较佳经济解决方案。
在BACnet拓扑中,设备节点之间只存在一条逻辑通路,无需广域网的最优路由算法;其次,BACnet具有单一的局部地址空间,所以BACnet参照OSI模型制定了简化的网络层协议,向应用层提供不确认无连接的数据单元传送服务。每个BACnet设备都被一个网络号码和一个MAC地址唯一确定。
网络层通过“路由器”实现两个或多个异类BACnet局域网的连接,并通过协议报文进行“路由器”的自动配置、路由表维护和拥塞控制。BACnet路由器与每个网络的连接处称为一个“端口”。路由表中包含端口的下列项目:
(1)端口所连接网络的MAC地址和网络号;
(2)端口可到达网络的网络号列表及与这些网络的连接状态。
BACnet应用层即BACnet应用实体,通过API(应用编程接口)为上层应用程序服务,并与对等应用层实体通信。应用实体由两部分组成:用户单元和应用服务单元(ASE).ASE是一组特定内容的应用服务。而用户单元支持本地API、保存事务处理上下文信息、产生请求、记录ID对应的应用服务响应、维护超时重传机制所需的计数器以及将设备行为要求映射为对象。
BACnet应用层提供证实和非证实两种类型的服务。BACnet定义了四种服务原语:请求、指示、响应和证实,它们通过应用层协议数据单元(APDU)传递。由于BACnet建立在无连接的通信模式上,所以OSI模型提供端到端服务的传输层部分简化功能也由应用层实现,分别为:
可靠的端到端传输和差错校验;
报文分段和流量控制;
报文重组和序列控制。
由于不同厂商生产的设备有不同的数据通信方式,不同厂商设备之间不能进行有效的数据通信,因此也无法实现互操作。现代建筑中有多种不同的系统,如HCAC系统(采暖、通风、空调)FAS、SAS照明、电梯、供配电系统等,控制器之间的控制和通信,对于系统的开放性的实现是一个基本条件。1987年以前,由于不同厂商生产的设备大多采用专有或封闭式协议进行数据通信,为消除这一建立开放系统的主要障碍,美国采暖、制冷和空调工程师协会(ASHRAE)成立了专门委员会为楼宇自控系统制定了一个标准网络协议BACnet.
BACnet标准为楼宇自控中的分布控制和监控提供了解决方案,对楼宇自控系统中的各子系统及设备的通信进行管理。BACnet定义了一组标准对象,BACnet还提供一系列服务,如报警、事件服务、文件服务、对象访问服务、远方设备管理和虚拟终端服务。BACnet支持多种网络。
BACnet协议也使用了ISO的OSI分层级通信体系,可在不同的网络之间和不同的物理介质之间交换相同的数据报文;BACnet网络中的设备节点使用读写对象的属性和应用服务的方式来完成通信。