欧洲杯买球APP(中国)精粹有限公司-GREEN LIFE

软件抗干扰措施的实现

发布时间:2014/12/05

    在对硬件优化的同时,软件抗干扰设计也尤为重要。设计实践证明,软件抗干扰不仅效果好,而且可根据使用现场环境选用不同的软件抗干扰措施,进一步提高数据传输的精度和可信度,同时也有利于降低系统成本。本设计采用了如下软件抗干扰方法:
    1.主动初始化
    这里的初始化泛指在各段程序中对单片机及片外I/O器件的功能、端口、工作方式等采取的永久性的或者临时性的设置,在每次使用某种功能前,都要再进行一次相应的设定工作。实践证明,这一措施可以大大提高系统对于干扰的自恢复性能。
    2.数字滤波技术
    该技术既可称为硬件仿真(代替滤波器的功能)技术,又属于时间冗余技术。它不需要硬件,靠单片机特殊设计的计算程序,高速、多次运算达到对采样数据序列进行平滑的目的,以提高其有用信号在采样值中所占的比例,减少乃至消除各种干扰和噪声,以保证测控系统工作的可靠性。
    常用的数字滤波方法有:算术平均值法、系统滤波法、加权平均值法、一阶惯性滤波法、中位值法等。中位值法适合于具有随机干扰的信号滤波,且具有算法简单,编程容易实现的优点。结合本系统的特点,我们采用了中位值滤波法。对温度信号值采样N次(N为奇数),并按大小排列取中间值,作为该点的采样结果。这样可以有效克服因偶然因素引起的波动干扰,对温度变化缓慢的被测参数有良好的滤波效果。
    3.软件容错技术
    仪表系统软件设计时采用双向奇偶校验方法实现数据容错。双向奇偶校验是将存放的数据位按矩阵行列分组,各组的各行各列均设置一奇偶校验位,通过对列的奇偶校验,定出出错位的行号和列号,经过定位纠正一重出错。采用双向奇偶校验可以克服奇偶校验只能检测出一重错码而无法进行错码定位的不足,并可检测出多重错码,大大减少数据存放的差错率,增强抗干扰能力。
    4.冗余指令
    单片机最容易受干扰的是内部程序计数器PC的值,在受到强烈的干扰后,PC的值被改变,改变后的值又是随机的,具有不确定性,往往会使单片机将程序从正确位置跳转到一个不确定的区域继续执行,或将操作数当作操作码来执行,引起程序混乱,即程序跑飞。当程序弹飞到某一单字节指令上时,便自动纳入正轨。当弹飞到某一双字节指令上时,有可能落到其操作数上,从而继续出错。当程序弹飞到三字节指令上时,出错的机会就更大。因此,我们在编写程序时,尽量少采用多字节指令,并在关键的地方有意识地插入一些空操作指令NOP,这就是冗余指令。冗余指令的插入可以减少程序弹飞的次数,当弹飞的程序遇到这些空指令时,就使PC的内容得到调整,使程序很快纳入正确轨道。本系统采取的NOP指令的插入原则是:
    1)在跳转或多字节指令前插入,使指令得到正确的转移或正确执行。
    2)在中断、堆栈等重要的指令前插入。
    3)在程序中,每隔若干条指令插入一次。
    或者在软件设计过程中用一条引导指令将跑飞的程序引向一个指定的地址,并在那里设置一段专门对程序出错处理的程序,使程序按照既定目标执行。在软件开发过程中把这段程序的入口标号称为ERR,软件陷阱就是一条“LJMP ERR”指令,为了加强对跑飞程序铺着效果,还在它迁建加了两条NOP指令。因此,在实际软件开发过程真正的软件陷阱由下面三条指令组成:
    NOP
    NOP
    LJMP ERR
    再者利用“LJMP#0000H”和“JB bit,rel”指令,只需要将非程序区全部填入OFFH,即可拦截失控程序,强使程序进入初始状态。在程序的进一步完善中,可以考虑设计专门的WatchDog程序。在本系统中采用第一种与第三种相结合的方法。
    另外,在存储器没有使用的单元中全部填充OFFH值,即复位指令RST的目的代码值,这样在程序被弹飞到这些区域时,就会被复位,以免系统瘫痪。
    5.睡眠抗干扰
    所谓睡眠即CPU进入等待工作状态,在这种状态下内部时钟仍继续供给中断系统、定时/计数器和串行口,CPU内部的状态被完整的保留下来,中断退出和硬件复位均可使CPU退出睡眠状态。睡眠抗干扰的原则是:在进行可能引起强烈干扰的I/O操作后,CPU应该立即进入睡眠状态,等退出睡眠状态时,干扰的高峰已基本消失。按这种思想设计的软件有如下特点:主程序在完成各种自检,初始化工作之后,可用下述2条指令使CPU处于睡眠状态。
    LOOP:ORL PCON,#1;电源控制寄存器置1
        LJMP LOOP
    系统所有的工作都放在中断子程序中执行,而监控程序一般放在中断程序中。主程序在执行ORL PCON,#1后立即进入睡眠状态,当中断系统将CPU唤醒后,CPU立即响应中断,执行主程序中的LJMP LOOP指令,转回到ORL PCON,#1这条指令后再次进入睡眠状态,如此周而复始,为确定CPU不过早被唤醒,躲过强烈干扰的高峰,可临时关闭一些次要的中断,仅保留一个内部定时中断,并做好标志,下次定时中断响应后,根据标志恢复系统的正常中断设置方式。
    6.用软、硬件相结合的异常复位措施
    系统中采用软、硬件相结合的异常复位措施,应在软件中对热起动和冷起动进行区分,如果是由于干扰导致的系统热起动,系统一切将从头开始,所以在复位初始化时,应保留原始数据不变,使数据具有一定的继承性,各类控制系统要求CPU受到干扰后能自动采取补救措施。
  (转载信息仅供参考)  

上一篇 : 数字信号通道和模拟信号通道

下一篇 : 压差式流量计

返回列表