首页 理论教育BACnet标准:BBMD和FD详解

BACnet标准:BBMD和FD详解

【摘要】:所有参与BACnet/IP广播活动的FD必须向BACnet/IP网络的某个BBMD进行注册,经过注册在BBMD处建立相应的FDT。其中,6B用来表示BBMD的BACnet/IP地址,4B用于表示广播路由掩码。BBVL协议要求BACnet/IP网络中所有BBMD的BDT均应相同。IP子网B中的BBMD不再进行广播式发送,仅仅单独向注册过的FD转发广播报文。

1.BBMD和FD的广播通信

BVLL协议定义和使用了“注册”机制,通过这种机制使FD参与BACnet/IP网络的广播通信。在BACnet/IP网络中,BBMD是BVLL协议定义的关键设备,BVLL协议规定,BACnet/IP网络的每个IP子网有且仅有一个BBMD,用于注册外部BACnet设备,并实现BACnet广播机制,使BACnet/IP网络中的所有BACnet设备均可以进行BACnet广播,BBMD通过广播路由表(Broadcast Distribution Table,BDT)管理BACnet/IP广播,通过外部设备表(Foreign Device Ta-ble,FDT)实现对外部设备的注册和广播。

BBMD在进行读数据值、传输文件或者其他的设备之间进行通信时,可以在IP中直接传输报文。但IP网络本身并不支持BACnet类型的广播,BACnet/IP提供了2个在IP网络中进行BACnet广播的方法。第一个称为组播(multicast),第二个称为BACnet/IP广播管理设备。组播是一种特殊类型的广播,它标明了那些接收报文的设备。一个组播报文有一个特殊形式的目标地址,称为组播地址。组播报文通过IP网络传输,只有被标明组播地址的设备才能够接收和处理组播报文。

所有参与BACnet/IP广播活动的FD必须向BACnet/IP网络的某个BBMD进行注册,经过注册在BBMD处建立相应的FDT。当BACnet/IP网络进行广播通信时,注册的BBMD用单播方式向FD发送广播信息,如图5-14所示。而当FD向BACnet/IP网络进行反向广播时,FD将发送的广播报文用单播方式首先发送给进行注册的BBMD,这里的BBMD担当着FD管理者的角色,再由该BBMD完成其他的BACnet/IP网络广播,如图5-15所示。

978-7-111-38144-0-Chapter05-19.jpg

图5-14 BBMD用单播的方式向外部设备发送广播信息

每个包含有若干个BACnet/IP设备的子网都必须有一个BBMD。一个IP子网中的BAC-net/IP设备如果要向另一个IP子网(目标IP子网)发送一个BACnet广播报文,发送报文的BACnet/IP设备首先将报文传送给设备所在IP子网中的BBMD,再由BBMD将报文通过IP网络传送到目标IP子网,当这些BACnet广播报文到达目标子网后,再用广播方式发送给子网内的其他BACnet/IP设备。

BBMD可以使用两种方法将一个BACnet报文广播传送给另一个远程IP子网,第一种方法叫直接广播方法(也称为一跳法),另一种方法是二跳法。在直接广播方法中,BACnet广播报文有一个目标IP子网地址,通过IP路由器向该目标IP子网广播发送报文。如果负责向接收报文的目标IP子网转送报文的IP路由器不具备广播功能,就要使用二跳法:首先将报文广播发送到目标IP子网中的对等BBMD中,然后再由这个BBMD在目标IP子网中广播发送。

978-7-111-38144-0-Chapter05-20.jpg

图5-15 FD向远程IP子网广播发送报文

2.BBMD和BDT

BVLL协议的主要功能是实现两大类BACnet广播管理,第一类是对BACnet/IP网络中所有IP子网进行广播通信的管理,第二类是对FD向BACnet/IP网络中的目标IP子网中的其他BACnet/IP设备进行广播通信的管理。

要实现对IP子网广播的管理,就必须在每个IP子网上配置一个BBMD并设置相应的BDT;要实现对FD广播的管理,就必须提供FD注册功能,并设置对应的FDT。

