单片机软件控制系统抗干扰设计分析

2017-12-27 00:28杜卫平新疆轻工职业技术学院
数码世界 2017年8期
关键词:看门狗中断陷阱

杜卫平 新疆轻工职业技术学院

单片机软件控制系统抗干扰设计分析

杜卫平 新疆轻工职业技术学院

不同的单片机系统都是完整而独立的,有自己的特点和要求。对于硬件和软件抗干扰设计上,都体现出自己的特色。本论文针对无线电射频干扰展开探讨,同时也对交流电路工频干扰等主要的干扰源和干扰方式进行研究,以硬件抗干扰措施为基础,软件抗干扰技术起到补充作用。关于软件抗干扰所采取的措施,先要对测量对象有较全面的了解,并对干扰因素进行探讨,在此基础上还要考虑到系统的特殊性,制计出有效的抗干扰方案。

单片机 控制系统 干扰设计

1 干扰对单片机应用系统的影响

1.1 测量数据误差加大

如果干扰因素侵入到单片机系统之中,并且进入到测量单元模拟信号输入通道,与测量信息发生叠加,导致数据采集的难度加大,出现各种误差,尤其是在对微弱信号进行检测时,如果干扰信号过强,而测量信号过弱,则会导致测量被淹没的情况发生。

1.2 控制系统失灵

单片机输出的控制信号存在这种现象,通常情况下会对处于某些条件的情况下,对于输入信号以及对信号的逻辑入理结果过于依赖。如果输入状态信号被干扰,有虚假状态的信息介入其中,则会出现输出控制误差加大的情况,严重时会导致控制失灵。

1.3 影响单片机RAM存储器和E2PROM的问题

从单片机的具体运作情况展开研究,在程序存储器EPROM或FLASH中,程序和表格、数据等都存于其中,采取这种模式可以使数据的独立性得以保障,不受其它因素的干扰。主要问题集中片内RAM、外扩RAM、E2PROM中所需数据,容易受到外界干扰而发生变化。

1.4 程序运行失常

如果外界的干扰过强,会导致机器频繁复位,对程序正常运行产生不利影响。如果外界干扰较为严重,导致单片机程序计数器PC值被改变,而且PC数值改变具有随机性,程序会对一些无意义的指令做出反应,因此进入到死循环状态,程序进入混乱状态。

2 单片机软件系统抗干扰设计分析

2.1 指令冗余

从CPU取指令的过程来看,需要先取操作码,然后再提取操作数,同时还要把单字节指令插入到程序关键之处,对于有效单字节指令重写,称之为指令冗余。在一般情况下,对于双字节指令和三字节指令要进行插入操作,在指令后插入两字节或更多的NOP指令。NOP指令属于窄操作,由于NOP的存在,可以避免后面指令被错误执行的情况发生,为程序步入正规奠定基础。另外,一些指令对系统流向产生影响,在具体操作时在此类指令之后可以插入NOP指令,数量以二条为宜,可以使跑飞程序被纳入正轨之中,使此类指令得到更好的执行。指令冗余的主要功能在于使CPO正确对待操作数,避免出现把操作数当做操作码,导致执行错误的情况发生,但是却无法改变错误,为了使程序错误执行方向的问题得到纠正,需要采用下面的技术。

2.2 设计软件“陷阱”

在通常情况下,程序存储器存在未使用的EPROM空间,没有填入窄操作指令NOP,最后再填入一条跳转指令,可以跳入到跑飞的处理程序之中,或者选择把LJMP 0000H指令直接填入,如果跑飞的程序出现在此区域,则会得到调整,虽然会执行一段空操作,但这种错误不会持续很久,最后会转入正轨。如果EPROM具有较大的空间,大部分没有使用,在操作时可以采取均匀填入的形式,把几条空操作指令置于其中,并纳入跳转指令。即形成“软件陷阱”。

经过研究可以确定软件陷阱结构如下:

NOP

NOP

LJMP FLY

