软件抗干扰技术_第1页
软件抗干扰技术_第2页
软件抗干扰技术_第3页
软件抗干扰技术_第4页
软件抗干扰技术_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

17.3软件抗干扰技术

27.3.1软件冗余技术7.3.2软件陷阱技术7.3.3“看门狗”技术7.3.4故障自动恢复处理程序3前言软件出错对系统的危害1.数据采集不可靠

在数据采集通道,尽管采取了一些必要的硬件抗干扰措施,但在数据传输过程中仍然会有一些干扰侵入系统,造成采集的数据不准确形成误差。2.控制失灵

一般情况下,控制状态的输出是通过微机控制系统的输出通道实现的。由于控制信号输出功率较大,不易直接受到外界干扰。但是在微机控制系统中,控制状态的输出常常取决于某些条件状态的输入和条件状态的逻辑处理结果,而在这些环节中,由于干扰的侵入,可能造成条件状态偏差、失误,致使输出控制误差加大,甚至控制失灵。3.程序运行失常

计算机系统进入强干扰后,程序计数器PC的值可能改变,因此会破坏,程序的正常运行。被干扰后的PC值是随机的,这将引起程序执行一系列毫无意义的指令,最终可能导致程序“死循环”。4软件抗干扰的设置前提条件:1、在干扰作用下,微机系统硬件部分不会受到任何损坏,或易损坏部分设置有监测状态可供查询。2、程序区不会受干扰侵害。3、RAM区中的重要数据不被破坏,或虽被破坏可以重新建立。5软件抗干扰技术所研究的主要内容:1、采取软件的方法抑制叠加在模拟输入信号上噪声对数据采集结果的影响,如数字滤波器技术(4.6节);2、由于干扰而使运行程序发生混乱,导致程序乱飞或陷入死循环时,采取使程序纳入正规的措施,如软件冗余、软件陷阱、“看门狗”技术。67.3.1软件冗余技术一、指令冗余技术操作程序时序指令完全有程序计数器PC控制,所以,一旦PC因干扰而出现错误,程序便会脱离正常运行轨道,出现“乱飞”。为了使“乱飞”程序在程序区迅速纳入正轨,应该多用单字节指令,并在关键地方人为地插入一些单字节指令NOP,或将有效单字节指令重写,称之为指令冗余。71、NOP的使用在双字节指令和3字节指令之后插入两个单字节NOP指令,保证其后指令不被拆散。再者对程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ等)和某些对系统工作状态起重要作用的指令(如SETB、EA等)之前插入两条NOP指令,可保证乱飞程序迅速纳入轨道,确保这些指令正确执行。82、重要指令冗余对于程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC等)和某些对系统工作状态有重要作用的指令(如SETB、EA等)的后面,可重复写上这些指令,以确保这些指令的正确执行。9

