浅谈单片机的低功耗设计
摘 要:单片机的低功耗设计是对当今社会节能潮流的迎合,能够创造出巨大的经济与社会意义,对于单片机的低功耗的研究越来越引起人们的关注。当前与发达国家相比,国内在这方面的研究,尚处于较低的层面。本文通过理论与实践的结合,对单片机的低功耗设计进行了简单的探讨。
关键词:单片机;低功耗;设计
伴随电子科学技术日新月异的发展,在人们日常生产生活中,基于单片机系统设计的电子产品的应用日趋广泛,这对单片机系统的能耗功率设计提出了更高的要求,对单片机的低功耗设计这一课题的研究也越来越引起人们的重视,这其中有其必然性。
首先,单片机的低功耗设计迎合了现代社会节能潮流的要求;其次,低功耗设计在大幅提高电子产品使用寿命的同时,能够明显延长电子产品持续使用时间,降低产品维护所产生的费用,对产品竞争力的提高也有很大的帮助;此外,对于一些使用电池的电子产品,单片机的低功耗设计还有助于延长电池使用寿命,减少废旧电池的产生,对自然环境的保护具有积极的作用。
由此能够看出,单片机的低功耗设计既能够创造很高的经济效益,还具有较大的社会效益。发达国家对于单片机低功耗设计的研究起步较早,取得了不少研究成果,而国内对单片机低功耗设计的研究起步较晚,但近几年来,对于单片机的低功耗设计逐渐引起人们的重视与关注。现阶段,我国对于单片机系统低功耗设计的水平还较低,且大多还停留在对片面、局部的低功耗设计层面的追求上,单片机系统真正完整全面的低功耗设计理论还尚未得到有效的推广与应用,单片机的低功耗设计仍需不断的探索研究。
一、低功耗单片机应用系统的概念
低功耗单片机应用系统指的是,以应用系统功耗的降低来作为性能评价指标的单片机系统。由于这类系统大多应用于一些较为特殊的场合,因此多具有以下特点:
首先,对于携带方便性的要求使得这类系统多具有重量轻、体积小、便于携带的特点;其次,这类应用系统功耗的降低往往采用降低电路功耗的设计的方法,在采用低功耗器件与芯片,满足系统运行各种性能指标的基础之上,通过硬件电路与软件设计降低功耗;由于这类系统大多在交流供电的应用方面存在一些问题困难,各种电池、电瓶就成此类系统进行供电的主要手段;此外,低功耗的单片机应用系统采用RS-232C串口行通信,采用高抗干扰、低功耗的CMOS集成电路,利用系统中的RAM、E2PROM等半导体存储器进行数据的存储,通过串行接口进行数据的传输。
二、低功耗设计的内容与依据
(一)降低单片机应用系统功耗的方法
合理运用电子器件的掉电、睡眠以及中断唤醒来实现电子产品的低功耗运行,睡眠与掉电模式通过CPU时钟与系统时钟的关断达到降低功耗的目的;对功耗较大任务进行合理有效的集中,以降低有效功耗的时间;采用快速进入掉电模式或者睡眠模式避免系统的无谓等待;在不影响系统运行的前提下降低包括总线速度、采集速率以及系统时钟的系统速率。
(二)单片机应用系统本质低功率设计
单片机本质低功耗设计主要体现在对器件的选择以及电路的设计两个方面。在器件选择上,在遵循频率宜慢不宜快、系统宜静不宜动、电压宜低不宜高的“三相宜”原则的基础上,尽量实现系统硬件设计的全CMOS化。
对在CMOS器件的总功耗中,较之静态功耗,动态功耗多所占比重明显较大,而对总功耗产生影响的因素主要为电源电压与工作频率,因此对于CMOS器件功耗控制的主要方法为:电源电压控制、时钟控制以及静态化控制,在电路的设计方面,多采用低功耗的唤醒电路设计,电源管理电路设计以及外围控制接口设计三类方式;此外,在电子芯片选择上还应注重采用集成度高的芯片,以代替单一功能集成度较低的芯片。电路的抗干扰能力,与供电电压有关,因此,在采取较低供电电压以降低功耗时,应加强电路的屏蔽与抗干扰能力设计。
三、单片机应用系统低功耗的硬件设计
(一)选择合适的MCU及待机模式
选择低功耗的MCU对于降低单片机的功耗具有重要作用。假如使用51系列的单片机进行控制,MCU主要分为两种,一采用CMOS管,这类功耗较小,工作电流大约有16mA(Vcc-5V);还有一种采用的是HMOS管,功耗较大。若要求更低的功耗,则可采用其他的低电压、低电流型号。选择好MCU后,要根据单片机应用系统所应用的具体场合,从多种待机工作模式中选择合适的模式,最大可能的使MCU处于低功耗状态。
(二)合理降低MCU的系统电压与工作频率
开关转换时对下一级输入端电容进行的充放电,是CMOS电路工作电流消耗的主要来源,如果MCU的工作频率降低了,耗电也会相应降低,MCU工作频率不同时工作耗电的差异很大。此外,低电压供电能够使系统的工作电流大为降低,降低单片机的供电电压也能够有效的降低功耗。因此选择合适的系统电压,降低MCU工作频率对于降低功耗具有积极意义。
(三)实现扩展存储器件片选信号的充分运用
使用扩展存储器时,片选有效时所产生的功耗是无效时所产生功耗的100倍左右,因此,要尽可能实现扩展存储器件片选信号的充分运用,对芯片进行有效的控制,以确保存储器只有在必要的时候才选通工作,同时在满足其他要求,不影响系统正常运行的前提下,应最大可能的缩短扩展存储器片选脉冲的宽度。
(四)合理处理I/O口
对于一些不用的I/O引脚要正确处理,不能只是简单的不接。当一些不使用的I/O引脚悬空时,外界如果出现一点干扰信号就极易成为反复振荡的输入信号,带来无谓的功耗。CMOS器件功耗主要受门电路的翻转次数的影响,即使接上拉电阻,I/O引脚仍会产生微安级的电流。对于不用的引脚,最好设置成输出状态,已经为输出状态的的最好置低,而输入的要视外围的电路而定。
(五) 设置分区域电源控制电路
在进行外围电路设计时,要设置各个分区域供电的电源控制电路,外部的设备或者器件在不工作的状态下电源应及时关闭,并将与其相连的I/O口置低,以减少不必要的功耗。同时在等待状态时可以让单片机进入待机模式,以节省一些不必要的功耗。
四、单片机应用系统低功耗的软件设计
(一)合理应用“中断”方式
系统运行中,程序对中断以及查询方式使用的不同,对于应用系统功耗具有很大的区别。合理使用“中断”方式,在一定程度上能够降低系统功耗
,在“中断”方式下,系统处理器能够处于空闲状态,而在查询方式下,CPU对于I/O寄存器不停地访问,会产生许多额外的功耗。
(二)用“宏”代替“子程序”
系统程序在运行过程中,读取RAM会比Flash产生更大的功耗。因此,在CPU设计方面,对于ARM只能允许进行一次子程序的调用。当CPU进入到子程序时,由于CPU寄存器的推入、弹出会给系统带来至少两次的RAM操作。程序员在编程变长的过程中可以适当考虑通过宏定义替代子程序的调用。调用一个宏还是一个子程序在程序的写法上基本相同,可是宏能够在编译时展开,单片机系统的CPU只是单纯的按顺序进行指令操作,这就避免了对子程序的调用。虽然这会相应的带来代码量的增加,但由于当前的单片机芯片内的Flash越来越大,程序代码量的大小基本不会对工作量产生影响,用“宏”代替“子程序”将会明显降低应用系统的功耗。
(三)间歇运行I/O模块
I/O模块不用或者间歇使用时要注意及时关闭其电源。单片机应用系统通信采用的RS-232驱动时的功率较大,这就应该通过一个I/O引脚进行控制,在系统不需要通信时,及时关闭驱动。注意对I/O引脚的初始化,将不用的引脚要设置成输出或输入状态。要重点注意对一些简单封装的单片机,个别没有引出的单片机的I/O引脚的初始化。
(四)减少CPU运算量
实际操作过程中,减少CPU运算量的方法有很多,可以先将运算好的结果预先植入到Flash当中,使用时通过查询的方式去代替实时的运算,减少CPU的运算量,很多能够有效降低CPU的功耗的单片机都具备快速有效的寻址方式与查表指令,以优化一些难以避免的计算,精度达到要求就结束运算,以避免CPU“过度”的计算;尽可能使用一些短的数据类型,如尽量使用分数运算而减少浮点数运算的使用。
结束语:
总之,低功耗的单片机应用系统作为单片机系统设计的发展方向,加强和推广单片机低功率设计的研究具有重要的现实意义。通过对系统硬件、软件设计的更新,单片机应用系统在不远的将来会创造出更大的经济和社会效益。
参考文献:
[1]陈光建,贾金玲.基于单片机的I~2C总线系统设计[J].仪器仪表学报,2006,(S3)
[2]黄学功,陈荷娟.炮口感应装定引信电路低功耗设计[J].南京理工大学学报(自然科学版),2007,(05)
[3]林凌.适合初学者的89C51单片机仿真实验板(一)[J].电子制作,2006,(01)
[4]GSA低功耗论坛:统一规格加速低功耗设计[J].世界电子元器件,2008,(04)
[5]加内别克·索力堂汉.浅析单片机[J].才智,2008,(07)