DFP 数据转发协议规则说明
DFP 数据转发协议规则说明
DFP 是什么?
稳控科技编写的一套数据转发规则, 取自“自由转发协议 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF 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 3340 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端口不会接收到数据。能够接收到数据的所有区域称之为“同数据域” , 也称为“同一区域” 。(注意,这里所说的“区域” 与地理中的“区域” 的含意不同)。