返回 科技论文 首页
单片微机系统的抗干扰技术研究

  摘要:随着单片微机的日益普及,应用领域的不断扩大,其抗干扰技术越来越受到系统设计人员的重视。该文以intel 8031cpu为例,从硬件、软件两方面叙述了一些常用的抗干扰技术。
  关键词:单片机;硬件;软件;抗干扰
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)20-4996-02
  单片微机已经广泛应用于工业控制、仪表、通讯及军事装备等众多领域。由于其应用、环境的差异,受到的干扰也各不相同。总的说来,对微机系统的干扰主要来自以下几个方面:
  1)电网的电源干扰
  工业控制领域,大型电机的开、关,电焊及各种电火花都可能引起对微机系统的干扰。
  2)信号通道的干扰
  数据采集及实时控制系统中,对模拟量的输入、输出是必不可少的,输入通道及被控对象都可能产生干扰。
  3)空间的辐射干扰
  某些应用场合,如发射机、中频炉等周围,微机系统常常会受到辐射的干扰。
  4)地线干扰
  系统不合理接地,对微机系统也会造成干扰。
  当然,也有一些其它的原因产生的干扰。不论何种原因产生的干扰,其最终的表现形式都会造成微机系统的“死机”,控制紊乱。下面以intel 8031cpu为例,说明硬件、软件的抗干扰方式及其原理。
  1 硬件抗干扰措施
  对不同的干扰采用不同的抗干扰方法,如在设备的前端加上带屏蔽罩的低通滤波器抑制电源干扰等,这些文献1都作了介绍,这里所要介绍的是在单片机系统设计时,电路上采用的一些措施。
  1.1 “看门狗”的设计
  “看门狗”技术是电路设计中较常用的一种技术。
  如图1,计数器上电后一直处于计数状态,在计数器从0到溢出所需时间T内,程序控制I/O口对其复位。为了保证计数器不溢出,在编写程序时,要求在2T/3内复位“看门狗”。
  当程序受干扰“跑飞”,即cpu“死机”后,计数器溢出,重新启动cpu.。应用“看门狗”时必须注意下面两个问题:一是在cpu“死机”时,计数器的复位端无效;二是cpu的现场恢复问题。
  1.2 监视CPU的地址空间
  在设计时,对I/O的扩展常用地址译码技术。有时译码输出有富余端,即程序正常执行时,不被选通的译码器输出端。当这些输出端被选通时,虽然程序已经“跑飞”,但可以用系统外部中断0或1(系统不用时),可依据图2,将空闲的输出端接到cpu的中断口,依靠cpu的中断管理程序使cpu正常工作。
  我们知道,8031程序存储区与数据存储区是可以分开的,当应用程序编好后,程序用到的最高位地址是知道的,可以用一片GAL芯片监视程序存储区的地址,当cpu读程序的byte,由于cpu复位后总是从“0”地址执行,则程序地址不会超过2000H,如果cpu发出的地址超出2000H,而同时:/PESN端有效,则GAL发出复位信号。
  1.3 应用外部RAM进行现场保护
  在一些控制应用中,cpu被干扰后不允许从“0”地址执行,必须从断店执行,这就要求对一些重要的现场参数及程序进行状态进行保护。应用外部RAM进行现场保护是一种较为常用的方法。
  在电路设计时,必须保证用于保护现场的RAM不会受到干扰。如图3是一种常见的电路。
  如图3,外部RAM用于保护现场,它的写操作受到cs及WR端的双重控制。对它的写操作的程序如下:
  MOV DPTR,#4000;打开外部RAM的写锁存端
  MOVA,#0;
  MOVX @DPTR,A
  MOV DPTR,#2000H;保护现场
  :
  :
  MOV DPTR,#5000H
  MOV A,#0FFH ;关闭外部RAM的写锁存端
  MOVX @DPTR,A
  这样,一旦CPU失控,CPU启动后可以从外部RAM相应得位置读出参数,并恢复现场,从断点处执行程序,使人感觉不到CPU曾经出现过故障。
  2 CPU的软件抗干扰措施
  上面介绍的抗干扰措施,是以外加硬件为前提的。在有些场合,在软件设计上采取一些措施也同样可以提高CPU的抗干扰能力。
  2.1超时复位
  8031 CPU有两个16位内部定时器,当其空置时,则可以利用定时器的定时功能,监视程序的运行情况。以定时器0为例,说明其工作情况。
  ORG 0BH;中断入口
  SJMP TIN0
  :
  :
  MOV TNOD ,#11H;定时器初始化
  MOVTH0,#0
  MOVTH0,#0
  SETBTR0; 启动定时器0
  SETB ET0;打开定时器0溢出中断
  SETB EA
   :
  TIN0:转入现场恢复程序
  这样,只要每隔一段程序插入MOV TH0,#0 这条指令,定时器就不会溢出;当程序不正确时,定时器0则会溢出。CPU响应该中断,进行必要的处理。
  2.2 插入空操作指令
  CPU程序“跑飞”,就是cpu不能读出有效的指令码,8031的大部分指令为单字节指令,即使程序“跑飞”,都不会引起程序紊乱。但对于一些双字节指令或多字节指令,则影响较大。为了有效的消除程序“跑飞”的影响,在一些多字节指令后,插入一些空指令,以保证对指令的读操作没有影响。特别是一些转移指令,在它们的前后插入两个空指令,这样,即使程序“跑飞”后,也不会影响后续指令的执行。
  2.3 EPROM空闲区域的处理
  EPROM的空闲区域均为“1”,程序一旦进入该区域,则很难正常恢复。分析8031指令代码,不难发现:LJMP 0202H的代码正好020202H,这样,只要在EPROM的空闲区域均写上0202H ,程序一旦进入该区域,就会自动转到202H的地址上。在202H的地址开始的区域,编写适当的程序,就可以提高程序本身的抗干扰能力。
  3 结束语
  以上介绍的这些,是作者的一些体会。单片微机系统的抗干扰措施远远不止上面介绍的几种。在设计单片微机系统时,必须从硬件、软件两个方面进行考虑,才能提高系统的抗干扰能力。
  参考文献:
  [1] 马斌.单片机原理及应用[M].北京:人民邮电出版社,2009.
  [2] 张积东.单片机51/98开发与应用[M].北京:电子工业出版社,2009.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文


【相关论文推荐】
  • 单片机应用系统的抗干扰技术研究
  • 单片机嵌入式系统的抗干扰技术研究
  • 微机测控软件抗干扰技术研究
  • 卫星导航系统的电磁干扰与抗干扰技术研究
  • 试析单片机应用系统的抗干扰技术
  • 机载数据采集系统抗干扰技术研究
  • 雷达制导系统抗干扰技术研究