浅谈单片机应用系统的软件抗干扰措施
摘要分析单片机应用系統的软件干扰因素以及实现抗干扰必要条件,并针对单片机应用系统易出现的软件失控、软件数据出错、数字量输入错误等问题提出可行的软件抗干扰措施。
关键词单片机;软件;抗干扰
引言
单片机应用系统产生故障的最主要的原因在于干扰问题。
干扰对于单片机应用系统产生的影响一方面会造成测量与控制精度失衡,另一方面也会造成应用系统完全失效。
所以对于单片机应用系统软件的干扰问题必须进行解决。
1 单片机应用系统的软件抗干扰措施的必要条件[1]
1.1 干扰因素及影响分析
随着科学技术的不断发展,单片机系统应用的领域越来越广泛,因而对单片机系统的稳定性要求也变得越来越高。
但是受到单片机应用系统结构复杂性以及工作环境的多变性的影响,决定单片机系统性能的因素相对来说也比较复杂,尤其是软件的抗干扰措施就是其中比较重要的组成部分。
从专业角度分析,单片机系统稳定性影响因素主要分为四种,即浪涌干扰、放电干扰、电磁干扰和高频振荡干扰。
在这些干扰因素的影响下单片机系统会发生采集的数据出现失真、程序的运行受到干扰、硬件控制发生失效等现象,而更加直观的表现就是视频图像发生串色、网纹,音频信号失真或者是声音发生串扰现象等。
1.2 软件抗干扰的必要条件分析
在对单片机软件抗干扰稳定性进行设计时,从安全角度考虑,将软件的程序数据放在了ROM中。
而一般情况下,单片机抗干扰软件应当具有以下几个方面的条件:①当单片机系统受到外界干扰后,在抗干扰软件的作用下系统的硬件组成不应受到损坏,另外为了方便对系统运行状态的监控,应当在关键核心的位置设置相应的检测状态;②当程序区因外界因素受到干扰后不会产生一定的损坏。
一般情况下,在RAM中与系统有关的表格、常数等即使在受到干扰后也不会发生损坏,但是RAM程序中的系统可能因外界等的干扰发生一定的故障。
而一旦RAM区的有关程序受到外界干扰,为了从根本上消除干扰带来的不利影响,应当向RAM区重新输入有关的程序。
2 单片机应用系统的软件抗干扰措施[2]
2.1 失控软件的抗干扰措施
输入信号软件重复检测将接口中数据信息进行反复测试,如果检测的结果全部相同,那么就是正确的输入信号;如果测试的结果不相同,那么就是伪输入信号。
开关量输出方法开关量输出采用的是重复输出的方法,这样可以有效地提高输出接口的抗干扰性。
对于那些具有锁存器输出的控制信号有更多的必要。
并且输出重复周期尽量减短,所以当输出端口因为受到干扰输出一些误差信号后,外部执行机构还没有机会做出有效地反应,但当正确的信号再一次输出了,这就可以及时地防止错误的发生。
设置电流输出状态存储单元在干扰侵入输出通道造成输出信号破坏的时候,系统可以准确查询这时候输出状态储存单元中输出状态信息,在短时间内来修正输出状态的错误。
2.2 数据出错软件的抗干扰措施
对ROM中数据的主要保障,通常使用的数据冗余技术来保護和错误的校正。
所谓数据冗余就是对系统中的重要参数的备份保护,在系统复位后,马上使用备份ROM自我检查和修复重要参数区,以便保护在ROM中的数据。
一般是在不同的地方来保存1-2的备份,使用ROM中的数据,然后把原始数据跟备份数据进行核对比较,如果数据相同则认为未被破坏,否则就要开始用备份数据。
而且备份数据设置遵循以下原则。
①每次备份的数据应相互远离分散进行,这样减少备份数据都被破坏的概率。
②每次备份的数据应该是远离堆栈区,以避免造成由于堆栈操作的错误导致数据被摧毁的可能。
③备份数据不得少于两个,越多的备份,可靠性越高。
但工程实际操作证明,干扰只会让个别的数据错误,并不会破坏整个ROM,因此对于放弃存储空间和执行速度为代价的牺牲,可以说并没有影响。
2.3 数字量输入过程中的软件抗干扰方法
(1)算术平均法
算术平均法是指在数字量输入过程中对数据进行多次采样(采样次数最好为偶数,这样执行右移指令就可以完成),在这些采样数据中,去掉最大值和最小值,然后对余下的采样数据进行求和,求和之后进行平均,得到的平均值就是有效采样值。
怎样使用算术平均法要从两个方面进行考虑:第一,慢变参数应在采样的同时进行数据处理,这样可以减少干扰对结果的影响,除此之外,还应注意不要在运行内存中开辟数据暂存区。
第二,快变参数应按照前文所说的一般步骤进行,即先采样,再对采样结果进行处理,除此之外,还应注意在运行内存中开辟足够的数据暂存区。
(2)竞赛平均值法
竞赛平均值法是算术平均法的升级。
由前文可以得知,使用算术平均法要在
同一时间点进行多段采样,但随机误差是时时刻刻都在变化的。
因此,当外界环境变数过多时,算术平均法产生的结果并不具有实用性,竞赛平均值法正是基于这一点提出的。
尽管随机误差不可预料,但随机误差总体来说具有三个性质:即有界性、抵偿性以及对称性。
针对随机误差的三个性质,竞赛平均值法对其进行了相应的改变。
竞赛平均值法是指在某一时间段(时间段应较小)内,快速地对某一个数据量进行多次采样,为使采样结果较为准确,采样次数应尽量多,在多个采样数据中去掉几个明显较大或较小的值(去掉最大值和最小值时要注意对称,比如去掉三个最大值,就应去掉三个最小值),然后对余下的采样值进行求和,求和之后进行平均,所得到的算术平均值即有效采样值。
(3)中位值滤波法
由于在采样时可能会存在因偶然因素发生波动以及采样器不稳定的问题。
因此,必须要探索一种能有效解决这种问题的方法,中位值滤波法就可以有效克服这种问题。
中位值滤波法是指对数据进行多次采样,将采样数据从大到小进行排列,然后将其从左至右分为相等的三部分,去掉左右两部分,取中间那一部分对其进行求和,求和之后进行平均,所得的平均值即为有效采样值。
3 结束语
综上,单片机应用系统中软件干扰因素的存在主要会引发数据采集失真、程序运行混乱、硬件控制失效等问题,严重影响单片机应用系统的正常运行。
据此,应该对其问题进行具体分析,针对失控软件、数据出错软件等采取差异性的抗干扰措施,提高单片机应用系统运行的有效性。
参考文献
[1] 丁向荣.单片机应用系统软件中抗干扰技术的探讨[J].电脑编程技巧与维护,2012,(10):8-9.
[2] 熊中刚,罗素莲.单片机系统常用抗干扰技术研究[J].科技信息,2013,(36):210-211.。