1553總線測試仿真系統設計與實現
摘要:為了解決1553總線的測試和故障排查問題,以AEC1553-PCI-FBC31RT-2-S2型1553B信號解調板為基礎,設計、構建了1553總線測試仿真系統,完成了系統軟件的設計、研制、調試和測試工作。系統軟件包括1553總線信號實時采集、實時分析處理、實時顯示和總線仿真等多個軟件模塊,采用多線程軟件設計技術保證了信號采集和數據轉換的實時性和可靠性。實際應用表明,該系統縮短了排故周期,提高了效率試飛。
關鍵詞:1553總線;信號解調;實時處理;仿真
0 引言
飛行試驗是飛機及相關航空產品設計定型中非常重要的階段,而飛行試驗數據處理又是飛行試驗過程中不可缺少的重要環節。隨著新型號的不斷出現和新技術的發展,航電系統的結構越來越復雜,系統越復雜故障發生點就越多,這給試飛測試和試飛數據處理工作帶來了巨大的挑戰,當故障出現時如何在最短時間內將故障定位,如何縮短數據處理周期,都是試飛測試和試飛數據處理必須解決的問題。
針對以上問題,本文提出了飛行試驗中1553總線測試和仿真系統的設計和實現方法,該系統是基于MIL-STD-1553(GJB289A)數據總線標準開發的,主要用于對1553B信號進行測試和仿真。該系統能對飛機上的總線信號進行實時采集、實時處理、實時監測和記錄,能夠對飛行總線數據進行事后分析和實驗室1553總線信號仿真功能,可以加快用戶對總線錯誤定位的速度,縮短數據處理周期,減少試驗次數降低試驗費用。
1 系統設計
1.1 統組成
系統硬件由工控計算機和雙通道多功能1553B數據通信卡組成。系統的主要功能靠軟件來實現,各軟件模塊問的工作流程示意圖如圖1所示。系統軟件從結構上主要分為2部分:1553B測試軟件和1553B仿真軟件,圖1中除仿真模塊之外的所有模塊都屬于測試軟件中的功能模塊。
1.2 1553B信號實時測試軟件設計與實現
1.2.1 軟件結構設計
1553B總線信號實時測試軟件,主要設計思想是根據功能需求,采用了模塊化設計。主要功能模塊有:總線信號實時采集模塊、實時分析處理模塊、數據回放模塊、實時顯示監控模塊、原始數據記錄模塊和數據處理結果存儲模塊共6部分。
為了提高1553B測試軟件的運行效率,本系統軟件采用了多線程編程技術對1553B進行信號采集和處理,主線程和子線程之間通過信號量實現同步。下面對多線程編程技術進行簡單介紹,給出使用多線程編程技術的必要性和對軟件運行效率的影響。
1.2.2 多線程編程技術
Windows是一個多任務操作系統,它們在每一時刻中都可以有多個進程同時工作,而一個正在執行的程序就是一個進程,每個進程至少有一個線程,也可以有多個線程。
每一個進程至少有一個主執行線程,它是由系統自動創建的。用戶可以根據需要在應用程序中創建其他線程,多個線程并發的運行于同一進程。這樣可以將一些占用時間長的程序任務放到后臺去處理,提高程序的運行速度,占用更少的資源等。對復雜的應用程序來說,線程的應用給應用程序提供了高效、快速、安全的數據處理能力。
要充分發揮多線程編程技術的優勢,必須要解決好線程之間的同步問題,線程同步就是如何讓多個線程不要同時訪問同一個數據,讓多個線程能夠協調一致的工作,以免破壞數據的完整性和防止死鎖情況的發生。常用的線程同步技術有信號量(Semaphores)、互斥鎖(Mutex)和臨界段(Critical Sections)。
1.2.3 實時測試軟件實現方法
實時測試軟件中的總線數據實時分析處理是主線程,信號采集由單獨的子線程來完成,這樣可以保證總線能夠得到及時采集和分析處理,通過消息告訴主線程數據已經采集好了,主線程收到消息之后開始進行解算、分析。
在實時測試軟件中當主線程運行時,首先要建立主線程和子線程之間,通信的消息,然后建立采集線程工作函數(定義采集線程的入口函數),定義創建ICD結構樹的過程和一組消息分析函數,然后對1553B多功能解調卡進行初始化。總線信號采集系統在總線上相當于是一個監視器,因此要將采集卡設置在監聽模式。
要對總線數據開始進行實時測試,首先要進行采集總線信號。創建采集線程時,將主線程與子線程的堆棧尺寸設為相同,并且其長度會根據需要自動變長,給出采集線程執行時代碼所在函數的地址(線程工作函數),將采集線程設為創建后立即執行的運行模式,采集線程采滿數據之后通過消息通知主線程,主線程開始對采集到的數據進行分析處理。
對采集到的數據進行分析處理的內容主要包括,將采集到的原始數據,按照100%1553B事后處理軟件輸入數據的格式,寫到存儲介質上;將用戶需要實時監控的參數按照GJB289A中的消息結構和通信標準、1553總線中總線控制器、遠程終端的地址、子地址、收/發等信息和ICD信息進行實時處理,并將分析處理結果以數字、文字和曲線的形式進行實時顯示,同時寫入結果數據文件中,其格式和事后處理軟件的輸出格式完全相同。實時處理軟件模塊的程序邏輯流程圖,如圖2所示。
1.2.4 實時測試軟件界面設計
實時測試軟件界面設計原則是界面友好,為用戶傳遞的信息準確無二意性,可操作性要強。實時測試和事后回放主界面中右側表格中奇數行,顯示消息中每個元素的名稱,是從ICD數據庫中讀取的內容,偶數行顯示每個元素總線數據的解算結果。由于采用了多線程設計,用戶在測試和回放過程中可以隨時增加需要測試顯示的數據塊,處理軟件會立即響應,而不會出現單線程軟件中的死機現象。測試主界面如圖3所示。
1.3 1553B信號仿真軟件設計與實現
1.3.1 仿真軟件結構設計
仿真軟件由消息配置、消息發送和停止發送3個模塊組成。其中,消息配置包括消息塊信息的增、刪、改等消息編輯功能,消息編輯包括消息名稱定義、消息格式選擇、消息選項設置、指令字配置和數據字配置共5部分,軟件結構示意圖如圖4所示。
仿真軟件的設計思想是要準確地控制總線多功能解調卡,要深入了解并掌握每個API函數的意義和使用方法,如何將API函數和實驗室需要的總線數據緊密結合,使板卡的功能發揮到極致,是在軟件設計中比較關鍵的技術環節,該板卡的所有API函數都封裝在動態鏈接庫(同時提供了常規函數庫)中,因此在軟件設計時必須確定采用哪種函數庫,和采用哪種調用方法,從而在軟件實現方法上實現突破。針對這些情況下,通過對動態鏈接庫和常規函數庫的比較分析,調用方法的比較分析,最終確定本系統開發所采用的API函數調用技術。
1.3.2 動態鏈接庫技術
動態鏈接庫與常規函數庫的區別在于:常規函數庫,連接器復制它需要的所有庫函數,并把確切的函數地址傳給調用這些函數的程序。而對于動態鏈接庫,函數存儲在一個獨立的DLL文件中。在創建Windows程序時,鏈接過程并不把DLL鏈接到程序中。直到程序運行并調用其中的一個函數時,該程序才要求給出這個函數的地址。
根據以上對2種不同函數庫技術特點的分析,本系統軟件在設計時,采用了板卡供應商所提供的API函數的動態鏈接庫。
調用一個存儲在動態鏈接庫中的過程或函數有靜態和動態2種方式。靜態調用指在單元的Interface部分用External指示字列出要從DLL中調用的過程,DLL和DLL中的函數在程序執行前被加載。靜態調用所需要的代碼量少,但它有2個缺點:一是當要加載的動態鏈接庫不存在或在動態鏈接庫中沒有找到要調用的函數時,程序就會停止運行;二是一旦動態鏈接庫加載,就一直停留在應用程序的地址空間。
動態調用不需要單元的Interface部分把要調用的所有函數列出,只要調用前引入,用Loadlibrary函數指定需要加載的DLL,用GerProc Address函數指定需要調用的函數。如果指定的DLL出錯,最多時API調用失敗,不會導致程序終止。
基于對動態鏈接庫2種調用方式的分析、對比實驗,1553總線測試仿真軟件采用動態調用動態鏈接庫的方式,實現API函數的調用。
1.3.3 1553B仿真軟件實現方法
仿真軟件算法根據國軍標《飛機內部時分制指令/響應式多路傳輸數據總線》中的消息格式,以及不同格式的消息結構特點,仿真出總線控制器和各個遠程終端之間的總線工作狀態。總線系統中消息格式分為總線控制器向遠程終端的傳輸BC RT,遠程終端向總線控制器的傳輸RT BC,遠程終端向遠程終端的傳輸RTRT共3種格式。
仿真軟件算法實現步驟如下:
(1)采用動態調用板卡控制函數的動態鏈接庫,用Loadlibrary進行加載;
(2)采用GerProcAddress函數指定需要調用函數的地址,仿真系統作為1553總線系統中的BC進行信號仿真;
(3)對1553B多功能卡進行設置,包括板卡初始化、板卡;
(4)根據用戶需要仿真的消息結構、周期、時間間隔、通道號(A、B總線)和消息內容組建消息包;
(5)根據用戶需要仿真的總消息中各個消息包的結構,建立消息鏈標;
(6)啟動BC,對1553B信號進行仿真輸出,如果是周期消息就一直輸出,直到用戶給出停止操作,如果是非周期函數,執行一次發送后就不再發送。
仿真軟件的邏輯流程圖如圖5所示。
仿真軟件用戶界面主要是消息配置和消息編輯界面,分別如圖6,圖7所示。
2 系統測試與結果分析
2.1 系統測試方法
系統功能和性能的測試是在實驗室進行的,利用成熟的1553B信號源,采取先進行單獨的航電子系統測試,然后再進行綜合航電系統測試的方法來進行該系統的實時采集、實時處理、實時記錄等功能,用現有飛機的飛行數據測試了事后回放和事后處理模塊的性能。
首選測試方法是與其他系統進行實例對比,通過不同系統之間測試結果的一致性來判斷結果的準確性,例如:總線控制器給雷達發一個消息,將本系統監測到的消息與信號源發出的消息進行一致性對比。
第2種方法是采用理論衡量法,總線上的某個子系統執行了某條指令之后,按照國標軍標的規定,理論上本系統應該出現一種測試結果,然后將本系統實際的測試結果和理論測試結果進行對比,確定雙方的一致性。
第3種方法是采用不同的分析處理方式對總線數據進行分析處理,將結果進行對比,對于本系統來說,將實時測試模塊的測試結果與事后處理軟件的分析處理結果進行對比。
2.2 系統測試結果分析
通過對整個系統性能進行的測試,均達到了實際工作要求的指標,ICD管理軟件對ICD信息的分解和管理達到100%的準確率,滿足用戶需求;系統時延的測試結果是小于等于60 ms,完全滿足用戶提出的測試仿真系統小于等于70 ms的時延;在消息采集完整性測試中,通過對記錄數據進行隨機查找指令字和事后分析處理的方法進行測試,測試結果都表明,總線上的消息百分之百地的被采集并記錄下來,沒有丟消息的現象。仿真消息能夠準確地傳輸到用戶所設定的實驗室總線終端中,而且消息內容準確無誤;系統連續開機8 h測試,系統運行非常穩定。
3 結語
根據試飛測試需求,選用以1553B總線信號解調板AEC1553-PCI-FBC31RT-2/S2為硬件基礎,設計和開發的1553B總線測試仿真系統,采用通用化、標準化、模塊化的設計思想,具有良好的實用價值,可以作為運輸機上百分之百地1553B信號采集、記錄裝置、試飛數據地面處理系統、作為進行排故實驗時的信號源,目前已應用到各個重點型號中。具有良好的擴展性,可以通過技術改造后,形成體積小巧的百分之百地1553B信號采集、記錄單元,應用到殲擊機和直升機上。
評論