单片机智能小车控制系统(原理图+设计方案) 第11页
4.4 软件抗干扰技术
提高玩具车智能控制的可靠性,仅靠硬件抗干扰是不够的,需要进一步借助于软件抗干扰技术来克服某些干扰[6]。在单片机控制系统中,如能正确的采用软件抗干扰技术,与硬件干扰措施构成双道抗干扰防线,无疑为了将大大提高控制系统的可靠性。经常采用的软件抗干扰技术是数字滤波技术、开关量的软件抗干扰技术、指令冗余技术、软件陷阱技术等。
4.4.1、数字滤波技术:
一般单片机应用系统的模拟输入信号中,均含有种种噪音和干扰,它们来自被测量本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪音和干扰。对于这类信号,采用积分时间等于20ms的整数倍的双积分A/D转换器,可有效的消除其影响。后者为随机信号,它不是周期信号。对于随机干扰,我们可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用信号中的比重。故实质上它是一种程序滤波。数字滤波克服了模拟滤波器的不足,它与模拟滤波器相比 ,有以下几个优点:
数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。
数字滤波可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便,功能强的特点。
数字滤波可以对频率很低的信号实现滤波,克服了模拟滤波器的缺陷。
数字滤波器具有以上优点,所以数字滤波在微机应用系统中得到了广泛应用。
4.4.2、开关量的软件抗干扰技术:
干扰信号多呈毛刺状,作用时间短,利用这一点,我们在采集某一开关量信号时,可多次重复采集,直到连续两次或两次以上结果完全一致方为有效。若多次采样后,信号总是变化不定,可停止采集,给出报警信号,由于开关量信号主要是来自各类开关型状态传感器,如限位开关、操作按钮、电气触点等,对这些信号的采集不能用多次平均的方法,必须绝对一致才行。如果开关量信号超过8个,可按8个一组进行分组处理,也可定义多字节信息暂存区,按类似方法处理。在满足实时性要求的前提下,如果在各次采集数字信号之间接入一段延时,效果会好一些,就能对抗较宽的干扰。
输出设备是电位控制型还是同步锁存型,对干扰的敏感性相对较大。前者有良好的抗‘毛刺’干扰能力,后者不耐干扰,当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管此时数据是否有效。输出设备和惯性(响应速度)与干扰的耐受能力也有很大关系。惯性大的输出设备(如各类电磁执行机构)对‘毛刺’干扰有一定的耐受能力。惯性小的输出设备(如通行口、显示设备)耐受能力就小一些。在软件上,最为有效的方法就是重复输出同一个数据。只要有可能,其重复周期尽可能短些。外设设备接受到一个被干扰的错误信息后,还来不及作出有效的反应,一个正确的信息又来了,就可及时防止错误动作的产生。另外,各类数据锁存器尽可能和CPU安装在同一电路板上,使传输线上传送的都是锁存好的电位控制信号,对于重要的输出设备,最好建立检测通道,CPU可以检测通道来确定输出结果的正确性。
4.4.3、指令冗余技术:
当CPU受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。当程序弹飞到某一字节指令上时,便自动纳入正轨。当弹飞到某一双字节指令上时,有可能落到其操作数上,从而继续出错。当程序弹飞到三字节指令上时,因它有两个操作数,继续出错的机会就更大。因此,我们应多采用单字节指令(NOP)或将单字节指令重复书写,这便是指令冗余。指令冗余无疑会降低系统的效率,但在绝大多数情况下,CPU还不至于忙到不能多执行几条指令的程度,故这种方法还是被广泛采用。
在一些对程序流向起决定作用的指令之前插入两条NOP指令,以保证弹飞的程序迅速纳入正确轨道。在某些对系统工作状态重要的指令前也可插入两条NOP指令,以保证正确执行。指令冗余技术可以减少程序弹飞的次数,使其很快进入程序轨道,但这并不能保证在失控期间不干坏事,更不能保证程序纳入正常轨道后就太平无事了,解决这个问题必须采用软件容错技术。
4.4.4﹑软件陷阱技术:
指令冗余使弹飞的程序安定下来是有条件的。首先,弹飞的程序必须落到程序区;其次,必须执行到冗余指令。所谓软件陷阱,就是一套引导指令,强行将捕获的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。如果我们把这段程序的入口标号记为 ERR 的话,软件陷阱即为一条无条件转移指令,为了加强其捕捉效果,一般还在它前面加两条 NOP 指令,因此真正的软件陷阱由3条指令构成:
软件陷阱安排在以下三种地方:
(1)未使用的中断向量区。
(2)未使用的大片ROM空间
(3)表格
4.4.5、程序区
由于软件陷阱都安排在正常程序执行不到的地方,故不影响程序执行效率,在当前EPROM容量不成问题的条件下,还是多多益善。
4.5 “看门狗”技术
PC受到干扰而失控,引起程序乱飞,也可能使程序陷入“死循环” 。指令技术、软件陷阱技术不能使失控的程序摆脱“死循环”的困境,这时系统完全瘫痪。如果操作者在场,就可以按下人工复位安钮,强制系统复位。但操作者不能一直监视着系统,也往往是在引起不良后果之后才进行人工复位。为使程序脱离“死循环”,通常采用“看门狗技术”。“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,使系统运行纳入正规。
“看门狗”技术可由硬件实现,可由软件实现,也可由两者结合实现。本系统采用硬件“看门狗”电路。
实现硬件“看门狗”电路方案较多,目前采用较多的方案有以下几种:
1.采用微处理器监控器;
2.采用单稳态电路来实现“看门狗”,单稳定电路可采用74LS123;
3.采用内带震荡器的记数芯片。
本设计采用第三种方案实现“看门狗”电路,下面就对该方案作以介绍。
4.5.1基本原理
CD4060 是带震荡器的14位计数器,由该芯片构成的看门狗电路如图4.2看门狗电路图所示。
4060记数频率由RT和CT决定。设实际的程序所需工作周期为T,分频器记满时间为T’,当T’>T 且系统正常工作时,程序每隔T对4060进行扫描一次,分频且永无记满输出信号。如系统工作不正常(如程序跑飞、死循环等),程序对4060发不出扫描信号,分频器记满输出一脉冲号使CPU复位。
4.5.2参数选择
4060的振荡频率f由 RT 、CT决定。Rs用于改善振荡器的稳定性,Rs 要大于RT。一般取Rs=10RT,且RT>1kΩ,CT≥100pF。如果Rs=450Ω,RT=45Ω,CT=1uF,则f=10HZ。4060的振荡频率和Qi(i=6,7,8,9,10,12,13,14)的选择要根据情况确定。
4.5.3几个原则
看门狗电路必须由硬件逻辑组成,不宜由可编程计数器充当,因为CPU失控后,可能会修改可编程器件参数,使看门狗失效。
4060的RST线上阻容组成的微分电路很重要,因为扫描输入信号是CPU产生的正脉冲,若此信号变“1”后,由于干扰,程序乱飞,微分电路只能让上跳沿通过,不会封死4060,看门狗仍能计数起作用。若没有微分电路,扫描输入信号上的“1”状态封死4060,使之不能记数,看门狗不起作用。
<< 上一页 [11] [12] 下一页
单片机智能小车控制系统(原理图+设计方案) 第11页下载如图片无法显示或论文不完整,请联系qq752018766