(中國衛星海上測控部,江蘇 江陰 214431)
在對飛行器的測控中,受地球曲率的影響,單一測控站不能獲得整個測控段的數據,為對飛行器的狀態進行正確判斷,獲得整個測控段的數據,目前采用多站聯合測控方式[1]。在該方式中,常采用多套發射機交替工作的方式,即在全測量段上,根據測量的需要,各套站的發射機輪流工作。第1套發射機工作時,其它發射機關閉;第1套發射機關閉后,第2套發射機開始工作。這樣可以對航天器的飛行全過程實施測量,獲得盡可能多的有效數據。假設A、B站聯合測控航天器,并完成某一測控任務,若A站未能實現,則B站必須在短時間內完成設備狀態切換,確保任務的完成。本文針對鏈路切換復雜、易出現誤操作等不足,利用C#語言和.NET結構[2],通過軟件編程實現跟蹤鏈路的快速切換,保證鏈路切換的及時、準確、高效。
在聯合測控中,某測控設備采用和/差雙通道[3]的跟蹤方式,跟蹤鏈路主要由饋源網絡、場放、變頻器、開關組件和跟蹤功分網絡組成,通過切換開關,改變場放和跟蹤變頻器組合實現切換,如圖1所示。

圖1 跟蹤鏈路簡圖
采用接收和/差信號1:1備份場放與變頻器,天線接收的信號經過饋源網絡送至場放和變頻器組合,經跟蹤功分網絡送至跟蹤接收機,選擇相應的接收機將數據送給天線控制單元,進行目標的捕獲和跟蹤。
在圖1中,設主用工作鏈路為虛線框中場放和跟蹤變頻器組合,備用鏈路為實線框中場放和跟蹤變頻器組合,鏈路的切換涉及6個開關,鏈路切換復雜,需要較長時間。原切換方法為采用手動控制開關,選擇場放和跟蹤變頻器組合的方式實現,切換時間約為18 s。同時,如果需要改變跟蹤方式,如由標準TT&C(Telemetry,Track and Command)跟蹤改為調頻(FM)跟蹤,不但需要切換和路與差路的場放和變頻器,而且還需要更改本振頻率(本振為變頻器提供頻率源)。由此可見,應急鏈路切換時,涉及器件多,動作復雜。圖1中圓角矩形表示將切換鏈路和本振頻率的改變由軟件實現,且經過多次實際操作,采用軟件進行切換,將時間縮短至約4.2 s,明顯提高了切換效率。
在進行跟蹤鏈路切換時,涉及的測控器件主要包括場放、跟蹤變頻器和本振,每個器件的切換時間主要由手動操作時間和開關動作時間兩部分組成,同時還要考慮檢查并確認時間以及網絡傳輸時間。
設手動切換的總時間為Ts,故:
(1)

式中,T1為場放切換時間,包括手動切換時間T11、開關切換到位時間T12;T2為跟蹤變頻器切換時間,包括手動切換時間T21、開關切換到位時間T22;T3為本振切換時間,包括手動切換時間T31、開關切換到位時間T32;T4為手動確定時間(選擇后進行檢查并確認的時間);T5為網絡傳輸時間(檢查確認后網絡傳輸時間)。
由以上分析可以看出,手動切換時,采用串行工作模式,即各器件的切換按順序完成,切換時間逐一累加,用時較長,很難滿足任務中切換快速、準確的要求,為此提出了實現跟蹤鏈路的快速切換方法。
在快速切換方法中,將備份方案以宏命令的方式存儲在本地計算機上,采用命令群發方式,即所有參數通過宏文件經網絡傳輸至各設備,需要切換時只需一步操作就可以完成。
設快速切換的總時間為Tk,故:
(2)

式中,T4′為選擇圖2中“執行”按鈕的時間,T5′為選擇圖2中“執行”按鈕后網絡傳輸時間。
通過式(1)和式(2)的比較可以看出,式(2)中完全去掉了手動選擇場放、跟蹤變頻器和本振的時間,將這項操作進行預先存儲,這樣節省了約14 s,切實提高了切換速度。

圖2 系統主界面
根據式(1)和式(2)的比較,并結合工程實際,將跟蹤鏈路的快速切換分為3步:
(1)將備份方案參數以宏文件的形式存儲在本地計算機上,如圖3所示;

