DFP 数据转发协议应用实例
DFP 是什么?
稳控科技编写的一套数据转发规则, 取自“自由转发协议 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF Protocol), DF 也可以理解为 Datas Forward(数据转发)的缩写。DF 协议是与硬件接口无关的数据链路层协议,规定了数据流如何在不同设备之间、不同接口之间的传输方向。
DF 协议一般用于延长数字接口的传输距离(数据中继),它与硬件接口类型无关,可以基于 UART、 LoRA、TCP 等异步数据传输介质。
应用实例
DLS10 是符合 DFP 协议的数据中继设备, 自带两个 UART 接口和两个 LoRA 无线接口,实现了 DFP 所有需求。即: DLS10 是符合 DFP 协议的具有两个 UART 和两个 LoRA 数字接口的数据转发设备。DLS10 的转发前缀识别码为: @#@#(0x40 0x23 0x40 0x23)DLS10 内部预置有若干参数项(寄存器),用户可修改这些参数以对 DLS10 进行数据转发设置,寄存器
定义如下。寄存器汇总表(读/写)
(3)端口数据转发规则寄存器(目标端口设置)
每个数字接口均有一个 xxxx_FWR(Forward Rule)寄存器用于设置此接口接收到数据后将数据转发到哪个(或者哪几个)数字接口。这个寄存器从低位向高位每两位代表一个目标端口, bit0/1 代表 UART-A, bit2/3代表 UART-B, bit4/5 代表 LoRA-A, bit6/7 代表 LoRA-B。每两位中,低位表示是否从此接口输出数据包,高位表示输出数据时是否带有转发协议头 FP(ForwardPrefix)。
数据转发寄存器 xxxx_FWR
例如:
设置 UA_FWR=00010000B(0x10)表示 UART-A 收到数据后从 LoRA-A 转发出去,转发时不带 FP。
设置 LA_FWR=00000001B(0x01)表示 LoRA-A 收到数据后从 UART-A 转发出去,转发时不带 FP。
以下实例均以 DLS 默认参数为基础。
实例 1.UART(RS232/RS485)、 LoRA 互转本实例实现两个 UART 设备之间的无线透明传输(代替 UART 之间的物理线路)。设备 I、设备 II 均为UART 接口
DLS(1#)参数设置:设置 UART-A 通讯参数与设备 I 一致。
DLS(2#)参数设置:设置 UART-B 通讯参数与设备 II 一致。
其它参数保持默认值,主要的几个默认参数说明如下:(后续实例不再一一说明默认参数)本实例仅使用了 DLS 设备的 UART-A 和 LoRA-A,默认参数时,这两个端口在接收到数据相互转发,即: UARTA 接收到数据后从 LoRA-A 端口发送出去(期间会对转发前缀做相应的添加、修改、去除输出等)。数据转发过程描述如下:
设备 I 由 UART 发送:“123”(0x31 0x32 0x33)
DLS(1#)接收到 UART-A 数据“123” ,为其增加 FP,因参数 UA_FWR=0x0010,故此 UART-A 接收到的数据转发到 LoRA-A,转发时不带 FP,则经由 DLS(1#) 的 LoRA-A 发出的数据内容为:31 32 33
DLS(2#) 的 LoRA-A 接收到数据包 31 32 33,因为 LA_FWR=0x0001,故此数据转发到 UART-A,转发时不带 FP, DLS(4#)的 UART-A 发送的内容为:31 32 33,即设备 II 的 UART 接收到“123”。由设备 II 发送的数据传输至设备 I 的过程与以上过程完全相同,在此不再重复说明。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。