- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机系统中软件抗干扰常用方法
单片机系统中软件抗干扰常用方法
摘 要:单片机在各个领域的应用越来越广泛,而单片机控制系统常工作于各种存在干扰的环境。本文从软件抗干扰方面进行研究,针对干扰对单片机控制系统产生的影响:数据采集的误差增加,输出控制失误、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出错失控、程序就会“飞走”进入
文档评论(0)