当前位置:文档之家› BACnet_IP通信协议解析

BACnet_IP通信协议解析






EIA-485 (RS485)
EIA-232 LonTalk (RS232)
数据链路层 物理层
都可以作为 BACnet标准的物理局域网。
2 BACnet 网络与 Internet 互联
智能建筑的发展一直与 Internet 紧密相关, BACnet 网络目前已经得到广泛应用,为了更方便地 实现楼宇自动控制,BACnet网络通过Internet互联成 为了一个必然趋势。
APDU NPDU BVLL 报文 U D P 报文 IP 报文 物理帧
图 2 BACnet/IP 协议报文处理流程图
展性。BACnet互联网是由两个或者多个BACnet网络 所组成的网络。由于 IP 网络的出现,各种 BACnet 网 络互联非常灵活,各种BACnet设备均可以在IP环境 中实现互操作,但是 PAD 和 BACnet/IP 设备之间不 能直接通信,这是构建BACnet互联网时的基本原则 之一。本文提出一种 PAD 与 BACnet/IP 网关模型的 实现方案,以实现二者协议的转换等功能,其体系 结构如图 3 所示。
第 2个字节是一个控制字节,对其结构起着决定作用。
表 4 NPCI 结构图
版本 控制 D N E T (目标网络号) D L E N (目标 M A C 地址的长度) D A D R (目标 M A C 地址) S N E T(源网络号) S L E N (源 M A C 地址的长度) S A D R (源 M A C 地址) Hop Count(转发计数) 报文类型 Vendor ID(生产商表示符)
BACnet是一种开放性协议,采用OSI模型的分层 体系结构的概念,根据楼宇自控网络结构比较固定、 报文信息短小以及满足系统开放性要求等特点,对 ISO 模型进行了精简,使 BACnet 标准的体系结构更加 紧凑、高效,它与ISO的OSI模型对应关系如表1所示。
BACnet 高层定义了应用层和网络层,低层定义 了五种具体的物理层和相应的数据链路层,以适应不 同性能/价格比的要求,但是一般来讲只要符合 BACnet 标准定义的物理层和数据链路层功能的网络
的数据封装成IP数据包,也将收到的IP数据包拆开,
提取其中的相关数据给 BVLL 层。
表 2 BA Cnet/IP 协议的体系结构
BACnet 应用层
BACnet 网络层
ISຫໍສະໝຸດ Baidu 8802-2
MS/TP
PTP
BVLL
(IEEE 802.2)类型1 (主 / 从令牌传递) (点到点协议)
ISO 8802-3 (IEEE 802.3)
表 1 BACnet 协议层与 OSI 对应关系
BACnet 协议的层次
对应 OSI 的层次
BACnet 应用层
应用层
BACnet 网络层
网络层
ISO 8802-2
MS/TP
PTP
(IEEE 802.2)类型1 (主 / 从令牌传递)(点到点协议)
ISO 8802-3 (IEEE 802.3)


