王 凱,劉宏斌
(1.中國民航大學電子信息與自動化學院,天津300300;2.中國南方航空股份有限公司,廣東 廣州510405)
空中交通管制應答機(ATC transponder)是空中交通管制雷達信標系統(ATCRBS)的機載設備,是保證飛機在繁忙空域飛行和進行著陸過程中的安全的重要設備之一。 它的功用是向地面交通管制中心報告飛機的識別代碼和氣壓高度。 目前,國際民航組織規定的航管二次雷達詢問模式中與民航有關的是A、B 模式(用于識別代碼詢問)和C 模式(用于氣壓高度詢問)[1-2]。
本文以FPGA 為基礎,實現ATC A/C 模式應答機編碼電路的設計。 傳統的ATC A/C 模式應答機采用中小規模數字電路來實現譯碼和編碼功能,體積和重量大。 可編程邏輯器件以其優異的靈活性和實用性,在機載導航設備設計中被大量使用[3-5]。以FPGA 為處理核心的編碼電路減少了電子元器件的數目,使得機載無線電設備的體積和重量大大減小,系統的復雜性降低,方便技術人員檢測、排故和換件。 編碼電路還具有自測試功能,由自身內部產生模擬詢問信號,以使譯碼和編碼電路工作,從而可以檢測系統是否可以正常工作。 此外,編碼電路可以與接收電路、發射電路級聯,可以用于輔助維修、應答機系統的仿真驗證等。
圖1 給出了ATC A/C 模式應答機編碼電路系統的結構,電路由時鐘模塊(圖中沒有畫出)、控制面板、ARINC429 發射器、ARINC429 接收器(2 個)、詢問模式譯碼、高度信息譯碼、控制面板信息譯碼、應答信號編碼、自測試組成。 下面分別介紹各個模塊的功能和作用。

圖1 ATC A/C 模式應答機編碼電路結構
時鐘模塊提供其他模塊所需要的不同時鐘信號。
控制面板控制應答機系統的工作狀態。 本課題中只設計了一套ATC A/C 模式應答機編碼電路。系統選擇開關控制系統的開關狀態。 模式開關用于選擇應答機能夠正常響應的詢問模式。 當開關置于A 位時,應答機只在收到A 模式詢問后才應答飛機的識別代碼;當開關置于B 位時,應答機只在收到B模式詢問后才應答飛機的識別代碼。 通過四個旋轉編碼器置定識別代碼,四位數碼管顯示置定的識別代碼。 按下識別鈕,應答機即產生特別位置識別脈沖(SPI),按壓一次識別鈕,不論在按壓后是否松開按鈕,均可使SPI 脈沖保持22 s。 高度報告開關用于控制應答機是否應答高度詢問。 按下自檢鈕,應答機開始自測試。 應答燈在應答機應答詢問時點亮。 應答燈在每次應答后還能在一定時間(15 s)內保持通亮,這樣,當應答機連續應答時,應答燈是一直保持通亮的。 如果自測試失敗,故障燈點亮。
控制面板將識別代碼、SPI 開關、高度報告開關信息編碼為ARINC429 信號,送給ARINC429 發射器[6-7]。 ARINC429 發射器將其轉換為ARINC429協議定義的電信號格式[8]。
ARINC429 接收器將ARINC429 信號轉換為FPGA 可接收的LVTTL 電平信號,一路接收來自大氣數據計算機的高度信息,送給高度信息譯碼模塊,經譯碼得出高度信息;另一路接收來自控制面板的部分控制信息(識別代碼、高度報告開關和SPI 開關),送給控制面板信息譯碼模塊,經譯碼得出這些控制信息[9-10]。
詢問模式譯碼模塊鑒別詢問信號的模式。 自測試信號作為詢問模式譯碼模塊內部的二選一數據選擇器選通信號。 在正常模式下,詢問模式譯碼模塊對詢問信號進行譯碼;在自測試模式下,詢問模式譯碼模塊對來自自測試模塊的模擬詢問信號進行譯碼。
當詢問模式譯碼模塊的譯碼結果與控制面板上置定的詢問模式相符時,應答信號編碼模塊產生相應應答信號,如果是A 或B 模式詢問,則將控制面板上輸入的飛機識別代碼進行編碼后輸出;如果是C 模式詢問,則將來自大氣數據計算機的飛機氣壓高度進行編碼后輸出。 在正常模式下,輸出應答信號;在自測試模式下,輸出自測試應答信號。
當處于自測試模式下,自測試模塊產生模擬詢問信號,以使譯碼和編碼電路工作,檢測自測試應答信號是否正確[11],從而可以檢測系統是否可以正常工作。
本設計的主要功能模塊是詢問模式譯碼、應答信號編碼等。
各詢問模式的脈沖間隔不同,A、B、C 模式的脈沖間隔分別為8 μs、17 μs、21 μs,脈沖間隔時間誤差為±0.2 μs,脈沖寬度為(0.8±0.1)μs。
詢問模式譯碼狀態轉移圖如圖2 所示,采用狀態機實現,狀態機一共有五個狀態:S0(等待第一個詢問脈沖)、S1(檢測確定第一個詢問脈沖寬度)、S2(等待第二個詢問脈沖),S3(檢測確定第二個詢問脈沖寬度)、S4(詢問脈沖寬度過大等待脈沖結束)[12]。

