潘恒康 孟景濤 劉文魁 王京超 李小龍
摘要:近年來,隨著我國航天測控事業的迅猛發展,傳統基于拋物面天線的測控技術無法滿足當前多目標測控的需求。基于相控陣的測控系統,采用陣列天線和數字多波束形成技術,可以同時形成多個波束,完成對多個目標的測控任務。相比于傳統基于拋物面的測控系統,相控陣測控系統的天線陣面結構更加復雜、設備數量巨大,對于各個陣列設備的組織管理是測控系統中需要重點解決的問題。為了實現對陣列設備的組織管理功能,以保障測控任務的正常執行,提出了在相控陣測控系統中增加一種陣列監控軟件。陣列監控軟件整體采用構件化的軟件架構,具備開發便捷、維護方便、可繼承性高的優點。工程實踐證明,該軟件切實為相控陣測控系統執行測控任務提供了有力支持。
關鍵詞:相控陣;航天測控;軟件設計;陣列監控
中圖分類號:TP319文獻標志碼:A文章編號:1008-1739(2022)21-50-5

相控陣測控系統通過數字波束形成技術,實現波束精確指向的功能。相控陣測控系統區別于傳統基于拋物面天線的測控系統,為獲取足夠大的天線增益和作用距離,其信號通道規模巨大,直徑數米的陣列天線通常具有幾萬個陣列設備[1]。傳統測控系統中,對于天線控制的伺服控制軟件[2]已無法在相控陣測控系統中得到應用。相控陣測控系統的天線陣列設備運行狀態對于執行測控任務影響巨大,因此,對于陣列設備的組織管理功能在相控陣測控系統中愈發重要。
為了實現對于陣列設備的組織管理功能,提出了相控陣測控系統中陣列監控軟件的設計。陣列監控軟件采用基于構件化的軟件架構,一方面可以降低各個軟件功能模塊之間的耦合度,減小陣列設備的組織結構、設備類型變化對軟件開發帶來的影響,大大提高軟件開發效率;另一方面,軟件程序存在單體結構中,各個模塊之間通過共享內存、消息隊列等方式進行數據交互,其數據傳輸高效,適合于處理相控陣陣列設備種類多、數量大的應用場景[3]。
陣列監控軟件需要通過網絡、CAN總線等與多種陣列設備進行數據交互,因此,在開發過程中,需要花費大量人力和時間去進行接口與通信的設計、編碼、調試和測試[4]。為減少接口變動以及通信方式對軟件開發的影響,陣列監控軟件采用一種基于可擴展標記語言(Extensible Markup Language,XML)的接口配置及代碼生成方法。此外,本著統一化的設計思想,減少通信方式對軟件通信構件的影響,采用CANet設備,將網絡數據轉換成CAN總線數據發送給陣列設備。基于CANet的通信管理設計,實現了對大量陣列設備的通信管理功能。
需求分析是要明確軟件產品需要做什么,并對軟件產品提出完整、準確、清晰、具體的要求[5]。需求分析主要包括:功能性需求,即提供產品必須執行的動作;非功能性需求,即軟件產品為滿足用戶業務需求而必須具有且除功能需求以外的特性,譬如性能效率、安全性、可靠性、互操作性和健壯性等;設計約束,即對軟件產品的一些約束說明。
隨著相控陣測控系統的發展,測控目標數量越來越多。而陣列設備的種類、數量和功能等帶來的變化都對當前的測控軟件系統提出了新的挑戰。陣列監控軟件的提出,是為了滿足新的發展需要,因此在軟件設計階段,需要充分分析軟件需求,為后續軟件產品設計、實現以及應用打下堅實基礎,從而提高相控陣測控系統的整體軟件水平。
1.1基本功能需求分析
對于陣列設備狀態的顯示及設備管理功能是陣列監控軟件的主要功能。陣列設備包括:收組件、收處理模塊、發組件、發處理模塊、功放、1PPS、同步串口、數字電源、功放電源、收波束形成機箱以及發波束形成機箱等,其顯示內容包括陣列設備參數和狀態等;管理功能包括參數下發、控制命令和程序燒寫等。
針對測控業務需求,陣列監控軟件還需要具備任務信息處理、測試信息處理、測試流程管理、環路配置及監視等功能。
另外,陣列監控軟件還需要具備參數配置、日志記錄、數據記錄、軟件運行狀態顯示、雙機備份和通信處理等通用化的功能。
相控陣測控系統中,由于陣面形狀,陣列設備的類型、數量等都會根據不同的需求發生改變,所以在設計陣列監控軟件時,需要將軟件功能模塊大致進行劃分,其中不變功能無需更改,可適應各種類型的需求變化,變化功能需根據不同需求的變化進行修改。軟件功能模塊劃分如圖1所示。

