浅析单片机应用系统的抗干扰设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅析单片机应用系统的抗干扰设计
摘要:随着科学技术的迅速发展,单片机的应用越来越广泛。在众多的应用系统中共同面临的一个问题,就是它在整个系统的安全性以及可靠性,单片机系统的特点是实时性和外部环境干扰因素多,本文就几个常见的抗干扰措施进行分析研究,从硬件抗干扰重点介绍了在整个可靠性,针对单片机应用系统实时性强,干扰因素较多的特点,本文介绍了几种实用的抗干扰措施,在供电系统的设计、电路板的布局应用以及抑制输入输入的干扰等硬件抗干扰方面以及软冗余技术、软件陷阱技术、“看门狗”技术等软件方面进行了实用分析和阐述。
关键词:抗干扰单片机硬件设计软件设计
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计