王 凱,劉宏斌
(1.中國(guó)民航大學(xué)電子信息與自動(dòng)化學(xué)院,天津300300;2.中國(guó)南方航空股份有限公司,廣東 廣州510405)
空中交通管制應(yīng)答機(jī)(ATC transponder)是空中交通管制雷達(dá)信標(biāo)系統(tǒng)(ATCRBS)的機(jī)載設(shè)備,是保證飛機(jī)在繁忙空域飛行和進(jìn)行著陸過程中的安全的重要設(shè)備之一。 它的功用是向地面交通管制中心報(bào)告飛機(jī)的識(shí)別代碼和氣壓高度。 目前,國(guó)際民航組織規(guī)定的航管二次雷達(dá)詢問模式中與民航有關(guān)的是A、B 模式(用于識(shí)別代碼詢問)和C 模式(用于氣壓高度詢問)[1-2]。
本文以FPGA 為基礎(chǔ),實(shí)現(xiàn)ATC A/C 模式應(yīng)答機(jī)編碼電路的設(shè)計(jì)。 傳統(tǒng)的ATC A/C 模式應(yīng)答機(jī)采用中小規(guī)模數(shù)字電路來實(shí)現(xiàn)譯碼和編碼功能,體積和重量大。 可編程邏輯器件以其優(yōu)異的靈活性和實(shí)用性,在機(jī)載導(dǎo)航設(shè)備設(shè)計(jì)中被大量使用[3-5]。以FPGA 為處理核心的編碼電路減少了電子元器件的數(shù)目,使得機(jī)載無線電設(shè)備的體積和重量大大減小,系統(tǒng)的復(fù)雜性降低,方便技術(shù)人員檢測(cè)、排故和換件。 編碼電路還具有自測(cè)試功能,由自身內(nèi)部產(chǎn)生模擬詢問信號(hào),以使譯碼和編碼電路工作,從而可以檢測(cè)系統(tǒng)是否可以正常工作。 此外,編碼電路可以與接收電路、發(fā)射電路級(jí)聯(lián),可以用于輔助維修、應(yīng)答機(jī)系統(tǒng)的仿真驗(yàn)證等。
圖1 給出了ATC A/C 模式應(yīng)答機(jī)編碼電路系統(tǒng)的結(jié)構(gòu),電路由時(shí)鐘模塊(圖中沒有畫出)、控制面板、ARINC429 發(fā)射器、ARINC429 接收器(2 個(gè))、詢問模式譯碼、高度信息譯碼、控制面板信息譯碼、應(yīng)答信號(hào)編碼、自測(cè)試組成。 下面分別介紹各個(gè)模塊的功能和作用。
圖1 ATC A/C 模式應(yīng)答機(jī)編碼電路結(jié)構(gòu)
時(shí)鐘模塊提供其他模塊所需要的不同時(shí)鐘信號(hào)。
控制面板控制應(yīng)答機(jī)系統(tǒng)的工作狀態(tài)。 本課題中只設(shè)計(jì)了一套ATC A/C 模式應(yīng)答機(jī)編碼電路。系統(tǒng)選擇開關(guān)控制系統(tǒng)的開關(guān)狀態(tài)。 模式開關(guān)用于選擇應(yīng)答機(jī)能夠正常響應(yīng)的詢問模式。 當(dāng)開關(guān)置于A 位時(shí),應(yīng)答機(jī)只在收到A 模式詢問后才應(yīng)答飛機(jī)的識(shí)別代碼;當(dāng)開關(guān)置于B 位時(shí),應(yīng)答機(jī)只在收到B模式詢問后才應(yīng)答飛機(jī)的識(shí)別代碼。 通過四個(gè)旋轉(zhuǎn)編碼器置定識(shí)別代碼,四位數(shù)碼管顯示置定的識(shí)別代碼。 按下識(shí)別鈕,應(yīng)答機(jī)即產(chǎn)生特別位置識(shí)別脈沖(SPI),按壓一次識(shí)別鈕,不論在按壓后是否松開按鈕,均可使SPI 脈沖保持22 s。 高度報(bào)告開關(guān)用于控制應(yīng)答機(jī)是否應(yīng)答高度詢問。 按下自檢鈕,應(yīng)答機(jī)開始自測(cè)試。 應(yīng)答燈在應(yīng)答機(jī)應(yīng)答詢問時(shí)點(diǎn)亮。 應(yīng)答燈在每次應(yīng)答后還能在一定時(shí)間(15 s)內(nèi)保持通亮,這樣,當(dāng)應(yīng)答機(jī)連續(xù)應(yīng)答時(shí),應(yīng)答燈是一直保持通亮的。 如果自測(cè)試失敗,故障燈點(diǎn)亮。
控制面板將識(shí)別代碼、SPI 開關(guān)、高度報(bào)告開關(guān)信息編碼為ARINC429 信號(hào),送給ARINC429 發(fā)射器[6-7]。 ARINC429 發(fā)射器將其轉(zhuǎn)換為ARINC429協(xié)議定義的電信號(hào)格式[8]。
ARINC429 接收器將ARINC429 信號(hào)轉(zhuǎn)換為FPGA 可接收的LVTTL 電平信號(hào),一路接收來自大氣數(shù)據(jù)計(jì)算機(jī)的高度信息,送給高度信息譯碼模塊,經(jīng)譯碼得出高度信息;另一路接收來自控制面板的部分控制信息(識(shí)別代碼、高度報(bào)告開關(guān)和SPI 開關(guān)),送給控制面板信息譯碼模塊,經(jīng)譯碼得出這些控制信息[9-10]。
詢問模式譯碼模塊鑒別詢問信號(hào)的模式。 自測(cè)試信號(hào)作為詢問模式譯碼模塊內(nèi)部的二選一數(shù)據(jù)選擇器選通信號(hào)。 在正常模式下,詢問模式譯碼模塊對(duì)詢問信號(hào)進(jìn)行譯碼;在自測(cè)試模式下,詢問模式譯碼模塊對(duì)來自自測(cè)試模塊的模擬詢問信號(hào)進(jìn)行譯碼。
當(dāng)詢問模式譯碼模塊的譯碼結(jié)果與控制面板上置定的詢問模式相符時(shí),應(yīng)答信號(hào)編碼模塊產(chǎn)生相應(yīng)應(yīng)答信號(hào),如果是A 或B 模式詢問,則將控制面板上輸入的飛機(jī)識(shí)別代碼進(jìn)行編碼后輸出;如果是C 模式詢問,則將來自大氣數(shù)據(jù)計(jì)算機(jī)的飛機(jī)氣壓高度進(jìn)行編碼后輸出。 在正常模式下,輸出應(yīng)答信號(hào);在自測(cè)試模式下,輸出自測(cè)試應(yīng)答信號(hào)。
當(dāng)處于自測(cè)試模式下,自測(cè)試模塊產(chǎn)生模擬詢問信號(hào),以使譯碼和編碼電路工作,檢測(cè)自測(cè)試應(yīng)答信號(hào)是否正確[11],從而可以檢測(cè)系統(tǒng)是否可以正常工作。
本設(shè)計(jì)的主要功能模塊是詢問模式譯碼、應(yīng)答信號(hào)編碼等。
各詢問模式的脈沖間隔不同,A、B、C 模式的脈沖間隔分別為8 μs、17 μs、21 μs,脈沖間隔時(shí)間誤差為±0.2 μs,脈沖寬度為(0.8±0.1)μs。
詢問模式譯碼狀態(tài)轉(zhuǎn)移圖如圖2 所示,采用狀態(tài)機(jī)實(shí)現(xiàn),狀態(tài)機(jī)一共有五個(gè)狀態(tài):S0(等待第一個(gè)詢問脈沖)、S1(檢測(cè)確定第一個(gè)詢問脈沖寬度)、S2(等待第二個(gè)詢問脈沖),S3(檢測(cè)確定第二個(gè)詢問脈沖寬度)、S4(詢問脈沖寬度過大等待脈沖結(jié)束)[12]。
圖2 詢問模式譯碼狀態(tài)轉(zhuǎn)移圖
S0狀態(tài):在此狀態(tài)下,狀態(tài)機(jī)一直在等待第一個(gè)詢問脈沖信號(hào)的出現(xiàn),如果第一個(gè)詢問脈沖信號(hào)出現(xiàn),狀態(tài)機(jī)將轉(zhuǎn)入S1狀態(tài)。
S1狀態(tài):在此狀態(tài)下,狀態(tài)機(jī)對(duì)第一個(gè)詢問脈沖的寬度進(jìn)行檢測(cè)和確定,如果脈沖寬度小于0.7 μs,則轉(zhuǎn)入S0狀態(tài),重新等待第一個(gè)詢問脈沖;如果脈沖寬度等于(0.8±0.1)μs,則轉(zhuǎn)入S2狀態(tài),等待第二個(gè)詢問脈沖;如果脈沖寬度大于0.9 μs,則轉(zhuǎn)入S4狀態(tài),等待脈沖結(jié)束。
S2狀態(tài):在此狀態(tài)下,狀態(tài)機(jī)一直在等待第二個(gè)詢問脈沖信號(hào)的出現(xiàn),如果第一個(gè)和第二個(gè)詢問脈沖信號(hào)的間隔小于7.8μs,狀態(tài)機(jī)將轉(zhuǎn)入S1狀態(tài);如果脈沖間隔為(8±0.2)μs、(17±0.2)μs、(21±0.2)μs,狀態(tài)機(jī)會(huì)將這一時(shí)間間隔記憶下來,轉(zhuǎn)入S3狀態(tài),檢測(cè)確定第二個(gè)詢問脈沖寬度;如果等待時(shí)間超過21.2 μs,狀態(tài)機(jī)將轉(zhuǎn)入S0狀態(tài),重新等待第一個(gè)詢問脈沖。
S3狀態(tài):在此狀態(tài)下,狀態(tài)機(jī)對(duì)第二個(gè)詢問脈沖的寬度進(jìn)行檢測(cè)和確定,如果脈沖寬度小于0.7 μs,則轉(zhuǎn)入S0狀態(tài),重新等待第一個(gè)詢問脈沖;如果脈沖寬度等于(0.8±0.1)μs,根據(jù)兩個(gè)詢問脈沖的間隔得出譯碼結(jié)果,轉(zhuǎn)入S2狀態(tài),等待下一個(gè)詢問脈沖;如果脈沖寬度大于0.9 μs,則轉(zhuǎn)入S4狀態(tài),等待脈沖結(jié)束。
S4狀態(tài):如果詢問信號(hào)滿足ARINC718 規(guī)范,不會(huì)轉(zhuǎn)入該狀態(tài)。 如果詢問脈沖寬度大于0.9 μs 將轉(zhuǎn)入此狀態(tài)。 在此狀態(tài)下,狀態(tài)機(jī)一直在等待詢問脈沖的結(jié)束,如果詢問脈沖結(jié)束,狀態(tài)機(jī)將轉(zhuǎn)入S0狀態(tài),重新等待第一個(gè)詢問脈沖。
使用ModelSim 對(duì)詢問模式譯碼模塊進(jìn)行仿真,仿真結(jié)果如圖3 所示。
圖3 詢問模式譯碼模塊仿真結(jié)果
圖3 中,對(duì)于不同詢問模式,均可以產(chǎn)生正確的譯碼結(jié)果,達(dá)到設(shè)計(jì)需求。
圖4 給出了應(yīng)答脈沖串的格式。 應(yīng)答脈沖串由框架脈沖F1 與F2、信息脈沖及SPI 脈沖組成[13]。框架脈沖F1 與F2 恒為邏輯“1”。 12 個(gè)信息脈沖均勻分布在框架脈沖之間,它們的順序依次為C1、A1、C2、A2、C4、A4、B1、D1、B2、D2、B4、D4。 X 脈沖位于兩個(gè)框架脈沖的正中間位置,恒為邏輯“0”。 在框架脈沖F2 之后4.35μs 處是特別位置識(shí)別脈沖SPI。
圖4 應(yīng)答脈沖串格式
識(shí)別碼的信息脈沖分成A、B、C、D 四組,每組表示四位識(shí)別代碼中的一位。 每組脈沖有3 個(gè)信息脈沖,這3 個(gè)信息脈沖組成八進(jìn)制數(shù)。 每個(gè)脈沖的脈沖名稱后的數(shù)字代表該脈沖的權(quán)值,這樣,每組脈沖的權(quán)值之和就是這組脈沖所代表的代碼數(shù)。
高度編碼的增量為100 ft。 D1、D2 脈沖恒為“0”;D4A1A2A4B1B2B4 采用格雷碼,增量為500 ft;C1C2C4 采用五周期循環(huán)碼,增量為100 ft。
應(yīng)答信號(hào)編碼模塊采用狀態(tài)機(jī)實(shí)現(xiàn),狀態(tài)機(jī)一共有兩個(gè)狀態(tài):idle 狀態(tài)和answer 狀態(tài)。
idle 狀態(tài):在此狀態(tài)下,狀態(tài)機(jī)一直在等待有效的詢問,對(duì)于A 模式是指模式選擇開關(guān)處于A 位且詢問模式譯碼結(jié)果為A 模式;對(duì)于B 模式是指模式選擇開關(guān)處于B 位且詢問模式譯碼結(jié)果為B 模式:對(duì)于C 模式是高度報(bào)告開關(guān)打開且詢問模式譯碼結(jié)果為C 模式。 如果檢測(cè)到有效的詢問,編碼產(chǎn)生18 位數(shù)據(jù)reply_string,即相應(yīng)的應(yīng)答脈沖串,reply_string<={SPI,0,0,F(xiàn)2,D4,B4,D2,B2,D1,B1,X,A4,C4,A2,C2,A1,C1,F(xiàn)1},狀態(tài)機(jī)將轉(zhuǎn)入answer狀態(tài)。
answer 狀態(tài):在此狀態(tài)下,狀態(tài)機(jī)將reply_string串行發(fā)送,產(chǎn)生應(yīng)答信號(hào)。 串行發(fā)送的周期為0.05 μs,先發(fā)送第一位F1,在第1 ~9 個(gè)周期內(nèi),發(fā)送reply_string[i],在第10 ~29 個(gè)周期內(nèi)發(fā)送0,這樣使得脈沖寬度為0.45 μs,脈沖間隔為1.45 μs,第一位發(fā)送完畢,發(fā)送下一位,直至發(fā)送完最高位SPI,應(yīng)答結(jié)束,狀態(tài)機(jī)轉(zhuǎn)入idle 狀態(tài)。
使用ModelSim 對(duì)應(yīng)答信號(hào)編碼模塊進(jìn)行仿真,仿真結(jié)果如圖5 所示。
圖5 中,當(dāng)高度報(bào)告開關(guān)打開、SPI 按鈕按下、高度為28 400 ft 時(shí),進(jìn)行C 模式詢問,產(chǎn)生相應(yīng)高度碼應(yīng)答信號(hào),應(yīng)答信號(hào)內(nèi)容正確且脈沖寬度和脈沖間隔符合要求,達(dá)到設(shè)計(jì)需求。
圖5 應(yīng)答信號(hào)編碼模塊仿真結(jié)果
應(yīng)答機(jī)接收到有效詢問后,可以產(chǎn)生正確的應(yīng)答信號(hào)。 圖6 與圖7 分別給出了代碼為7162 的應(yīng)答脈沖串、高度為28 400 ft 的應(yīng)答脈沖串。 如圖8所示,應(yīng)答信號(hào)的脈沖寬度為0.5 μs,如圖9 所示,應(yīng)答信號(hào)的脈沖間隔為1.44 μs,脈沖寬度和脈沖間隔都在ARINC718 協(xié)議規(guī)定的范圍之內(nèi)[13]。
圖6 代碼為7162 的應(yīng)答脈沖串
圖7 高度為28 400 ft 的應(yīng)答脈沖串
圖8 應(yīng)答信號(hào)的脈沖寬度
圖9 應(yīng)答信號(hào)的脈沖間隔
本設(shè)計(jì)實(shí)現(xiàn)了ATC A/C 模式應(yīng)答機(jī)編碼電路的設(shè)計(jì)。 通過控制面板可以控制系統(tǒng)的工作狀態(tài),當(dāng)接收到的詢問脈沖與控制面板上所置定的模式相符時(shí),應(yīng)答機(jī)產(chǎn)生相應(yīng)的應(yīng)答信號(hào)。 如果是A 或B模式詢問,則將控制面板上輸入的飛機(jī)識(shí)別代碼進(jìn)行編碼后輸出;如果是C 模式詢問,則將來自大氣數(shù)據(jù)計(jì)算機(jī)的飛機(jī)氣壓高度進(jìn)行編碼后輸出。 編碼電路還具有自測(cè)試功能,由自身內(nèi)部產(chǎn)生模擬詢問信號(hào),以使接收處理譯碼和編碼電路工作,從而可以檢測(cè)系統(tǒng)是否可以正常工作。 在Altera 公司的Cyclone IV 系列的EP4CE6E22C8[14]芯片上進(jìn)行了硬件測(cè)試,仿真及測(cè)試結(jié)果表明,應(yīng)答信號(hào)正確且符合ARINC718 協(xié)議規(guī)范,達(dá)到設(shè)計(jì)需求。