靳 鴻 ,張志偉 ,崔建峰 ,王 建
(1.中北大學 電子測試技術國家重點實驗室,太原 030051;2.中北大學 儀器科學與動態測試教育部重點實驗室,太原 030051;3.北方自動化控制技術研究所,太原 030006)
隨著航空電子技術的飛速發展,對機載記錄儀的要求日益提高,測試信號之間復雜度的不同,要求機載數據記錄儀不僅要適應高壓、高沖擊的飛機環境、還要具備數據復雜度高、完整度高和系統可靠性高等特點。傳統的數據記錄儀大多采用RS232或USB2.0總線接口進行通信,實現測試數據的實時記錄[1],這種方法具有操作方便、易于實現、成本低等優點,但當機載數據記錄儀工作于飛行狀態時,RS232或USB2.0總線通訊存在數據傳輸不穩定、數據失真等問題。在當今工業控制領域,現場總線的需求日漸突出,航空總線作為飛機的神經網絡,在航空領域中發揮著重要的作用[2-3]。1553B總線標準被指定作為飛機內部的數據總線標準,具有抗干擾能力強、通信靈活、冗余容錯能力強、可靠性高、傳輸效率高等優點[4]。本文提出一種機載數據記錄儀的1553B總線接口設計與實現方法,當記錄儀處于飛行狀態時,機載計算機通過1553B總線控制記錄儀的工作;當記錄儀處于地面狀態時,地面站通過地面計算機控制記錄儀的工作,并實現記錄儀的數據上傳,以備事后分析。
記錄儀采用了模塊化思想[5],將1553B接口模塊設計為功能獨立的模塊,接口模塊與基板的連接采用自定義總線接口,接插件采用型號為HJ30J-18TJWP58的航空接插件。系統的工作過程為記錄儀通過1553B接口模塊接收到機載計算機(BC)的消息數據后,將消息數據解析出來的16位數據字發送給基板,基板接收到數據字后,統一管理其他記錄模塊的工作。系統結構如圖1所示。

圖1 系統結構Fig.1 Structure diagram of the system
本系統中機載計算機作為總線控制端(BC),1553B總線接口模塊作為遠程終端(RT),RT地址設為1,子地址設為1,1553B總線報文傳輸采用BC→RT格式,記錄儀自定義RT控制指令如表1所示。

表1 RT控制指令定義Tab.1 RT control instruction definition
1553B總線接口模塊主要完成記錄儀與機載計算機的通訊連接,實現1553B總線協議處理功能,并將解析得出的數據字發送給基板。1553B總線接口模塊結構如圖2所示,其硬件電路主要由1553B總線接口模塊、FPGA控制模塊、電源管理模塊、時鐘管理模塊、FPGA配置接口模塊等組成。

圖2 1553B總線接口模塊結構Fig.2 Structure diagram of 1553B bus interface card
1553B總線接口電路原理如圖3所示,接口模塊采用“電氣接口+1553B耦合變壓器+1553B總線收發器”的結構,其功能為1553B總線上的數據通過總線變壓器及碼型轉換后進入FPGA功能模塊。1553B總線電氣接口BUSA/BUSB采用單通道雙冗余模式,該模式具有通信效率高,容錯能力強的優點,接插件采用1553B總線專用連接器CJ450;BUSA/BUSB通道以變壓器耦合的方式連接到總線控制器[6],這種方式比直接耦合方式更具有實際價值,耦合變壓器采用PM-DB2725EX芯片;收發器用來收發雙冗余通道的1553B消息數據,將數據總線上傳至終端的雙電平曼徹斯特碼轉換為單電平曼徹斯特碼,或者將準備發送至總線的單電平曼徹斯特碼轉換為雙電平曼徹斯特碼,設計采用HI-1573收發芯片,該收發器擁有2個獨立的收發模塊,操作溫度范圍為-65℃~150℃,完全滿足航天操作要求。
1553B總線接口模塊控制器采用Altera的FPGA芯片Cyclone EP1C12Q240作為核心控制器。本設計根據記錄儀的功能需求,采用FPGA選擇性地完成總線協議處理功能,即1553B接口模塊只接收“BC-RT”類型的命令,系統響應后返回BC端狀態字和數據字。此方法代替了傳統價格昂貴的1553B協議芯片BU-61580[7],不僅簡化了外圍電路,提高了電路的穩定性,而且增加了設計的靈活性,同時降低了開發成本。
FPGA控制模塊內部設計包括譯碼器模塊、協議處理及控制功能模塊、編碼器模塊。其工作流程為總線上傳輸的串行數據進入譯碼器后,經譯碼器解碼后提供一系列有關當前被譯碼的字的信息,這些信息隨后進入協議處理及控制功能模塊,該模塊進行進一步的辨別及處理,按不同情況做出回應,并將產生的狀態字和數據字以及字格式信號發送至編碼器,最終以符合1553B總線數據格式的方式傳輸至總線控制器BC。
譯碼器主要實現的主要功能是將1553B總線收發器上得到的串行數據經過同步頭檢測、曼徹斯特II型碼轉換、串并轉換及奇偶校驗后,提取出指令字格式、同步頭檢測錯誤信息、16位并行數據、奇偶校驗錯誤信息等以供之后的模塊使用。整個譯碼器如圖4所示,包括同步頭檢測模塊、碼型轉換模塊、串并轉換及奇偶校驗模塊。譯碼器模塊設計首先考慮的是如何對1553B數據進行采樣,由1553B總線協議標準可知,1553B數據總線的傳輸速率是1 Mb/s,而曼徹斯特II型碼的每位數據編碼都占2位,且同步頭是在1.5位時有跳變,故需要1 MHz、2 MHz的時鐘作為譯碼時鐘,本設計中系統輸入時鐘選擇50 MHz,采用25分頻和50分頻產生2 MHz和1 MHz的時鐘。