BDT由BACnet/IP网络的所有子网表项组成,每个IP子网表项有10B。其中,6B用来表示BBMD的BACnet/IP地址,4B用于表示广播路由掩码。广播路由掩码的形式和作用相当于IP中的IP子网掩码,可以用来选择和判断IP子网的广播方式(“一跳”方式或“二跳”方式)。BBVL协议要求BACnet/IP网络中所有BBMD的BDT均应相同。

IP路由器支持“一跳”广播方式的报文传输情况如图5-16所示。在图5-16中,设定IP子网B中的IP路由器具备广播功能,IP子网A中1#BACnet设备向IP子网B中的所有BACnet设备发送广播报文的过程如下:首先将报文送给子网内的BBMD,再由该BBMD将报文转发给IP子网A的IP路由器(2#IP路由器),报文通过互联网到达具备广播功能的IP子网B的IP路由器(3#IP路由器),3#IP路由器将报文广播发送到IP子网A中的所有BACnet设备。IP子网B中的BBMD不再进行广播式发送,仅仅单独向注册过的FD转发广播报文。

978-7-111-38144-0-Chapter05-21.jpg

图5-16 IP路由器支持“一跳”广播方式的报文传输

当IP子网的IP路由器不支持广播方式通信的情况下,采用“两跳式”广播方式向IP子网内的BACnet设备广播发送报文的情况如图5-17所示。在图5-17中,1#设备是向外广播发送报文,首先经过IP子网A的BBMD,再由该BBMD将报文送给本子网内的IP路由器转发到互联网上,报文到达目标IP子网B后,由于IP路由器不支持广播方式通信,因此还需将报文转发到子网B中的BBMD,由BBMD通过广播方式将报文传送给IP子网内的所有BACnet设备。

978-7-111-38144-0-Chapter05-22.jpg

图5-17 “两跳式”广播方式向IP子网内的BACnet设备广播发送报文

某IP子网中的BBMD要向其他IP子网传送广播报文时,首先根据目标IP子网在BDT中的表项内容,计算广播报文的目标地址,再确定是采用一跳法还是二跳法。确定广播报文目标地址的方法是:将目标IP子网掩码,再和其BACnet/IP地址进行逻辑或运算,这种情况和通常由子网掩码与IP地址进行以上运算来确定网络号、子网号以及主机号的情况是类似的,当计算结果中的主机地址全为1时,BBMD采用一跳法,否则采用二跳法传送广播报文。不过这里要注意区别:通常网络中进行子网划分时,主机地址一般不能由全1或全0的码元序列组成。当计算得到的主机地址全为1时,表示目标IP子网中的IP路由器是支持广播方式工作的。举例如下:在某IP子网中的BBMD要向一个IP子网转发广播报文,目标IP子网在BDT中IP子网项的BBMD BACnet/IP地址为202.11.0.3.218,子网项掩码是255.255.255.0,采用上述的映射运算:

目标IP子网广播路由掩码:11111111 11111111 11111111 00000000

BACnet/IP地址:978-7-111-38144-0-Chapter05-23.jpg

目标IP子网广播路由掩码取反:

00000000 00000000 00000000 11111111

目标IP子网广播路由掩码取反后再与BACnet/IP地址取“或”:

978-7-111-38144-0-Chapter05-24.jpg

得到广播报文的目标地址是202.114.3.255,主机地址全为1,说明目标IP子网中的IP路由器支持广播方式,可以确定采用一跳法传送报文。

3.FD和FDT

FD与BBMD之间定义和建立了一种互操作机制,就是FD向BBMD进行注册,然后BBMD就具备对FD进行广播通信的管理功能。一个FD只向某一个BBMD进行一次注册即可,注册完毕后,就构成了一对一的注册、管理关系。

用于登记注册FD的表格项就是FDT。当某一个FD向某一个BBMD注册时,就在该BBMD的FDT增加项记录。FDT每项记录大小10B,其中6B用来表示进行注册的FD的BACnet/IP地址,2B表示FD注册的有效时限,还有2B用于表示FD注册有效的剩余时间。