在各种单片机应用系统中,存储器的正常与否,直接关系到该系统的正常工作。为了提高系统的可靠性,对系统的可靠性进行测试是十分必要的。通过测试可以有效地发现并解决因存储器发生故障对系统带来的破坏问题。专注于销售各种存储芯片供应商英尚微电子介绍常用的单片机系统RAM测试方法,并在MARCH-G算法的基础上提出了一种低功耗的改进方法。它具有测试功耗低,故障覆盖率较高的特点。
RAM测试方法
方法1:给出一种测试系统ram的方法,该方法是分两步来检查,先后向整个数据区分别送#00H和#FFH,再先后读出比较,若不一样,则说明出错。
方法2:在方法1中,并不能完全检查出RAM的错误,对进行RAM检测的一种标准算法MARCH-G进行了分析介绍,MARCH-G算法主要的测试过程:
第一步,初始化存贮器所有存贮单元为“0”;
第二步,按地址递增的顺序对每一个单元进行先读初始化“0”并写“1”值的操作;
第三步,按地址递减的顺序对每一个单元进行先读“1”,后写“0”,再读“0”的操作。
MARCH-G算法能够提供非常出色的故障覆盖率。但是所需要的测试时间是很大的。MARCH-G算法需要对全地址空间遍历3次。设地址线为n根,则CPU需对RAM访问6*2次。
基于格雷码扫描的MARCH改进方法
给出格雷码的特点和低功耗应用分析,格雷码作为一种编码其相邻的两个代码只有一位不同,由格雷码组成的单跳变测试序列可以显著的降低被测电路的动态功耗。因此本文给出了一种基于格雷码扫描的MARCH改进方法,具体介绍如下:
march-G算法在对存贮器访问时地址信号是按一般二进制编码递增或递减的,例如地址线有4根,则寻址时按照0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1111的次序递增或者反向递减,因此是一种线性寻址方式;这种寻址方式没有考虑到测试时地址序列对存贮器内部的动态功耗影响。这里我们采用格雷码来取代原先的二进制编码作为地址信号,例如地址线有4根,则寻址时按照0000,0001,0011,0010,0100,0101,0111,0110,1100,1101,1111,1110,1000,1001,1011,1010的次序正序变化或者反序变化,这样对存贮器的寻址就属于非线性寻址方式,基于格雷码扫描的测试过程如下:
第一步,按格雷码地址次序正序变化将存贮器所有存贮单元写入“0”;
第二步,按格雷码地址反序变化对每一个单元进行读“0”并写“1”值的操作;
第三步,按格雷码地址正序变化对每一个单元进行读“1”的操作。设地址线为n根,则CPU需对RAM访问4*2n次。
和MARCH-G算法相比该方法能够提供相同的故障覆盖率,同时所需要的测试时间降低了三分之一,测试时RAM内部动态功耗降低了80%左右,因而比MARCH-G算法有更大的优越性。
本文介绍了单片机系统RAM测试的一般方法,并在原有MARCH-G算法基础上提出了一种改进的格雷码扫描的RAM故障测试方法。它具有诊断耗时短,测试功耗低的特点,因而有着很高的应用价值。
|