当前位置: 首页 > news >正文

DFP 数据转发协议规则说明

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端口不会接收到数据。能够接收到数据的所有区域称之为“同数据域”,也称为“同一区域”。(注意,这里所说的“区域”与地理中的“区域”的含意不同)。

相关文章:

  • Qt开发经验小技巧246-250
  • 《算法导论》第14章-数据结构的扩张 14.1-动态顺序统计 14.2-如何扩张数据结构
  • 前端面试丨综合整理中高级前端最新面试题
  • 大端与小端
  • GBase 8c 数据库内置角色
  • 无需训练、APP可玩,商品、车辆、菜品20+场景一键识别
  • 【Linux 基础笔记】(一)
  • Notion + CloudFlare + 域名搭建网站
  • 自媒体平台上剪视频的素材都是从哪来的?
  • 图像识别与处理学习笔记(四)贝叶斯决策和概率密度估计
  • SQL映射XML文件
  • 基于JavaSwing开发汉诺塔游戏 将盘子从A塔搬运B塔和C塔(自动演示 重新开始) 课程设计 大作业
  • JAVA毕业设计宠物销售网站计算机源码+lw文档+系统+调试部署+数据库
  • Sql中常见的刁钻写法(心得记录)
  • Go sync.Map探究
  • eclipse(luna)创建web工程
  • EventListener原理
  • Flannel解读
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript对象详解
  • js写一个简单的选项卡
  • Objective-C 中关联引用的概念
  • PHP 小技巧
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • uva 10370 Above Average
  • Vue2.0 实现互斥
  • Vue学习第二天
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 盘点那些不知名却常用的 Git 操作
  • 区块链技术特点之去中心化特性
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 阿里云重庆大学大数据训练营落地分享
  • #define 用法
  • #pragma预处理命令
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (16)Reactor的测试——响应式Spring的道法术器
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (TOJ2804)Even? Odd?
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(一):@echo off
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net IE10 _doPostBack 未定义
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net6 webapi log4net完整配置使用流程
  • .NetCore项目nginx发布