自学内容网 自学内容网

BACnet-NPDU(4)

前面抓取了BACnet 的UDP和RS485数据进行分析,现在做一下总结。
BACnet不管是走UDP还是RS485,里面的NPDU和APDU数据结构是一样的,只是BACnet的头不一样,这里做一下总结。


1、UDP的BACnet 头

 BACnet/IP 使用 UDP 协议进行数据传输,采用客户端-服务器通信方式,设备通常充当服务器,默认端口为 47808(0xBAC0)。BACnet/IP 数据包主要由不可变部分和可变部分组成。不可变部分由 BVLC 类型、BVLC 功能和长度组成,而可变部分则根据 BVLC 功能而变化。BACnet/IP 数据包的结构如下图所示:

基本报文类型包括Original-Unicast-NPDU(单播)、Original-Broadcast-NPDU(广播)、Forwarded-NPDU(转发),具体格式如下图所示:

Original-Unicast-NPDU(单播)

Original-Broadcast-NPDU(广播)

Forwarded-NPDU(转发)

2、RS485的BACnet 头

帧格式

例如数据(hex):55 FF 01 03 02 00 00 D7 

0x550xff0x010x030x020x000x000xD7BACnet数据BACnet数据CRC
帧头帧类型目的地址源地址BACnet数据长度,大端CRC

帧类型目前定义为 0-7,8-127 为 ASHRAE 保留。帧类型 128-255 可供供应商用于非 BACnet 帧,数据的前两个字节表示供应商标识符。

当前定义的帧为

令牌 (0)、

主站轮询 (1)、

主站轮询回复 (2)、

测试请求 (3)、

测试响应 (4)、

BACnet 数据等待回复 (5)、

BACnet 数据不等待回复 (6)

回复推迟 (7)。


目标站地址可以是 0-127(用于发送到主节点)、0-254(用于发送到从属节点)和 255(用于向所有节点广播)

3、NDPU

npdu数据结构如下:

Control 字节解释

BitDescriptionIf 1If 0
7APDUNPDU  传递网络层消息NPDU 包含 BACnet APDU
6ReservedReservedReserved
5Destination Specifier包含DNET DLEN DADR 不包含DNET DLEN DADR 
4ReservedReservedReserved
3Source Specifier包含SNET SLEN SADR 不包含SNET SLEN SADR 
2Expecting reply等待回复不用回复
1,0Priority11=生命安全,10=关键设备,01=紧急 00=正常


原文地址:https://blog.csdn.net/fuluoce/article/details/142514248

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!