APP下载

单片机控制系统中软件抗干扰的应用

2017-05-25余智勇

现代商贸工业 2017年11期
关键词:抗干扰控制系统单片机

余智勇

摘要:在工业生产控制系统、日常生活以及教学实验相关设备中,单片机均有较广泛的使用性。而单片机控制系统极易发生一些干扰性问题,同时由于干扰来源过于广泛,使得单片机控制系统内出现的干扰问题难以解决,从而系统无法继续运行或在运行中出现错误,如情况严重甚至可能引起事故,为此,结合大量实践,对单片机控制系统中软件抗干扰应用进行了分析和阐述。

关键词:单片机;控制系统;软件;抗干扰

中图分类号:TB

文献标识码:A

doi:10.19311/j.cnki.16723198.2017.11.095

单片机不但体积小、价格低廉,而且可靠性高,控制功能良好,因此在工业领域、生活领域及军事领域中都得到广泛的技术应用。然而单片机控制系统由于受到各种因素的干扰,使其可靠性降低,因此为了确保系统在各种环境中都能够长期、稳定且安全运行,就必须对抗干扰问题加以解决。单片机控制系统是一种单片机为核心、运用计算机技术的微机控制系统,适用于各种工业控制,但工业现场条件到多较为恶劣,不但干扰因素多,而且干扰幅度大,常常影响系统的常规运行及其运行的可靠性,因此如何解决单片机控制系统软件抗干扰问题一直是重要研究课题。

1干扰产生及系统受到的影响

对控制系统的干扰路径不具统一性,可沿不同线路侵入到控制系统中。其中,电网常造成各种各样的浪涌干扰电压,其侵入路径多以供电线路为主;控制系统配备安装的接地装置不可靠,同样也是干扰生成的重要因素,各种传感器、输出线路以及输入线路产生的故障或绝缘损坏均可造成干扰。此外,干扰还能够通过场的形式对控制系统进行空间侵入。上述干扰类型的多发地带包括高电压地区、大电流地区以及高频电磁场附近,同时干扰多以静电感应和电磁感应等主要方式侵入到控制系统内部。

上述干扰产生后对控制系统的三个部分造成不利影响。第一,输入部分。当输入部分受到干扰后,会出现模拟信号失真和数字信号乱码现象,在这种错误信息被输入的前提下,系统遵循指令后必然会造出错误反应。第二,输出部分。输出部位受到干扰后,就会输出混乱信号,输出信息无法正确反映出系统最真实输出量,继而会造成一系列不良后续结果。第三,系统内核。在系统内核受到干扰后,系统总线信息会出现一系列错乱问题,进而导致程序失控,最终会引发许多无法预料的混乱,乃至某些重要数据资料可能被非法、错误改写。

2控制系统信号输入与输出的软件抗干扰方法

若控制系统内核正常运行,仅输入和输出部分受到干扰,可通过输入、输出方法的软件改进来消除或减轻干扰影响。

2.1改进控制系统的信号输入方法

鉴于干扰信息以毛刺状为主,并且作用时间短暂,因此可结合这一特点,对计划采集的信号多次重复采样,待连续几次采样结果完全一致,才能视作有效信号。如多次采样信号一直变化不定,则可判定干扰存在,停止采集后,发报相关警信号。如实情况允许,可在两次采集间适当插入延时,以此来实现宽信号干扰的对抗。此外,每个信号连续相同采集次数及最高次数,均可结合实际情况进行适当调整。

2.2改进控制系统的信号输出方法

就控制系统软件而言,消除系统输出干扰最为有效的途径就是对同一个数据作重复输出,并且尽可能缩短重复周期,这样一来,当外设接收到受到干扰的错误信号信息后,尚未作出反应,另外一个正确信号已经再次被输出,此种方法能有效防止输出错误信号。

3控制系统内部软件程序失控抗干扰方法

在控制系统内部程序失控后,针对程序失控的最简单解决办法就是人工复位CPU,迫使程序以0000H为起始重新执行指令。除此之外,更有效的方法是利用软件方法,使程序自动纳入到正轨。

3.1冗余指令

如CPU所受干扰较强,则可能以操作码方式执行某些操作数,从而引发程序混乱,因此这时需要解决的首要问题就是在最短时间内将程序引入到正轨。需指出的是,当程序弹飞到单字节指令后,系统会自行进入正轨;程序弹飞到双字指令后,就可能会落入其他操作数,系统未能纳入正轨,继续出错;程序弹飞在三字节指令上之后,两个操作数影响下,继续出错的概率更高。因此建议使用单字节指令,同时可在关键处适当插入冗余单字节指令,也可以重复使用确认有效的单字节指令,以上即为指令冗余。

