DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議應(yīng)用實例
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ì)。
應(yīng)用實例
DLS10 是符合 DFP 協(xié)議的數(shù)據(jù)中繼設(shè)備, 自帶兩個 UART 接口和兩個 LoRA 無線接口,實現(xiàn)了 DFP 所有需求。即: DLS10 是符合 DFP 協(xié)議的具有兩個 UART 和兩個 LoRA 數(shù)字接口的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備。DLS10 的轉(zhuǎn)發(fā)前綴識別碼為: @#@#(0x40 0x23 0x40 0x23)DLS10 內(nèi)部預(yù)置有若干參數(shù)項(寄存器),用戶可修改這些參數(shù)以對 DLS10 進行數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)置,寄存器
定義如下。寄存器匯總表(讀/寫)
DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議寄存器
(3)端口數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則寄存器(目標(biāo)端口設(shè)置)
每個數(shù)字接口均有一個 xxxx_FWR(Forward Rule)寄存器用于設(shè)置此接口接收到數(shù)據(jù)后將數(shù)據(jù)轉(zhuǎn)發(fā)到哪個(或者哪幾個)數(shù)字接口。這個寄存器從低位向高位每兩位代表一個目標(biāo)端口, bit0/1 代表 UART-A, bit2/3代表 UART-B, bit4/5 代表 LoRA-A, bit6/7 代表 LoRA-B。每兩位中,低位表示是否從此接口輸出數(shù)據(jù)包,高位表示輸出數(shù)據(jù)時是否帶有轉(zhuǎn)發(fā)協(xié)議頭 FP(ForwardPrefix)。
數(shù)據(jù)轉(zhuǎn)發(fā)寄存器 xxxx_FWR
DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議
DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議
例如:
設(shè)置 UA_FWR=00010000B(0x10)表示 UART-A 收到數(shù)據(jù)后從 LoRA-A 轉(zhuǎn)發(fā)出去,轉(zhuǎn)發(fā)時不帶 FP。
設(shè)置 LA_FWR=00000001B(0x01)表示 LoRA-A 收到數(shù)據(jù)后從 UART-A 轉(zhuǎn)發(fā)出去,轉(zhuǎn)發(fā)時不帶 FP。
以下實例均以 DLS 默認參數(shù)為基礎(chǔ)。
實例 1.UART(RS232/RS485)、 LoRA 互轉(zhuǎn)本實例實現(xiàn)兩個 UART 設(shè)備之間的無線透明傳輸(代替 UART 之間的物理線路)。設(shè)備 I、設(shè)備 II 均為UART 接口
DFP 數(shù)據(jù)轉(zhuǎn)發(fā)協(xié)議接口
DLS(1#)參數(shù)設(shè)置:設(shè)置 UART-A 通訊參數(shù)與設(shè)備 I 一致。
DLS(2#)參數(shù)設(shè)置:設(shè)置 UART-B 通訊參數(shù)與設(shè)備 II 一致。
其它參數(shù)保持默認值,主要的幾個默認參數(shù)說明如下:(后續(xù)實例不再一一說明默認參數(shù))本實例僅使用了 DLS 設(shè)備的 UART-A 和 LoRA-A,默認參數(shù)時,這兩個端口在接收到數(shù)據(jù)相互轉(zhuǎn)發(fā),即: UARTA 接收到數(shù)據(jù)后從 LoRA-A 端口發(fā)送出去(期間會對轉(zhuǎn)發(fā)前綴做相應(yīng)的添加、修改、去除輸出等)。數(shù)據(jù)轉(zhuǎn)發(fā)過程描述如下:
設(shè)備 I 由 UART 發(fā)送:“123”(0x31 0x32 0x33)
DLS(1#)接收到 UART-A 數(shù)據(jù)“123” ,為其增加 FP,因參數(shù) UA_FWR=0x0010,故此 UART-A 接收到的數(shù)據(jù)轉(zhuǎn)發(fā)到 LoRA-A,轉(zhuǎn)發(fā)時不帶 FP,則經(jīng)由 DLS(1#) 的 LoRA-A 發(fā)出的數(shù)據(jù)內(nèi)容為:31 32 33
DLS(2#) 的 LoRA-A 接收到數(shù)據(jù)包 31 32 33,因為 LA_FWR=0x0001,故此數(shù)據(jù)轉(zhuǎn)發(fā)到 UART-A,轉(zhuǎn)發(fā)時不帶 FP, DLS(4#)的 UART-A 發(fā)送的內(nèi)容為:31 32 33,即設(shè)備 II 的 UART 接收到“123”。由設(shè)備 II 發(fā)送的數(shù)據(jù)傳輸至設(shè)備 I 的過程與以上過程完全相同,在此不再重復(fù)說明。
審核編輯:湯梓紅
-
數(shù)據(jù)轉(zhuǎn)發(fā)
+關(guān)注
關(guān)注
0文章
10瀏覽量
7195 -
DFP
+關(guān)注
關(guān)注
0文章
26瀏覽量
3841
發(fā)布評論請先 登錄
相關(guān)推薦
評論