微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 电磁兼容技术及应用实例详解:工控机的抗扰问题

电磁兼容技术及应用实例详解:工控机的抗扰问题

时间:08-14 来源:互联网 点击:

,只要程序正常运行,定时器不会出现定时中断。而当程序运行失常,不能及时刷新定时 器时间常数而导致定时中断,利用定时中断服务程序将系统复位。在8031应用系统中作为软件抗干扰的一个事例,具体做法如下。

  (1)使用8155的定时器所产生的"溢出"信号作为8031的外部中断源INT1。用555定时器作为8155中定时器的外部时钟输入。

  (2)8155定时器的定时值稍大于主程序的正常循环时间。

  (3)在主程序中,每循环一次,对8155定时器的定时常数进行刷新。

   (4)在主控程序开始处,对硬件复位还是定时中断产生的自动恢复进行分类判断处理。然而,这并不等于万无一失。例如,看门狗电路本身失效;设置看门狗的 指令正好在取指令时被干扰而读错;看门狗"发现"程序跑飞之后,其产生的复位脉冲或者NMI申请信号正好被干扰而没奏效,等等。虽然以上导致看门狗失效的 因素的概率很小,但总是存在的。另外,还有相当数量的工业控制计算机没有看门狗电路。

  4.软件自监视法

  1)随时监督检查程序计数器PC的值是否超出程序区

   计算机正常运行时,其PC值一定在程序区内,如果PC值跑出程序区,计算机肯定已发生了程序跑飞。检查程序计数器PC值是否在程序区内的方法是在一个经 常要产生外部中断的某个中断服务程序中,读取转入该中断时压入堆栈的断点地址。如果该地址在程序区内,则认为PC值正常,否则一定是程序跑飞了。此时,程 序跳转到机器的重启动入口或复位入口,机器重新启动,于是机器自救活。如果没有一个合适的中断源,可以专门设置一个定时中断或几个定时中断,在中断服务程 序中检查PC值是否合法,一旦发现不对就立即转入机器的重启动入口,定时器中断的时间常数可视机器的繁忙程度和重要性设定,一般从几毫秒到几千毫秒都可 以。

  这个方法的局限性是不能查出PC值在程序区内的乱跳,即此时PC值虽受干扰却并没有超出程序区,而是由于错位乱拼指令而形成一些莫名其妙的操作或死循环。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top