其中FLY作为跑冰处理的子程序承担着重要职责,如果程序处于正常运行状态,则软件陷阱无需执行,但是如果程序发生跑飞,同时还要落入陷阱之内,软件陷阱则会进入工作状态,使跑飞的程序发生跳转,重新进入正常轨道。如果程序跑飞后并未落入陷阱之中,程序会执行一段错误操作,然后遇到软件陷阱,并被转入到正轨中来。在程序存储器的空白区域设置软件陷阱,还要把陷阱设置在程序结尾处。如果数据表较大,为了保障正常运行,在数据中间位置也要设置软件陷阱,即使程序跑飞到数据区,也会被重新纳入正轨。如果程序有较大的存储空间,在两个子程序之间设置软件陷阱可以取得较好效果。遇到使用中断后,受干扰的影响而开放的情况,如果所对应的中断服务程序中有软件陷阱的存在,可以及时处理错误的中断。关于软件陷阱的数量问题,要根据干扰的情况而定,还要充分考虑到存储器的容量,如果软件陷阱太少,则难以实现有效的跑飞拦截,但如果陷阱设置太多,导致大量的程序存储空间被占用,同样不利于系统的正常运转。

2.3 软件“看门狗”技术

程序发生跑飞的情况比较普遍,在进行错误操作之后,会进入到“死循环”状态,发生死机。而解决此问题的可以采用“软件看门狗”的技术,可以使程序恢复正常。软件看门狗技术的原理并不复杂,即对程序的运行时间进行检测,如果发现程序循环时间过长,不受最大循环运行时间的控制,即可做出判断,即程序进入到“死循环”状态,需要采取有效的处理措施。从实际操作来看,采用定时中断服务程序和定时检查主程序的运行情况的方式。在工业实践中,如果干扰过于严重,会使控制字被中断,中断被关闭,看门狗也随之失去功效。在这种情况下采用环形中断监视系统效果较为理想。

“看门狗”的抗干扰性能较强,结构是环形的,使系统的可靠性得以提升。软件“看门狗”正常运行需要有定时器装置,在实际操作中,可以看到在很多控制程序中都需要定时器,由此可知定时器属于紧俏资源,由于这个原因导致使软件“看门狗”的使用受限。为了解决此问题,软件可以与其它程序共同使用一个定时器,定时功能与“看门狗”功能实现兼顾。

2.4 检查RAM区标志数据,发现并处理严重干扰

这是一种有效的方式,在RAM区中选择几个固定单元,并设置其为固定的数据,即程序处于正常运转状态,单元的内容则保持不变。如果程序发生跑飞,或者受到各种因素的干扰,则会导致RAM中的数据出现变化,说明单片机已处于干扰之下,无法正常运行。在程序运行时,我们要对RAM单元的内容进行检查,如果发现数据出现变化,要立即采取措施,执行LJMP 0000 H语句,完成单片机的复位操作。

2.5 刷新输出端口

如果单片机系统处于严重的干扰状态之下,甚至对输出端口的状态产生影响,在程序操作时,以相关程序模块运算结果对输出端口进行刷新操作,可以解决干扰的影响,使输出端口恢复正常。

2.6 进行多次输入采样

如果干扰过于强烈,会对单片机的输入信号造成不利影响,导致输入信号瞬间采样出现误差,或者出现误读的情况,为了把干扰的不利影响降到最低,可以进行重新采样,利用加权平均的方法解决该问题。

电子技术和微型计算机发展迅速,对微型计算机控制技术的发展起到积极的推动作用,在更多的领域得到广泛应用。尤其是中小规模的单片机控制系统具有较高的实用价值,智能机电一体化产品在工业生产和日常生活中充分发挥作用,应用更加广泛。要注意的是在进行单片机控制系统的设计和开发时,要提升设备自动化程度,使之更具智能性,但同时也要把控制系统的稳定性放在重要位置,使控制系统的优越性得以发挥。

[1]陈小波,秦付军.单片机控制系统抗干扰设计研究[J].军民两用技术与产品,2016(10)

[2]王雅雪.单片机控制系统抗干扰设计研究[J].数字化用户,2013(15)

猜你喜欢
看门狗中断陷阱
基于时钟芯片的硬件看门狗电路设计与实现
把他叫醒
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)
陷阱
把它叫醒
把它叫醒
陷阱2