陈斌
(中国电子科技集团公司第二十研究所,西安 710068)
微波着陆系统(Microwave Landing System,MLS)是一种精密引导进场着陆系统,目前已得到广泛应用。MLS通过实时测量飞机的方位角、仰角和距离确定飞机坐标,为进场着陆的飞机提供灵活多样的进场引导、拉平引导和复飞引导,以保证飞机安全着陆。MLS除了能提供方位、仰角和距离引导信息外,还具有一个向飞机发播信息的地-空数据链路,其中涵盖了地面设备功能识别、信号覆盖范围、最低下滑角、MLS台站参数和机场信息等内容。机载接收机在收到MLS地-空数据链路发播的数据后,将会用于处理角度、修改或调整接收机输出量等功能,以提供给其它机载设备使用。所以确保MLS数据信号的正确产生就显得十分重要。
本文介绍了一种 MLS数据信号产生的方法,通过采用高性能的FPGA,在时钟的同步下按一定格式产生不同功能的 MLS数据信号。该方法调试简单、可靠性高,充分利用FPGA的工作特性,有效保证产生的MLS数据信号的正确性和完好性。
MLS数据信号包括:前导码、基本数据字和辅助数据字。
前导码[3]是在 MLS信号整个覆盖扇区范围内发播的用于识别其后随信号功能的数据,包括载波捕获时间、接收机基准时间码和功能识别码。
基本数据字[3]是由地面设备发播的与着陆引导系统工作直接有关的数据,包括地面设备状态信息、信号覆盖范围、最低下滑角、地面设备识别码等内容。
辅助数据字[3]是除基本数据以外,发播的供精确飞机位置计算使用的地面设备位置信息和其它补充信息的数据,包括地面设备位置信息、MLS数据点位置信息、跑道信息、场面风速等内容。
MLS数据信号以射频载波 DPSK调制的方式发播。DPSK是利用前后码元之间载波相位的相对变化来传递信息的一种编码方式。“0”码由 0°±10°相移表示,“1”码由 180°±10°相移表示,调制速率为15625 bit/s,每个码元占一个时钟脉冲,即每个码元的宽度为64 μs。
MLS信号发播是按周期进行的,其发播周期是一个最大为615 ms长的时间段,如图1所示,其中包含了4个顺序对和若干时隙,每个顺序对中排列着需要执行的各种角功能时隙和数据字时隙,如图2所示。
MLS数据信号按照图1和图2的要求依次产生。角功能时,只产生前导码即可。数据字功能时,则要产生前导码、地址码(仅限辅助数据字)、数据位和校验位,其发播顺序如图3和图4所示。
图1 MLS顺序对排列与全周期信号格式
图2 全周期信号格式中的发播顺序对
图3 基本数据字发播顺序
图4 辅助数据字发播顺序
前导码由载波捕获时间、接收机基准时间码和功能识别码组成。
载波捕获时间共占832μs,即13个码元,通常按照全“0”码发播。
接收机基准时间码共占320μs,即5个码元,其形式固定为11101。根据DPSK编码方式,产生的信号波形如图5所示。
功能识别码共占448μs,即7个码元,前5位是信息位,可提供多至31种功能识别,后2位是奇偶校验位(满足偶校验)。MLS中,常用的功能识别码如图5所示。根据DPSK编码方式,在图5中给出了产生的信号波形。
图5 接收机基准时间码和功能识别码
上述各信号均通过VHDL语言编程实现。
基本数据字共有6个,每个字占45位,其中前25位是前导码,最后2位是校验位,中间18位是数据位。
根据《ICAO附件10》中的有关规定,要求18位数据位(I13~I30)的2位校验位(I31~I32)满足奇校验,具体关系[3]如下:
I13+I14+I15+…+I29+I30+I31=ODD
I14+I16+I18+…+I28+I30+I32=ODD
将上述关系用VHDL语言进行描述,程序如下:
--计算校验位I31
process(BDW_bit)
variable tmp1,tmp1n:std_logic;
begin
tmp1:='0';
for i in 0 to 17 loop
tmp1:=tmp1 xor BDW_bit(i);
tmp1n:=not tmp1;
end loop;
I31<=tmp1n;
end process;
--计算校验位I32
process(BDW_bit)
variable tmp2,tmp2n:std_logic;
begin
tmp2:='0';
for i in 0 to 8 loop
tmp2:=tmp2 xor BDW_bit(2*i+1);
tmp2n:=not tmp2;
end loop;
I32<=tmp2n;
end process;
根据DPSK信号特点可知,每种码元的第一位码元都以前一种码元的最后一位码元作为调制基准,故基本数据字数据位的第一位码元应以相应功能识别码的最后一位码元作为基准,而随后的数据位码元据此类推即可。同理,可产生校验位的信号波形。使用VHDL语言编程实现相应功能,部分程序如下:
--产生数据位第一位码元
if BDW1(0)='1' then
DPSK_temp0<=not FUNCCODE_BDW1(6);
DPSK<=not FUNCCODE_BDW1(6);
if cnt<63 then
cnt<=cnt+1;
else
cnt<=0;
w<=13;
end if;
else
DPSK_temp0<=FUNCCODE_BDW1(6);
DPSK<=FUNCCODE_BDW1(6);
if cnt<63 then
cnt<=cnt+1;
else
cnt<=0;
w<=13;
end if;
end if;
辅助数据字分A、B和C三部分,每部分最多可达64个字,每个字占89位,其中前25位是前导码,随后8位是地址码,最后7位是校验位,中间49位是数据位。
根据《ICAO附件10》中的有关规定,要求8位地址码(I13~I20)、49位数据位(I21~I69)的7位校验位(I70~I76)满足偶校验,具体关系[3]如下:
( I13+…+I18) +I20+I22+I24+I25+I28+I29+I31+I32+I33+I35+I36+I38+I41+I44+I45+I46+I50+(I52+…+I55)+I58+I60+I64+I65+I70=EVEN
( I14+…+I19) +I21+I23+I25+I26+I29+I30+I32+I33+I34+I36+I37+I39+I42+I45+I46+I47+I51+(I53+…+I56)+I59+I61+I65+I66+I71=EVEN
( I15+…+I20) +I22+I24+I26+I27+I30+I31+I33+I34+I35+I37+I38+I40+I43+I46+I47+I48+I52+(I54+…+I57)+I60+I62+I66+I67+I72=EVEN
( I16+…+I21) +I23+I25+I27+I28+I31+I32+I34+I35+I36+I38+I39+I41+I44+I47+I48+I49+I53+(I55+…+I58)+I61+I63+I67+I68+I73=EVEN
( I17+…+I22) +I24+I26+I28+I29+I32+I33+I35+I36+I37+I39+I40+I42+I45+I48+I49+I50+I54+(I56+…+I59)+I62+I64+I68+I69+I74=EVEN
( I13+…+I17) +I19+I21+I23+I24+I27+I28+I30+I31+I32+I34+I35+I37+I40+I43+I44+I45+I49+(I51+…+I54)+I57+I59+I63+I64+I69+I75=EVEN
I13+I14+…+I68+I69+I70+I71+I72+I73+I74+I75+I76=EVEN
将上述关系用VHDL语言进行描述,由于产生I70~I75的程序类同,这里仅给出产生I70、I76的程序,具体如下:
--计算校验位I70
process(ADW_bit)
begin
I70<=ADW_bit(0) xor ADW_bit(1) xor ADW_bit(2) xor ADW_bit(3)
xor ADW_bit(4) xor ADW_bit(5) xor ADW_bit(7) xor ADW_bit(9)
xor ADW_bit(11) xor ADW_bit(12) xor ADW_bit(15) xor ADW_bit(16)
xor ADW_bit(18) xor ADW_bit(19) xor ADW_bit(20) xor ADW_bit(22)
xor ADW_bit(23) xor ADW_bit(25) xor ADW_bit(28) xor ADW_bit(31)
xor ADW_bit(32) xor ADW_bit(33) xor ADW_bit(37) xor ADW_bit(39)
xor ADW_bit(40) xor ADW_bit(41) xor ADW_bit(42) xor ADW_bit(45)
xor ADW_bit(47) xor ADW_bit(51) xor ADW_bit(52);end process;
--计算校验位I76
process(ADW_bit)
variable tmp3:std_logic;
begin
tmp3:='0';
for i in 0 to 56 loop
tmp3:=tmp3 xor ADW_bit(i);
end loop;
I76_temp<=tmp3;
end process;
I76<=I76_temp xor I70 xor I71 xor I72 xor I73 xor
I74 xor I75;
辅助数据字地址码、数据位以及校验位的信号波形产生原理与基本数据字相同,这里不再赘述。
在图1所示的全周期信号格式中,通常会指定基本数据字和辅助数据字的发播位置,该位置称之为数据字时隙,即基本数据字时隙和辅助数据字时隙。每个数据字时隙发播哪一个数据字由用户指定,将正确的数据字内容填入相应数据字时隙是确保数据字发播正确的基础。下面就如何将数据字内容正确的填入相应数据字时隙进行介绍。基本数据字共有6个,种类少、便于实现,只需对当前数据字时隙的指定标识进行判断,就可将正确的基本数据字内容填入数据字时隙。具体程序如下:
--功能识别码和数据字内容选择
process(NUM_BDW)
begin
case NUM_BDW is
when"001"=>FUNCCODE_BDW<= "0110000
BDW <= BASICDW1;
when"010"=>FUNCCODE_BDW<= "0101000
BDW <= BASICDW2;
when"011"=>FUNCCODE_BDW<="1100000
BDW <= BASICDW3;
when"100"=>FUNCCODE_BDW<= "1111000";";";";
BDW <= BASICDW4;
when"101"=>FUNCCODE_BDW<="1001000";
BDW <= BASICDW5;
when"110"=>FUNCCODE_BDW<= "0001001";
BDW <= BASICDW6;
when others => null;
end case;
end process;
辅助数据字共3类,每类包括64个,涉及种类较多。将正确的辅助数据字内容填入数据字时隙主要需进行以下工作:
(1)功能识别码选择;
(2)地址码选择;
(3)数据位选择等。
由于程序较长,这里不再逐一介绍。
综上,产生基本数据字信号波形的流程如图6所示。产生辅助数据字信号波形的流程如图7所示。
图6 基本数据字信号波形产生流程
图7 辅助数据字信号波形产生流程
本文所介绍的 MLS数据信号实现方法,目前已应用于工程实际。
图8 HAZ前导码的信号波形图
图9 EL前导码的信号波形图
高速率进近方位(HAZ)前导码的信号波形如图8所示。进近仰角(EL)前导码的信号波形如图9所示。基本数据字(BD)的信号波形如图10所示。辅助数据字(AD)的信号波形如图11所示。
图10 BD的信号波形图
图11 AD的信号波形图
本文设计实现的 MLS数据信号产生方法原理简单、易于实现、精度高、可靠性好,目前已在某型无线电导航设备中得到了应用。通过外场试验,证明该方法能有效保证产生的 MLS数据信号的正确性和完好性。
[1] 周其焕, 魏雄志, 崔红跃. 微波着陆系统[M]. 北京:国防工业出版社, 1992.
[2] 弋沛琦, 高瑞乾, 刘石源. 飞机着陆系统的现状与发展[J]. 海军航空工程学院学报, 2005(4).
[3] 国际民用航空组织.国际标准和建议措施:航空电信(国际民用航空公约附件 10 第一卷 第四版)[S]. 中国民用航空局航行司译. 北京:北京民用航空局, 1988.
[4] 王振红. VHDL数字电路设计与应用实践教程[M]. 北京:机械工业出版社, 2006.