今天是
X
您现在的位置:首页 > 论文汇编 > 技术论文

技术论文

微机保护中RAM和EPROM的实时故障检测

  2005-02-25

 On-line Error Check in RAM and EPROM Used in Digital Protection 

和敬涵 北京电力高等专科学校 100044)

摘 要:通过分析RAM和EPROM中可能出现的故障,针对性地讨论了几种对RAM、EPROM实行故障检测的方法,并着重提出了一种省时实用的检测EPROM的独特方法——周期移位相加法。 

关键词:微机保护;RAM;EPROM;故障检测;周期移位相加法 

分类号:TP311.53

文献标识码:A 

文章编号:1003-9171(2000)02-0054-03 1

 

问题的提出

RAM和EPROM是微机保护中的重要部件。

RAM主要用来存放现场的各种输入、输出数据和中间结果,或用它来与外存储器交换信息和作为堆栈。它的存储单元中的内容应要求做到正确读出,准确写入,否则,从确定单元读出的内容失真,可导致计算错误、判断失误,从而引发保护误动、拒动等一系列不良后果。

微机保护的运行操作是在程序的指挥下进行的,而程序一旦写入EPROM后,一般是不会出错的。但使用时间长也不能保证没问题。例如当EPROM的窗口没封好,或用能透过部分光线的材料加封,长期暴露在日光、荧光灯下及处在各种放射线的环境中等,均有可能使EPROM中的信息发生变化,从而使系统不正常,导致保护动作异常。

由于RAM和EPROM中的出错总是个别单元零星发生,而出错单元不一定每次都能被执行到,故必须主动进行检查。因此,为确保微机保护正常动作,在编制软件时,需采取一定的措施对RAM和EPROM实行自检。自检程序既要省时,又要有效。以下讨论了对RAM和EPROM检测的几种方法,尤其是对EPROM检测的方法省时、有效,有独到之处。 

2 RAM的检测 

2.1 RAM可能出现的故障

RAM主要是由地址译码器、数据存储单元和读、写控制逻辑三部分组成。根据对其功能结构的观察与分析,常见故障为:

(1) 存储器开路或断路,如坏的存储单元、数据线粘结等。

(2) 译码器开路或断路导致存储器不能正确寻址,如地址线粘结等。

(3) 多重写入,即对某一个单元进行一个数的写入操作时,同时将该数写入了另一些单元。

(4) 单元中的内容在电气上受到临近单元读、写操作的影响而发生改变。

(5) 写后不能恢复,当随后进行读时,得不到信息。

 2.2 RAM的故障检测

由于RAM故障的多样性和复杂性,很难用一种简单的方法对其所有故障进行检测,既要考虑提高故障诊断率,又要考虑简单实用,因此对RAM的检测有非破坏性测试和破坏性测试二种。

非破坏性测试是在程序运行中进行RAM测试,它可检查RAM的每一个单元,而仍能使它保持原有的数据。非破坏性测试因为不中断保护功能,因此应选择较简单的模式,可用下述方格交错法:先将检查存储单元(如一个字节,8位)的内容读出,放入一个CPU的寄存器中,然后将55H写入该单元,测试软件再将此单元内容读出,检查它是否还是55H,然后再写入AAH(它是55H的镜像值),重复上述过程,当这个单元测试完毕后,恢复它原先的内容,然后测试下一个单元。这种方格交错法可以测试每个存储单元的每一位的2种二进制状态。对存储器断路或开路,如坏的存储单元,数据线粘结及写后未能恢复,当随后进行读时得不到信息等均有较好的检测效果。上述自检应设置在最高优先级的中断服务程序中,或先屏蔽中断再检测,以避免检测期间发生中断而导致检测错误。

要想检测其他的RAM故障,需用破坏性测试。破坏性测试会改变存储器的内容,但它与非破坏性测试结合,会使检查更加完善。具体方法是:开始测试时,将一个RAM的存储单元分成若干块,每块为256个存储单元,每个存储单元为8位字节,对每块中的256个存储单元依次写入00H~FFH,使每个单元内容不同,且依次增“1”。测试时,使基准寄存器中的内容依次加“1”并与第一块RAM的256个存储单元一一比较,查完256个单元,且内容均相同,将基准寄存器置零,重复上述过程,依次检查后面的若干块。若是16K RAM需分为63块。如果有故障出现则显示存储单元的地址和内容。这种方法对检查每块内发生的第(2)、(3)、(4)(见第2.1)种故障效果较好,如每块中有一根地址线粘接导致不能正确寻址等。但对块与块之间出现上述错误无法查出,因此,进行完每块的检测后,再将基准寄存器和全部指定的存储器置零,对分成的若干块的块首单元内容依次置01H~FFH。如果是16K RAM,只需置01H~63H,使每一块的块首地址内容不同,然后基准寄存器依次增“1”,每块块首地址内容相比较,相同则检测完毕,不同则显示故障出现的块编码和内容。

