基于故障重现的单片机系统设计
系统的工作过程也就是上述8个程序模块的运行过程,它们是在执行开关K的控制下顺序执行的。图3给出了流程图。几乎每一种效应实验对应一个程序模块。由于硬件损坏故障与软件运行关系不大,而且故障现象明显,无需专门设置程序模块。重肩动效应实验可以工作在除指示单片机重启动的程序模块的任一程序模块。死机效应实验可以工作在任一程序模块,由于故障现象明显,无需检测程序。 故障重现及检测的具体实现不同的故障现象有不同的重现和检测方法。由于篇幅有限,只给出三种故障重现及检测的实现方法。 外RAM效应
这部分实验包括三部分:一是不进行读写操作时,检查外RAM内容是否被改写;二是检查读操作是否出错;三是检查写操作是否出错。
第一部分实验中,RAM内容被改写是由于RAM芯片被干扰所致,只需编制检测程序。先在RAM的0000H~1FFFH单元写入同一数据("AA"),然后等待执行开关K的按下,等待期间进行冲击实验。冲击完毕,读出RAM内容并判断是否改变。
第二、三部分实验,检查RAM的读写操作是否因干扰而出错。让持续时间只有微秒量级的干扰脉冲去干扰执行时间只有几个微秒的读写指令,这种事件发生的概率几乎为0。对于干扰源可以工作在重复工作方式的情况,可以使其在重复工作方式下工作,这无疑是一种不错的想法。但是,由于重复工作方式的重复频率并不能做得很高,最高只能达到1kHz左右,所以其效果并不明显。最有效的方法是使程序重复执行一条读或写指令,虽然两次读或写之间还有几条判断读或写入的数据是否正确的指令,但两次读或写之间的时间间隔也只有数十微秒量级,这就相当于让读写指令等着电磁脉冲来干扰,从而大大提高了被干扰的概率。
第二、三部分程序编制开始时,为了使其更具代表性,对RAM的所有单元进行读或写,即先将RAM的0000H~1FFFH单元清0,然后使程序循环读这些单元,或向这些单元循环写入数据"AA",并实时检查读出或写入的数据是否正确。在实验中发现,第二、三部分实验出错的次数,比第一部分实验出现的次数还多。尽管采取了上述循环等待技术,但某条指
令被干扰的可能性还是很小。多次实验不得其解,后来在读实验显示出错信息时检查RAM各单元的内容,发现每次都有一部分RAM单元的内容出错,而读操作出错不可能导致RAM内容改变,因此,并不是或不全是读写操作出错,而是由于RAM内容被改写后,误判为读或写出错。解决这一问题的方法是,使读写操作只对某一一固定的RAM单元进行,由于一个单元被改写的概率是所有单元被改写概率的l/2,这就大大降低了误警概率。
串口SIO效应
串口SIO效应实验主要是看串口通讯是否出错。要观察到这种故障现象,就必须让单片机运行串口通讯程序。由于51型单片机只有一个串口,而要使其进行通讯,最少需要两个串口,这就至少需要有两套单片机系统,这将使设备和实验复杂化。在认真研究串口工作原理后,终于找到了只用一个单片机模拟串口通讯的方案:把CPU的TXD和RXD短接,将TXD端发出的数据直接送入RXD进行接收,使单片机工作于自发自收状态,通过检查接收与发送的数据是否相等判断通讯是否正常。当然,仍需采用循环等待技术,使通讯循环进行,当运行正常时,在P1.1口产生脉冲信号,使红色LED亮。如果通汛出现异常,数码管将显示出错信息,并将LED熄灭。
定时器CTC效应
为使CTC工作失误故障重现,可在主程序中加入允许CTC中断的指令,使程序运行时,CTC一直在工作,等待电磁脉冲来干扰。 定时器采用CPU内部定时器0,工作方式为方式1。编写CTC0的中断子程序,与软件计数器R0配合,在P1.1口产生一个方波信号,驱动LED闪亮。主程序等待K按下指令,等待期间进行干扰实验。如果LED闪亮异常,表明CTC工作不正常。以下为定时器0的中断子程序:
实验结果
在设计该单片机系统以前,曾用一单片机最小应用系统做效应实验,结果只能观察到死机现象。而将该系统用于效应实验后,观察到了硬件损坏、A/D转换误差增大、内存数据改变、程序跳转、死机、CTC工作失误、串口通讯出错和程序存储器E2PROM内容被改写等多种故障现象。通过大量、反复地实验,测出了各种故障出现的阈值,分析了故障出现的原因。大电流电感
求助中达电通GES-N3K不间断UPS告警无输出故障 中达电通GES-N3K不间断UPS,到手时不开机,该机由上下两块电路板组成,检查发现220V输入后的辅助电源部份损坏,检查其它部份没发现有损坏元件,更换烧坏的元件后通电可以开机,但是报
近场通信(NFC) 你了解多少? 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费
这是一个电热毯电路,请高手分析下。。本帖最后由ajimy于2013-6-3011:16编辑
请高手分析下为什么VCC正常,但生产还是有很不多不显示的坏机呢?帮忙说下原理,和可能造成此原因的地方。
先谢谢啦!
晕。
接触不良?led装反