首页 > 范文大全 > 正文

单片机系统中软件抗干扰常用的方法

开篇:润墨网以专业的文秘视角,为您筛选了一篇单片机系统中软件抗干扰常用的方法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:单片机在各个领域的应用越来越广泛,而单片机控制系统常工作于各种存在干扰的环境。本文从软件抗干扰方面进行研究,针对干扰对单片机控制系统产生的影响:数据采集的误差增加,输出控制失误、RAM中的数据被破坏,以及程序“飞走”或陷入死循环,探讨了消除数据采集的干扰误差的方法、确保正常控制状态的方法和程序失常后恢复的方法。总结了软件抗干扰的特点,提出合理使用软件抗干扰的方法。

关键词:单片机系统 软件抗干扰 办法

单片机作为一种面向控制的大规模集成电路,具有功能强、体积小、可靠性高、价格低廉的特点。单片机以无比优越的性价比在工业、农业、商业、交通运输、科研教学、医疗卫生、日常生活等领域应用广泛。

在单片机控制系统的设计开发过程中,我们不但要注重设备的自动化程度及智能性的设计,同时也要重视控制系统的工作稳定性,否则就无法体现控制系统的优越性。

单片机构成控制系统时,在满足各项控制功能要求后,为了使系统能够实用,一定要提高其可靠性。由于单片机控制系统的工作环境往往是比较恶劣和复杂的,特别是在工业现场环境中,常会受到电磁设备启动、停止、电源波形畸变等因素的影响,各种干扰不可避免。

干扰对微机控制系统造成的后果有:增加数据采集的误差,输出控制失误、RAM中的数据被破坏,以及程序“飞走”或陷入死循环。

单片机系统的抗干扰具体可分为软件抗干扰和硬件抗干扰,虽然在硬件设计时采用了各种抗干扰办法,但是彻底消除干扰是不可能的。所以还得从软件抗干扰方面使用适当的方法,以便取得更好的抗干扰效果。而且软件抗干扰以其设计灵活、节省硬件资源、可靠性好、成本低等优势越来越得到广泛采用。

以下仅就软件抗干扰方法进行探讨。

一、数据采集干扰误差消除的方法

对数据采集时产生的误差常可用数字滤波的方法进行干扰的消除。数字滤波方法中有算术平均滤波法、比较取舍滤波法、中值滤波法及一阶递推数字滤波法等。

1.算数平均滤波法。对一点的数据连续进行多次采样,用其平均值作为该点采样结果。这样做可以减少系统的随机干扰对采样结果的影响,一般多次采样取3~5次求其平均即可。

2.比较取舍滤波法。当控制系统采样数据中的个别数据存在偏差时,使用此方法,能剔除个别误差较大的数据。这个方法是根据几个采样点数据变化的规律,决定取舍办法。例如“采三取二”,就是对每点进行三次采样,把两次相同的数据作为采样结果。

3.中值滤波法。对一点数据连续进行N次采样, N一般为奇数,然后将N次采样数据按值的大小次序排成一列,常使用“冒泡排序法”进行排序,将其中间值作为本次采样的数据结果。这种方法能对偶然因素造成的波动或采样器件不稳定引起的误码脉动干扰有比较好的抑制作用。

4.使用一阶递推数字滤波法。该方法使用软件实现RC低通滤波器的算法,经常采用的一阶递推数字滤波公式为:

YK=(1-α)YK-1+αXK

上式中,XK是第K次采样值,YK-1是第K-1次滤波结果输出值;YK是第K次滤波结果输出值;α是滤波平滑系数

α≈T/τ

上式中,τ是RC滤波器的时间常数;T是采样周期。

二、确保控制状态正常的方法

使用以下软件的方法,可以解决干扰使控制状态不正常的问题。

1.使用多次采样输入信号的方法。为了排除干扰的影响,开关量的输入时,在程序中采用重复读入的方法,每次读入的数据都相同或者用表决法确认数据。确认无误后再输入。输出开关量时,把输出的量再次读回来(需要硬件配合),用以确认输出无误。

2.使用软件冗余技术的方法。在一个条件控制系统中,针对控制条件进行的一次采样、处理和控制输出,可以改用循环多次采样、处理和控制输出。这样做对于惯性大的控制系统中偶然因素的干扰具有较好的作用。

