电磁兼容技术及应用实例详解:工控机的抗扰问题
,只要程序正常运行,定时器不会出现定时中断。而当程序运行失常,不能及时刷新定时 器时间常数而导致定时中断,利用定时中断服务程序将系统复位。在8031应用系统中作为软件抗干扰的一个事例,具体做法如下。
(1)使用8155的定时器所产生的"溢出"信号作为8031的外部中断源INT1。用555定时器作为8155中定时器的外部时钟输入。
(2)8155定时器的定时值稍大于主程序的正常循环时间。
(3)在主程序中,每循环一次,对8155定时器的定时常数进行刷新。
(4)在主控程序开始处,对硬件复位还是定时中断产生的自动恢复进行分类判断处理。然而,这并不等于万无一失。例如,看门狗电路本身失效;设置看门狗的 指令正好在取指令时被干扰而读错;看门狗"发现"程序跑飞之后,其产生的复位脉冲或者NMI申请信号正好被干扰而没奏效,等等。虽然以上导致看门狗失效的 因素的概率很小,但总是存在的。另外,还有相当数量的工业控制计算机没有看门狗电路。
4.软件自监视法
1)随时监督检查程序计数器PC的值是否超出程序区
计算机正常运行时,其PC值一定在程序区内,如果PC值跑出程序区,计算机肯定已发生了程序跑飞。检查程序计数器PC值是否在程序区内的方法是在一个经 常要产生外部中断的某个中断服务程序中,读取转入该中断时压入堆栈的断点地址。如果该地址在程序区内,则认为PC值正常,否则一定是程序跑飞了。此时,程 序跳转到机器的重启动入口或复位入口,机器重新启动,于是机器自救活。如果没有一个合适的中断源,可以专门设置一个定时中断或几个定时中断,在中断服务程 序中检查PC值是否合法,一旦发现不对就立即转入机器的重启动入口,定时器中断的时间常数可视机器的繁忙程度和重要性设定,一般从几毫秒到几千毫秒都可 以。
这个方法的局限性是不能查出PC值在程序区内的乱跳,即此时PC值虽受干扰却并没有超出程序区,而是由于错位乱拼指令而形成一些莫名其妙的操作或死循环。
- WCDMA/GSM共址时的干扰及其隔离度分析(02-22)
- 射频电路的PCB设计(12-04)
- 软件无线电结构及其电磁兼容(03-07)
- 计算机TEMPEST技术(02-19)
- EMC十问十答,带你了解电磁兼容的“前世今生”(09-03)
- 高频电子电路电磁兼容设计要点(08-05)