圖4 譯碼器結構框Fig.4 Structure diagram of the decoder
當同步頭檢測模塊的使能信號en有效,清零信號clr無效時,同步頭檢測模塊采用clk2信號(2 MHz)時鐘對1553B總線串行數據信號rx、nrx(nrx為rx的反相數據)進行采樣記錄,若采樣值為111000,表示消息數據為命令字/狀態字,則輸出字格式信號syn_type為1,且輸出給碼型轉換模塊的使能信號en1有效;若采樣值為000111,則表示消息數據為數據字,輸出字格式信號syn_type為0,并輸出給碼型轉換模塊的使能信號en1;若采樣得到其他值,則輸出的同步頭檢測錯誤信號syn_err有效,且使能信號en1無效。
碼型轉換模塊收到使能信號en1后,采用clk1信號(1 MHz)時鐘對輸入信號rx進行異或非運算得到譯碼信號data,實現對曼徹斯特II型碼的碼型轉換,以及下一模塊的使能信號en2。
串并轉換及奇偶校驗模塊得到使能信號en2后,采用clk1信號(1 MHz)時鐘對譯碼信號data進行串并轉換后,輸出16位并行數據Dataout[15..0]和下一模塊的數據使能信號Data_en,同時驗證16位數據的奇校驗位,輸出奇校驗錯誤信號odd_err,最終完成譯碼過程。
協議處理及控制功能模塊實現的主要功能是對譯碼器發送的信息進行辨認及處理后,按不同情況作出回應,最后將生成的狀態字和數據字發送給編碼器,并將16位數據字發送給基板接口。協議處理及控制功能模塊組成如圖5所示,主要包括協議處理模塊、狀態字寄存器模塊和數據整合模塊。

圖5 協議處理功能及控制模塊組成Fig.5 Composition diagram of the agreement processing and functional control module
協議處理模塊的輸入信號分別有時鐘信號clk、系統清零信號clr、同步頭類型信號syn_type、同步頭錯誤信號syn_err、奇校驗錯誤信號odd_err、譯碼完畢數據使能信號data_en、16位并行數據信號datain[15..0]、終端地址信號 RT_addr[4..0]以及終端子地址信號RT_zaddr[4..0]。輸出信號分別有狀態字寄存器模塊使能信號en1、狀態字消息錯誤標志信號z_err、數據字輸出信號q_[15..0]、清零信號z_clr。
協議處理模塊根據譯碼完畢后的數據使能信號Data_en和同步頭類型信號syn_type確定輸入的數據datain[15..0]是否為命令字,如果syn_type為1(表示命令字),則將 datain[15..0]的 16位有效數據按命令字標準格式進行分析,將datain[15..11]與系統輸入的終端地址信號RT_addr[4..0]做比較,同時將datain[9..5]與系統輸入的終端子地址信號RT_zaddr[4..0]做比較,若都相同,則說明該命令是總線控制器發給本系統的命令,準備下一階段工作;若不同,則說明命令不是發給本系統的,系統不對其進行響應。終端地址信號可由FPGA內部設定也可由外輸入設定。datain[10]是T/R位,為發送/接收位,接收時為邏輯0,發送時為邏輯1,本系統只具有遠程終端功能,故該位保持1,即收到datain[10]為 1 的命令時系統給予響應;datain[4..0]為數據字計數,表示本系統應接收的數據字個數,系統應準備接收數據字。在命令字分析過程中,若出現同步頭檢測錯誤、奇校驗錯誤以及協議處理模塊在處理命令字的過程中產生的錯誤,則狀態字消息錯誤標志信號z_err有效。如果syn_type為0(表示數據字),且無同步頭檢測錯誤和奇校驗錯誤,則根據命令字中解析出的數據字計數,依次將datain[15..0]寫入協議處理模塊內部容量為32×16的fifo緩存器,以備數據整合模塊讀取數據字;若出現同步頭檢測錯誤或奇校驗錯誤,表明數據字無效,fifo為空。
狀態字寄存器模塊的主要功能是生成有效的16 位狀態字 z_data[15:0],其中 z_data[15:11]是遠程終端地址,該位由系統終端地址信號RT_addr[4..0]決定;z_data[10]是消息差錯位,該位由消息錯誤信號z_err來決定,若錯誤時該位置1,反之為0;其余各標志位根據使用狀況分別置位。
數據整合模塊首先通過輸出fifo讀使能信號rdreq和fifo讀時鐘信號rdclk讀取協議處理模塊中的數據字緩存器fifo;數據整合部分將讀取的數據字 q[15..0]、狀態字輸入 z_data[15..0]進行整合處理,最后輸出本系統響應的數據dout[15..0]、同步頭類型信號encode_sys_type、使能信號encode_en給編碼器,同時輸出數據字s_data[15..0]給基板。
編碼器設計實際上是譯碼器設計的逆過程,其主要功能是將協議處理及控制功能模塊得到的16位狀態字和數據字通過并串轉換和碼型轉換得到曼徹斯特II型碼,并添加相應同步頭以及奇校驗位,最終以串行方式和1 Mb/s的傳輸速度發送至1553B總線上,具體設計過程與譯碼器設計相似。
其他硬件模塊主要包括電源管理模塊、時鐘管理模塊、FPGA配置接口模塊等。電源管理模塊根據各元器件的供電要求,將5 V的輸入電壓經電源轉換芯片29302T6產生所需的電壓值3.3 V和1.5 V;時鐘管理模塊主要為FPGA提供20 MHz的時鐘;FPGA配置接口模塊采用JTAG配置方式,配置芯片選擇EPCS4N。
采用地面站對記錄儀進行了測試。將裝有1553B通訊板卡的計算機設置為BC端,向RT地址為0001h、子地址為0001h的記錄儀發送自檢命令0029h,消息配置如圖6所示,生成的命令字為0821h。消息命令發送后,BC端收到記錄儀回復的狀態字和數據字,如圖7所示,圖中顯示狀態字為0800h、數據字為0029h。經計算可知記錄儀返回正確的狀態字,由此表明記錄儀與BC端通訊成功。

