博客專欄

EEPW首頁 > 博客 > DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議 規(guī)則說明(二)

DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議 規(guī)則說明(二)

發(fā)布人:河北穩(wěn)控科技 時(shí)間:2022-09-17 來源:工程師 發(fā)布文章

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é)議是與硬件接口無關(guān)的數(shù)據(jù)鏈路層協(xié)議,規(guī)定了數(shù)據(jù)流如何在不同設(shè)備之間、不同接口之間的傳輸方向。

DF 協(xié)議一般用于延長數(shù)字接口的傳輸距離(數(shù)據(jù)中繼),它與硬件接口類型無關(guān),可以基于 UART、 LoRA、TCP 等異步數(shù)據(jù)傳輸介質(zhì)。

LoRA轉(zhuǎn)4G網(wǎng)關(guān)中繼器接收器DLS11  43.png

數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則

(1) 處于同一區(qū)域內(nèi)的每臺(tái)設(shè)備均有唯一的地址(同一區(qū)域不得有相同地址的的設(shè)備)。合法的設(shè)備地址為0x01~0xFE。 0xFF 等效于任意地址值, 0x00 等效于不存在的地址值。

(2)每臺(tái)設(shè)備均有多個(gè)數(shù)字接口(如: UART、 LoRA 等),各端口均有獨(dú)立的通訊參數(shù)(不同參數(shù)可形成不同的數(shù)據(jù)區(qū)域)。每臺(tái)設(shè)備均有與數(shù)字接口對(duì)應(yīng)數(shù)量的群組 ID 碼(GroupA_ID/GroupB_ID 等)。

(3)被傳輸?shù)臄?shù)據(jù)包均帶有協(xié)議前綴 FP(ForwardPrefix), FP 包含有數(shù)據(jù)包的發(fā)送起始設(shè)備地址、數(shù)據(jù)包目的設(shè)備地址、數(shù)據(jù)包群組 ID、數(shù)據(jù)包轉(zhuǎn)發(fā)路徑記錄等信息。

(4) 當(dāng) DFP 設(shè)備通過某個(gè)數(shù)字接口接收到無 FP 的數(shù)據(jù)包(干數(shù)據(jù)) 時(shí)會(huì)自動(dòng)為其添加。添加規(guī)則為:群組號(hào)=接收到數(shù)據(jù)的端口對(duì)應(yīng)的群組 ID 號(hào)(接收數(shù)據(jù)的端口為 xxxxA 時(shí)為 GAID,接收數(shù)據(jù)的端口為 xxxxB 時(shí)為 GBID)。

起始設(shè)備地址=0xFF。 目標(biāo)設(shè)備地址=0xFF。

注:其它設(shè)備使用 LoRA 發(fā)來的數(shù)據(jù)包僅可被 NLM5 的 LORA-A 接收到。

NLM511T無線無源傳感采發(fā)儀中繼采發(fā)儀.jpg

(5) 無論哪個(gè)數(shù)字接口,當(dāng)接收到數(shù)據(jù)包后會(huì)判斷 FP 中的群組 ID 是否與自身的兩個(gè)群組 ID 之一相同(匹配),若不同則丟棄處理,若相同則會(huì)首先判斷數(shù)據(jù)包是否是用于自身的指令,若是則執(zhí)行指令然后丟棄數(shù)據(jù)包,若不是則按照轉(zhuǎn)發(fā)規(guī)則對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。

數(shù)據(jù)包轉(zhuǎn)發(fā)規(guī)則為:每個(gè)數(shù)字接口均可指定在收到數(shù)據(jù)后將數(shù)據(jù)轉(zhuǎn)發(fā)到哪個(gè)(或者哪幾個(gè))數(shù)字端口以及是否輸出數(shù)據(jù)時(shí)帶有 FP。轉(zhuǎn)發(fā)數(shù)據(jù)前會(huì)根據(jù)數(shù)據(jù)輸出的端口自動(dòng)更新 FP 中的群組 ID 值。

(6)當(dāng)接收到的數(shù)據(jù)包 FP 中的目的地址與本設(shè)備地址相同時(shí),在轉(zhuǎn)發(fā)前會(huì)修改 FP 中的目標(biāo)設(shè)備地址為0x00。其它設(shè)備在接收到數(shù)據(jù)包后會(huì)判斷 FP 中的目的地址是否為 0x00,是則立即丟棄數(shù)據(jù)包(即:數(shù)據(jù)包轉(zhuǎn)發(fā)終止)。

(7)數(shù)據(jù)映射

DFP 設(shè)備用一個(gè)參數(shù)來啟用或者禁止數(shù)據(jù)映射,參數(shù)作用說明如下:當(dāng)某臺(tái) DFP 設(shè)備的多個(gè)數(shù)字接口處于同一數(shù)據(jù)區(qū)域時(shí),會(huì)同時(shí)接收到數(shù)據(jù)包,按照上述規(guī)則,若數(shù)據(jù)映射參數(shù)為未啟用狀態(tài)時(shí),每個(gè)端口均為按照預(yù)設(shè)轉(zhuǎn)發(fā)規(guī)則和轉(zhuǎn)發(fā)方向進(jìn)行數(shù)據(jù)處理和轉(zhuǎn)發(fā)。若數(shù)據(jù)映射參數(shù)為啟動(dòng)狀態(tài)時(shí), DFP 設(shè)備會(huì)進(jìn)行如下處理:檢查數(shù)據(jù)包是否帶有正確的 FP 前導(dǎo)符號(hào)(默認(rèn)為“@#@#” )

有:繼續(xù)檢查 FP 中的群組碼是否適用于本設(shè)備

是:則將數(shù)據(jù)包映射到與群組號(hào)對(duì)應(yīng)的 LoRA-x。

否:維持現(xiàn)狀(不進(jìn)行映射處理)。

無: 將接收到的 LoRA 數(shù)據(jù)包映射到 LoRA-A。

無線自動(dòng)化采集系統(tǒng).png

LoRA 接收到的數(shù)據(jù)映射的意思是:無論 LoRA 數(shù)據(jù)包是由 LoRA-A 或者 LoRA-B 接收到的, 強(qiáng)制的將接收到的數(shù)據(jù)包按照上述規(guī)則更新到 LoRA-A 或者 LoRA-B 的接收緩存,然后進(jìn)一步按照數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則處理。

DFP 協(xié)議的數(shù)據(jù)映射功能以上述數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則,可以實(shí)現(xiàn)單線型、樹杈型、十字交叉型數(shù)據(jù)傳輸網(wǎng)絡(luò)。


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)



相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