?

一種基于FPGA的網絡串口管理系統的設計

2019-03-10 03:17胡文斌
雷達與對抗 2019年4期
關鍵詞:時間段串口報文

陳 晨,饒 卿,胡文斌

(中國船舶重工集團公司第七二四研究所,南京 211153)

0 引 言

在雷達系統中網絡串口是系統內部各設備間傳遞控制命令、狀態參數及接收信號的主要方式,需要構建以交換機為中心的雷達系統內部信息交換網絡。雷達在執行各項功能任務時由雷達終端通過網絡串口向系統各信息處理單元發送命令報文,各單元依據接收到的命令報文執行各項操作,同時向雷達終端反饋執行結果和設備狀態參數。因此,信息傳輸的穩定性直接影響雷達系統各項功能任務的可靠實現。

某型號雷達系統內部通信網絡系統由雷達終端計算機、網絡交換機以及前端設備配置的多路輸入輸出板(MIO)組成,實現雷達終端與前端設備之間的通信。原設計采用報文即收即回的方式,由于網絡發送報文速度快,而串口發送報文則需要一定時間。在實際應用中,當終端臺發送的相鄰兩個報文之間間隔時間過短時,在串口處會出現第1條報文尚未回復完即需回復下一條報文的情況,從而導致串口在同一時間發送兩條報文、出現相互干擾的問題,嚴重影響了系統工作的穩定性。本文通過深入分析該問題的產生機理,針對問題根源,合理利用系統原有硬件資源,通過對各信息處理單元MIO板內部軟件進行更改,設計了一種網絡串口管理系統。該系統有效解決了報文沖突的問題,實現了雷達系統內部高可靠、高靈活度的報文通信。

1 系統工作原理及問題機理分析

1.1 系統硬件組成及工作原理

在雷達內部,用于報文傳遞的通信系統主要由3部分組成:雷達終端、交換機和雷達前端。雷達終端發出報文經交換機傳送給前端,由前端內的MIO板處理。

多路輸入輸出板(簡稱MIO板)主要用于報文的接收處理。板上主要搭載有1塊FPGA和1塊USR-TCP232-ED2網口模塊。FPGA采用Xilinx公司的xc2s200,用于解碼及串并轉換等數據處理。網口模塊搭載ARM處理器,用來將TCP/UDP數據包通過S232/RS485接口實現數據透明傳輸。

在系統的普通工作方式下,局域網以交換機為中心連接終端和前端。在每個前端內都配有1塊MIO板。每塊MIO板有不同的IP地址。終端發送的報文經交換機發送到MIO板,由網口模塊接收后經網絡串口轉換進行解碼、報文識別,并校驗無誤后根據收到的報文類型進行處理:(1)將狀態或故障信息回復終端,(2)根據解出的報文內容執行相關操作。

在某種型號產品的實際要求中,要求MIO板串口進行兩種報文通信串口不僅需回復收到的報文,每隔一定時間還需主動發送一條心跳報文至終端,以確認所在的信息處理單元處于正常工作的狀態,工作流程如圖1所示。

圖1 MIO交互式通信流程原理圖

為滿足通信要求,MIO板的工作方式分為以下幾步:(1)接收到控制報文后,對報文進行校驗和解碼;(2)當校驗成功后,對收到的報文進行回復,(3)每隔1 s,主動向終端臺發送心跳報文,(4)每次發送完成后退出發送狀態,等待下一次發送。

1.2 問題機理分析

由于之前都是采用即發即收模式,即收到報文后立即發送,此次采用這種模式通信時終端有時會出現報文識別失敗的情況。通過用抓包軟件在發送口抓取報文,發現發送的回復報文和心跳報文有時會出現報文混雜。究其原因如下:由于收到報文即回復,回復報文具有時間上的不確定性;另一方面,在串口處接收和發送報文需要一段時間,若在串口回復報文期間同時開始進行心跳報文的發送,則在發送串口處就會出現前條報文未發完就開始發后條報文的情況,造成報文覆蓋,如圖2所示。

圖2 報文覆蓋示意圖

2 網絡串口管理系統實現

針對上述問題設計的網絡串口管理系統,可以通過對MIO板網口發送的心跳報文、狀態報文等的發送時序進行合理控制,以避免報文覆蓋。通過綜合考慮資源優化以及降低對終端操作反應時間的影響等因素,管理系統由前端內的MIO板實現。這樣,一方面可以方便地在不同前端內的MIO板中進行更改,從而根據實際要求實現不同前端與終端的傳送,而且彼此之間不會互相影響,提高了通信的獨立性和靈活性;另一方面,它并不占用終端資源,實現了資源的優化配置,提高了工作效率。

2.1 報文時序控制設計

