基于某航空電子設備的自動測試系統設計與實現

各層實現功能如下:
硬件層 安裝有實現具體測試功能的適配卡、數據采集卡和串口,這些硬件設備是測試實現的核心,其通過J18C型電連接器,D型接口等與被測設備相連。
物理接口層 主要是指主機內采集卡提供的資源接口,另一方面它們主要通過ISA或PCI總線訪問測試主機的板卡。同時物理接口層還包含相關接口卡I/O操作的“軟性驅動”。
硬件驅動層 提供上層軟件訪問板卡硬件的方法,是軟硬件通訊的橋梁。測試系統中,所有驅動都采用WDM編程技術。
軟件支持層 它是系統設計和實現的核心,涉及到對硬件訪問功能封裝的API函數,對測試系統界面支持的導出類,對數據處理的算法、對硬件功能的封裝(初始化,中斷句柄傳遞,重置等),對動態連接庫的設計布置等。各個功能模塊負責各功能的實現并最終交給主線程綜合控制模塊來處理,其模塊化設計為軟件增添了靈活性和可靠性等諸多的優勢。
用戶應用層 為用戶提供簡捷易用的可視化圖形界面操作流程,并減少了誤操作的可能。應用層當中值得注意的幾點分別是:自動測試報表的生成、保存和打印需要用到CView類提供相關的成員虛函數來實現,文字與表格線條輸出采用CDC類實現,測試數據的保存需要用到CDocument類提供的服務對存儲串行化成員函數Serialize(CArchivear)的重載來實現,而幫助文檔視圖則是通過HtmlView基類來實現的。整個軟件視圖設計采用多視圖構架,特點是清晰且易操作。
3.3軟件設計流程
這里介紹了測試系統手動調試測試的一般流程。測試的一般步驟包括軟件初始化,測試系統自身軟硬件自檢,被測設備狀態切換的測試,觀測返回數字信號和模擬信號波形,模擬電機驅動信號控制電機旋轉,最后保存結果。其簡要的軟件流程如圖3所示。而對于自動測試來講,實質上就是按照一定的工作流程和被測設備的工作狀態切換來進行自主自動化的測試,總體的過程與手動調試測試相似,并生成測試報表進行記錄保存。
3.4軟件設計相關關鍵技術
3.4.1 面向對象與文檔視圖技術
文檔和視圖分離是MFC編程推薦的一種程序結構。在這種結構下,視圖類處理跟界面有關的內容,而文檔類處理跟存儲有關的內容,兩者通過GetDocument函數相關聯。這樣處理給編程帶來了很多好處,首先這種方法強調了模塊化的思想,兩個類中分別處理不同的任務,而需要數據交換時再相關,因此提高了程序的模塊化;其次兩個類中都有很多各自的支持類和函數,特別是視圖類,這樣就不互相影響,最大方便地實現每個類的功能。
3.4.2 多線程相關技術
測試軟件實現中采用多線程處理技術來調度多達4個組件共同測試的流程,同時數據采集與波形顯示的同步也采用了多線程間的同步來進行協調。當然這些線程具體調度由操作系統完成,但從用戶角度來看是同時并行運行的。Windows環境中系統通過時間片輪流的方式實現多線程,CPU為每個線程分配一個時間片,每個線程從被激活起,運行到時間片被耗盡為止,此時另一個線程運行。軟件設計時只需要將用戶界面消息循環和數據采集、處理分配在不同線程上,就可以避免計算機長時間不響應操作的問題。在軟件具體設計過程中,使用了測試線程和界面線程。界面線程為主控線程,控制測試線程的開啟、掛起和結束,提供消息循環并負責界面的生成和程序與用戶的交互。測試線程為工作者線程,實現具體的測試功能,包括數據采集、數據處理和數據入庫等。另外,系統自檢測和自動測試模塊也單獨各占有一個線程從而大大提高了測試系統的運行效率。

評論