3.采用多次对输出口刷新的方法。用程序中的刷新指令周期性地刷新输出端口,干扰对输出口状态的影响可明显减小。程序中使用设定的RAM单元,专门用来存放输出端口当时状态的标志,程序运行中可查询该RAM单元的输出状态信息,当输出端口状态扰破坏时,系统通过刷新输出端口可以及时纠正输出状态。

三、恢复失控程序的方法

单片机系统遭到干扰后会使PC值改变,PC值可能指向操作数或指令码的其他单元而不是首字节单元,错误地把这些当作指令码来执行;或者PC值超出了程序区,把非程序区里的随机数当成指令码来执行。以上的各种情况,结果都会导致程序失控运行,最终会使程序进入某个死循环。程序的失控运行还有另外一种后果,那就是可能破坏寄存器或数据存储器中的数据。恢复失控运行程序有以下几种办法:

1.使用软件陷阱。这是在非程序区设置陷阱拦截程序的一种方法。一旦PC出错失控、程序就会“飞走”进入非程序区,程序就会进入这个区域的软件陷阱,陷阱就会强迫程序回到初始状态。例如,对于MCS-51单片机,可以用“LJMP 0000H”的机器码填满非程序区。这样不论PC失控后“飞到”非程序区的哪个字节,都能使程序返回到复位状态。

2.使用时间监视器。虽然一些程序失控问题可以使用软件陷阱解决,可是软件陷阱不能解决程序失控后进入某种死循环的问题。

用时间监视器可以把进入死循环的程序恢复到正常状态。时间监视器又称为看门狗(Watch dog)。

时间监视器是利用硬件实现对软件的保护。其设计思想是设好一个定时器,定时器的定时时间比大程序正常执行一次循环所用的时间要稍大一些。程序没有受到干扰的时候,定时时间一到,CPU就执行该定时器的复位服务程序,使该定时器复位,它就可以重新计时,也就是重新监视。当程序遭到干扰,进入某个死循环时,就不会再执行该定时器的复位服务程序。定时器就连续计时,当计到超过定时范围时,就会有一个溢出信号输出。使用这个溢出信号,就能把程序恢复到初始状态,相当于重新启动。

下图所示为用于MCS-51的时间监视器电路,它由两片单稳触发器74LS123组成。其中第一级是程序监视器。程序每隔一定时间TP,由MCS-51的P1.4输出一正脉冲,其上升沿使单稳态触发器开始工作,Q端变为低电平。第一级单稳态触发器的定时时间T1, (决定于R1C1)大于TP,因此当程序正常运行时,Q端不会产生复位的上升沿。如果程序受到干扰飞出,P1.4端就没有正脉冲输出,当第一级单稳态触发器定时到时,Q端输出一上升沿,使第二级单稳态触发器的Q端输出一上升沿,通过“或门”送出系统复位信号(RESET)。

第一级单稳态触发器定时时间的选择,应使T1适当大于TP,此电路中T1=13ms。二级单稳态触发器定时时间的选择,应使Q端输出的正脉冲宽度符合MCS-51的复位信号要求,至少保持2个机器周期,此电路中T2=30μs,能满足要求。

MCS-51时间监视器电路

四、小结

在实际中通常都是几种抗干扰方法并用,相互补充,完善抗干扰功能,方能取得较好的抗干扰效果。硬件是主动抗干扰的,而软件是被动抗干扰的。而且软件抗干扰是一种干扰过后的补救手段,是监督和判断应用系统是否出错或失效的一种方法,也是应用系统抗干扰的最后一道屏障,具有很强的实用性和通用性,合理使用,可获得令人满意的控制效果。

参考文献:

[1]李勋等.单片机实用教程.北京航空航天大学出版社,2000(7)

[2]严仲兴,王熔熔.单片机原理与应用.中国计划出版社,2007(8)

[3]李全利.单片机原理及应用技术.高等教育出版社,2001(7)

[4]赵明,王春.单片机系统的软件抗干扰方法.信息化技术与控制,2004,14(5):22~30

[5]杨建平,王干一.单片机实时控制系统软件抗干扰措施.郑州轻工业学院学报(自然科学版),2002,17(3):28~30

[6]张翔.单片机应用系统的软件抗干扰技术.广西工学院学报,2001;12(2):50~53