圖3 宏文件示意圖
(2)直接利用UDP[4]通信協議,完成跟蹤鏈路快速切換系統與其它各設備的通信連接;
(3)根據各設備的命令幀結構及通信協議,利用數組結構搭建數據包,然后將數據包發送至相應的設備,如圖4所示。

圖4 程序設計框圖
根據上述的設計思路,運用Microsoft Visual Studio 2008的C#語言編程環境和.NET結構,實現快速切換的功能,如圖2所示。只需要單擊“執行”按鈕,即可完成切換。
3.4.1備份方案的存儲和讀取
在跟蹤鏈路參數窗口中,輸入跟蹤鏈路的備份方案各參數,包括本振的頻率、場放與跟蹤變頻器等,以文本文件形式保存,實現方案的存儲,然后在程序中導入已保存的文本文件,將預先保存的參數導入程序中,完成發送數據包的組建。具體由以下關鍵語句實現:
savefile = saveFileDialog1.FileName;
SW = File.CreateText(savefile); //新建一個保存文件
SW.WriteLine(); //寫入相應的參數
filename = openFileDialog1.FileName;
SR = File.OpenText(filename); //打開保存的文件
S = SR.ReadLine(); //讀取文件中的每一行參數
3.4.2各設備的UDP通信連接
UDP通信連接是一種不需要“握手”信息的連接協議,它只需要處于同一網絡的目的設備的IP地址和通信端口號,就能夠完成信息的傳遞。在程序中只要將目標設備的IP地址和通信端口號傳遞給SendTo()函數,通過System. Socket類即可實現通信。由以下關鍵語句實現:
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
IPAddress broadcast = IPAddress.Parse(IP);//目的IP地址
IPEndPoint ep = new IPEndPoint(broadcast, Port); //目的IP地址和
//端口號
s.SendTo(data, ep);//將data數據發送至目的地址
3.4.3數據包的組建
數據包就是包含目標地址、指令類型、指令內容等一系列需要發送給設備的數據。數據包的組建關鍵就是按照設備的接口協議,將預先存儲的參數轉變為相應的幀結構。
實現過程為:申請一個可變數組m-SendArray[],將幀頭和幀尾固定填好,然后將各個設備不同的參數,通過具體函數傳遞的方式填入到m-SendArray[]中,完成數據包的建立。由以下關鍵語句實現:
byte[] m-SendArray;
m-SendArray = new byte[iParamLen + 7];//根據參數部分長度,分配
//發送緩沖區大小 7=幀頭+命令碼+幀尾
m-SendArray[3] = CMD; //控制命令類型
cmd.CopyTo(m-SendArray, 4);//裝填命令參數
在圖2中,將需要切換的鏈路相關參數事先裝入該系統,在切換時只要選擇“執行”就可以了,完全避免手動切換鏈路帶來的效率和準確方面的缺陷,達到了快速切換的目的。該方法的不足之處是需要提前裝入參數,有待進一步的改進,實現設備參數的自動裝訂。
本文利用UDP通信連接協議,通過C#語言實現了測控設備下行跟蹤鏈路的快速切換,較大程度上縮短了切換時間,達到應急狀態下鏈路切換及時、準確的要求,滿足任務實際需要,并在USB系統多次海上測控任務中發揮了作用。
參考文獻:
[1] 趙業福.無線電跟蹤測量[M].長沙:國防工業出版社,2003.
ZHAO Ye-fu. Radio Tracking Measurement [M].Changsha:National Defense Industry Press,2003.(in Chinese)
[2] 劉基林.Visual C#2008寶典[M].北京:電子工業出版社,2008.
LIU Ji-lin. Visual C#2008 [M].Beijing:Publishing House of Electronic Industry,2008. (in Chinese)
[3] 瞿元新,叢波.S頻段微波統一測控系統雙點頻跟蹤鏈路的設計[J].電訊技術,2006,46(1):115-118.
ZHAI-Yuan-xin,CONG Bo. Design of Downlink Converters in a Microwave Unified S-Band TT&C System to Implement Dual-frequency Tracking [J].Telecommunication Engineering,2006,46(1): 115-118.(in Chinese)