基于故障重现的单片机系统设计

[09-12 17:55:53]   来源:http://www.88dzw.com  单片机学习   阅读:8128

文章摘要:程序执行流程该系统软件共由8个程序模块组成:指示单片机重启动的程序模块;检查CTC运行情况的程序模块;串口通讯功能检查程序模块;判断外RAM内容是否改变及读写是否出错的程序模块;判断内RAM内容是否改变程序模块;检查A/D转换电路转换误差是否增大程序模块;判断外中断足否被误触发程序模块;显示E2PROM内容是否被改写的程序模块。系统的工作过程也就是上述8个程序模块的运行过程,它们是在执行开关K的控制下顺序执行的。图3给出了流程图。几乎每一种效应实验对应一个程序模块。由于硬件损坏故障与软件运行关系不大,而且故障现象明显,无需专门设置程序模块。重肩动效应实验可以工作在除指示单片机重启动的程序模块的

基于故障重现的单片机系统设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

程序执行流程

该系统软件共由8个程序模块组成:指示单片机重启动的程序模块;检查CTC运行情况的程序模块;串口通讯功能检查程序模块;判断外RAM内容是否改变及读写是否出错的程序模块;判断内RAM内容是否改变程序模块;检查A/D转换电路转换误差是否增大程序模块;判断外中断足否被误触发程序模块;显示E2PROM内容是否被改写的程序模块。

系统的工作过程也就是上述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的中断子程序:

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《基于故障重现的单片机系统设计》相关文章

分类导航
最新更新
热门排行