破坏性测试因为改变了原来的RAM内容,且较耗时,一般鉴于对RAM芯片的相信,建议只采用非破坏性测试。尽管如此,作为预检查的内容,微机保护也应具备这种检查功能,因为经过筛选的RAM芯片仍有可能故障。 

3 EPROM的自检

对EPROM的检查主要有:

(1) 读出的数据是否正确;

(2) 读出的数据是否对应其正确的位置(地址)。

可靠而精确的EPROM故障测试必须能检查出任何故障单元,EPROM中每单元存放8位字节,设每位出错的概率为10-4[1],则

码长为8的码字中含有1个差错的概率为:

C18×10-4(1-10-4)7=8×10-4×(0.999 9)4≈8×10-4

含有2个差错的概率为:

C28×10-8(1-10-4)6=28×10-8×(0.999 9)3≈2.8×10-7

含有3个差错的概率为:

C38×10-12(1-10-4)5=56×10-12×(0.999 9)2≈5.6×10-11

同理含有4个差错的概率为:7×10-15

含有5个差错的概率为:5.6×10-19

含有6个差错的概率为:2.8×10-23

含有7个差错的概率为:8×10-28

含有8个差错的概率为:10-32

含有2~8个差错的概率为:2.8×10-7

由上述分析可见,出的差错越多,概率越小。发生2个或2个以上差错的概率为2.8×10-7,它是发生单个差错的可能性的1/2 857。 

3.1 和数校验法

这是一种最简便的方法,按照EPROM中的地址空间将程序代码按字节或字累加,舍掉最高进位,最后的结果是和数的低8位或16位,从而得到一个长度为8位或16位的校验码,存入指定的单元,校验EPROM时,将所有程序按上述方法相加后,与校验码比较。一般来说校验码为16位较8位可信度高。 

3.2 奇偶校验法

一般采用奇校验法,校验字可位于EPROM中任何一个地方,它使待查的全部字节内容按对应位进行异或操作的结果为“+”(即呈奇特性)。进行校验时,EPROM测试程序逐个读出EPROM的每一个字节(包括校验字)的内容,并对每一位完成累积的异或操作)。完成全部待查空间运算后,累加器每一位都应当是“1”。上述方法用来检测单个位的错误、整个字的错误、按列奇数位的错误、粘“1”或粘“0”的数据线等故障。

上述两种方法的优点是:简单、省时,考虑到发生2个及2个以上错误的概率很小,这2种方法是可行的。但若考虑到其他错误也有可能发生,则以上2种方法有漏检的情况,如在同一列中出现偶数个随机错误、2根地址线粘“1”或粘“0”、出现突发性错误、突发错型不定,以上方法将不能检出。需用更完善的校验方法,如CRC校验法,但CRC校验法复杂、费时,对满足继电保护的速动性不利。以下推出一种省时而实用的方法。 

3.3 周期移位相加法

用目前广泛采用的以80C196系列单片机构成的微机保护为例分析周期移位相加法。由于80C196系列指令系统支持双字和长整数型等32位数据类型,可以实现32位加法运算。本方法将采用32位加法运算。EPROM中的内容是以8位字节形式存放的。 

3.3.1 基本方法

第一节:周期为8,左移7位

第一单元的8位字节不移位,放于0~7位,后面8个单元的每位字节依次左移1位,8个单元共移7位,第九单元不移位,仍放于0~7位。移位示意图如图1。第九单元后的7个单元的每8位字节仍依次左移7位,第十七单元的内容不移位,仍放于0~7位。以后的各单元重复执行上述过程,直到所要检测程序的最后1个单元,如图2所示。可见移位的周期为8,每周期内的单元共移7位。 

图1 移位示意图 

图2 周期为8的移位相加法示意图

全部移完后,所有单元内容相加,且保留进位,得到1个累加和。用此累加和进行EPROM校验,每列中间隔是8的倍数的偶数个错误将不能被检出。

第二步:周期为7,左移6位

方法同第一步,也得到1个累加和,用此累加和校验EPROM,则每列中间隔是7的倍数的偶数个错误将不能被检出。