指令冗余特点:1、降低正常程序执行的效率;2、可以减少程序乱飞的次数,使其很快纳入程序轨道,使CPU按“操作码、操作数”方式运行,但不能保证失控期间不干坏事,更不能保证程序纳入正常轨道后太平无事。因为乱飞的程序已经偏离正常顺序,做了不该做的事。解决这个问题还要靠软件容错技术,减少或消灭程序误动作。3、指令冗余使乱飞程序安定下来是有条件的,首先乱飞的程序要落到程序区,其次必须执行到冗余的指令。当程序乱飞到非程序区时,或乱飞的程序碰到冗余指令前已形成死循环,都会使冗余指令失去作用。10二、时间冗余技术时间冗余方法是通过消耗时间资源达到纠错目的。1、重复检测法对接口中的输入数据信息进行多次检测,若检测结果完全一致,则是真的输入信号;若相邻的检测内容不一致,或多次检测结果不一致,则是伪输入信号。11122、重复输出法对于开关量输出软件抗干扰设计,或者对于那些用锁存器输出的控制信号,采取重复输出的办法。输出重复周期尽可能短些。例如当计算机输出开关量控制闸门、料斗等执行机构动作时,为了防止这些执行机构由于外界干扰而误动作,比如已关的闸门、料斗可能中途打开;已开的闸门、料斗可能中途突然关闭。对于这些误动作,可以在应用程序中每隔一段时间(比如几个ms)发出一次输出命令,不断地关闭闸门或者开闸门。这样,就可以较好地消除由于扰动而引起的误动作(开或关)。133、指令复执技术这种技术是重复执行已发现错误的指令(一旦发现错误、就重新执行被错误破坏的现行指令),如故障是瞬时的,在指令复执期间,有可能不再出现,程序可继续执行。软件实现方法:(1)当发现错误时,能准确保留现行指令地址,以便重新取出执行。(2)现行指令使用的数据必须保留,以便重新取出执行时使用。144、程序卷回技术程序卷回不是某一条指令的重复执行,而是一小段程序的重复执行。为了实现卷回,也要保留现场。这种卷回方法可卷回若干次,直到故障排除或显示故障为止。15程序卷回的要点:(1)将程序分成一些小段,卷回时也要卷回一小段,不是卷回到程序起点(2)在第n段之末,将当时各寄存器、程序计数器及其他的有关内容移入内存,并将内存中被第n段所更改的单元又在内存中开辟一块区域保存起来。(3)如在第(n+1)段出现错误,就把第n段的现场送给机器的有关部分,然后从第(n+1)段起点开始重复执行第(n+1)段程序165、延时避开法当系统要接通或断开大功率负载时,使CPU暂停工作,待干扰过去以后再恢复工作,这比单纯在硬件上采取抗干扰措施要方便许多。177.3.2软件陷阱技术一、软件陷阱软件陷阱,就是用引导指令强行将捕获到的乱飞程序引向复位入口地址0000H,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨。软件陷阱的两种形式如下表形式软件陷阱形式对应入口形式形式之一NOPNOPLJMP0000H0000H:LJMPMAIN;运行程序..形式之二LJMP0202HLJMP0000H0000H:LJMPMAIN;运行程序.0202H:LJMP0000H.

18形式之一的机器码为:0000020000;形式之二的机器码为:020202020000。根据乱飞程序落入陷阱区的位置不同,可选择执行空操作,转到0000H和直转0202H单元的形式之一,使程序纳入正轨,指定运行到预定位置。19二、软件陷阱的安排1、未使用的中断区当未使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,就能及时捕捉到错误的中断。NOPNOPPOPdirect1;将断点弹出堆栈区POPdirect2LJMP0000H;转到0000H处中断服务程序也可以NOPNOPPOPdirect1;将原先断点弹出POPdirect2PUSH00H;将断点地址改为0000HPUSH00HRETI202、未使用的EPROM空间现在使用的EPROM一般为2764、27128等芯片,很少能够用完,所以在非程序去常用0000020000或020202020000数据填满。当乱飞程序进入此区,便会迅速自动入轨。3、非EPROM芯片空间当程序乱飞如非EPROM区间时,要想尽快使程序入轨,就要设置如下电路21图7-3-2非EPROM程序陷阱之一22图7-3-3非EPROM程序陷阱之二234、运行程序区

程序设计时常采用模块化设计,按照程序的要求一个模块,一个模块的执行,可以将陷阱指令分散放置在用户程序各模块之间空余的单元里,在正常程序中不执行这些陷阱指令,保证用户程序运行,但当程序乱飞到这些陷阱区,马上将乱飞的程序拉倒正确轨道。245、中断服务程序区设用户主程序运行区间为ADD1—ADD2,当程序乱飞入ADD1-ADD2区间外,若在此用户程序区外发生定时中断,可在中断服务程序中判断中断断点地址ADDX.若ADDX<ADD1或ADDX>ADD2,说明程序乱飞,应使程序返回到复位入口地址0000H,使乱飞程序纳入正轨。25266、RAM数据保护的条件陷阱单片机外RAM保存大量数据,这些数据的写入是使用“MOVX@DPTR,A”指令来完成的。当CPU受到干扰而非法执行该指令时,就会改写RAM中的数据,导致RAM中的数据丢失。为了减小RAM中数据丢失的可能性,可在RAM写操作之前加入条件陷阱。27287.3.3“看门狗”技术“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,使系统运行纳入正规。“看门狗”技术既可由硬件实现,也可由软件实现,还可由两者结合来实现。29一、硬件“看门狗”电路1、单稳态型“看门狗”电路图7-3-4单稳态“看门狗”电路30图7-3-574LS123管脚排列与功能31

