APP下载

利用单片机的等待方式实现抗干扰

2009-09-18刘美星

新媒体研究 2009年11期
关键词:子程序中断功耗

刘美星

[摘要]CHMOS和CMOS单片机属于低功耗元件,它们都具有等待方式和掉电方式。两种节电方式均可通过软件来选择运行,在这两种节电运行方式下,可大大降低单片机的功耗。使用单片机的等待方式,不仅可降低其功耗,还可用于增强其抗干扰能力。以80C31单片机为例说明使用其等待方式实现其抗干扰的原理及技术。

[关键词]单片机等待方式抗干扰

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0610023-01

一、80C31的等待工作方式

80C31单片机的等待方式是通过对其内部PCON(电源控制寄存器)中的IDL(等待方式位)进行编程来实现的。当IDL=1时,80C31进入等待工作方式,此时,送往CPU的时钟信号被封锁,CPU进入等待状态,其内部的SP、PC、PSW、ACC等寄存器以及各I/O口引脚的状态被完整地保留下来,CPU就像在睡眠一样,可称之为进入睡眠状态。此时,内部时钟信号仍继续供给中断系统、定时/计数器和串行口,它们仍可工作。退出睡眠状态的方法有中断退出和硬件复位退出两种。由于在睡眠状态时,中断系统仍可工作,因此,任何允许中断请求变为有效时,均使硬件对IDL位消零,从而退出睡眠状态,并开始执行中断服务程序,中断返回后,下一条要执行的指令正是原先置等待工作方式指令后的那条指令。

二、CPU抗干扰技术

微机应用系统的抗干扰设计涉及到许多方面。此处只讨论CPU本身的抗干扰方法。在大多数情况下,干扰是通过三总线而作用到CPU上的。当CPU受到干扰时,将不能按正常状态执行程序,从而引起混乱。人们研究和采用人工复位,掉电保护、指令冗余、软件陷阱、程序运行监视系统以及系统恢复等技术来实现CPU的抗干扰。根据上面对80C31 CPU等待工作方式的原理说明,当CPU进入睡眠状态时,不会到系统三总线上出现的干扰做出反应,因此可大大降低CPU对干扰的敏感程度,从而增强CPU的抗干扰能力。我们可将其称为CPU的睡眠抗干扰。

三、80C31CPU的睡眠抗干扰技术

通过对80C31CPUR入和退出睡眠状态过程的分析,可采用下面两种方法实现睡眠抗干扰。

方法一:让CPU在没有正经工作时就睡觉,有活干时由中断系统唤醒它,干完活后接着睡觉。

对大多数单片机应用系统,CPU并非一直忙于干正经事情,很多情况下是在执行一些踏步等待指令或循环检查程序,此时CPU虽未于什么重要工作,但却是清醒的,很容易受干扰。如果安排其在没有正经工作时就睡觉,有活干时由中断系统唤醒它,干完活后接着睡觉,就可使其受干扰的威胁大大降低,并可降低其功耗。按照这种思想,设计软件时,可在主程序完成各种自检和初始化工作以后,用下列两条指令取代循环踏步指令:

LOOP:ORL PCON,#OIH

SJMP LOOP

把CPU要做的所有工作都安排在中断服务子程序中完成,把系统的监控程序放在定时中断子程序中。主程序在执行ORL PCON,#OIH后,CPU便进入睡眠状态,此时程序计数器PC中的地址指向下一条指令SJMP LOOP。当需要CPU执行任务时,就通过中断系统将CPU唤醒,CPU响应中断,将PC的值压入堆栈,然后执行中断子程序本身,完成任务以后,执行一条开中断指令,确保CPU在睡眠之后仍能被唤醒,最后执行中断返回指令,CPU将执行主程序中的SJMP LOOP指令,又转回到ORL PCON,#OIH这条指令上,执行完这条指令后,CPU便再次进入睡眠状态,如此周而复始。应将可能引起强烈干扰的I/O操作指令放在CPU进入睡眠状态前执行,即放在中断子程序的尾部。为确保CPU不过早被唤醒,以躲过强烈干扰的高峰,可临时关闭一些次要的中断,仅保留一个内部定时中断,定时尽可能长些,并作好标记。当下次定时中断响应后,根据标记,恢复系统的正常中断设置方式。

这种方法因CPU大部分时间处于睡眠状态,因此抗干扰性好,且可大大降低CPU的功耗,但可能涉及的中断类型多,需要多个中断源,挖掘较复杂。

方法二:使CPU平常处于正常工作状态,当执行了有可能引起较强烈干扰的指令后(例如,在一些大功率微机挖掘系统中,大电流和高电压设备的投入与切除都是由执行指令来完成的,将会引起强烈干扰)使其进入睡眠状态,保持睡眠一段时间,以避过干扰高峰。在进入睡眠状态前,设置好定时中断,在避过干扰高峰后,由定时中断将CPU唤醒,进入正常工作状态。

此种方法涉及的中断可少一些,控制较简单,但因CPU大部分时间处于正常工作状态,因此其抗干扰性和降低功耗的效果比前一种方法差。

利用低功耗单片机的等待工作方式,不仅可以降低CPU的功耗,还可增强CPU的抗干扰能力。本文论述的两种方法,虽各有优缺点,但只要合理使用,可使CPU的抗干扰能力大为增强,在设计单片机应用系统时可参考使用。

猜你喜欢

子程序中断功耗
TMS320F28335外部中断分析与研究
雪后林鸟
应用子程序车削梯形螺纹方法
跟踪导练(二)(5)
在数控车床上加工软轴零件
数控车床加工螺纹编程方法探讨
揭开GPU功耗的面纱
新闻浮世绘
环保之功,从主板做起
μCOS-Ⅱ实时操作系统在μ’nSPTM中的低功耗研究