- BACnet标准与楼宇自控系统技术
- 张少军
- 1766字
- 2020-11-21 15:52:12
4.2 BACnet网络层服务与PDU结构
4.2.1 BACnet网络层服务
1.BACnet网络层实现数据交互服务原语
BACnet网络层向应用层提供的服务是不确认的无连接形式的数据单元传送服务,而应用层定义了可靠性传输的“证实服务”,这就避免了功能重复,简化了网络层的报文处理过程,网络层所有服务均为“无证实服务”类型。
与网络层实现数据交互相关的原语是N-UNITDATA请求和指示,原语及参数如下:
N-UNITDATA.request(destination address,data,network priority,data expecting reply)
N-UNITDATA.indication(source address,destination address,data,network priority,data expecting reply)
N-UNITDATA.request:网络层服务请求原语
Destination addres:目的地址,是可选项
Data:由应用层协议数据单元(APDU)组成
network priority:网络优先权
data expecting reply:数据回复标志
N-UNITDATA.indication:网络层服务指示原语
soruce address:源地址
2.“目标地址”和“源地址”的组成
网络层实现数据交互相关的原语中有“目标地址”和“源地址”参数。“目标地址”和“源地址”均包括3个组成部分:网络号、MAC地址和链路服务访问点。
(1)网络号
每一个BACnet子网络都有一个惟一的16位无符号整数标识符作为该BACnet子网的网络号,取值范围为1~65534,0为保留值,65535(X’FFFF’)专用于进行全局广播传输报文时的信宿节点地址。两个或多个BACnet子网络通过路由器互联构成BACnet互联网。BACnet子网络内部的数据通信既不需要使用路由器,也不需要使用网络号,即报文进行本地广播时,已省略网络号。
(2)适合于下层局域网技术的MAC地址
BACnet网络层下面可以连接各种不同的局域网,而不同的局域网又有彼此不同的物理地址(MAC地址)表示方法。如某以太网中的工作站MAC地址00-E0-4C-54-54-E9,某楼控系统中的MS/TP网络中使用的MAC地址仅用1B表示。
(3)链路服务访问点
链接服务访问点用于网络层实体(NE)DLUNITDATA.request请求。
网络号码X‘FFFF’表示此报文广播到目前能够到达的所有网络的所有设备。目前能够到达的网络是指那些在BACnet互联网中已经具有一条有效连接的网络。“数据”参数是从应用层传递过来的NSDU,其中包含一个完全编码的BACnet APDU。“网络优先级”参数是一个数字值,由BACnet路由器中的网络层用来确定任何可能的优先于先进先出排队等待规则的情况。“data expecting_reply”参数指出对于正在传送的数据单元是否期待有一个应答的数据单元。
当网络层从应用层收到一个N-UNITDATA.request请求原语后,就用网络层规范所表述的方式产生并发送一个NSDU。当一个BACnet网络实体收到另一个BACnet网络实体发来的NSDU后,处理过程如下:
1)如果信源节点和信宿节点中间有一个直接连接的网络,则直接将NSDU发送到目的地。
2)信源节点和信宿节点中间没有直接连接的网络,这是要将NSDU发送到下一个BACnet路由器后再路由到目的地。
3)如果NSDU的地址与它自己的应用层中的某个实体的地址匹配,则向这个实体发送一个N-UNITDATA.indication原语,通知有一个NSDU到达。
4.2.2 BACnet网络层PDU结构
1.BACnet网络层协议数据单元结构
BACnet网络层采用了与应用层不同的方式,只定义了NPDU报文,为了实现不同功能的网络层服务,通过报文头部PCI编码区的给定标识信息进行功能控制和管理。BACnet NPDU的组成结构以及报文头部PCI编码区的控制管理功能标识域如图4-3所示。
2.协议版本号
每个NPDU的第一个字节是一个无符号整数,标识BACnet协议的版本号。目前的BACnet协议的版本号是1。
3.NPDU中的控制字段
NPDU的第二个字节是控制字段,该字段的作用是区分服务的类型和功能,8bit中的每一位布尔值用来表示不同的功能,控制字节中每个位标识的作用见表4-2。
图4-3 BACnet NPDU结构
4.特殊域的内容
1)DNET:信宿节点网络号,2B。
2)DLEN:信宿节点的MAC层地址的长度,1B,0表示对目标网络的广播。
3)DADR:信宿节点的MAC层地址。
4)SNET:信源节点网络号,2B。
5)SLEN:信源节点MAC层地址的长度,1B。
表4-2 控制字段中每个位标识的作用
6)SADR:信源节点的MAC层地址。
7)Hop Count:递减计数器值,1B,初始化为X‘FF’。用于记录报文经过BACnet路由器的次数。报文每经过一个BACnet路由器,该域的数值就减1。当该值为0时,则丢弃这个报文,不再向下一个路由器转发。
5.网络层报文类型(Message Type)
如果控制域字节中的第7位为1,表示此报文是一个网络层报文,其报文类型域存在。这是个1B的域,其内容表示报文携带的各种网络层的控制信息。
6.NUD(网络层数据部分)
NPDU中网络层数据部分NUD域的内容和长度取决于报文的类别。当网络层报文为传送AP-DU报文时,该域必须进行标识。如果报文是网络层协议控制和管理报文,NUD域内容和长度由报文的类型(Message Type)确定。
如果信源节点和信宿节点同在一个BACnet子网内进行数据通信,NPDU中与地址有关的域均可以默认。如果信源节点和信宿节点不在同在一个BACnet子网内,NPDU报文经过一个或多个BACnet路由器转发报文,涉及源地址的相关域较为复杂。