DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議規(guī)則說明
掃描二維碼
隨時隨地手機看文章
DFP 是什么?
河北穩(wěn)控科技編寫的一套數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則, 取自“自由轉(zhuǎn)發(fā)協(xié)議 FFP(Free Forward Protocol)” ,或者 DFP(DoubleF Protocol), DF 也可以理解為 Datas Forward(數(shù)據(jù)轉(zhuǎn)發(fā))的縮寫。
DF 協(xié)議是與硬件接口無關的數(shù)據(jù)鏈路層協(xié)議,規(guī)定了數(shù)據(jù)流如何在不同設備之間、不同接口之間的傳輸方向。DF 協(xié)議一般用于延長數(shù)字接口的傳輸距離(數(shù)據(jù)中繼),它與硬件接口類型無關,可以基于 UART、 LoRA、TCP 等異步數(shù)據(jù)傳輸介質(zhì)。
DFP 設備基本特性
支持 DFP 協(xié)議的設備稱為 DFP 設備, DFP 設備都有至少兩個異步數(shù)字接口, 數(shù)字接口操作的最小數(shù)據(jù)單位為“數(shù)據(jù)包” 。
DFP 設備具有設置數(shù)據(jù)包的轉(zhuǎn)發(fā)方向的參數(shù),例如: A 端口接收到的數(shù)據(jù)包轉(zhuǎn)發(fā)到哪個端口。
DFP 設備具有設置數(shù)據(jù)包轉(zhuǎn)發(fā)時是否帶有協(xié)議頭,例如:向 B 端口轉(zhuǎn)發(fā)時是否為數(shù)據(jù)附加協(xié)議頭。
DFP 設備可以識別接收到的數(shù)據(jù)包是否帶有 DFP 協(xié)議頭,并為沒有 DFP 協(xié)議頭的數(shù)據(jù)包自動添加協(xié)議頭。
DFP 協(xié)議規(guī)則
數(shù)據(jù)包結構不同的 DFP 設備之間使用特定結構的數(shù)據(jù)包來完成數(shù)據(jù)的定向轉(zhuǎn)發(fā)傳輸,一個完整的 DFP 數(shù)據(jù)包由數(shù)據(jù)轉(zhuǎn)發(fā)前綴和要轉(zhuǎn)發(fā)的數(shù)據(jù)兩部分構成。數(shù)據(jù)內(nèi)容稱為“干數(shù)據(jù)” ,帶有轉(zhuǎn)發(fā)前綴的數(shù)據(jù)稱為“濕數(shù)據(jù)” 。
數(shù)據(jù)前綴屬性說明
FP 識別碼: 4 字節(jié) FP 識別信息,默認為@#@#。 只要以識別信息為開始的數(shù)據(jù)包均被認為是 FP。群組 ID: 數(shù)據(jù)包所屬于群組編碼,只有與 DFP 設備所屬群組相同的數(shù)據(jù)包才會被轉(zhuǎn)發(fā)。
起始地址:數(shù)據(jù)包由哪臺設備發(fā)出。
目標地址: 數(shù)據(jù)包最終的目的設備地址。
轉(zhuǎn)發(fā)次數(shù):數(shù)據(jù)包已經(jīng)經(jīng)過了幾次轉(zhuǎn)發(fā)(已經(jīng) n 次)。
轉(zhuǎn)發(fā)路徑:長度 n 字節(jié),每個字節(jié)依次保存了本條數(shù)據(jù)每次被轉(zhuǎn)發(fā)時的設備地址值。
校驗和:前面所有數(shù)據(jù)的和校驗值。
數(shù)據(jù)包長度:協(xié)議前綴之后的數(shù)據(jù)包字節(jié)數(shù)(即:干數(shù)據(jù)的長度)。
例: 16 進制數(shù)據(jù)包(濕數(shù)據(jù)) 40 23 40 23 02 81 85 02 81 82 D3 03 31 32 3340 23 40 23:協(xié)議前綴識別碼@#@#02:本包數(shù)據(jù)最后一次被發(fā)送時使用的群組 ID 為 02。81:本包數(shù)據(jù)的發(fā)起設備地址為 0x81。85:本包數(shù)據(jù)是發(fā)送的終點是設備 0x85。02:本包數(shù)據(jù)已經(jīng)被轉(zhuǎn)發(fā)了 02 次。81 82:本包數(shù)據(jù)第一次由設備 0x81 轉(zhuǎn)發(fā),第二次(最近一次)是被設備 0x82 轉(zhuǎn)發(fā)出來的。D3:之前所有字節(jié)的和校驗。03:本包數(shù)據(jù)實際內(nèi)容為 03 個字節(jié)。31 32 33:本包數(shù)據(jù)實際內(nèi)容為 0x31 0x32 0x33。
數(shù)據(jù)有效域
是指數(shù)據(jù)包在發(fā)送時可以接收到數(shù)據(jù)的所有 DFP 設備端口。
例如:某種設備具有 3 個 LoRA 端口,每個 LoRA 端口可以配置為不同的頻率(如: 433MHz、 435MHz 等),當通過某個 LoRA 端口發(fā)出數(shù)據(jù)時,所有與它同頻的其它設備的 LoRA 端口均可接收到數(shù)據(jù),而不同頻的 LoRA端口不會接收到數(shù)據(jù)。能夠接收到數(shù)據(jù)的所有區(qū)域稱之為“同數(shù)據(jù)域” , 也稱為“同一區(qū)域” 。(注意,這里所說的“區(qū)域” 與地理中的“區(qū)域” 的含意不同)。