1 字节 1 字节 2 字节 1 字节 可变字节 2 字节 1 字节 1 字节 1 字节 1 字节 2 字节
APDU 由协议控制信息(PCI)和用户数据两部分
组成。APCI 包含进行应用层协议操作所需的数据,
“用户数据”包含请求和响应的具体信息。
一个BACnet/IP协议应用报文从产生到发送到网
络上进行传输的过程可以用图 2表示。
IP路由器
BACnet/IP 网络
图 3 PAD-BACnet/IP 网关的互联模型
BACnet/IP 与 B/IP PAD 相比,两者均利用 UDP 进 行信息传输,不同的是 B A C n e t / I P 网络中的所有 BACnet 设备均为 IP 节点,BACnet 应用层协议包不需 要进行封装和拆装处理。从IP数据包的角度来看,二 者数据包的形式及其之间的对应关系如图 4 所示。
整个BACnet/IP网络由于传输开销过大而效率降低。
位于BACnet网络层与IP层之间的是一个新定义
的微协议层,该微协议层简称为 BVLL,其作用是提
供在BACnet网络层与通信协议UDP之间的接口机制,
在 NPCI(网络层控制信息)和 BACnet/IP报文(IP报
头+ UDP 报头)增加了 BACnet 虚拟链接控制信息 BVLCI 报文,进行 BACnet 广播管理,以及提供向其他 通信协议扩展的扩展机制。
4 PAD-BACnet/IP 网关模型
BACnet与Internet的两种互联技术:PAD技术和 BACnet/IP技术,这两种技术各有优缺点。前者是一 种异构网络互联技术,应用比较普遍,后者可以是 实现BACnet与Internet的无缝联接,具有良好的扩
NPCI BVLL 头部 U D P 头部 IP 头部 M A C 地址
为了改进 B/P PAD 的缺点,1999 年 1 月 BACnet 标准委员会 SSPC135 中的 IP 工作组制定了性能较好 的BACnet/IP协议作为互联协议。
3 BACnet/IP 通信协议
BACnet/IP 将 IP 网络作为一个“局域网”来使用,
直接支持基于IP协议的BACnet设备,用IP帧接收和发
目前以太网在工业自控方面广泛应用。以太网 作为底层网络是一种趋势,在这里我们假设采用以太 网作为底层局域网。
PAD
BACnet 设备 BACnet 设备
BACnet 设备
IP 路由器 PAD-BACnet/IP 网关
BACnet 网络
Internet
IP 路由器 BBMD
BACnet/IP设备 BACnet/IP设备 BACnet/IP设备
目前主要存在着两种互联技术,一种是 B / I P PA(D BACnet/Internet Protocol Packet-Assembler- Disassembler),被称作隧道技术,具体方法就是将 BACnet 协议包封装在 IP 协议包中,然后在 IP 网络中 进行传输。当封装 BACnet 协议包的 IP 协议包到达目 的地址时,将 I P 协议包进行拆装,分离出其中的 BACnet 协议包。这种方法如同在 IP网络中开通一条 BACnet 协议包从网络的一端传输到另一端的隧道,
在 BACnet/IP 网络中,BBMD 设备是实现 BVLL 协 议的关键设备,BACnet/IP网络的每个IP子网只允许 有一个 BBMD 设备,用于注册外部 BACnet 设备,进行 BACnet广播。任意外部设备如果要参与广播活动,需 要向 BACnet/IP 网络中的 BBMD 设备进行注册,在 BBMD设备建立相应的FDT(Foreign Device Table)记
3.1 BACnet 虚拟链路层(BVLL)协议 大多数IP网络通常不支持或者禁止广播,要通过
IP网络来实现BACnet的各种功能,需要定义一个新的 协议层,BVLL在BACnet网络层与通信协议之间提供了 一个接口,在IP协议之上提供一个BACnet网络层视图, 这包括BVLL协议数据格式与协议规程两个内容。协议 数据格式说明了BVLL报文的基本组成和功能,而后者 说明了协议功能操作的过程。BVLL定义了12种类型的 协议报文,报文格式如图 1 所示,报文头部包含 Type、 Function和Length 3个域,长度为4个字节。
【关键词】B/IP PAD BACnet/IP Internet 网关
BACnet/IP 通信协议解析
文 ■ 桂林电子科技大学计算机系 齐 涛 周 萍
1 BACnet 标准简介
BACne(t A Data Communication Protocol for Build- ing Automation and Control Network)是一种为楼宇 自动控制网络所制定的数据通信协议,它由美国冷暖 空调工程师协会组织的标准项目委员会在 1995 年 6 月正式制定,同年 12 月正式成为美国国家标准,并 得到欧盟标准委员会的承认,成为欧盟标准草案。 2003 年 1 月被 ISO 总部宣布其为 ISO的正式标准,它 是专用于楼宇自控领域的数据通信协议,其目标是将 不同厂商、不同功能的产品集成在一个系统中,并实 现各厂商设备间的互操作。
1 字节
1 字节
2 字节
Type(类型) Functio(n 功能) Length(总长度) BVLL 报文头部
可变字节 User Data(用户数据)
图 1 BVLL 协议报文结构图格式 LL 图
Type(类型)域说明低层通信协议以及其对应微 协议的类型。在 BACnet/IP 体系结构中,值为 X‘81’, 表示低层通信协议为 IP 协议(IPv4),该域提供了— 种扩展低层通信协议的机制。
送BACnet报文,可以在IP网络上有效地进行BACnet广
播,并允许在网络的任意位置动态地增加和减少设备。
BACnet/IP 协议的体系结构如表 2所示,IP协议
之上使用 UDP 协议,UDP协议层的作用是将来自 BVLL
层(BACnet Virtual Link Layer,BACnet虚拟链路层)
ARCNET
EIA-485 (RS485)
EIA-232 (RS232)
LonTalk U D P IP
在此处使用UDP协议,可以避免重新定义新类型
的 IP 协议包,又可以利用现有的IP 系统建立BACnet
网络。如果重新定义一个新类型IP协议包,则会因为
IP路由器不能识别自定义的数据包将其简单丢弃,而
加入传输层则可以利用端口机制进而扩展。选用 UDP
而不是 TCP 协议,主要因为 TCP 协议不能实现“一对
多”的广播,而且BACnet的应用层提供了可靠传输机
制并提供了报文分段功能,这些都同 TCP 协议类似。
如果在 BACnet/IP 中使用TCP 协议,就在同一体系结
构中同时存在两套互相独立的确认机制,这还会使得
50
智能建筑与城市信息 2007年 第2期 总第123期
录项。BBMD 通过外部设备表 FDT 实现外部设备的广 播,使用广播路由表BD(T Broadcast Distribution Table) 管理 BACnet/IP 广播。
3.2 BACnet/IP 协议报文格式
在 BACnet/IP 中 UDP 端口的缺省值是 X‘BAC0’,用
户也可以对其进行重新定义。
表 3 BACnet/IP 网络报文格式
MAC IP
UDP BVLCI NPCI APDU
BVLCI域是BACnet虚拟链路控制信息域,至少包含
三个字段,分别表示协议类别,功能和协议包的长度
NPCI 是网络层协议控制信息域,结构如表4所示,其中
BACnet/IP 协议报文格式如表 3 所示,MAC 地址
大小为 6 字节,由网络接口硬件决定,它取决于网络
所使用的硬件。IP 域包括 20 字节长度的标准 IP 数据
报文的头部固定部分。
UDP 域包括 8个字节长度的标准 UDP数据报文的 头部,包含有各 2 字节长度的源和目的 UDP 端口号,
Intelligent Building & City Information 2007 2 No. 123
49
B 楼宇自动化 uilding Automation
在隧道两端进行协议包封装和拆装的网络设备称为 PAD,这种方式的缺点主要是缺少灵活性,网络配置 改变时,所有 PAD 的路由信息都必须修改,而且增加 BACnet 设备时比较困难,此外,每个 PAD 设备都要 创建和维护一个所有对等PAD的信息表,这在增减网 络时会带来很大的工作量。
Functio(n 功能)域表示该协议报文的协议功能。 该域为 1 个字节,定义了 12 种协议功能,用于对信 息传输的管理。
Length(长度)表示协议报文的总长度,其值为 报文头部(4 字节)和报文用户数据长度之和。
BVLL 是—个非常简洁的微型协议层,作用非常 巨大,一是对 BACnet 广播进行统一管理,二是提供 在 IP 网络上动态增加或减少 BACnet 设备的功能,三 是提供 BACnet 通信系统的扩展机制,允许向其他通 信协议扩展。
【摘 要】 BACnet 是开放的楼宇设备自 动控制网络数据通信协议。 随着Internet在通信领域的发 展,控制网络与Internet的互 联已是必然趋势。本文介绍 了 BACnet 的一种互联网扩展 协议 BACnet/IP,提出一种网 关模型,实现Internet上PAD设 备与 BACnet/IP设备的互联。
相关主题