如果一直减小移位的周期,直到1,重复上面的过程,可以总结出周期分别为8、7、6、5、4、3、2、1时,每周期内的单元移位次数分别为7、6、5、4、3、2、1或不移位,分别得到8个累加和,分别用这8个累加和单独去校验EPROM,每列中间隔分别是8、7、6、5、4、3、2、1的倍数的偶数个错误不能被检测出。而如果在1个校验程序中用这8个累加依次去校验EPROM,由于周期8、7、6、5、4、3、2、1的最小公倍数为840,则每列中间隔是840的倍数的偶数个错误将不能被检出,即采用周期为8的周期移位相加法,可检查840个字节的程序。因此,若把周期加大、每周期内的移位次数增加,势必能检查更多的程度。以32 K EPROM为例,下面分析要检查全部的程序所需要的周期移位相加法的周期及累加和是多少。 

3.3.2 检查全部程序的周期移位相加法

周期加大、移位位数的增加,相应地会出现一个问题:即进位是否会溢出的问题。具体分析如下:周期为13,每周期内的所有单元共移12位,则全部程序移位后所有内容占8+12=20位,由于采用32位加法,还余12位,这12位可供累加器的进位所占用。12位可进位数为:t1=212=4 096,而程序在周期为13、移位12位累加后的最高进位会占多少位呢?由于周期为13,平均每13个字节会有一个最高进位,对32 K字节的程序,可进位最高位的位数是:t2=215/13=2 520.6,对64 K字节程序,则为t3=216/13=5 041.23,可见t2<t1<t3。所以,采用周期为13,左移12位的移位相加法来校验32 K程序不会丢失信息,但对64 K将会丢失信息。由于13、12、11、……、3、2、1的最小公倍数是360 360,因此采用这种方法检查32 K程序足矣。那么采用最大周期为13的移位相加法需几个累加和来校验方能使每列出现偶数个错误时不漏检呢?由于360 360是13、12、11、10、7、3、1的最小公倍数,即只要间隔是13、12、11、10、7、3、1的单元的对应列出现偶数个错误的情况时,都能检测出,那么,自检程序中用周期为13、12、11、10、7、3、1的7个累加和来校验,可以检查360 360个字节程序的代码中出现所有偶数个错误的情况。这种方法不仅包括了和数校验法(周期为“1”),而且弥补了和数校验法的不足,对校验EPROM中出现前述的大部分错误,如各种偶数个错误、单个位错误、突发性错误、地址线粘“1”或粘“0”、整个字错误等均有良好的效果。如需检查64 K的字节程序,也可将进位“C”记下来,则移12位可计4 096×2=8192个进位数,因此这种方法对于检查64 K EPROM也是可行的,只是程序复杂些,时间也长。也可以采用程序分片的方法,分片后移位周期可小些,其实对32 K字节的内容,如硬件电路采用了2片EPROM,最好也是分片检测,这样既便于确定故障的单元,又可使每片移位周期小些,程序简单些,所用的时间也短些。周期移位相加法,对于采用12 M时钟的80 C 196系统,检查32 K EPROM仅需2 s时间。 

4 结论

为提高微机保护的可靠性,防止由于微机继电保护自身的缺陷引起保护不正确动作,从而给电网造成不必要的影响,采取有效的方法对RAM和EPROM进行故障检测是非常必要的。考虑到尽可能的提高保护的动作速度,采用的方法应有效、省时、实用。一般,对RAM的破坏性测试在研制完毕试验时可进行,而非破坏性测试应包含在运行中,对EPROM的几种检测方法各有特点,可根据具体情况而定。 

参考文献: 

[1]唐永洪.系统可靠性、故障诊断及容错.重庆:重庆大学出版社,1990. 

[2]周航慈.单片机应用程序设计技术.北京:北京航空航天大学. 

[3]P.K.拉拉[美].容错与故障可塑性设计.北京:中国铁道出版社. 

[4]肖冬荣.微型计算机实时控制的抗干扰.武汉:湖北科学技术出版社.

(2005-02-25)

标签:微机,RAM,EPROM,实时故障,检测,信息化

相关报道

指导单位:国家能源局新能源和可再生能源司
    国家电网公司农电工作部
                           中国南方电网有限责任公司农电管理部
主办单位:中国电机工程学会农村电气化专业委员会
北京国宇出版有限公司

联系方式:北京市大兴区地盛北街2号院17号楼 电话:010-63231592,010-63231638
QQ群:11979641(已满) 173615127  122166702
京公网安备11011502038427