圖2 詢問模式譯碼狀態轉移圖
S0狀態:在此狀態下,狀態機一直在等待第一個詢問脈沖信號的出現,如果第一個詢問脈沖信號出現,狀態機將轉入S1狀態。
S1狀態:在此狀態下,狀態機對第一個詢問脈沖的寬度進行檢測和確定,如果脈沖寬度小于0.7 μs,則轉入S0狀態,重新等待第一個詢問脈沖;如果脈沖寬度等于(0.8±0.1)μs,則轉入S2狀態,等待第二個詢問脈沖;如果脈沖寬度大于0.9 μs,則轉入S4狀態,等待脈沖結束。
S2狀態:在此狀態下,狀態機一直在等待第二個詢問脈沖信號的出現,如果第一個和第二個詢問脈沖信號的間隔小于7.8μs,狀態機將轉入S1狀態;如果脈沖間隔為(8±0.2)μs、(17±0.2)μs、(21±0.2)μs,狀態機會將這一時間間隔記憶下來,轉入S3狀態,檢測確定第二個詢問脈沖寬度;如果等待時間超過21.2 μs,狀態機將轉入S0狀態,重新等待第一個詢問脈沖。
S3狀態:在此狀態下,狀態機對第二個詢問脈沖的寬度進行檢測和確定,如果脈沖寬度小于0.7 μs,則轉入S0狀態,重新等待第一個詢問脈沖;如果脈沖寬度等于(0.8±0.1)μs,根據兩個詢問脈沖的間隔得出譯碼結果,轉入S2狀態,等待下一個詢問脈沖;如果脈沖寬度大于0.9 μs,則轉入S4狀態,等待脈沖結束。
S4狀態:如果詢問信號滿足ARINC718 規范,不會轉入該狀態。 如果詢問脈沖寬度大于0.9 μs 將轉入此狀態。 在此狀態下,狀態機一直在等待詢問脈沖的結束,如果詢問脈沖結束,狀態機將轉入S0狀態,重新等待第一個詢問脈沖。
使用ModelSim 對詢問模式譯碼模塊進行仿真,仿真結果如圖3 所示。

圖3 詢問模式譯碼模塊仿真結果
圖3 中,對于不同詢問模式,均可以產生正確的譯碼結果,達到設計需求。
圖4 給出了應答脈沖串的格式。 應答脈沖串由框架脈沖F1 與F2、信息脈沖及SPI 脈沖組成[13]??蚣苊}沖F1 與F2 恒為邏輯“1”。 12 個信息脈沖均勻分布在框架脈沖之間,它們的順序依次為C1、A1、C2、A2、C4、A4、B1、D1、B2、D2、B4、D4。 X 脈沖位于兩個框架脈沖的正中間位置,恒為邏輯“0”。 在框架脈沖F2 之后4.35μs 處是特別位置識別脈沖SPI。

