單片機RAM測試故障方法有幾種?
2017-10-09 14:47:50
在各種單片機應用系統中,芯片存儲器的正常與否直接關系到該系統的正常工作。為了提高系統的可靠性,對系統的可靠性進行測試是十分必要的。通過測試可以有效地發現并解決因存儲器發生故障對系統帶來的破壞問題。本文針對性地介紹了幾種常用的單片機系統RAM測試方法,并在其基礎上提出了一種基于種子和逐位倒轉的RAM故障測試方法。
一、 RAM測試方法回顧
方法1:一種測試系統RAM的方法是分兩步來檢查,先后向整個數據區送入#00H和#FFH,再先后讀出進行比較,若不一樣,則說明出錯。
方法2:方法1并不能完全檢查出RAM的錯誤,在參考文獻中分析介紹了一種進行RAM檢測的標準算法MARCH-G。MARCH一G算法能夠提供非常出色的故障覆蓋率,但是所需要的測試時間是很大的。MARCH-G算法需要對全地址空間遍歷3次。設地址線為”根,則CPU需對RAM訪問6×2n次。
方法3:一種通過地址信號移位來完成測試的方法。在地址信號為全O的基礎上,每次只使地址線Ai的信號取反一次,同時保持其他非檢測地址線 Aj(i≠j)的信號維持0不變,這樣從低位向高位逐位進行;接著在地址信號為全1的基礎上,每次只使地址線Ai的信號取反一次,同時保持其他非檢測地址線Aj(i≠j)的信號維持1不變,同樣從低位向高位逐位進行。因此地址信號的移位其實就是按照2K(K為整數,最大值為地址總線的寬度)非線性尋址,整個所需的地址范圍可以看成是以全0和全1為背景再通過移位產生的。在地址變化的同時給相應的存儲單元寫入不同的偽隨機數據。在以上的寫單元操作完成后,再倒序地將地址信號移位讀出所寫入的偽隨機數據并進行檢測。設地址線為n根,則CPU只對系統RAM中的2n+2個存儲單元進行訪問。
二、 基于種子和逐位倒轉的RAM測試方法
基于種子和逐位倒轉的測試方法是在方法3的基礎上進一步改進獲得的。方法3主要是使用全O和全1兩個背景數來移位展開的,與MARCH-G算法相比獲得的故障覆蓋率稍微低些,但使用了較少的地址單元。這里我們把方法3中的背景數稱為“種子”。以地址線為8根的RAM為例,種子分別取00000000和11111111兩個數,取00000000、11111111、0000llll和 llll0000四個數,以及取00000000、11111111、00001111、11110000、00110011、1100llOO、 01010101和10101010八個數來移位展開測試,所達到的故障覆蓋率是不一樣的。種子數為2的改進方法要低于MARCH-G算法的故障覆蓋率,種子數為4的改進方法與MARCH-G算法相當,種子數為8的改進方法能夠超過MARCH-G算法的效果。整體上基于種子和逐位倒轉的改進方法是可以代替 MARCH-G算法的,但是種子數目不同所需要的尋址次數也是不同的。設地址線為n根,種子數為2時需要訪問RAM共計4”+4次,種子數為4時需要訪問 RAM共計8n+8次,種子數為8時需要訪問RAM共計16n+16次,而MARCH-G算法需要訪問RAM共計6×2n次。可見,基于種子和逐位倒轉的改進方法比MARCH-G算法的測試時間開銷大大降低。同時,故障覆蓋率會隨著種子數目的增加而提高,當然不同種子數時所需要的測試時間開銷也不同。在實際測試應用中要根據測試時間和測試故障覆蓋率的需求來選擇合適的種子數目,才能達到滿意的效果。