图7-3-6单稳态“看门狗”程序框图322、计数器型“看门狗”电路图7-3-7计数器型“看门狗”电路333、采用微处理器监控器实现“看门狗”功能在微机化测控系统中,为了保证微处理器稳定而可靠地运行,需配置电压监控电路;为了实现掉电数据保护,需备用电池及切换电路;为了使微机处理器尽快摆脱因干扰而陷入的死循环,需要配置Watchdog电路(俗称“看门狗”电路)。将完成这些功能的电路集成在一个芯片当中,称为微处理器监控器。这些芯片集成化程序高,功能齐全,具有广阔的应用前景。具有“看门狗功能的微处理器监控芯片:MAX690A、MAX692A、MAX705/706/813L等。34图7-3-8MAX813L框图当/WDO为低电平时,预使其恢复高电平的条件在Vcc高于复位门的情况下:(1)采取手动复位,/MR有一种低脉冲,发出复位信号,在复位信号的前沿,/MDO变为高电平,但watchdog被清零,且不计数。(2)若WDI电平发生变化,watchdog被清零,且开始计数,同时/WDO变高电平。3536

图7-3-9“看门狗”定时时序图37二、软件“看门狗”技术基本思路:在主程序中对T0中断服务程序进行监视;在T1中断服务程序中对主程序进行监视;T0中断监视T1中断。381、主程序主程序在完成系统测控功能的同时,还要监视T0中断因干扰而引起的中断关闭故障。39

图7-3-10主程序流程图

402T1中断程序T1中断服务程序完成系统特定测控功能的同时,还要监视主程序的运行状态。41

图7-3-11T1中断程序流程

423T0中断程序T0中断服务程序的功能是监视T1中断服务程序的运行状态。43

图7-3-12T0中断程序流程

44三、软硬件结合的“看门狗”技术硬件“看门狗”技术能有效的监视程序陷入死循环故障,但对中断关闭故障无能为力;软件“看门狗”技术对高级中断服务程序陷入死循环也无能为力,但能监视全部中断关闭故障。如果二者结合起来,就可以取长补短,来取得很好的抗干扰效果。45

图7-3-13主程序流程图

46

47若测控功能模块程序较短,执行一次时间内不足以使T0、T1发生定时中断,这时可采用图7-3-16所示的方案。48

图7-3-16主程序流程图

497.3.4故障自动恢复处理程序一、上电标志设定程序的执行总是从0000H单元开始,即微机启动。启动方式:其一是上电复位,即首次启动,又称冷启动;冷启动的特征是系统要彻底初始化,测控程序模块从头开始执行,即生产工艺过程从最初状态开始运行。其二是故障复位,即再次启动,又称热启动。热启动的特征是不需要全部进行初始化,测控程序不必从头开始执行,而应从故障部位开始,即生产工艺过程从故障点重新运行。怎样区别是冷启动,还是热启动?这是程序进入0000H后首先遇到的问题,即上电标志的判定。501、PSW•5上电标志设定图7-3-17PSW.5上电标志判定512、SP建立上电标志MCS-51单片机硬件复位后堆栈指针SP为07H,但在应用程序设计中,一般不会把堆栈指针SP设置在07H这么低的内部RAM地址,都要将堆栈指针设置大于07H。根据SP这个特点,可用SP作为上电标志。应注意,SP标志仅适用于软件复位方式。3、内RAM中上电标志设定单片机内RAM中单元上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论