1.2性能需求分析
相控陣測控系統中,陣列設備數量龐大,往往具有上萬個不同類型的陣列設備,陣列監控軟件需要在1~2 s實時查詢各種類型的全部設備狀態,并根據設備狀態,及時給出反饋信息。因此,由于數據量巨大,軟件內部各模塊之間的數據交互實時性要求高,軟件設計過程中需要充分考慮模塊之間的通信效率以及軟件與設備之間的通信效率。
1.3可靠性需求
陣列監控軟件作為測控軟件系統的一部分,通常在測控系統中,分配一個操作席位進行操作。由于操作席位上的操作人員通常任務繁重,需要同時觀察、操作多個測控軟件,為了方便操作人員對陣列監控軟件的使用,陣列監控軟件在設計過程中,需要注意以下幾點:
①軟件界面上顯示設備狀態應簡潔直觀,對于異常情況提示應明顯易懂;
②程序配置簡單、部署方便,以減輕操作人員的部署工作,降低因程序部署導致的故障風險;
③軟件設計應便于排錯、便于恢復狀態,如定時進行數據備份,可以快速從故障中恢復。
軟件架構的設計取決于業務驅動因素、部署環境、預算、時間表、開發人員技能集以及許多其他因素[6]。根據上述需求分析,陣列監控軟件的架構設計主要從模塊復用程度、數據通信效率以及部署應用復雜程度等方面考慮。目前主要的架構模式可選方案包括分層軟件架構、構件化軟件架構和分布式軟件架構等。結合陣列監控軟件的應用需求背景,針對不同的軟件架構,其各自的特點對比如表1所示。

對比分層軟件架構和構件化軟件架構,分層軟件架構在模塊復用程度上較低,無法很好地滿足后續程序設計過程中不斷變化的需求。
近些年來,分布式軟件架構在航天測控軟件上應用日益增多[7],但是在本應用場景下,其數據通信效率較低、軟件部署較為復雜,不太適用于當前的測控任務需求。因此,陣列監控軟件基于面向對象思想,采用構件化的架構模式,開發便捷、模塊復用性好、數據傳輸效率高、部署容易,可以大大增加軟件開發的穩定性及高效性。
陣列監控軟件架構如圖2所示。

陣列監控軟件開發過程中,分機處理、人機交互相關的內容均會隨實際陣列設備情況進行修改,而其他軟件功能均具有較強的復用能力。因此,采用構件化的架構模式,通過重用已有的構件對象模型,可以像搭積木一樣快速構造應用程序,可以有效縮短開發周期,并且可以在重用已有開發成果的基礎上得到高質量的軟件產品。
(1)分機處理構件
分機處理構件是一組構件的集合,包括收組件構件、收處理模塊構件、發組件構件、發處理模塊構件、功放構件、1PPS構件、同步串口構件、數字電源構件、功放電源構件、收波束形成機箱構件以及發波束形成機箱構件等,其主要實現與陣列設備上各個分機的數據交互,即發送狀態查詢、參數控制和控制命令等指令,接收各個分機上報的狀態、響應等信息,同時完成對參數的異常判斷,將當前設備狀態通過消息隊列的形式,傳遞給相關的用戶界面構件。
由于該部分構件需要與陣列設備上各分機進行數據交互,因此,在設計上需要充分考慮分機種類變化、分機接口變化所帶來的修改、聯試上的工作量。
(2)通信處理構件
通信處理構件作為陣列監控軟件的基礎功能構件,需要實現網絡通信相關功能,主要完成通信鏈路創建、通信協議支持、數據接收、數據發送和通信異常處理等功能。
通信處理構件具有較強的通用性和復用性,構件的開發過程應當實施更為嚴格的工程規范,其構件在改動上需更加謹慎。
(3)設備程序燒寫構件
陣列設備部署后,在初期調試階段,不可避免地需要升級設備程序,采用人工升級的方式耗費大量的時間和人力,采用遠程更新的方式,可以有效地實現自主升級,提高聯試和開發效率[8]。
為實現遠程更新,由設備程序燒寫構件讀取不同設備的硬件程序,然后通過網絡下發給不同的設備,主要流程如圖3所示。

