1、引言
航空電子設備的測試要求利用有限的資源,構建功能多樣化的自動測試系統。機載電子設備的信號多且復雜,涵蓋了低頻和高頻信號、連續和離散信號,同時還包括一些非電信號。傳統的測試系統采用分立儀器搭建,這種方法成本高,測量自動化程度低,擴展性差,因此要尋求一種實現高集成化應用廣泛的解決方案。本測試系統的設計可以兼容兩種航空電子機載設備的測試,兩個機載組件是實現飛機瞄準顯示、夜視穩定性和操縱性的關鍵環節。被測設備組件收發的信號包括數字發控信號,固定頻率模擬信號,電機驅動脈沖信號,RS232/RS422串口信號等。組件的功能就是響應計算機的命令從而發出其他類型信號來操作相關的機載硬件設備。原有的測試環境是依照操作人員手動搭建的測試平臺,包括示波器、開關量開關、
萬用表等,只能對設備一小部分功能進行檢驗,效率和準確性都有待提高。針對原有系統自動化程度低的缺點,本研究從軟件和硬件兩方面討論了一種基于航空電子機載電子設備自動測試及調試系統的設計實現方法。
2、測試系統的硬件設計描述
2.1測試系統的功能和硬件組成
該自動測試系統覆蓋了原有手動測試平臺的所有功能,為方便和完善測試還增加了新的特性,具體包括以下幾方面:
(1)測試系統的自檢測功能,包括軟件、硬件完整性自檢;
(2)測試的可選擇性,包括自動測試和手動調試測試,自動測試獨立模擬被測試電子設備工作狀況,按照設備正常工作流程進行一遍或多遍測試;手動調試測試時可以根據測試項目單步驟重復測試,方便錯誤定位;
(3)檢測到產品故障時暫停檢測并報故障,人工干預后可選擇結束檢測或繼續檢測其他項目,同時有例行測試功能可以保證被測設備在某一狀態下進行長時間的狀態監測;
(4)每次自動測試結果保存為一個單獨文件,并提供打印輸出功能;
(5)詳盡的在線實時幫助輔助操作人員完成測試;
(6)測試系統可以同時測試4塊機載電子設備組件,有效地提高測試效率。
整個測試系統(包括被測機載設備)由3個部分組成,如圖1所示。
2.2測試系統主機和內部數據采集卡
測試系統主機是整個系統zui重要的硬件平臺。這里選用了ACME-EMP350便攜式工控機作為測試系統主機。該型號性能穩定可靠,符合國軍標,且主板有足夠的擴展槽以備功能擴展。屏幕15.1寸,采用奔4主板,其他性能參數均超過主流工控機標準,完達到測試系統要求的穩定性和易操作性。
在分析被測設備信號形式和數量之后,并考慮同時測試4個設備,選擇數據采集卡的類型如下:開關量輸入輸出卡2塊,A/D,D/A卡各1塊。為了簡化系統設計和提高可靠性,數據采集卡選用NI公司和研華公司的成熟產品。
2.3轉接機箱和信號調理控制卡
測試主機與被測設備之間由轉接機箱相連,主要起到信號調理和控制的作用。轉接機箱內部包括調理控制卡、開關電源、采集卡的適配器等,它們都通過D型連接器及電纜與主機采集卡互連。調理控制卡所需的+5V和+28V電源由轉接機箱中的開關電源提供,其也為被測設備的正常工作供電。
信號調理控制卡負責系統的自檢和測試狀態的切換。測試系統采用軟件控制的方式對信號調理控制卡進行信號調控,這樣能夠在不同狀況下達到測試的目的。由于數據采集卡的輸出信號特性和被測航電設備的要求不*相同,需要加入信號調理控制卡使采集卡輸出信號特性與被測航電設備匹配,比如模擬信號的幅度,數字量信號的電平值等。信號調理控制卡主要采用運放放大模擬信號以及繼電器實現信號切換,功能實現簡單,不再贅述。
3、系統的軟件設計描述
3.1軟件設計思想
在測試軟件的開發中,對應的開發平臺有專門為虛擬儀器設計的軟件LabView和Labwindows/CVI,VEE等,也有通用的軟件開發工具VC++,VB等。的虛擬儀器軟件開發平臺優點在于開發周期短,缺點在于圖形化的編程語言給的自主性比較小,底層支持不夠。而VC++開發比較通用,對底層的支持比較好,技術較為成熟,對于上層各種模塊的實現方案也較多,因此采用VC++編程。
測試系統上層軟件要求有簡單易用的圖形化測試界面,還要具備自動測試、手動調試測試、例行測試,以及測試結果打印、錯誤報告提示、系統自檢測等功能。對應于不同的功能建立不同的功能模塊,這樣有助于測試通用性和移植性,對于將來擴展應用也非常有利。另外,將具體測試對象及代碼功能進行封裝,也有利于測試系統的維護。當然,應用程序必須對錯誤操作有良好的錯誤提示處理,這樣能夠有效地增加軟件的容錯性和可靠性。
3.2軟件整體構架
測試軟件設計采用分層結構,下層為上層提供服務,上層通過函數的形式接口使用下層來完成本身的功能,每一層的變更不影響其他層的正常工作。針對測試的要求以及設計理念,測試系統軟件分成以下幾個部分:硬件層,物理接口層,硬件驅動層,軟件支持層,用戶應用層。同時,每一層次當中有其對應的模塊化處理,從而保證軟件系統的健壯性和易用性。整個軟件設計的層次關系如圖2所示。
各層實現功能如下:
硬件層安裝有實現具體測試功能的適配卡、數據采集卡和串口,這些硬件設備是測試實現的核心,其通過J18C型電連接器,D型接口等與被測設備相連。
物理接口層主要是指主機內采集卡提供的資源接口,另一方面它們主要通過ISA或PCI總線訪問測試主機的板卡。同時物理接口層還包含相關接口卡I/O操作的“軟性驅動”。
硬件驅動層提供上層軟件訪問板卡硬件的方法,是軟硬件通訊的橋梁。測試系統中,所有驅動都采用WDM編程技術。
軟件支持層它是系統設計和實現的核心,涉及到對硬件訪問功能封裝的API函數,對測試系統界面支持的導出類,對數據處理的算法、對硬件功能的封裝(初始化,中斷句柄傳遞,重置等),對動態連接庫的設計布置等。各個功能模塊負責各功能的實現并zui終交給主線程綜合控制模塊來處理,其模塊化設計為軟件增添了靈活性和可靠性等諸多的優勢。
用戶應用層為用戶提供簡捷易用的可視化圖形界面操作流程,并減少了誤操作的可能。應用層當中值得注意的幾點分別是:自動測試報表的生成、保存和打印需要用到CView類提供相關的成員虛函數來實現,文字與表格線條輸出采用CDC類實現,測試數據的保存需要用到CDocument類提供的服務對存儲串行化成員函數Serialize(CArchive&ar)的重載來實現,而幫助文檔視圖則是通過HtmlView基類來實現的。整個軟件視圖設計采用多視圖構架,特點是清晰且易操作。
3.3軟件設計流程
這里介紹了測試系統手動調試測試的一般流程。測試的一般步驟包括軟件初始化,測試系統自身軟硬件自檢,被測設備狀態切換的測試,觀測返回數字信號和模擬信號波形,模擬電機驅動信號控制電機旋轉,zui后保存結果。其簡要的軟件流程如圖3所示。而對于自動測試來講,實質上就是按照一定的工作流程和被測設備的工作狀態切換來進行自主自動化的測試,總體的過程與手動調試測試相似,并生成測試報表進行記錄保存。
3.4軟件設計相關關鍵技術
3.4.1面向對象與文檔視圖技術
文檔和視圖分離是MFC編程推薦的一種程序結構。在這種結構下,視圖類處理跟界面有關的內容,而文檔類處理跟存儲有關的內容,兩者通過GetDocument函數相關聯。這樣處理給編程帶來了很多好處,首先這種方法強調了模塊化的思想,兩個類中分別處理不同的任務,而需要數據交換時再相關,因此提高了程序的模塊化;其次兩個類中都有很多各自的支持類和函數,特別是視圖類,這樣就不互相影響,zui大方便地實現每個類的功能。
3.4.2多線程相關技術
測試軟件實現中采用多線程處理技術來調度多達4個組件共同測試的流程,同時數據采集與波形顯示的同步也采用了多線程間的同步來進行協調。當然這些線程具體調度由操作系統完成,但從用戶角度來看是同時并行運行的。Windows環境中系統通過時間片輪流的方式實現多線程,CPU為每個線程分配一個時間片,每個線程從被激活起,運行到時間片被耗盡為止,此時另一個線程運行。軟件設計時只需要將用戶界面消息循環和數據采集、處理分配在不同線程上,就可以避免計算機長時間不響應操作的問題。在軟件具體設計過程中,使用了測試線程和界面線程。界面線程為主控線程,控制測試線程的開啟、掛起和結束,提供消息循環并負責界面的生成和程序與用戶的交互。測試線程為工作者線程,實現具體的測試功能,包括數據采集、數據處理和數據入庫等。另外,系統自檢測和自動測試模塊也單獨各占有一個線程從而大大提高了測試系統的運行效率。
3.4.3模擬信號狀態切換
在對控制性能要求較高的實時控制系統和數據采集系統中,就更需要定時操作。此系統在自動測試當中,需要對被測設備的各個工作狀態進行模擬,其工作狀態的變換是依靠四路開關量和兩路串口命令的改變而切換的。而狀態的切換需要在800ms內完成四個不同的狀態變換,這就需要在狀態變換線程中采取的定時來完成。在Windows中已經封裝了計算機底層硬件的訪問,因此在實際應用時,應針對具體定時精度的要求,采取相適應的定時方法。在精度要求較高的情況下,VC中可以利用GetTickCount()函數。該函數的返回值是DWORD型,表示以ms為單位的計算機啟動后經歷的時間間隔。在較短的定時中其計時誤差為15ms,經過調研該精度*該設備百微秒級的要求。
3.4.4容錯處理
本測試系統采取了很多容錯的處理手段。這里的容錯不僅包括對用戶非法操作的承受能力,還包括編寫正確的、優化的測試代碼。具體包括:C++語言本身容錯的處理,VC++環境下容錯的處理,強調Release版本的生成,模塊設計的容錯處理,用戶界面的容錯處理,測試軟件自檢測等。
4、測試結果
如圖4所示可以看到測試系統手動調試測試的主界面。測試人員通過點擊測試的各個按鈕對被測組件進行操作,從而判斷返回信號波形及參數,模擬電機的旋轉和返回燈的顯示來判定測試結果。關于自動測試、例行測試、自檢和報表的保存生成界面這里就不再羅列了。
5、結語
本系統設計完成后,經過系統聯調,功能上可以*代替原有手動測試系統,整套系統工作穩定可靠,操作簡單方便,容易維護。無論是自動測試、手動調試測試還是例行測試都極大地提高了效率和可靠性。整個測試系統的實物圖如圖5所示。