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