Google
      
发新话题
打印

单片机系统软件受到干扰

单片机系统软件受到干扰

  在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可*性好越来越受到重视。下面以MCS-51单片机系统为例,对微机系统软件抗干扰方法进行研究。
  1 软件抗干扰方法的研究
  在工程实践中,软件抗干扰研究的[URL=http://T7240A-EC.chinaicmart.com]T7240A-EC[/URL]内容主要是: 一、消除模拟输入信号的嗓声(如数字滤波技术);二、程序运行混乱时使程序重入正轨的方法。本文针对后者提出了几种有效的软件抗干扰方法。
  1.1 指令冗余
  CPU取指令过程是先取[URL=http://2SC251.chinaicmart.com]2SC251[/URL]
操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。
  在关键地方人为插入[URL=http://502MU.chinaicmart.com]502MU[/URL]一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。
  此外,对系统流向起重要作用的指令如RET、 RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。
  1.2 拦截技术
  所谓拦截,是指将乱飞的程序引向指定[URL=http://SI9934BDY.chinaicmart.com]SI9934BDY[/URL]位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。
  1.2.1 软件陷阱的设计
  当乱飞程序进入非程序区,冗余[URL=http://STR30113.chinaicmart.com]STR30113[/URL]指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
  1.3 软件“看门狗”技术
  若失控的程序进入“死循环”,通常采用“看门狗”技术PCA84C822AT/010使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。
  “看门狗”技术可由硬件实现,也可由[URL=http://OP221CJ.chinaicmart.com]OP221CJ[/URL]软件实现。 在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断。则系统无法定时“喂狗”,硬件看门狗电路失效。而软件看门狗可有效地解决这类问题。
  笔者在实际应用中,采用环形中LC78645E
断监视系统。用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0。采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统可*性。对于需经常使用T1定时器进行串口通讯的ADP3412JR-REEL测控系统,则定时器T1不能进行中断,可改由串口中断进行监控(如果用的是MCS-52系列单片机,也可用T2代替T1进行监视)。这种软件“看门狗”监视原理是:在主程序、T0中断服务程序、T1中断服务程序中各设一运行观测变量,假设为MWatch、T0Watch 、T1Watch,主程序每循环一次,MWatch加1,同样T0、T1中断服务程序执行一次,T0Watch、 T1Watch加1。在T0中断服务程序中通过检测T1Watch的变化情况判定T1运行是否正常,在T1中断服务程序中[URL=http://OP221CJ.chinaicmart.com]OP221CJ[/URL]检测MWatch的变化情况判定主程序是否正常运行,在主程序中通过检测T0Watch的变化情况判别T0是否正常工作。若检测到某观测变量变化不正常,比如应当加1而未加1,则转到出错处理程序作排除故障处理。当然,对主程序[URL=http://VI-2N4-CX.chinaicmart.com]VI-2N4-CX[/URL]最大循环周期、定时器T0和T1NTB25P06定时周期应予以全盘合理考虑。限于篇幅不赘述。
  2 系统故障处理、自恢复程序的设计
  单片机系统因干扰PEF82902V1.1复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。
  2.1 非正常复位的识别
  程序的执行总是从0000H开始,导致08051A330JAT2A程序从 0000H开始执行有四种可能:一、系统开机上电复位;二、软件故障复位;三、看门狗超时未喂狗硬件复位; 四、任务正在执行中DP83952CVUL掉电后来电复位。四种情况中除第一种情况外均属非正常复位,需加以识别。
  2.1.1 硬件复位与软件复位的识别
  此处硬件复位指开机复位与看门狗复位,硬件复位对寄存器2SA968有影响,如复位后PC=0000H, SP=07H,PSW=00H等。而软件复位则对SP、SPW无影响。故对于微机测控系统,当程序正常运行时,将SP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1。那么系统复位时只需检测PSW.5标志位或SP值便可判此是否硬件复位。采用PSW.5作上电标志位判别硬、软件复位的程序流程。
  恢复系统基本数据是指取出备份的[URL=http://UPC2270A.chinaicmart.com]UPC2270A[/URL]数据覆盖当前的TLP251系统数据。系统基本初始化是指对芯片、显示、输入输出方式等进行初始化,要注意输入输出的初始化MIC29300-3.3BU不应造成误动作。而复位前任务的初始化是指任务的执行状态、运行时间等。
  3 结束语
  对于软件抗干扰的一些其它常用方法如[URL=http://86C775.chinaicmart.com]86C775[/URL]数字滤波、RAM数据保护与纠错等,限于篇幅,本文未作讨论。在工程实践中通常都是几种抗干扰方法并用,互相补充

TOP

福福福福福福福福福   福   
福   福   福   福   
福   福   福   福   
福福福福福福福福福   福   
福   福   福   福   
福   福   福   福  福  
福福福福福福福福福 福 福 福  
           福福福  
 福福福福福福福    福  
 福     福   福  
 福     福  福  
 福福福福福福福  福福福福福福  

 福福福福福福福    福福

Emba学习网(www.embaxx.com),助力企业家:打造主流商业影响力,构建未来商业领袖,铸就辉煌事业。

TOP

TOP

发新话题