在各种单片机运用体系中,芯片存储器的正常与否直接关系到该体系的正常作业。为了进步体系的可靠性,对体系的可靠性进行测验是十分必要的。经过测验能够有效地发现并处理因存储器发生毛病对体系带来的损坏问题。本文针对性地介绍了几种常用的单片机体系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算法的测验时刻开支大大下降。一起,毛病覆盖率会跟着种子数意图添加而进步,当然不同种子数时所需求的测验时刻开支也不同。在实践测验运用中要根据测验时刻和测验毛病覆盖率的需求来挑选适宜的种子数目,才干到达满足的作用。