基于LabVIEW的存儲器檢測系統(tǒng)研究
2.2.March算法
針對存儲器不同的故障類型,提出了多種存儲器的測試算法,如March算法、Walking算法、Calloping算法等。其中,March算法具有較高的故障覆蓋率,較小的時間復(fù)雜度,在存儲器測試中得到廣泛應(yīng)用。其基本步驟用公式表示如下:本文引用地址:http://www.ex-cimer.com/article/202555.htm
式中:Cij表示第i行,第j列的存儲單元;R表示讀操作;W表示寫操作;表示全部C的集合;∑表示,集內(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)行擴(kuò)展。測試時不僅要考慮到字間故障,而且也應(yīng)該考慮一個字內(nèi)多個位之間的耦合故障。面對這種情況就應(yīng)該增加March算法的測試數(shù)據(jù)。對于N位的存儲器,共有l(wèi)og2N+1種測試數(shù)據(jù),文獻(xiàn)給出了數(shù)據(jù)背景的計算公式。被測對象有18位存儲器,通過計算有5組測試數(shù)據(jù):
3 系統(tǒng)的軟件設(shè)計
3.1 軟件總體方案
該系統(tǒng)軟件部分基于虛擬儀器技術(shù)進(jìn)行開發(fā)。選擇LabVIEW作為測試程序開發(fā)工具,Access作為數(shù)據(jù)庫工具。整個軟件由主控程序、人機(jī)界面、測試模塊、診斷模塊、數(shù)據(jù)庫模塊組成。主控程序負(fù)責(zé)各個模塊之間的調(diào)用和協(xié)調(diào);人機(jī)界面實現(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)異?,F(xiàn)象,則由程序輸出自定義錯誤,通過自定義錯誤傳遞故障信息,同時跳出讀/寫循環(huán);取消設(shè)置,用來恢復(fù)測試時改變的各個參數(shù);錯誤判斷模塊,用于判斷錯誤類型,通過判斷自定義錯誤攜帶的信息判斷故障類型,并反饋給人機(jī)界面。圖2是主程序的程序框圖。
3.3 測試程序
對存儲器測試時采用March算法。March算法的特點是向存儲器順序地寫入和讀出數(shù)據(jù),通過分析數(shù)據(jù)判斷存儲器的故障。因此在測試程序的編制過程中,數(shù)字信號的輸入/輸出較為關(guān)鍵。圖3是讀/寫操作的程序框圖。根據(jù)適配器的實際方案.?dāng)?shù)據(jù)的輸入/輸出在設(shè)計時也有一定的要求。向存儲器寫數(shù)據(jù)時分為三個步驟:向鎖存器寫地址,向鎖存器寫數(shù)據(jù),鎖存器和狀態(tài)輸出。讀取存儲器的數(shù)據(jù)分為4個步驟:向鎖存器寫地址,鎖存器和狀態(tài)輸出,檢測數(shù)據(jù)輸出有效信號,讀鎖存器數(shù)據(jù)。實際應(yīng)用時,可以根據(jù)不同的芯片,設(shè)置不同的延遲時間,以滿足讀/寫周期的要求。
評論