以多字节指令为基准,于其后插入两个单字节指令,以防后续指令被拆散;再于其前插入两个单字节指令,以避免前面的失控程序不会将这条指令再次拆散,最终使程序回归正轨。很明显,冗余指令的过多使用会严重影响控制系统的运行效率,因此冗余指令通常被使用在程序流向决定性指令和关系到系统运行状态的重要指令。

经分析不难看出,通过冗余指令实现弹飞程序运转正常需要满足以下几个条件。一方面,必须保证弹飞程序落在程序区;另一方面,执行必须到达冗余指令。一旦弹飞程序未落到程序区,而是存储器内非程序区,那么第一个条件就无法到满足;一旦弹飞程序尚未执行到冗余指令便跌入死循环,那么就无法满足第二个条件。针对这两种状况,最有效应对方法就是设立软件陷阱和运行监视系统。

3.2软件陷阱

设一条指令,令其强行捕捉程序,并将捕获程序引到某个指定地址,这个地址是处理程序错誤问题的专

用程序。软件陷阱的常见安放地址在非程序区,其中包括未使用过的中间向量区,程序存储器内未使用过的大量空间和各类表格最后位置。同时需注意,在各种执行指令联合构成的程序区,通常不能任意安排软件陷阱,一旦在此处设陷阱,正常执行指令程序会被一起捕获。此外,程序会于跳转、调用及返回等指令后出现一些断裂点,倘若是正常程序到达此处,就会暂停执行活动,此时PC值正常跳变,使该执行程序转到其他入口处,而倘若到达此处的程序弹飞到断裂点上或者前一个指令操作数上,那么程序便会跨越断裂点继续执行指令,必然出错。因此此处是软件陷阱的最佳设置位置,既可以有效捕捉出错程序,有不会干扰系统程序的正常任务执行,即为软件陷阱应安置在正常程序的执行无法到达的位置,从而保证程序执行不受影响。

3.3对程序运行构建监视系统

由前文介绍可知,当程序弹飞后跌入临时死循环,冗余指令与软件陷阱均不再发挥作用,这时如有操作人员在现场,可向下按复位按钮,从而强制系统复位、摆脱死循环,然而由人员一直监视系统不具可行性。译名为“看门狗”的外国研发程序运行监视系统“WATCHDOG”对这一问题给予了有效解决。WATCHDOG系统可独立运行工作,对CPU的依赖程度趋近于零,同CPU间会在固定间隔时间内进行一次联系,由CPU告知当前运行状况是否正常,同时若CPU落入死循环,此系统能够及时发现并对系统进行复位处理。某些高档单片机控制系统已植入WATCHDOG于自身芯片内,在使用上极为方便。如单片机不具备此项功能,则可选用配置专门的WATCHDOG電路,例如可选配美国研发的MAX813L及X25043/45等,或者也可以通过计数器或者单稳态电路结合自身需要,自行设计特色的WATCHDOG。

在系统程序跌入死循环之后,级别更高的中断子程序才能够夺取CPU控制权,所以可先用定时器设计WATCHDOG系统,并将溢出中断改设成高优先级的中断。此WATCHDOG程序设计会占用控制系统的一个定时器,但并不是所有控制系统均能让出定时器资源,因此可使定时器成为“兼职”型WATCHDOG,尤其分担完成部分中断处理子程序工作。一般情况下,“专职”型WATCHDOG溢出中断正常状态下不会发生,“兼职”型WATCHDOG却一定会发生。

4结语

对于单片机控制系统来说,抗干扰措施十分的重要,它直接影响到控制系统的运转的安全性和效率性,因此在实际应用当中,抗干扰工作相关工作内容和工作量甚至远超于样机的前期研制,一旦有所疏忽,则极有可能在投入现场作业后,样机首次应用便出现故障问题。经实践,证明上述软件抗干扰措施效果显著,因此可联合起来,精心设计,在最大程度上降低单片机控制系统受到的干扰影响,正常运转,保证输入、输出信息的正确性和有效性。

参考文献

[1]黄启锋,郭丽花,林有希等.单片机控制系统软件抗干扰方法的研究[J].中国农机化学报,2016,(2).

[2]王峰.加强单片机PLC控制系统抗干扰能力的措施[J].科技创新与应用,2015,(8).

[3]魏雅,杜云.单片机应用系统抗干扰的设计[J].电子设计工程,2014,(8).

[4]高源.软件抗干扰技术在煤矿用单片机测控系统中的应用[J].煤炭技术,2014,(3).

猜你喜欢

抗干扰控制系统单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
变频器控制回路抗干扰措施及调试故障处理
Microchip推出两个全新PIC单片机系列