BACnet 协议

Building Automation and Control Networks

BACnet 是国际通用的楼宇自动化通信协议,支持多种传输方式,ASHRAE 标准定义,BACnet/SC 安全连接为智慧建筑提供端到端加密通信能力。

概述

BACnet(Building Automation and Control Networks)是由 ASHRAE(美国采暖、制冷与空调工程师学会)于 1995 年发布的楼宇自动化通信协议标准(ASHRAE 标准 135),同时也是 ISO 16484-5 国际标准和 GB/T 28847 中国国家标准。BACnet 的设计目标是实现不同厂商的楼宇自控设备(DDC 控制器、传感器、执行器、工作站)之间的互操作性。

BACnet 在全球智能建筑和楼宇自动化市场中占据核心地位,被广泛应用于商业办公楼、医院、学校、机场和数据中心等建筑的 HVAC(暖通空调)控制、照明管理、能源计量和安防集成系统。BACnet 协议由 ASHRAE 的 SSPC 135 委员会持续维护更新。

通信机制

BACnet 协议采用面向对象的设备建模方法。每个 BACnet 设备由一组标准对象(Object)组成,包括模拟输入(AI)、模拟输出(AO)、模拟值(AV)、二进制输入(BI)、二进制输出(BO)、二进制值(BV)、多态值(MV)和趋势日志等对象类型。每个对象包含若干属性(Property),如当前值、状态标志、描述和工程单位等。

BACnet 定义了丰富的应用服务,包括读属性(ReadProperty)、写属性(WriteProperty)、订阅 COV(Change of Value)用于事件通知、设备通信控制(DeviceCommunicationControl)用于流量管理、以及 Who-Is/I-Am 设备发现机制。

BACnet/IP 将 BACnet 报文封装在 UDP 数据包中,使用 47808 端口(0xBAC0),支持广播、多播和单播通信。BACnet MS/TP(Master-Slave/Token Passing)运行在 RS-485 串行总线上,采用令牌传递机制实现多主通信,传输速率最高 115200 bps。BACnet MSTP 在楼宇自控的现场层(控制器到传感器/执行器)中应用广泛。

BACnet/SC(Secure Connect)是最新引入的安全传输方式,基于 WebSockets 和 TLS 1.3,提供端到端加密通信、双向证书认证和报文完整性保护,可通过 NAT 和防火墙穿越运行在标准 HTTPS 端口上。

安全风险分析

BACnet/IP 的明文传输特性是主要安全风险。所有设备数据、控制命令和配置信息以明文形式在 UDP 47808 端口上传输,攻击者可通过网络嗅探获取 HVAC 运行参数、区域温度设定值和设备状态信息。BACnet 的 Who-Is 广播机制可被用于发现网络中所有 BACnet 设备及其类型、厂商、固件版本等详细信息。

BACnet 的写属性服务允许远程修改设备配置——攻击者可利用此功能篡改温度设定值、修改控制参数或禁用报警功能,影响楼宇环境的舒适性和安全性。设备通信控制服务(DeviceCommunicationControl)可被滥用,使设备暂时无法响应正常通信,造成拒绝服务。

BACnet MS/TP 串口总线的安全性更弱——物理接入即可发送伪造的 BACnet 报文。在大型楼宇中,BACnet 网络通常与办公网络共享物理基础设施,VLAN 隔离不当可能导致 BACnet 流量暴露。根据公开安全研究,部分 BACnet 设备实现存在缓冲区溢出和不当输入验证漏洞。

应用场景

BACnet 是商业建筑自动化的首选协议,覆盖超高层办公楼、购物中心、酒店和医院等场景的 HVAC 控制和楼宇管理系统(BMS)。在数据中心领域,BACnet 用于精密空调控制和环境监控。在教育、政府和文化场馆等公共建筑中,BACnet 实现暖通、照明和安防系统的集成管理。

BACnet 也应用于工业厂房的辅助设施控制(如厂房空调、通风和照明系统),以及部分物流仓储和冷链设施的温控管理。随着智慧城市和数字孪生建筑的发展,BACnet 数据正越来越多地与建筑能源管理系统(BEMS)和物联网平台集成。

安全防护建议

部署楼宇专用的工控安全设备,对 UDP 47808 端口实施 BACnet 协议深度解析和访问控制,基于 BACnet 服务类型、对象类型和属性写权限制定策略。在楼宇自控网络(BACnet 网络)与办公网络、访客网络之间实施严格的 VLAN 隔离,防止 BACnet 流量跨网段暴露。对于新建或升级项目,优先选择支持 BACnet/SC 的设备和系统,启用 TLS 加密和证书认证。关闭 BACnet 设备上不必要的调试接口和 Telnet/FTP 服务。限制 Who-Is 广播的传播范围,使用 BACnet 路由器控制广播域。定期审查 BACnet 设备配置和固件版本,建立设备通信基线监测异常行为。

常见问题

Q: BACnet 使用哪个 UDP 端口?
BACnet/IP 默认使用 UDP 47808 端口(0xBAC0),通过广播和多播进行设备发现和数据传输。部分设备同时支持 TCP 方式进行 BACnet/SC 安全通信。
Q: BACnet 和 Modbus 在楼宇自动化中如何选择?
BACnet 是楼宇自动化的专用协议,对象模型丰富,支持复杂的 HVAC 控制和报警管理;Modbus 更简单通用,常用于底层设备级数据采集。大型楼宇系统推荐使用 BACnet 作为主协议。
Q: 什么是 BACnet/SC?
BACnet/SC(Secure Connect)是 BACnet 协议的安全扩展,通过 WebSockets 和 TLS 1.3 实现端到端加密通信,支持身份认证和报文完整性保护,解决 BACnet/IP 明文传输的安全缺陷。
标签:BACnet楼宇自动化智能建筑
发布日期:2026-05-19
选择区号