电子器件

单片机应用系统的抗干扰设计

  目前单片机广泛应用在工业自动化、生产过程控制、智能仪器仪表等领域,大大提高了产品的质量和生产效率。但是,测控系统结构设计、元器件安装、加工工艺和外部电磁环境条件、以及单片机的软件设计方面等,对系统的可靠性和安全性构成了极大的威胁。许多应用系统在进行仿真调试和实验室内的联机测试运行时都是成功的,然而一旦进入现场使用,系统则会产生预料以外的误动作或误显示,严重时甚至导致前期研制成果基本失效,浪费了宝贵的时间和人力物力。单片机测控系统必须长期稳定、可靠运行,否则将导致控制误差加大、严重时会使系统失灵、甚至造成巨大损失。

  干扰影响应用系统可靠、安全运行的主要因素来自系统内部和外部的各种电磁干扰,以及系统结构设计、元器件安装加工工艺等。这些因素对单片机应用系统造成的干扰后果主要表现在以下几个方面:

  1、测量数据误差加大

  干扰侵入单片机系统测量单元模拟信号的输入通道,叠加在测量信号上,会使数据采集误差加大,什么干扰信号淹没检测的一些微弱信号,如人体的生物电信号等。

  2、影响单片机RAM存储器和EPROM等

  在单片机系统中,程序及表格、数据存在程序存储器EPROM或FLASH中,避免了这些数据受干扰破坏。但是,对于片内RAM、扩外RAM、E2PROM中的数据都有可能受到外界的干扰而发生变化。

  3、控制系统失灵

  单片机输出的控制信号通常依赖于某些条件的状态输入信号和对这些信号的逻辑处理结果。若这些输入的状态信号受到干扰,引入虚假状态信息,将导致输出控制误差加大,甚至造成控制失灵。

  4、程序运行失常

  外界的干扰有时导致及其频繁复位而影响程序的正常运行。若外界干扰导致单片机程序计数器PC值的改变,则破坏了程序的正常运行。例如Z80芯片,从一个字节到四个字节。因此,CPU执行的下一条指令的首地址,很可能是某条实际指令的第2-4字节,而CPU却将它作为指令的首地址来处理。此时,CPU便执行毫无意义的指令。这种情况就是俗称程序“跑飞”。程序“跑飞”后的去向,一种可能是转入某种无意义的“循环”中去而出不来;另一种可能是PC值不断增大,当PC值增大至FFFFH值之后,转为执行地址从0000H开始的程序,这等于重新启动控制程序,是控制失误的另一形式。由于受干扰后的PC值是随机的,程序将执行一系列毫无意义的指令,最后进入“死循环”,这将使输出严重混乱或死机。

  5、不响应中断

  当CPU在执行中断服务子程序时,如果是在程序“跑飞”之前,中断服务子程序还未执行开放中断的指令,则在程序“跑飞”后,CPU将对其它中断不响应。同时,凡采用中断技术诊断程序故障的手段也将不起作用。中断程序“跑飞”,必定没有执行最后一条中断返回指令,优先级低的中断申请就不会得到响应,造成低级中断丢失。