圖6 BC端的消息配置Fig.6 BC port of the message configure

圖7 BC端的消息記錄Fig.7 BC port of the message record
為驗證FPGA內部1553B協議處理的正確性,同時使用QuartusⅡ內部集成的SignalTapⅡ Logic Analyzer軟件,觀測FPGA內部譯碼器和協議處理及控制功能模塊的工作狀態。BC端發送命令字0821h后,SignalTapⅡ觀測譯碼器的主要信號如圖8所示,從圖中可知譯碼器譯出的數據為0821h且同步頭類型信號sys_type為1,表示0821h為命令字,故譯碼過程正確。

圖8 SignalTapⅡ Logic Analyzer觀測編譯器主要信號Fig.8 SignalTapⅡLogic Analyzer observer compiler main signal
圖9所示為SignalTapⅡ觀測協議處理及控制功能模塊的主要信號,從圖中可知命令字0821h以及數據字0029發送后,協議處理及控制功能模塊首先回復狀態字0800h,然后回復數據字0029h,與圖7中記錄的狀態字和數據字完全一致,且狀態字的同步頭類型sys_type顯示為1,數據字的同步頭類型sys_type顯示為0,證明了該模塊的正確性。

圖9 SignalTapⅡ Logic Analyzer觀測協議處理及控制功能模塊主要信號Fig.9 SignalTapⅡLogic Analyzer observer agreement processing and control functional module main signa
經過多次機載測試試驗,記錄儀均能完整、準確地接收和響應機載計算機的消息數據,從而驗證了記錄儀的1553B總線接口設計的有效性。
本文提出了一種機載數據記錄儀的1553B總線接口設計,記錄儀通過1553B總線接口接收機載計算機的消息數據,控制記錄儀的工作,避免了飛行時使用RS422或USB2.0總線進行通訊存在數據傳輸不穩定、數據失真的問題。接口模塊以FPGA為中央控制器實現記錄儀的功能需求,并采用Signal-TapⅡ工具代替傳統的邏輯分析儀對系統設計進行在線測試。通過多次機載測試,測試結果表明,該設計實現了系統功能,從而驗證了記錄儀的1553B總線接口設計的可行性。
[1]張旭.帶多接口的多通道數據采集記錄儀研究與實現[D].西安:西安電子科技大學,2013.
[2]陳瑜,李愛軍,王雯,等.一種機載大容量總線監控器的設計研究[J].計算機測量與控制,2014,22(6):1815-1817
[3]龍志強,李訊,李曉龍,等.現場總線控制網絡技術[M].北京:機械工業出版社,2011.
[4]尹占芳,曹宇,楊福廣,等.基于FPGA的1553B總線終端設計[J].計算機測量與控制,2013,21(5):1288-1290.
[5]王歡,靳鴻,陳昌鑫,等.模塊化和柔性化的機載數據記錄儀設計[J].工程設計學報,2014,21(4):373-377.
[6]張惠宇宸,王曉曼,劉鵬,等.基于FPGA的1553B總線接口設計[J].吉林大學學報,2015,33(2):26-30.
[7]趙杰,甄國涌,王宇,等.基于FPGA的1553B總線測試系統設計[J].科學技術與工程,2013,34(13):10337-10343.