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