您好, 访客   登录/注册

浅谈单片机抗干扰技术

来源:用户上传      作者:

  摘要:近年来,单片机在工业自动化、生产过程控制、智能化仪表等领域的应用越来越深入和广泛,有效地提高了生产效率,改善了工作条件,大大提高了控制质量与经济效益。但是,测控系统的工作环境往往是比较恶劣和复杂的,因此微机测控系统必须长期稳定、可靠地运行,否则将导致控制误差加大,严重时会使系统失灵,甚至造成巨大的损失。因此提高微机系统的可靠性、安全性,成为人们日益关心的问题。单片机抗干扰技术的研究,就是在这种需求下产生的。
  关键词:单片机 抗干扰技术 硬件抗干扰 软件抗干扰 自恢复程序
  
  引言:随着集成电路集成度的提高,微处理器的发展除了不断增强芯片的处理能力,提高产品的性能价格比,发展高性能的通用微型计算机之外,还在一块芯片上不断集成更多的功能部件,从而使微型计算机的硬件系统更加简化,使得微型计算机以单片机控制系统的形式不断深入仪器、家用电器、设备控制等控制领域。
  在日常生活中,影响测控系统可靠、安全运行的主要因素是来自系统内部和外部的各种电气干扰。这些因素对测控系统造成的干扰后果主要表现在下述几个方面:
  ①数据采集误差加大;
  ②控制状态失灵:
  ③数据受干扰发生变化;
  ④程序运行失常。
  一般来说,单片机微机测控系统的可靠性技术主要包括两方面:硬件抗干扰技术和软件抗干扰技术。
  1 干扰的分类。干扰的类型通常按噪声产生的原因、噪声传导模式和噪声波形性质的不同进行划分。
  2 硬件抗干扰技术。它能有效抑制干扰源,阻断干扰传输通道,只要合理地布置与选择有关参数,硬件抗干扰措施能很好地抑制系统的干扰。
  硬件抗干扰技术措施是经常采用的一种有效方法。通过合理的硬件电路设计,可以消减或抑制大部分干扰。
  2.1 选用频率低的微控制器:
  2.2 减小信号传输中的畸变;
  2.3 减小信号线间的交叉干扰;
  2.4 减小来自电源的噪声;
  2.5 注意印刷线板与元器件的高频特性;
  2.6 元件布置要合理分区;
  2.7 处理好接地线;
  2.8 用好去耦电容。
  硬件措施如果得当,可将绝大部分干扰拒之门外,但仍然会有少数干扰进入微机系统,故软件措施作为第二道防线必不可少。因此,一个成功的抗干扰系统是由硬件和软件相结合构成的。
  3 软件抗干扰技术。软件抗干扰方法具有简单、灵活方便、耗费配件资源少的特点,在微机测控系统中获得了广泛应用。
  在工程实践中,软件抗干扰研究的内容主要是:一、消除模拟输入信号的噪声(如数字滤波技术):二、程序运行混乱时使程序重入正轨的方法。下面针对后者提出了几种有效的软件抗干扰方法。
  3.1 指令冗余。CPU取指令过程是先取操作码,再取操作数。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。
  3.2 拦截技术。所谓拦截,是指将乱飞的程序引向指定位置,再进行出错处理。通常用软件陷阱来拦截乱飞的程序。因此先要合理设计陷阱,其次要将陷阱安排在适当的位置。
  3.2.1 软件陷阱的设计。当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞的程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。通常在EPROM中非程序区填入以下指令作为软件陷阱:
  NOP
  NOP
  LIMP 0000H
  其机器码为0000020000。
  3.2.2 陷阱的安排。通常在程序中未使用的EPROM空间填0000020000。最后一条应填入020000,当乱飞的程序落到此区,即可自动入轨。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式:
  NOP
  NOP
  RETI
  考虑到程序存贮器的容量,软件陷阱一般1K空间有2~3个就可以进行有效拦截。
  3.3 软件“看门狗”技术。若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时问,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。
  “看门狗”技术可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制字,关闭中断。则系统无法定时“喂狗”,硬件看门狗电路失效。而软件看门狗可以有效地解决这类问题。
  除上述外,有部分的干扰也来自系统设计时的失误,这些错误完全能在系统开始被发现与改正。
  3.3.1 注意IO复用引起的噪音。尽管现在单片机的资源有所提升,但普遍单片机的资源十分有限,其中一个就是IO。利用10扩展,还有就是10复用。例如:对移位寄存的外设的设置,时钟与数据线复用,锁存线独立。这看似没有什么问题,但对于某些10最好能独立。
  3.3.2 注意在程序和外设IO操作的频率过高引起的噪音。在很小的空间进行布线更要注意。现在的处理器的工作频率越来越高,IO的速度也越来越高。新型的ARM内核的处理器STM32的IO能有几十兆的工作频率。单片机中高档的如:AVR、增强型5l、飞思卡尔等都能工作在纳秒级别的指令和10操作。
  举例说:一般人机交流用LCD或数码管。有些多个数字的数码管有的是数据线共用的,这就需要进行扫描。而一些程序员在LCD显示设计时会定时更新,在麦克风这样紧凑的空间里,很容易引起噪音。解决方法是数码管尽量能静态显示,LCD不必要就减少更新。
  3.3.3 不必要的设备或功能关闭。部分设备不关闭可能会引起噪音。如:HTl621有音频输出,如果不关闭加上步线不好,很容易引起噪音。
  4 系统故障处理、自动恢复程序的设计。单片机系统因干扰复位或掉电后复位均属非正常复位,应进行故障诊断并能自动恢复非正常复位前的状态。
  程序的执行总是从0000H开始,导致程序从0000H开始执行有四种可能:系统开机上电复位;软件故障复位;看门狗超时未喂狗硬件复位;任务正在执行中掉电后来电复位。四种情况中除第一种情况外均属非正常复位,需加以识别。
  4.1 硬件复位与软件复位的识别。此处硬件复位是指开机复位与看门狗复位,硬件复位对寄存器有影响,如复位后PC=0000H,SP=07H,PSW=00H等。而软件复位则对sP、SPW无影响。故对于微机测控系统,当程序正常运行时,将sP设置地址大于07H,或者将PSW的第5位用户标志位在系统正常运行时设为1。那么系统复位时只需检测PSW.5标志位或sP值便可判定是否硬件复位。
  4.2 开机复位与看门狗故障复位的识别。开机复位与看门狗故障复位因同属硬件复位,所以要想予以正确识别,一般要借助非易失性RAM或者EEROM。当系统正常运行时,设置一个可掉电保护的观测单元。当系统正常运行时,在定时喂狗的中断服务程序中使该观测单元保持正常值(设为AAH),而在主程中将该单元清零。因观测单元掉电可保护,则开机时通过检测该单元是否为正常值可判断看门狗是否复位。
  4.3 正常开机复位与非正常开机复位的识别。识别测控系统中因意外情况如系统掉电等情况引起的开机复位与正常开机复位,对于过程控制系统尤为重要。因此可通过监测单元对当前系统的运行状态、系统时间予以监控,将控制过程分解为若干步或若干时间段,每执行完一步或每运行一个时间段则对监测单元置为关机允许值,不同的任务或任务的不同阶段有不同的值,若系统正在进行测控任务或正在执行某时间段,则将监测单元置为非正常关机值。系统复位后可据此单元判断系统原来的运行状态,并跳到出错处理程序中恢复系统原始状态。
  结语:在工程实践中通常都是几种抗干扰方法并用,互相补充完善,才能取得较好的抗干扰效果。现在,单片机在各个领域中的应用越来越广泛,而且多在各种恶劣环境中应用,对其可靠性要求也越来越高,因此必须采取抗干扰措施,否则难以稳定、可靠运行。合理地使用软件和硬件抗干扰技术,可使系统最大限度的避免干扰的产生和受干扰后能使系统恢复正常运行,保证系统长期稳定可靠地工作,避免在设计完成后再去进行抗干扰的补救措施。
  
  参考文献
  1 刘守义、杨宏丽、王静霞,《单片机应用技术》,西安:西安电子科技大学出版社,2002.8
  2 耿德根,《单片机抗干扰措施》,2004.12
  3 田裕康,《单片机抗干扰设计技术》,2005.2


转载注明来源:https://www.xzbu.com/9/view-931836.htm