DFP 数据转发协议规则说明
DFP 是什么?
河北稳控科技编写的一套数据转发规则,取自“自由转发协议 FFP(Free Forward Protocol)”,或者 DFP(Double F Protocol),DF 也可以理解为 Datas Forward(数据转发)的缩写。
DF 协议是与硬件接口无关的数据链路层协议,规定了数据流如何在不同设备之间、不同接口之间的传输方向。
DF 协议一般用于延长数字接口的传输距离(数据中继),它与硬件接口类型无关,可以基于 UART、LoRA、TCP 等异步数据传输介质。
DFP 设备基本特性
支持 DFP 协议的设备称为 DFP 设备,DFP 设备都有至少两个异步数字接口,数字接口操作的最小数据单位为“数据包”。
DFP 设备具有设置数据包的转发方向的参数,例如:A 端口接收到的数据包转发到哪个端口。
DFP 设备具有设置数据包转发时是否带有协议头,例如:向 B 端口转发时是否为数据附加协议头。
DFP 设备可以识别接收到的数据包是否带有 DFP 协议头,并为没有 DFP 协议头的数据包自动添加协议头。
DFP 协议规则
数据包结构
不同的 DFP 设备之间使用特定结构的数据包来完成数据的定向转发传输,一个完整的 DFP 数据包由数
据转发前缀和要转发的数据两部分构成。数据内容称为“干数据”,带有转发前缀的数据称为“湿数据”。
数据前缀属性说明
FP 识别码:4 字节 FP 识别信息,默认为@#@#。只要以识别信息为开始的数据包均被认为是 FP。
群组 ID:数据包所属于群组编码,只有与 DFP 设备所属群组相同的数据包才会被转发。
起始地址:数据包由哪台设备发出。
目标地址:数据包最终的目的设备地址。
转发次数:数据包已经经过了几次转发(已经 n 次)。
转发路径:长度 n 字节,每个字节依次保存了本条数据每次被转发时的设备地址值。
校验和:前面所有数据的和校验值。
数据包长度:协议前缀之后的数据包字节数(即:干数据的长度)。
例:16 进制数据包(湿数据)40 23 40 23 02 81 85 02 81 82 D3 03 31 32 33
40 23 40 23:协议前缀识别码@#@#
02:本包数据最后一次被发送时使用的群组 ID 为 02。 81:本包数据的发起设备地址为 0x81。 85:本包数据是发送的终点是设备 0x85。 02:本包数据已经被转发了 02 次。
81 82:本包数据第一次由设备 0x81 转发,第二次(最近一次)是被设备 0x82 转发出来的。
D3:之前所有字节的和校验。
03:本包数据实际内容为 03 个字节。
31 32 33:本包数据实际内容为 0x31 0x32 0x33。
数据有效域
是指数据包在发送时可以接收到数据的所有 DFP 设备端口。
例如:某种设备具有 3 个 LoRA 端口,每个 LoRA 端口可以配置为不同的频率(如:433MHz、435MHz 等),当通过某个 LoRA 端口发出数据时,所有与它同频的其它设备的 LoRA 端口均可接收到数据,而不同频的 LoRA端口不会接收到数据。能够接收到数据的所有区域称之为“同数据域”,也称为“同一区域”。(注意,这里所说的“区域”与地理中的“区域”的含意不同)。