BACnet,Building Automation and Control networks的简称, 即楼宇自动化与控制网络。是用于智能建筑的 通信协议。
一般楼宇自控设备从功能上讲分为两部分: 一部分专门处理设备的控制功能;另一部分专门处理设备的数据通信功能。而BACnet就是要建立一种统一的数据通信标准, 使得设备可以互操作。BACnet协议只是规定了设备之间通信的规则, 并不涉及实现细节。
BACnet协议模型为:
(1) 所有的网络设备, 除基于MS/TP协议的以外, 都是完全对等的(peer to peer);
(2) 每个设备都是一个“对象”的实体, 每个对象用其“属性”描述, 并提供了在网络中识别和访问设备的方法;设备相互通信是通过读/写某些设备对象的属性, 以及利用协议提供的“服务”完成;
(3) 设备的完善性(Sophistication), 即其实现服务请求或理解对象类型种类的能力, 由设备的“一致性类别”(Conformance Class)所反映。
BACnet建立在包含四个层次的简化分层体系结构上, 这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。
BACnet标准定义了自己的应用层和简单的网络层, 对于其数据链路层和物理层, 提供了以下五种选择方案:
(1) 第一种选择是ISO 8802-2类型1定义的逻辑链路控制(LLC)协议, 加上ISO 8802-3介质访问控制(MAC)协议和物理层协议。ISO 8802-2类型1提供了无连接(Connectionless)不确认(Unacknowledged)的服务, ISO 8802-3则是著名的以太网协议的国际标准。
(2) 第二种选择是ISO 8802-2类型1定义的逻辑链路控制(LLC)协议, 加上ARCNET(ATA/ANSI878.1)。
(3) 第三种选择是主从/令牌传递(MS/TP)协议加上EIA-485协议。MS/TP协议是专门针对楼宇自动控制设备设计的, 同ISO 8802-2类型1一样, 它通过控制EIA-485的物理层, 向网络层提供接口。
(4) 第四种选择是点对点(PTP)协议加上EIA-232协议, 为拨号串行异步通信提供了通信机制。
(5) 第五种选择是LonTalk协议。
由应用层服务原语产生的应用层协议数据单元(APDU), 构成了网络层服务原语的数据部分, 并通过网络层服务访问点下传到网络层。
同样, 这个请求将进一步下传到本地设备协议栈的以下各层。
服务原语: 用于描述服务用户和服务提供者之间交互作用的、抽象的、与具体无关的表现方式。服务原语只有4种类型:
PDU: Protocol Data Unit, 协议数据单元, 是指对等层次之间传递的数据单位。
APDU: Application Protocol Data Unit, 应用协议数据单元。
NPDU: Network Protocol Data Unit, 网络协议数据单元。
LPDU: Link Protocol Data Unit, 链路协议数据单元。
MPDU: MAC Protocol Data Unit, MAC协议数据单元。
PPDU: Presentation Protocol Data Unit, 表示协议数据单元。
BACnet应用层主要有两个功能:
BACnet应用进程模型:
一个应用进程包括: 应用程序和应用实体,应用实体位于应用层内,属于通信协议的部分,应用程序不属于协议部分。应用程序和应用实体之间通过API进行通信。
应用层有四种原语,分别为:请求(request)、指示(indication)、响应(response)和证实(confirm)。
BACnet对象模型:
BACnet网络协议使用先进的面向对象技术,通过封装在APDU内的对象数据进行通讯。BACnet拥有28个对象:
序号 | 对象名称 | 应用实例 |
---|---|---|
01 | Accumulator | 累加器 |
02 | Analog Input | 模拟输入对象 |
03 | Analog Output | 模拟输出对象 |
04 | Analog Value | 模拟值对象 |
05 | Averaging | 平均器 |
06 | Binary Input | 二进制输入对象 |
07 | Binary Output | 二进制输出对象 |
08 | Binary Value | 二进制值对象 |
09 | Calendar | 日期表对象 |
10 | Command | 命令对象 |
11 | Device | 设备对象 |
12 | Event Enrollment | 事件登录对象 |
13 | Event Log | 事件日志对象 |
14 | File | 文件对象 |
15 | Global Group | 全局组对象 |
16 | Group | 组对象 |
17 | Life Safety Point | 生命安全监测点的信息检测 |
18 | Life Safety Zone | 生面安全区域的信息检测 |
19 | Loop | 控制环对象 |
20 | Multi-State Input | 多态输入对象 |
21 | Multi-State Output | 多态输出对象 |
22 | Multi-State Value | 多态值对象 |
23 | Notification Class | 通告类对象 |
24 | Program | 程序对象 |
25 | Pulse Converter | 脉冲转换器 |
26 | Schedule | 时间安排对象 |
27 | Trend Log | 趋势记录对象 |
28 | Trend Log Multiple | 多趋势记录对象 |
BACnet服务:
BACnet具有35种服务,服务是操作对象的方法。这35种服务分为6类,分别为:报警与事件服务,文件访问服务,对象访问服务,远程设备管理服务、虚拟终端服务和网络安全服务。
其中,对象服务访问包括:
远程设备管理服务包括:
BACnet网络层的作用是检查网络拓扑结构,决定最佳路由。
BACnet互联网络拓扑结构:
物理网段(Physical Segment): 直接连接以下BACnet设备的一段物理介质。
网段(Segment): 多个物理网段通过“中继器”在物理层连接,所形成的网络段。
网络(Network): 多个BACnet网段通过网桥互联而成,每隔BACnet网络都形成一个单一的MAC地址域。这些在物理层和数据链路层上连接各个网段的设备,可以利用MAC地址实现报文的过滤。
互联网络(Internetwork): 将使用不同LAN技术的多个网段,用BACnet路由器互联起来,便形成了一个BACnet互联网络。在一个BACnet互联网络中,任意两个节点之间恰好存在着一条报文通路。
BACnet标准将五种类型的数据链路/物理层技术作为自己所支持的数据链路/物理层技术进行规范,形成其协议。
ARCNET局域网:
ARCNET是1977年由Datapoint公司开发的一种安装广泛的局域网(LAN)技术,它采用令牌总线(token-bus)方案来管理LAN上工作站和其他设备之间的共享线路,其中,LAN服务器总是在一条总线上连续循环的发送一个空信息帧。
当有设备要发送报文时,它就在空帧中插入一个“令牌”以及相应的报文。当目标设备或LAN服务器接收到该报文后,就将“令牌”重新设置为0,以便该帧可被其他设备重复使用。这种方案是十分有效的,特别是在网络负荷大的时候,它为网络中的各个设备提供平等使用网络资源的机会。
主从/令牌传递(MS/TP)协议:
BACnet的主从/令牌传递局域网技术的基础时使用EIA-485标准。
由于EIA-485标准只是一个物理层标准,不能解决设备访问传输介质的问题,BACnet定义了主从/令牌(MS/TP)协议,提供数据链路层功能
MS/TP网络使用一个令牌来控制设备对网络总线的访问:
点到点(PTP)通信协议:
为了使两个BACnet设备能够各种点到点通信机制进行通信,BACnet定义了点到点数据链路层通信协议,面向连接的协议,这个协议的功能是:
一旦这种连接成功建立后,两个设备就可以透明地交换BACnet PDU。
无论呼叫设备还是被呼叫设备,都可以启动释放连接过程,而只有每个设备都发送了终止请求后,连接才会终止。
对应地物理连接有:EIA-232连接调制解调器,线路驱动器,或者其他数据通信设备。