(中国卫星海上测控部,江苏 江阴 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)