您当前的位置:五五电子网电子知识电子知识资料防、抗干扰技术对CPU抗干扰问题的一些探讨 正文
对CPU抗干扰问题的一些探讨

对CPU抗干扰问题的一些探讨

点击数:7559 次   录入时间:03-04 11:40:29   整理:http://www.55dianzi.com   防、抗干扰技术

  微机系统应用于恶劣的工业、战场等环境时,受干扰强烈,很可能通过三总线,扰乱CPU正常执行程序,导致程序失控现象。所谓CPU抗干扰,就是要及时发现CPU受到了干扰,拦截失去控制的程序流向,把程序引向恢复处理程序,尽可能无扰动地恢复系统正常工作状态。

   一、如何发现和拦截失控程序

      程序弹飞后,可以落在ROM中任何一个地址,很可能把程序中的一些操作数当作指令码执行,造成程序混乱。
  
  编程时,尽可能采用单字节指令,使弹飞而来的程序自然纳入正轨。对于多字节指令,采用指令冗余方法,可以防止指令被拆散。MCS-51单片机指令中最多只有3个字节,我们在控制程序跳转指令前(如ACALL、RETI、DJNZ等).加入两条NOP指令,那么该指令就不会被前面冲下来的失控程序拆散,程序就很快地纳入了正轨。有时失控程序可能落入没有编程的ROM区,此时可以在该ROM区设置软件陷阱,并把程序引向清除中断激活标志的CLIF处(不是OOOOH单元,原因后面说明)。MCS-51系列的软件陷阱由下面三条指令构成:
  
  ①NOP②NOP③LFMPCLIF
  
  该软件陷阱除了设置在未使用的ROM区外,还使用在程序断点处、未使用的中断向量区(当干扰激活了这些中断,便掉进陷阱里)。
  
  一般ROM空间未编程区均是OFFH,它是一条单字节指令(MOVR7.A),程序弹飞到该区时只会顺流而下,不再跳转,若每隔一段空间设置一个陷阱,便可足以制服脱缰的程序。
  
  系统采用了指令冗余和软件陷阱后,CPU已有一定的抗干扰能力,但尚不能彻底消除干扰。原因是失控程序有可能在程序区中已形成死循环而不可自拔。为解决这一问题,可以采用自启动电路(国外称之为WATCHDOG,俗称“看门狗”),以彻底有效地消除CPU干扰。下图是一台节能锅炉优化控制仪硬件简化原理图。由于现场存在锅炉频繁启停和焊机作业、电拖动等各种强烈干扰,采用指令冗余和软件陷阱后,系统进行现场调试和运行,有时会发生‘死火’现象。经分析后,在上电、手动复位处增加了自启动电路。并用3-8译码器端提供运行脉冲,这时系统的运转得到了根本保证。发出一个运行脉冲的程序如下:
  
  MOVP2,#OOH;选中YO端,输出低电平
  
  ACALLDEL1;调延时O.1ms子程序
  
  MOVP2,#FFH;恢复YO为高电平

节能锅炉优化控制仪硬件简化原理图



www.55dianzi.com

  二、如何恢复系统重要信息,尽量无扰动地重新进入正常工作状态
  
  失控的程序,往往会乱涂乱写,把一些重要信息毁掉。为了使系统尽量无扰动地切入运行,必须尽可能地恢复这些重要信息。一个设计良好的系统,可以让人感觉不出CPU曾经受到过严重的干扰。在上图中仪表设计了一种用D触发器进行写保护的开关(或称口令开关),对系统的状态、标志和重要参数(温度、烟气残氧含量、比例、积分、微分常数等)实行保护并写入8155内部RAM中,作为系统重要信息的副本,保护系统出错时能够恢复它们。假定系统运行中产生了一个重要信息,保存在8031的ACC中,把它写入由RO指定的8155内部RAM中,程序片段如下:
  
  MOVP2.#06H;开门口令
  
  MOVX@RO,A;D触发器用写信号上升沿锁
  
  MOVP2.#02H;选择8155内部RAM
  
  MOVX@RO.A;A中内容写入RO指示的RAM单元
  
  MOVP2.#07H:关门口令
  
  MOVX@RO,A;D触发器用写信号上升沿锁存P20=1

  信息采用上述口令式写入后,保密程度很强,不易被失控程序篡改。8155中的I/O口也得到了相应保护,对用于开关量输出的I/O口,口令式保护技术有效地防止经济效益受损,防止事故发生。有了可靠的信息副本,失控系统恢复运转便有了可能。如果失控系统是由自启动电路重新启动,系统复位,程序将从OOOOH单元开始执行,为了区分上电启动(称之为冷启动)和恢复式启动(称之为热启动),在8155AM中,开辟OOH、OIH两单元,写入上电标志7EH和81H,系统根据上电标志进入冷启动或者热启动处理。上图控制仪表的处理程序框图如下图所示。


  
  若系统失控后是由软件陷阱捕获而来,不能直接把它引向OOOOH单元(实际上OOOOH单元存放指令SJMPMAIN)。CPU受干扰时很可能正在执行中断服务程序,8031会自动把相应的中断激活标志置位,阻止同级中断响应。当程序来不及执行RETI指令便飞跑,没有清除该激活标志,就会使系统热启动时,不管中断允许值是否置位,都不予响应同级中断请求。MCS-51系列有两个中断激活标志。由软件陷阱捕获来的程序一定要先完成清除两个中断激活标志的任务(不论它们有否置位).方能消除系统热启动后不响应中断的隐患。观察MCS-51系列所有的指令,只有RETI指令才有此功能(除此之外便是系统硬件复位清除)。利用RETI指令,把软件陷阱捕获来的程序引向标号CLIF处,清除两个中断激活标志,程序片段如下:

  RETI;清除低级中断激活标志
  
  经上述CLIF程序处理后,软件陷阱功能便跟自启动电路一样,它们会根据上电标志进行热启动处理,恢复系统信息,使系统有可能无扰动地切入正常的运行状态,CPU因而有了很强的抗干扰能力。




本文关键字:暂无联系方式防、抗干扰技术电子知识资料 - 防、抗干扰技术

《对CPU抗干扰问题的一些探讨》相关文章>>>