在電子設(shè)備運行過程中,,存儲器發(fā)生故障或失效,不僅導(dǎo)致經(jīng)濟損失,,而且還有可能導(dǎo)致災(zāi)難性的后果,。因此存儲器的測試也成為當(dāng)今世界的一個重要問題,在軍事裝備中存儲器正扮演著很重要的角色,。目前,,基于虛擬儀器設(shè)計的自動測試系統(tǒng)已成為主流,而軟件則是虛擬儀器的核心,。在此,,以LabVIEW為軟件工具,,結(jié)合相應(yīng)的數(shù)字I/O卡,開發(fā)一套用于某裝備存儲器檢測的檢測系統(tǒng),。
1 總體方案及硬件設(shè)計
1.1 需求分析
該系統(tǒng)所選的被測對象是某型裝備中的公用存儲器,,測試通道有地址總線18根,、數(shù)據(jù)總線18根,,控制線3根(控制線共7根,其中3根有效),。其中,,狀態(tài)輸出信號表示讀/寫信號是否有效;讀/寫信號表示對RAM的讀/寫操作,;數(shù)據(jù)輸出有效信號表示數(shù)據(jù)輸出是否有效,。容量8 KB,讀周期400 ns,,寫周期500 ns,,供電電壓5 V。
1.2 系統(tǒng)硬件設(shè)計
該硬件系統(tǒng),,以中心計算機為主體,,以插入其中的數(shù)字I/O卡為功能部件。通過計算機控制數(shù)字I/O卡進(jìn)行數(shù)字信號的輸出和測量,。由此可知,,系統(tǒng)平臺的搭建關(guān)鍵是選擇合適的數(shù)字I/O卡。該系統(tǒng)測試的主要信號有地址信號,、數(shù)據(jù)信號和控制信號,。考慮到輸出位數(shù)和速度,,用NI公司的數(shù)字波形發(fā)生器/分析儀 6542,,它具有32路可雙向控制的通道,可方便地進(jìn)行信號輸出和對信號的采集,。該模塊每個通道都有1 Mb,,8 Mb和64 Mb的板載內(nèi)存,便于測試信息的存儲,。
1.3 接口適配器設(shè)計和端口的分配
接口適配器用于連接被測設(shè)備和測試平臺,。設(shè)計時只選用一塊6542模塊,所以只有32個輸出通道,,不能實現(xiàn)所有信號的有效同步輸出,,設(shè)計時需采用數(shù)據(jù)線和地址線共用的原則予以解決。接口適配器的組成框圖如圖1所示,。選擇6542的port0~port2作為公用的地址線和數(shù)據(jù)線,,port3作為控制線,。鎖存器選擇雙向鎖存器,通過鎖存方向控制數(shù)據(jù)的輸入/輸出,,片選控制線控制數(shù)據(jù)的鎖存,,鎖存輸出控制線控制鎖存器里的數(shù)據(jù)讀出。
2 存儲器測試算法分析
2.1 存儲器故障類型
存儲器故障總體可以分為單個單元的故障和單元之間的故障兩類,。單個單元的故障包括:粘滯故障(SAF)一個陣列總是0或1,;轉(zhuǎn)換故障(TF),即一個特定單元在一定轉(zhuǎn)換序列后不能進(jìn)行0/1翻轉(zhuǎn),;數(shù)據(jù)保持故障(DFR),,即一個單元在一段時間后不能保持它的邏輯值等。單元之間的故障主要是耦合故障(CF),,它包括字間故障和字內(nèi)故障,。
2.2 March算法
針對存儲器不同的故障類型,提出了多種存儲器的測試算法,,如 March算法,、Walking算法、Calloping算法等,。其中,,March算法具有較高的故障覆蓋率,較小的時間復(fù)雜度,,在存儲器測試中得到廣泛應(yīng)用,。其基本步驟用公式表示如下:
式中:Cij表示第i行,第j列的存儲單元,;R表示讀操作,;W表示寫操作;∀ij表示全部c的集合,;∑表示∀ij,,集內(nèi)的總和;逗號“,,”是公式內(nèi)各有序操作之間的分隔符,;0或1表示背景數(shù)據(jù)和操作數(shù)據(jù)。根據(jù)公式可以算出測試的復(fù)雜度為 5N,。簡單說就是按照一定的規(guī)則向存儲器寫入和讀出數(shù)據(jù),。針對不同的故障模型,在測試中添加不同的數(shù)據(jù)背景可以實現(xiàn)相應(yīng)的故障覆蓋,。通常,,一種算法不能覆蓋所有的故障類型,所以測試時要用兩種或兩種以上的算法。
2.3 March算法在檢測系統(tǒng)中的應(yīng)用
一般的March算法都是以位進(jìn)行操作的,,而被測對象是18位的數(shù)據(jù)通道,,存儲方式為字節(jié)存儲,因此應(yīng)該對March算法進(jìn)行擴展,。測試時不僅要考慮到字間故障,,而且也應(yīng)該考慮一個字內(nèi)多個位之間的耦合故障。面對這種情況就應(yīng)該增加March算法的測試數(shù)據(jù),。對于N位的存儲器,,共有l(wèi)og2N+1種測試數(shù)據(jù),文獻(xiàn)[7]給出了數(shù)據(jù)背景的計算公式,。被測對象有18位存儲器,,通過計算有5組測試數(shù)據(jù):
3 系統(tǒng)的軟件設(shè)計
3.1 軟件總體方案
該系統(tǒng)軟件部分基于虛擬儀器技術(shù)進(jìn)行開發(fā)。選擇LabVIEW作為測試程序開發(fā)工具,,Access作為數(shù)據(jù)庫工具。整個軟件由主控程序,、人機界面,、測試模塊、診斷模塊,、數(shù)據(jù)庫模塊組成,。主控程序負(fù)責(zé)各個模塊之間的調(diào)用和協(xié)調(diào);人機界面實現(xiàn)用戶與測試系統(tǒng)的交互,;測試模塊完成數(shù)字信號的輸出和采集,;數(shù)據(jù)庫模塊主要用于實現(xiàn)整個系統(tǒng)數(shù)據(jù)的管理。
3.2 主程序
主程序依托LabVIEW軟件,,采用模塊化的設(shè)計思想,,主要包括程序初始、測試數(shù)據(jù),、讀/寫數(shù)據(jù),、取消設(shè)置、和錯誤判斷五個部分,。程序初始模塊,,用于進(jìn)行面板參數(shù)設(shè)置和板卡設(shè)置;測試數(shù)據(jù)模塊,。用于:通過對數(shù)據(jù)庫數(shù)據(jù)的查詢,,提取地址和數(shù)據(jù)等信息;通過對讀/寫信息的判斷,,選擇數(shù)據(jù)信息輸出的讀入,。如果測試時出現(xiàn)異常現(xiàn)象,則由程序輸出自定義錯誤,,通過自定義錯誤傳遞故障信息,,同時跳出讀/寫循環(huán);取消設(shè)置,,用來恢復(fù)測試時改變的各個參數(shù),;錯誤判斷模塊,用于判斷錯誤類型,,通過判斷自定義錯誤攜帶的信息判斷故障類型,,并反饋給人機界面。圖2是主程序的程序框圖,。
3.3 測試程序
對存儲器測試時采用March算法,。March 算法的特點是向存儲器順序地寫入和讀出數(shù)據(jù),通過分析數(shù)據(jù)判斷存儲器的故障,。因此在測試程序的編制過程中,,數(shù)字信號的輸入/輸出較為關(guān)鍵。圖3是讀/寫操作的程序框圖,。根據(jù)適配器的實際方案,,數(shù)據(jù)的輸入/輸出在設(shè)計時也有一定的要求。向存儲器寫數(shù)據(jù)時分為三個步驟:向鎖存器寫地址,,向鎖存器寫數(shù)據(jù),,鎖存器和狀態(tài)輸出。讀取存儲器的數(shù)據(jù)分為4個步驟:向鎖存器寫地址,,鎖存器和狀態(tài)輸出,,檢測數(shù)據(jù)輸出有效信號,讀鎖存器數(shù)據(jù),。實際應(yīng)用時,,可以根據(jù)不同的芯片,設(shè)置不同的延遲時間,,以滿足讀/寫周期的要求,。
3.4 數(shù)據(jù)庫設(shè)計
軟件設(shè)計時,采用主控程序與測試信息分離的思想,,通過數(shù)據(jù)庫來存儲測試信息,。數(shù)據(jù)庫采用比較常用的數(shù)據(jù)庫Access。測試時,,根據(jù)不同的測試算法,,將不同測試數(shù)據(jù)編繪到數(shù)據(jù)庫中。測試時主程序通過 SQL語言對數(shù)據(jù)庫進(jìn)行調(diào)用,,控制數(shù)字信號的輸入/輸出,,從而實現(xiàn)測試內(nèi)容的可擴展性。根據(jù)March算法的規(guī)則,設(shè)計數(shù)據(jù)表時,,要設(shè)計編號,、讀/寫操作、地址,、數(shù)據(jù)和結(jié)束標(biāo)志5列,。編號用來實現(xiàn)March算法的順序執(zhí)行;讀/寫操作用于主程序中判斷數(shù)據(jù)的讀/寫操作,;地址用于存儲地址信息,;數(shù)據(jù)用于存儲數(shù)據(jù)信息;結(jié)束標(biāo)志用于結(jié)束本算法的測試,。數(shù)據(jù)庫存儲表格如圖4所示,。第一行表示第一次讀/寫操作,向0地址寫入數(shù)據(jù)80,。
4 結(jié)語
采用NI系列PXI板卡及靈活方便的LabVIEW軟件平臺,,構(gòu)建了一套某裝備存儲器的檢測系統(tǒng)。通過數(shù)據(jù)庫實現(xiàn)了測試算法與測試程序的獨立性,,可以根據(jù)不同的March算法進(jìn)行測試,。實驗結(jié)果表示,該系統(tǒng)具有自動測試性強,,容易操作,可擴展性強等特點,,有效提高了對某裝備存儲器的測試效率,。