您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机抗干扰技术(2)
110.3软件抗干扰技术210.3软件抗干扰技术它是计算机控制系统抗干扰设计的一个重要组成部分。在许多情况下,系统的抗干扰不能完全依靠硬件来解决。硬件抗干扰是主动地在干扰通道上增加防护,尽可能削弱干扰对系统的影响,或者实在程序跑飞后,利用硬件电路强制计算机系统复位。软件抗干扰主要是利用软件方法削弱干扰对系统的影响,包括①利用软件方法削弱干扰对测量信号的影响②当程序受到干扰出现跑飞等问题时,用软件方法设法使程序恢复到正确的地方。其防护是被动的310.3.1软件出错对系统的危害1.是采样数据不可靠对于数据采集过程,软件出错,采集的数据其可靠性?2.使控制失灵软件出错,还能否正确的产生、输出控制信号?3.程序运行失常软件出错本来就是程序运行失常软件出错会造成数据不可靠、控制精度降低甚至控制失灵,功能出错,还有可能导致系统崩溃等严重后果。410.3.2数字滤波方法——削弱干扰对模拟信号测量的影响利用数字滤波方法削弱干扰对测量精度的影响。前面我们已经讨论了数字滤波方法1.限幅滤波法——适用于脉冲干扰(),()(1)()(1),()(1)YkifYkYkYYkYkifYkYkY2.中值滤波(又叫中位数滤波)法连续进行N次采样(N为奇数),获得N个采样数据,将这N个数据按其大小顺序排列,取中间的那个数作为滤波输出。适用于——信号慢速变化,例如温度、液位。大小N个数按大小顺序排列53.算术平均值滤波连续进行N次采样,得到N个数据X1,X2,…,Xn,取这N个数据的算术平均值作为滤波器的输出11()NiiYkXN滤波效果与N的取值有关,N取值大,信号平滑度好,但灵敏度降低,反应慢,需要的时间长;N小,灵敏度高,但滤波效果又变差。N的取值:流量取N=12,压力取N=4。对于温度控制,教材上没有给出N的取值。它的应用——信号变化缓慢,0均值噪音干扰。64.递推平均值滤波法与平均值滤波法的相同点——N个数的平均值区别:不是连续采集N点数据,而是保存当前采样点K之前的N-1个采样数据{X(k-N+1),X(k-N+2,…,X(k-2),X(K-1)},利用这N-1个数据与当前采样数据X(k)求平均值11()NiiYkXN效果与平均值滤波法相似。由于只需进行一次采样,可以节约时间。缺点:需要N-1个数据存储单元保存N-1个数据。X(k-N+1)X(k-N+2)X(k-2)X(k-1)…X(k)N-1个数据75一阶低通滤波器方法:设前一次滤波输出信号为Y(k-1),当前采样信号为Y(k)()(1(k-1)(k)XkXX)其中T是采样周期τ是滤波器的时间常数,它相当于RC低通滤波器的Tf=RC按需要选择。系数α也可用/101TeRC1()1fGsTSffTTT计算。适用:信号频率低,噪声频率明显高于信号可能的频率范围。86.加权平均值滤波在递推平均值滤波的基础上,考虑不同不同的采样值,在求平均值时,起作用区别对待——给一个加权系数。11()(7.4)NiiiYkCXNCi为加权系数.1011iNiiCC一般,离当前采样值越远的点,其加权系数越小.适用:具有纯滞后特性的大惯性系统.9以及这些滤波方法的组合7.中位置平均值滤波8.限幅平均值滤波……还有一些数字滤波算法,例如消抖动滤波法、限幅消抖动滤波、……1010.3.3输入/输出软件的抗干扰输出的抗干扰,是为了避免输出控制信号错误对系统的危害。输入——则是为了避免输入信息(或状态)误判对系统的危害。111.数字量信号输入抗干扰措施键盘的消抖动就是一个典型方法。多次读取,确认无误后,才认为是真实的输入信息。多次——最少两次两次读入间隔10~20mS对于两次的情况,比较两次连续输入信息,一致,正确……多次——则比较多次读入的信息,一致,读入的是正确的状态。122.数字量输出抗干扰措施多次(重复)输出增加RS触发器锁定输出。实际上许多情况下,还会与硬件配合——增加输出状态的检测接口,输出后,利用对应的检测输入接口再读回输出接口的状态,如果与期望的一致,正确输出,否则……1310.3.4程序运行失常的软件抗干扰硬件抗干扰——看门狗(Watchdog)电路——工作原理是:它是一个可以重置时间常数的定时复位电路,它到达预定的时间时,产生一个复位信号。重置时间常数是通过向它一个引脚提供一个脉冲信号实现的,每次重置(清除看门狗),又重新开始定时。看门狗芯片和计算机系统的一个输出信号相连。P1.0RESTRESTWDIWatchDogMCU14程序正常运行时它是一个不断定时循环的过程,每次循环,在特定地方安排一条输出指令,输出一个脉冲信号给看门狗电路,是他不可能产生REST信号。一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,便不能周期性的向看门狗电路输出脉冲,……一旦到达预定时间,它就产生一个复位信号,使计算机系统复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位.P1.0RESTRESTWDIWatchDogMCUT151冗余技术例如51单片机,有部分2、3字节指令,还有很多单字节指令。CPU受干扰——跑到不该去的地方取指令——多字节指令的不是第一字节地址——错误在关键的地方插入几条不产生作用的单字节指令,当程序跑飞后,最后能进入这些单字节指令——又回到正确的程序。ANLA,#7FH;55,7FORLA,#02H;45,02MOVP0,A;F5,80….557F4502F58016如果跑飞到ANL指令的第二字节取指令7F45MOVR7,#45H02F580LJMP#0F580H;!!!ANLA,#7FH;55,7FORLA,#02H;45,02MOVP0,A;F5,80….557F4502F58017ANLA,#7FHNOPNOPNOPORLA,#02HMOVP0,#A….557F0000004502F5807F00MOVR7,#00H00NOP00NOP4502ORLA,#02H;回到正确0F580MOVP0,A如果程序在ANLA,#7Fh后添加3条NOP指令指令冗余18优点:可能回到正确处;缺点:耗时间、空间;主要在:转移控制类指令前插入NOP指令数=2192.软件陷阱软件跑飞后,不是简单的让它回到正确的流程,而是转到错误处理程序。原因:可能已经造成数据破坏,不宜再继续执行。例如前面的输出控制——A中的数据已不正确方法:在2条冗余指令NOP后,用LJMP指令转到错误处理程序。NOP;正常时,不会进入该处。NOPLJMPERR应用:主要用在没有使用的程序代码区,或一些子程序结束处、程序断裂处(转移指令LJMP后,RET后等),或未使用的中断向量、数据表格后、转移表后。它不影响程序的执行效率。203.软件把关定时器技术一个定时中断服务程序——一周期T定时复位——有一个计数器WT,每次定时中断,该计数器WT-1,减到WT=0,强制系统复位——转到复位入口处执行;主程序:每次正常循环——给WT赋初值WT=WT0。要求主程序循环时间小于T*WT0.教材上给出了一个更复杂的设计方法——两个把关定时器,它们配合,可以使把关效果更好。我们主要要求掌握基本的把关定时器方法。214.系统复位特征(1)主要目的是区分不同的复位原因上电复位异常复位硬件看门狗软件故障复位软件陷阱软件把关定时器……22(2)区分方法①上电复位(REST引起的复位)SP=07PSW=00内部RAM为随机数②软件复位——不影响SP,PSW通过设置PSW的用户标志位=1,可以识别软件产生的复位③硬件看门狗复位——REST有效——SP=07,PSW=00但IRAM内容不改变——利用一个或多个字节,存放特殊校验字,复位后,检查这些校验字——匹配,则硬件看门狗复位不匹配——上电复位。23④非正常复位后恢复程序的执行当非正常复位后,对有些程序,如果希望程序接着原来的程序继续执行,而不是从头开始执行。方法:程序分成多个模块主程序中利用在IRAM中设置一个运行计数器记录模块的执行状态,保存必要的数据非正常复位后,主程序通过查询模块运行计数器,可判断前面已经完成的模块,并恢复必要的数据,接着运行后面的模块。
本文标题:单片机抗干扰技术(2)
链接地址:https://www.777doc.com/doc-4012420 .html