圖4 應答脈沖串格式
識別碼的信息脈沖分成A、B、C、D 四組,每組表示四位識別代碼中的一位。 每組脈沖有3 個信息脈沖,這3 個信息脈沖組成八進制數。 每個脈沖的脈沖名稱后的數字代表該脈沖的權值,這樣,每組脈沖的權值之和就是這組脈沖所代表的代碼數。
高度編碼的增量為100 ft。 D1、D2 脈沖恒為“0”;D4A1A2A4B1B2B4 采用格雷碼,增量為500 ft;C1C2C4 采用五周期循環碼,增量為100 ft。
應答信號編碼模塊采用狀態機實現,狀態機一共有兩個狀態:idle 狀態和answer 狀態。
idle 狀態:在此狀態下,狀態機一直在等待有效的詢問,對于A 模式是指模式選擇開關處于A 位且詢問模式譯碼結果為A 模式;對于B 模式是指模式選擇開關處于B 位且詢問模式譯碼結果為B 模式:對于C 模式是高度報告開關打開且詢問模式譯碼結果為C 模式。 如果檢測到有效的詢問,編碼產生18 位數據reply_string,即相應的應答脈沖串,reply_string<={SPI,0,0,F2,D4,B4,D2,B2,D1,B1,X,A4,C4,A2,C2,A1,C1,F1},狀態機將轉入answer狀態。
answer 狀態:在此狀態下,狀態機將reply_string串行發送,產生應答信號。 串行發送的周期為0.05 μs,先發送第一位F1,在第1 ~9 個周期內,發送reply_string[i],在第10 ~29 個周期內發送0,這樣使得脈沖寬度為0.45 μs,脈沖間隔為1.45 μs,第一位發送完畢,發送下一位,直至發送完最高位SPI,應答結束,狀態機轉入idle 狀態。
使用ModelSim 對應答信號編碼模塊進行仿真,仿真結果如圖5 所示。
圖5 中,當高度報告開關打開、SPI 按鈕按下、高度為28 400 ft 時,進行C 模式詢問,產生相應高度碼應答信號,應答信號內容正確且脈沖寬度和脈沖間隔符合要求,達到設計需求。

圖5 應答信號編碼模塊仿真結果
應答機接收到有效詢問后,可以產生正確的應答信號。 圖6 與圖7 分別給出了代碼為7162 的應答脈沖串、高度為28 400 ft 的應答脈沖串。 如圖8所示,應答信號的脈沖寬度為0.5 μs,如圖9 所示,應答信號的脈沖間隔為1.44 μs,脈沖寬度和脈沖間隔都在ARINC718 協議規定的范圍之內[13]。

圖6 代碼為7162 的應答脈沖串

圖7 高度為28 400 ft 的應答脈沖串

圖8 應答信號的脈沖寬度

圖9 應答信號的脈沖間隔
本設計實現了ATC A/C 模式應答機編碼電路的設計。 通過控制面板可以控制系統的工作狀態,當接收到的詢問脈沖與控制面板上所置定的模式相符時,應答機產生相應的應答信號。 如果是A 或B模式詢問,則將控制面板上輸入的飛機識別代碼進行編碼后輸出;如果是C 模式詢問,則將來自大氣數據計算機的飛機氣壓高度進行編碼后輸出。 編碼電路還具有自測試功能,由自身內部產生模擬詢問信號,以使接收處理譯碼和編碼電路工作,從而可以檢測系統是否可以正常工作。 在Altera 公司的Cyclone IV 系列的EP4CE6E22C8[14]芯片上進行了硬件測試,仿真及測試結果表明,應答信號正確且符合ARINC718 協議規范,達到設計需求。