4.1基于XML的設備接口配置及代碼生成
陣列監控軟件需要監控的陣列設備具有種類多、數量大的特點。若采用一般的軟件開發方法,在開發過程中,需要花費大量的人力和時間去進行接口與通信的設計、編碼、調試和測試,而且接口發生改變時,維護和修改成本耗費大量的時間。為實現接口設計的通用性,將陣列設備的接口通信數據進行規范化描述,采用XML配置文件的形式,并通過代碼自動生成各陣列設備的管理類進行處理[4]。
XML技術提供了一種可用于進行數據交換的標準通用標記語言,與其他數據交換技術相比,采用XML作為設備接口的配置文件主要優點為:
①具有良好的格式、較強的可理解性和易用性;
②具有驗證機制,可用來判斷編譯標記是否符合語法;
③選擇性更新,即通過XML的標簽結構,小范圍更新,保證接口的可擴展性。
基于XML的設備接口配置,其通用接口描述如圖4所示。

根據配置好的XML格式的接口文件,生成對應的數據結構類代碼,生成的數據結構如圖5所示。

4.2基于CANet的設備管理
CANet是一種完成CAN協議和網絡協議轉換的設備。陣列監控軟件利用CANet,可以實現軟件架構中通信處理模塊的復用,從而完成對于不同通信架構設備的管理功能。
由于CANet支持CAN協議轉換成多種不同網絡協議(UDP點播、UDP組播和TCP)的方式,陣列監控軟件可以實現對于獨立、部分以及全部陣列設備的通信功能。陣列設備通信結構如圖6所示。

對于設備的組織管理,可以利用點播或組播的方式,向陣列設備發送控制命令和查詢命令。同時,為實現陣列監控軟件的多站點部署,陣列設備上報的響應結果、設備狀態等信息均被CANet轉為組播的網絡協議完成上報。
陣列設備中,每個設備均有一個ID編號,用于CAN總線的網絡節點尋址。CAN總線是一種多主控制系統,當多個設備節點發起數據傳輸時,依據報文ID優先級進行仲裁。報文ID包含目的設備ID,因此在設備ID設計時,規定數據下行具有較高的優先級,即下層設備ID優先級較高,下層各種設備之間優先級可根據需求設置。不同的設備具有唯一獨立的ID號,設備ID與CAN總線報文ID關聯,是報文ID的一部分。
對陣列設備的管理,其核心是設備ID的管理工作,陣列監控軟件的設備ID管理類圖如圖7所示。

本文研究并實現了相控陣測控系統中的陣列監控軟件設計。基于構件化的架構設計,具有耦合度低、復用性高的優點。單體化的軟件架構,數據通信效率高,適用于大規模陣列設備的通信,并且其部署簡單,方便用戶操作及異常處理。此外,由于設備數量多,基于XML的設備接口配置及代碼生成技術和基于CANet的設備管理技術大大提高了軟件開發和聯試的效率。實踐證明,該軟件的設計具有開發效率高、穩定性高以及部署便捷等優點,滿足相控陣測控系統的需求。
[1]李旭,肇格.相控陣測控系統時頻及標校信號一體化光傳輸設計[J].電訊技術,2021,61(8):945-949.
[2]楊柳,張成.天線跟蹤系統伺服控制的軟件設計[J].航天制造技術,2015(4):65-67.
[3]饒冬,孫甲琦,賈林巧,等.基于Linux的航天地面站測控軟件架構設計[J].遙測遙控,2015,36(4):31-36.
[4]孫婧,劉瑩,孟景濤,等.基于XML的軟件通用程序框架[J].無線電工程,2015,45(6):25-27.
[5]常云麗,鄔欣明,鄭威.軍用軟件需求分析研究[J].火力與指揮控制,2013,38(1):126-128.
[6] RICHARDS M, FORD N. Fundamentals of Software Architecture: An Engineering Approach[M]. Sebastopol: OReilly Media, 2020.
[7]徐冰霖,李戰懷.面向服務的航天測控軟件架構設計[J].飛行器測控學報,2012,31(6):47-51.
[8]高群福,孫維新.一種相控陣系統遠程升級方法[J].無線電通信技術,2017,43(6):77-80.