由于在設計要求中心跳報文每隔1 s發送一次,發送周期要求固定,而回復報文時間相比之下允許有一定范圍內的彈性,所以可以對回復報文時間進行設計:在一個發送周期1 s內,只有在心跳報文發送的時間段內才會占用串口,影響報文回復。所以,可以將這一時間段作為繁忙時間段,進行專門處理:即在這期間,串口只用于發送心跳報文,若接收到報文,暫時禁止使用串口回復,直到繁忙時間段過后進入空閑時間段再進行回復。

在程序中,可以用回復使能實現:設心跳報文發送周期為T,心跳報文的周期零點為0,一條報文通過串口完整發送出去的時間為t,則在每個周期T里[0,t]為當前周期報文發送期,[T-t,T]為下一周期報文發送準備期。將這兩個時間段作為繁忙時間段。在這期間,將回復使能置0,在其他時間段,將回復使能置1。當報文接收結束后,若發送使能為1,在進行回復之前判斷回復使能,若為0則不回復,若為1則正?;貜?。這樣,整個發送步驟為:(1)判斷接收使能:為1則接收報文開始校驗,若校驗成功則進入步驟2,失敗則丟棄報文;為0則不接收報文;(2)判斷發射使能:為1則進入步驟3,為0則停留在步驟2繼續等待;(3)判斷回復使能:為1則執行回復,為0則停留在步驟3繼續等待。程序框圖如圖3所示。

圖3 網絡串口管理系統程序框圖

對于繁忙時間段的確定,需要計算一段心跳報文完整的發送時間t。在圖4的時序圖中可以看出,可以將這個過程分為兩個階段:周期零點到寫命令下降沿的時間t1,串口發送報文字節串的時間t2。而t1又分為兩個時間段:發送使能置1之前的時間t11,發送使能置1之后的時間t12。t11包含了延遲的多個工作時鐘耗時,延遲的脈沖數為N1,t12包含了網口模塊的寫信號使能的延遲時間,延遲的脈沖數為N2。若系統中工作時鐘的頻率為f,則t11=N1/f,t12=N2/f。對于t2,設報文總字節數為L,波特率為B,則t2=L/B。這樣,可計算出:

t=t1+t2=(N1+N2)/f+L/B

(1)

圖4 報文發送時序圖

在此通信系統中,心跳報文發送周期為1 s,FPGA的工作時鐘為153.6 K,N1=3,N2=5,L=17,B=9 600,代入公式(1),計算出t=1 823 μs??蓳舜_定,在一個周期內,繁忙時間段為{[0~1.823 ms],[998.177~1 000 ms]}。

2.2 延時影響

在整個通信系統中,網絡串口管理系統僅對一個發送周期內繁忙時間段的報文回復進行了延時,其余時間段均完成實時回復。在繁忙時間段內,延時會使得終端的報文接收時刻滯后,因此需要分析其造成的影響。

經計算,在每個1 s內,繁忙時間段為3.646 ms,占總時間長為3.65%;在繁忙時間段內,最長延時時間為3.65 ms。由于在終端臺上,對MIO板的控制報文的發送是通過按鍵完成。據統計,人類單次按鍵反應時間基本在100 ms左右,故此網絡串口管理系統造成的回復報文的延時時間遠小于報文發送的按鍵反應時間。所以,無論從延時時間段還是最長延時時間來看,網絡串口管理系統的延時都不會影響報文通信質量。

3 系統驗證

用改進后的網絡串口系統進行報文通信,使用TCP&UDP測試工具驗證其效果:由計算機模擬雷達終端計算機前端設備MIO板模擬發送控制命令報文,采用自動發送的方式每隔10 ms發送一次狀態檢測報文,同時MIO板自動發送心跳報文,時間間隔1 s。在TCP&UDP測試工具接收區觀察測試工具監測到的串口的報文發送情況。結果顯示,連續發送1 000條控制命令報文均發送成功,并未與心跳報文出現混雜,成功率為100%。之后,在接入雷達通信系統后該系統能正常工作,再未出現報文混雜覆蓋情況。

4 結束語

本文從實際雷達網絡串口通信系統入手,根據雷達對內部交互式通信的高可靠性要求,在系統原有資源基礎上利用前端設備包內MIO板設計實現了一種網絡串口管理系統,為進一步提升交互式通信穩定性提供了設計思路。

猜你喜歡
時間段串口報文
基于J1939 協議多包報文的時序研究及應用
以太網QoS技術研究及實踐
一天中發胖最快的時間段 如果能避開,或許不用節食也能瘦下來
基于報文類型的限速值動態調整
基于API函數庫實現串口數據通信的分析與設計
基于EM9000工控板高性能雙串口通信模型設計與實現
淺析反駁類報文要點
發朋友圈沒人看是一種怎樣的體驗
MCS—51單片機中的多串口通訊技術的應用
“三天后”是啥時候?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合