陳斌
(中國電子科技集團(tuán)公司第二十研究所,西安 710068)
微波著陸系統(tǒng)(Microwave Landing System,MLS)是一種精密引導(dǎo)進(jìn)場(chǎng)著陸系統(tǒng),目前已得到廣泛應(yīng)用。MLS通過實(shí)時(shí)測(cè)量飛機(jī)的方位角、仰角和距離確定飛機(jī)坐標(biāo),為進(jìn)場(chǎng)著陸的飛機(jī)提供靈活多樣的進(jìn)場(chǎng)引導(dǎo)、拉平引導(dǎo)和復(fù)飛引導(dǎo),以保證飛機(jī)安全著陸。MLS除了能提供方位、仰角和距離引導(dǎo)信息外,還具有一個(gè)向飛機(jī)發(fā)播信息的地-空數(shù)據(jù)鏈路,其中涵蓋了地面設(shè)備功能識(shí)別、信號(hào)覆蓋范圍、最低下滑角、MLS臺(tái)站參數(shù)和機(jī)場(chǎng)信息等內(nèi)容。機(jī)載接收機(jī)在收到MLS地-空數(shù)據(jù)鏈路發(fā)播的數(shù)據(jù)后,將會(huì)用于處理角度、修改或調(diào)整接收機(jī)輸出量等功能,以提供給其它機(jī)載設(shè)備使用。所以確保MLS數(shù)據(jù)信號(hào)的正確產(chǎn)生就顯得十分重要。
本文介紹了一種 MLS數(shù)據(jù)信號(hào)產(chǎn)生的方法,通過采用高性能的FPGA,在時(shí)鐘的同步下按一定格式產(chǎn)生不同功能的 MLS數(shù)據(jù)信號(hào)。該方法調(diào)試簡單、可靠性高,充分利用FPGA的工作特性,有效保證產(chǎn)生的MLS數(shù)據(jù)信號(hào)的正確性和完好性。
MLS數(shù)據(jù)信號(hào)包括:前導(dǎo)碼、基本數(shù)據(jù)字和輔助數(shù)據(jù)字。
前導(dǎo)碼[3]是在 MLS信號(hào)整個(gè)覆蓋扇區(qū)范圍內(nèi)發(fā)播的用于識(shí)別其后隨信號(hào)功能的數(shù)據(jù),包括載波捕獲時(shí)間、接收機(jī)基準(zhǔn)時(shí)間碼和功能識(shí)別碼。
基本數(shù)據(jù)字[3]是由地面設(shè)備發(fā)播的與著陸引導(dǎo)系統(tǒng)工作直接有關(guān)的數(shù)據(jù),包括地面設(shè)備狀態(tài)信息、信號(hào)覆蓋范圍、最低下滑角、地面設(shè)備識(shí)別碼等內(nèi)容。
輔助數(shù)據(jù)字[3]是除基本數(shù)據(jù)以外,發(fā)播的供精確飛機(jī)位置計(jì)算使用的地面設(shè)備位置信息和其它補(bǔ)充信息的數(shù)據(jù),包括地面設(shè)備位置信息、MLS數(shù)據(jù)點(diǎn)位置信息、跑道信息、場(chǎng)面風(fēng)速等內(nèi)容。
MLS數(shù)據(jù)信號(hào)以射頻載波 DPSK調(diào)制的方式發(fā)播。DPSK是利用前后碼元之間載波相位的相對(duì)變化來傳遞信息的一種編碼方式。“0”碼由 0°±10°相移表示,“1”碼由 180°±10°相移表示,調(diào)制速率為15625 bit/s,每個(gè)碼元占一個(gè)時(shí)鐘脈沖,即每個(gè)碼元的寬度為64 μs。
MLS信號(hào)發(fā)播是按周期進(jìn)行的,其發(fā)播周期是一個(gè)最大為615 ms長的時(shí)間段,如圖1所示,其中包含了4個(gè)順序?qū)腿舾蓵r(shí)隙,每個(gè)順序?qū)χ信帕兄枰獔?zhí)行的各種角功能時(shí)隙和數(shù)據(jù)字時(shí)隙,如圖2所示。
MLS數(shù)據(jù)信號(hào)按照?qǐng)D1和圖2的要求依次產(chǎn)生。角功能時(shí),只產(chǎn)生前導(dǎo)碼即可。數(shù)據(jù)字功能時(shí),則要產(chǎn)生前導(dǎo)碼、地址碼(僅限輔助數(shù)據(jù)字)、數(shù)據(jù)位和校驗(yàn)位,其發(fā)播順序如圖3和圖4所示。
圖1 MLS順序?qū)ε帕信c全周期信號(hào)格式
圖2 全周期信號(hào)格式中的發(fā)播順序?qū)?/p>
圖3 基本數(shù)據(jù)字發(fā)播順序
圖4 輔助數(shù)據(jù)字發(fā)播順序
前導(dǎo)碼由載波捕獲時(shí)間、接收機(jī)基準(zhǔn)時(shí)間碼和功能識(shí)別碼組成。
載波捕獲時(shí)間共占832μs,即13個(gè)碼元,通常按照全“0”碼發(fā)播。
接收機(jī)基準(zhǔn)時(shí)間碼共占320μs,即5個(gè)碼元,其形式固定為11101。根據(jù)DPSK編碼方式,產(chǎn)生的信號(hào)波形如圖5所示。
功能識(shí)別碼共占448μs,即7個(gè)碼元,前5位是信息位,可提供多至31種功能識(shí)別,后2位是奇偶校驗(yàn)位(滿足偶校驗(yàn))。MLS中,常用的功能識(shí)別碼如圖5所示。根據(jù)DPSK編碼方式,在圖5中給出了產(chǎn)生的信號(hào)波形。
圖5 接收機(jī)基準(zhǔn)時(shí)間碼和功能識(shí)別碼
上述各信號(hào)均通過VHDL語言編程實(shí)現(xiàn)。
基本數(shù)據(jù)字共有6個(gè),每個(gè)字占45位,其中前25位是前導(dǎo)碼,最后2位是校驗(yàn)位,中間18位是數(shù)據(jù)位。
根據(jù)《ICAO附件10》中的有關(guān)規(guī)定,要求18位數(shù)據(jù)位(I13~I(xiàn)30)的2位校驗(yàn)位(I31~I(xiàn)32)滿足奇校驗(yàn),具體關(guān)系[3]如下:
I13+I14+I15+…+I29+I30+I31=ODD
I14+I16+I18+…+I28+I30+I32=ODD
將上述關(guān)系用VHDL語言進(jìn)行描述,程序如下:
--計(jì)算校驗(yàn)位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;
--計(jì)算校驗(yàn)位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;
根據(jù)DPSK信號(hào)特點(diǎn)可知,每種碼元的第一位碼元都以前一種碼元的最后一位碼元作為調(diào)制基準(zhǔn),故基本數(shù)據(jù)字?jǐn)?shù)據(jù)位的第一位碼元應(yīng)以相應(yīng)功能識(shí)別碼的最后一位碼元作為基準(zhǔn),而隨后的數(shù)據(jù)位碼元據(jù)此類推即可。同理,可產(chǎn)生校驗(yàn)位的信號(hào)波形。使用VHDL語言編程實(shí)現(xiàn)相應(yīng)功能,部分程序如下:
--產(chǎn)生數(shù)據(jù)位第一位碼元
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;
輔助數(shù)據(jù)字分A、B和C三部分,每部分最多可達(dá)64個(gè)字,每個(gè)字占89位,其中前25位是前導(dǎo)碼,隨后8位是地址碼,最后7位是校驗(yàn)位,中間49位是數(shù)據(jù)位。
根據(jù)《ICAO附件10》中的有關(guān)規(guī)定,要求8位地址碼(I13~I(xiàn)20)、49位數(shù)據(jù)位(I21~I(xiàn)69)的7位校驗(yàn)位(I70~I(xiàn)76)滿足偶校驗(yàn),具體關(guān)系[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
將上述關(guān)系用VHDL語言進(jìn)行描述,由于產(chǎn)生I70~I(xiàn)75的程序類同,這里僅給出產(chǎn)生I70、I76的程序,具體如下:
--計(jì)算校驗(yàn)位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;
--計(jì)算校驗(yàn)位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;
輔助數(shù)據(jù)字地址碼、數(shù)據(jù)位以及校驗(yàn)位的信號(hào)波形產(chǎn)生原理與基本數(shù)據(jù)字相同,這里不再贅述。
在圖1所示的全周期信號(hào)格式中,通常會(huì)指定基本數(shù)據(jù)字和輔助數(shù)據(jù)字的發(fā)播位置,該位置稱之為數(shù)據(jù)字時(shí)隙,即基本數(shù)據(jù)字時(shí)隙和輔助數(shù)據(jù)字時(shí)隙。每個(gè)數(shù)據(jù)字時(shí)隙發(fā)播哪一個(gè)數(shù)據(jù)字由用戶指定,將正確的數(shù)據(jù)字內(nèi)容填入相應(yīng)數(shù)據(jù)字時(shí)隙是確保數(shù)據(jù)字發(fā)播正確的基礎(chǔ)。下面就如何將數(shù)據(jù)字內(nèi)容正確的填入相應(yīng)數(shù)據(jù)字時(shí)隙進(jìn)行介紹?;緮?shù)據(jù)字共有6個(gè),種類少、便于實(shí)現(xiàn),只需對(duì)當(dāng)前數(shù)據(jù)字時(shí)隙的指定標(biāo)識(shí)進(jìn)行判斷,就可將正確的基本數(shù)據(jù)字內(nèi)容填入數(shù)據(jù)字時(shí)隙。具體程序如下:
--功能識(shí)別碼和數(shù)據(jù)字內(nèi)容選擇
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;
輔助數(shù)據(jù)字共3類,每類包括64個(gè),涉及種類較多。將正確的輔助數(shù)據(jù)字內(nèi)容填入數(shù)據(jù)字時(shí)隙主要需進(jìn)行以下工作:
(1)功能識(shí)別碼選擇;
(2)地址碼選擇;
(3)數(shù)據(jù)位選擇等。
由于程序較長,這里不再逐一介紹。
綜上,產(chǎn)生基本數(shù)據(jù)字信號(hào)波形的流程如圖6所示。產(chǎn)生輔助數(shù)據(jù)字信號(hào)波形的流程如圖7所示。
圖6 基本數(shù)據(jù)字信號(hào)波形產(chǎn)生流程
圖7 輔助數(shù)據(jù)字信號(hào)波形產(chǎn)生流程
本文所介紹的 MLS數(shù)據(jù)信號(hào)實(shí)現(xiàn)方法,目前已應(yīng)用于工程實(shí)際。
圖8 HAZ前導(dǎo)碼的信號(hào)波形圖
圖9 EL前導(dǎo)碼的信號(hào)波形圖
高速率進(jìn)近方位(HAZ)前導(dǎo)碼的信號(hào)波形如圖8所示。進(jìn)近仰角(EL)前導(dǎo)碼的信號(hào)波形如圖9所示?;緮?shù)據(jù)字(BD)的信號(hào)波形如圖10所示。輔助數(shù)據(jù)字(AD)的信號(hào)波形如圖11所示。
圖10 BD的信號(hào)波形圖
圖11 AD的信號(hào)波形圖
本文設(shè)計(jì)實(shí)現(xiàn)的 MLS數(shù)據(jù)信號(hào)產(chǎn)生方法原理簡單、易于實(shí)現(xiàn)、精度高、可靠性好,目前已在某型無線電導(dǎo)航設(shè)備中得到了應(yīng)用。通過外場(chǎng)試驗(yàn),證明該方法能有效保證產(chǎn)生的 MLS數(shù)據(jù)信號(hào)的正確性和完好性。
[1] 周其煥, 魏雄志, 崔紅躍. 微波著陸系統(tǒng)[M]. 北京:國防工業(yè)出版社, 1992.
[2] 弋沛琦, 高瑞乾, 劉石源. 飛機(jī)著陸系統(tǒng)的現(xiàn)狀與發(fā)展[J]. 海軍航空工程學(xué)院學(xué)報(bào), 2005(4).
[3] 國際民用航空組織.國際標(biāo)準(zhǔn)和建議措施:航空電信(國際民用航空公約附件 10 第一卷 第四版)[S]. 中國民用航空局航行司譯. 北京:北京民用航空局, 1988.
[4] 王振紅. VHDL數(shù)字電路設(shè)計(jì)與應(yīng)用實(shí)踐教程[M]. 北京:機(jī)械工業(yè)出版社, 2006.