浅析单片机应用系统的抗干扰设计
- 格式:doc
- 大小:29.00 KB
- 文档页数:8
浅析单片机应用系统的抗干扰设计
摘要:随着科学技术的迅速发展,单片机的应用越来越广泛。在众多的应用系统中共同面临的一个问题,就是它在整个系统的安全性以及可靠性,单片机系统的特点是实时性和外部环境干扰因素多,本文就几个常见的抗干扰措施进行分析研究,从硬件抗干扰重点介绍了在整个可靠性,针对单片机应用系统实时性强,干扰因素较多的特点,本文介绍了几种实用的抗干扰措施,在供电系统的设计、电路板的布局应用以及抑制输入输入的干扰等硬件抗干扰方面以及软冗余技术、软件陷阱技术、“看门狗”技术等软件方面进行了实用分析和阐述。
关键词:抗干扰 单片机 硬件设计 软件设计
1 引言
在单片机控制系统现场中,需要通过单片机的I/O口输入输出一些控制量去控制外部设备,但是单片机的I/O 口的驱动能力有限,在驱动一些大功率设备的场合,如电机、电热丝、继电器等,就不能满足要求。并且一些大功率的设备要使用强电进行驱动,在开关过程中会产生电磁干扰,有可能会导致单片机系统执行误动作或者“死机”甚至损坏单片机。因此,在单片机控制系统中,需要加上驱动电路,在强电的应用场合中还应该考虑强弱电的隔离问题。另外与之相连的测控对象分布在控制区域,干扰源将直接、间接的干扰单片机系统的工作,从而系统的可靠性和稳定性大大降低,进而导致系统紊乱的运行,酿成不可以预料的事故。因而要提高控制系统的抗干扰能力,使单片机稳定可靠的工作。一下就是从硬件和软件两个方面阐述抗干扰设计。
2 干扰的来源
单片机系统工业现场的干扰一般是脉冲的方式,其相关的途径大体有三条,它们是过程通道干扰、空间的辐射干扰以及供电系统干扰。以下的系统容易产生干扰:单位控制器的时钟频率特别高,总性周期特别快的系统;系统含有大功率、大电流驱动电路,如产生火花的继电器,大电流开关等;含微弱的模拟信号电路以及高精度 A/D 变换电路。
3 抗干扰硬件设计
3.1 供电系统的抗干扰设计
为禁止和减少电源系统的电磁干扰,第一要确保供电系统稳定性,避免过压和欠压。还有电源的滤波和整流的电源电路设计,一般是隔离初级线圈,初级的干扰不能进入次级;用隔离变压器过滤高频信号。第三数据采集供电电路与继电器供电电路隔离,从而避免在用继电器、磁带等电感设备时的供电线路之间的干扰,单独的稳压电路作为单片机系统的主机供电模块,,第四、为了避免各个部分之间的干扰,最好输入、输出部分电路分别采用DC-DC模块来供电。 3.2电路板的设计及印制
①印制电路板上的器件要合理布置,电子元器件相互要遵循易于散热、电磁干扰尽可能小的设计思路。②整个电路中功率驱动、模拟电路和数字电路等要合理区分,地线分别和电源端的地线相连不要混合实用。③不要环路布线,特别是沿印制电路板周围连接成环路,不要出现长段并行狭窄布线,电容的引线不要太长;输出和输入电路应当与地线隔断; 数据传输的方向和电源线、地线的方向最好一致,应该加宽宽度提高抗干扰能力。④去耦电容应该布局到每个IC。
3.3 输入输出电路的防干扰设计
在输入输出信号加上光电耦合器隔离措施,为了有效地防止干扰进入主机系统将主机部分和前向、后向通道及其他部分切断电路的联系。
4 抗干扰软件设计与开发
仅靠硬件抗干扰措施提高测控系统的可靠性还不够完善,除此外还要适当的软件抗干扰技术来实现,软件抗干扰技术就是当I/O信号受干扰后去伪求真、系统受干扰后使系统恢复正常运行。可以采用数字滤波技术对抑制输入信号减少干扰,采用相关软件设计消掉外来电磁噪声对数据采集结果的干扰。程序失控一般都是系统受干扰后引起的,一般来讲程序计数器PC的内容发生紊乱是主要程序失控原因,
CPU执行了一系列错误的指令从而导致系统失控程序会“跑飞”或陷入死循环,使程序正常运行的方法是采用软件冗余、软件陷阱和“看门狗”技术等。
4.1冗余技术防止干扰软件设计
MCS-51所有指令一般不超过三个字节,大部分为单字节指令,操作码和操作数共同构成一个指令,操作码告诉CPU完成怎么具体操作,单字节指令仅有操作码,操作数不显示。CPU受到干扰会使PC计数器内容变化,当程序紊乱到某一单字节指令时,使其恢复正规。当紊乱程序执行到某一双字节或三字节指令时,正好在取指令时计数到其操作数上,CPU会将操作数当作操作码执行,引起程序紊乱。因此软件冗余技术设计应尽多使用单字节指令,在主要的程序入口插入单字节指令 NOP,还可以将有效的单字节指令重写,这称作指令冗余。在实际软件设计中,一般在双字节和三字节指令之后插入几个个NOP指令,从而保证程序紊乱后其后面的指令不会丢失造成数据混乱,因此后面的程序可以正常运行。在一般那些在程序中起决定作用的指令,象ACALL、LJMP、JZ、RET、RETI、JNC等之前也插入几条 NOP空运转指令,可保证紊乱的程序尽快进入正确的程序运行过程中。
4.2 防干扰软件冗余技术和陷阱技术的软件适用于干扰后计数器指向错误的程序区
当紊乱程序进入数据区时,已不再适用使用冗余指令的软件开发方法,一般可以采用软件陷阱的办法拦截紊乱程序,将PC计数器引向一个指定的位置,然后执行一段对程序运行出错的处理解决程序。软件陷阱设计一般运用以下方案:用 NOP NOP LJMP
ERROR ;ERROR为指定地址,出错处理程序软件陷阱可安排在下面几个数据区进行有效处理。
①中断向量区未使用的部分区域。 当干扰源程序使未使用的中断开放,并加以激活这些中断后,一般引起系统程序的紊乱,及时捕捉到错误中断的方法一般是在这些中断位置设置软件陷阱。 ②未使用EPROM数据区。 假想使用了一片2764数据芯片,但程序并没有用完这个2764数据芯片区域,可以用0000020000数据填满这个数据芯片,020000是指令LJMP 0000H的机器代码,从而使紊乱程序进入此区后,自动进入正确的PC计数器保证程序正常运行。
③相关数据区域。 一般由于表格中内容和检索值有一一对应关系,在表格区的尾部设置软件陷阱保证其连续性和对应关系。
④软件程序数据区域。 一般运用指令冗余技术加以解决紊乱的程序在用户程序内部跳转,亦可设置相关的软件陷阱,从而更加有效阻止程序紊乱。单片机程序一般经常采用模块化设计,模块化设计程序是由系列指令构成,所以不能在这些指令中间随意插入陷阱指令软件,否则正常执行的程序也可能跑偏,一般将陷阱处理软件指令分布在各应用模块的空余数据单元里面。正常程序中不会执行这些陷阱软件指令,如果程序紊乱从而进入陷阱区,马上将程序引入正确PC计数器。陷阱软件的数量视个人开发的程序的大小,一般每1K字节有3、5个软件陷阱程序。
⑤非EPROM数据芯片空间区域 MCS-51单片机有64K程序系统数据空间区域,除EPROM芯片占用的已经编写好的应用程序数据地址外,还包括很多未编程开发的EPROM数据空间。当PC计数器跑进入这些空间后,读入的数据为0FFH,对MCS-51系列来讲相当于MOV R7,A这条指令,它会修改寄存器R7的内容。 当CPU读程序存储器时,意味着发出一个PSEN 低电平信号,所以在程序中用这个低电平信号和EPROM的地址译码信号共同产生选通信号,引起一个程序空闲的中断,因此在中断服务程序中可以设置相关的软件陷阱,将紊乱程序拉入正规的PC计数器当中,是程序正常运转。
4.3 软件中的(Watchdog)“看门狗”技术应用
PC计数器受到电磁干扰会引起程序紊乱,会有可能使应用程序进入“死循环”状态,指令冗余软件设计和陷阱技术软件设计都不好解决这个死机问题,所以一般采用“看门狗”技术(Watchdog)。该技术就是不断监视程序循环运行时间间隔,若发现时间间隔超过已知的循环设定时间间隔,就可以认定程序进入死循环,然后加跳转指令LJMP使程序返回到入口地址0000H,在0000H添加相关的出错处理程序指令,使系统重新运行正常。“看门狗” (Watchdog)技术既能由硬件实现,也可以由软件来实现,或者硬件软件结合在程序中运用。一般程序监视跟踪定时器即Watch dog在单片机抗干扰设计中使用非常广泛,芯片生产商提供了各类功能的芯片,象MAXIM 的 MX760、MX813,IMP的IMP690A/692AL一般运用于微处理器系统的电源监视和相关控制电路。正常为CPU提供复位信号、看门狗监视、备用电池自动切换及电源失效监视等相关功能。
5 结论
一般从源头上讲,占主导作用的还是单片机系统的硬件抗干扰电路设计单元,系统中的软件抗干扰设计起一个辅助作用,在单片机系统防干扰设计中起补救作用。因此我们在单片机应用系统设计中根据具体工作环境分析干扰源头,有的放矢,在系统开发过程中采取硬件与软件抗干扰技术结合开发相互补充和完善,从而使单片机应用系统尽可能地避免相关电磁干扰,或者是受到外部干扰后及时能够自我恢复从而保证整个系统正常安全有效运行、工作。终上所述,单片机实际应用系统在设计时硬件抗干扰电路和软件抗干扰设计最好做到二者相互兼顾、互相补充完善才能达到完美的单片机应用系统抗干扰良好运行效果。
参考文献
[1] 孙传友. 测控系统原理与设计[M]. 北京:北京航空航天大学出版社, 2004(4)
[2]钱炳芸. 单片机应用系统中的抗干扰技术[J]. 现代电子技术,2005(6) [3]李国金. 单片机抗干扰技术[J]. 现代电子技术,2003(15)
[4] 艾玲梅. 单片机测控系统抗抗干扰技术[J]. 陕西工学院学报,2003(6)