用于便携式设备的低功耗MCU系统设计方法及应用
2011-04-11
1、便携式设备对处理器提出的挑战
随着电子便携式设备在全球的风行,人们对电子便携式设备的要求也越来越高,希望产品有更多的功能,如手机摄像机自动对焦与手机闪信与计步器;希望产品功耗更低,如无线设备、手持POS机和家庭医疗产品;希望产品体积更小,如运动手表;希望产品的保密性好;处理能力强,如便携式仪器和高精度运动控制;希望价格更低和开发周期短。
然而困惑的是,很多的便携式设备往往会同时要有上面的多个要求,然而现实中很难做到:同时满足高速处理、低功耗和价格?ARM高速,但是功耗而价格高;同时满足高速处理和小封装?希望封装面积小到3×3mm,又要不牺牲速度;同时满足小封装和SOC?需要ADC、SPI和12个I/O,而尺寸,最好小于5×5mm;开发周期,ARM性能完全合适,但ARM往往需要操作系统支持,开发周期长,而市场机遇稍纵即逝。
为此,本文将从为电子便携式设备开发解决上述这些难题出发,对如何设计一个低功耗的单片机系统与方法和MCU在低功耗方面的优势进行分析,并小尺寸系列单片机的应用为例作出介绍。
2、如何设计一个低功耗的单片机系统
问题提出:单片机系统的功耗是否只是由单片机的功耗决定?回答是,以单片机为核心构成的系统,其系统的总能耗是由单片机能耗及其外围电路能耗共同构成。为了降低整个系统的功耗,除了要降低单片机自身的运行功耗外,还要降低外围电路的功耗。
2.1 如何设计低功耗单片机系统?
要设计一个低功耗的单片机系统,需要从硬件和软件两方面入手。
2.11 硬件设计
*选用尽量简单的CPU内核。在选择CPU内核时切忌一味追求性能。选择的原则应 该是“够用就好”。8位机够用,就没有必要选用16位机。一般来说,单片机的运行速度越快,功耗也越大。一个复杂的CPU集成度高、功能强,但片内晶体管多,总漏电流大,即使进入STOP状态,漏电流也变得不可忽视;而简单的CPU内核不仅功耗低,成本也低。
*选用低电压供电的系统。低电压供电可以大大降低系统的工作电流。目前单片机从与TTL兼容的5V供电降低到3.3V、3V、2V乃至1.8V供电,降低单片机的供电电压可以有效降低其功耗。供电电压降低也是未来单片机发展的一个重要趋势。
*选择带有低功耗模式的系统。低功耗模式指的是系统的Idel(闲置)、Stop(停止)和Suspen(暂停)模式。处于这类模式下的单片机功耗将大大小于运行模式下的功耗。
*选择合适的时钟方案。时钟的选择对于系统功耗相当敏感,有两方面的问题要注意:
其一、系统总线频率应当尽量低。单片机内部的总电流消耗分为:运行电流和漏电流。单片机集成度越高,环境温度越高,漏电流也越大。单片机的运行电流几乎和其时钟频率成正比。降低时钟频率,就可以有效降低单片机的功耗。
其二、关于时钟方案。是否使用锁相环,使用内部振荡器还是外部振荡器。现代单片机普遍使用锁相环技术,使单片机的时钟频率可以由程序控制。单片机使用外部较低的振荡器,通过软件控制,系统时钟可以在一个很宽的范围内调整,得到比较高的总线时钟。使用锁相环会带来额外的功耗。单就时钟方案来讲,使用外部晶振且不使用锁相环是功率消耗最小的一种。有的单片机带有内部时钟,也可使用外部时钟。这可以根据实际系统的需要使用双时钟:一个高速时钟和一个低速时钟。处理事件时使用高速时钟,空闲时使用低速时钟。这钟双时钟系统可以有效地降低功耗。
2.12 应用软件设计
应用软件设计对于一个低功耗系统的重要性常常被人们忽略。一个重要的原因是,软件上的缺陷并不像硬件那样容易发现,同时也没有一个严格的标准来判断一个软件的低功耗特性。尽管如此,设计者如果能尽量将应用的低功耗特性反映在软件中,就可以避免那些“看不见”的功耗损失。
*用“中断”代替“查询”。在没有要求低功耗的场合,程序使用中断方式还是查询方式并不重要。但在要求低功耗场合,这两种方式相差甚远。使用中断方式,CPU可以什么都不做,甚至可以进入等待模式或停止模式;而查询方式下,CPU必须不停地访问I/0寄存器,这会带来很多额外的功耗。
*用“宏”代替“子程序”。子程序调用的入栈出栈操作,要对RAM进行两次操作,会带来更大的功耗。宏在编译时展开,CPU按顺序执行指令。使用宏,会增加程序的代码量,但对不在乎程序代码量大的应用,使用宏无疑会降低系统的功耗。
*尽量减少CPU的运算量。减少CPU的运算工作量,可以有效地降低CPU的功耗。减少CPU运算的工作可以从很多方面入手:其一,用查表的方法替代实时的计算。其二,不可避免的实时计算,算到精度够了就结束,避免“过度”的计算。其三,尽量使用短的数据类型,例如,尽量使用字符型的8位数据替代16位的整型数据,尽量使用分数运算而避免浮点数运算等。其四,让I/O模块间歇运行,即不用的I/O模块或间歇使用的UO模块要及时关掉,以节省电能;不用的I/O引脚要设置成输出或设置成输入,用上拉电阻拉高。
3、单片机(MCU)在低功耗方面的优势。
当今面临的问题是,使用者或市场均对单片机(MCU)低功耗有严酷的要求,那么将如何来设计MCU来满足市场?应该说,当今众多厂商的MCU均有在低功耗面的优势,值此仅以Silabs MCU为例作分析说明MCU在低功耗方面的优势。
*供电电压低。MCU供电电压为2.0~5.25V。供电电压低可以有效降低整个单片机系统的功耗。
*有多种低功耗模式。MCU的低功耗模式有Idle模式和Stop模式。为了更进一步地降低MCU的功耗,提高市场竞争力,从2006年下半年己推出的MCU都将带有Suspend模式。这种模式下的功耗为纳安级。
*有多种时钟方案供选择。MCU内置振荡器有高速震荡模式和低速震荡模式可供选择。每种模式下的频率又有多种选择。而且还可以外接振荡器。更重要的是,在MCU运行中,这些时钟模式可以实时切换。这很方便客户进行低功耗控制。例如:在处理数据时,系统运行在高速状态;空闲时运行在低速状态。
*高速实时的中断响应。MCU响应中断的时间非常快,一般只需要5个系统时钟周期。中断响应速度快,CPU花费在等待方面的时间少,这可以节省不少的等待功耗。
*灵活的I/O设置。MCU的I/0口资源丰富,配置灵活。有三种配置方式:漏极开路、推拉输出和弱上拉方式。用户可以根据实际需要通过相关寄存器的设置来禁止或使能这些方式。其中将端口配置成漏极开路方式是最省电的方式。另外,MCU片上没有用到的其他外设可以通过软件来关闭。总之,根据项目的要求,灵活运用MCU的各种低功耗特性,通过软件的控制,就可以很好地实现低功耗的要求。
使用每MIPS功耗来衡量MCU的低功耗性能是相对比较准确。比如执行一个需要10K条指令的任务,甲MCU的工作电流为3mA,速度为10MIPS,则甲MCU需要工作lmS完成该任务,消耗3mA*1ms*Vcc,然后甲MCU就可以进入低功耗模式了。而乙MCU的工作电流为1mA,速度为2MIPS,则乙MCU需要工作5mS完成,这样乙MCU完成该任务的消耗为1mA*5mS*Vcc。电流大但是速度快的MCU可能更省电!
4、MCU在低功耗方面的设计方法怎样?
一般来说,MCU的运行的速度越高,供电电压越高,功耗也就越高。要降低单片机系统的功耗,就要降低单片机系统的供电电压,降低MCU运行的频率。
举例分析说明:客户要做一个无线计时类产品,使用电池做供电电源,要求平均功耗不超过200uA。该产品是间歇工作的:当收到数据时激活,快速处理数据;当空闲时进入休眠状态,来降低功耗,己有不少制造商可达150μA以满兰客户要求。例如,C8051F333型MCU。
4.1 看一下C8051F333的电气参数就知道了
*正常模式,CPU从Flash取指令。
IDD(当Vdd=3.6v F="25MHz时")为10.7mA-11.7mA;IDD (当Vdd=3.0v F="25MHz时")为7.mA-8.3mA;IDD (当Vdd=3.6v F="1MHz时")为0.38mA;IDD (当Vdd=3.0v F="80Hz时")为31μA。
*Idel模式,CPU停止工作。
IDD(当Vdd=3.6v F="25MHz时")为4.mA-5.2mA;IDD (当Vdd=3.0v F="25MHz时")为3.8mA-4.1mA;IDD (当Vdd=3.6v F="1MHZ时")为0.2mA;IDD (当Vdd=3.0v F="80Hz时")为16μA。
光看上面两个模式的数据,肯定不行。因为要满足系统的运行速度,又要满足低功耗≥1MHZ的频率,则功耗都要超过客户的要求。而正确答案是:在不降低MCU运行速度(MCU处理数据时的运行频率是24.5MHZ)的情况下,客户使用C8051F333成功实现了低功耗的要求:比150μA还低, 真可谓鱼和熊掌兼得。 ;
4.2 它是怎样实现的?
见图1所示。使用了内外两种晶振。工作时使用内部高速晶振24.5MH2,空闲时切换到外部低速晶振32.768KH2,并且进入Idle模式。并且把没有用到的外设全部关闭,就这么简单。由此看出,功耗是一个系统的问题,单片机系统的功耗是由MCU和其外围电路的功耗共同决定的,低功耗是无数个细节省出来的。
5、小尺寸单片机在便携式设备中的应用
面对如今便携式设备提出的挑战单片机,如何应对挑战?而用小尺寸单片机是在一种理想的举措应对,值此以C8051F小尺寸单片机为例,分析其在便携式设备中的应用。为此先介绍C8151F小尺寸单片机应用特征。
5.1 C8051F小尺寸单片机应用特征
概括为:小封装,低功耗, 宽电压工作范围(2.7V-3.6V), 高速、高集成度与高保密性。
5.2 应用
以TFT屏背光管理、闪信应用为例说明。
5.21 C8051F30X在彩色TFT屏背光中的应用
随着便携式电子设备的普及,人们对其彩色显示屏的要求也越来越高,LED正在被逐步应用于LCD的背光。传统的LED背光是采用白色LED作为背光源,有以下的缺点:一般背光需要多个白色LED,但白色LED有个体差异,一致性不好,容易导致彩色显示屏色彩不均匀,失真等现象;白色LED容易老化,使彩色显示屏的亮度降低。产品如果有这些问题,容易给消费者留下不好的印象,消弱产品的竞争力。
那应该如何去解决这些问题?而采用C8051F30x的彩色TFT屏背光方案就很好地解决了这些问题,其功能框图(见图2所示)如下:
*技术特征
背光采用红、绿、蓝三色LED,发出的光组成白光。因为每种颜色的LED采用串联连接方式,所以使用了AMS高性能的LED Driver AS3691;通过Avago的CoIor Sensor芯片HDJD-S722-QR999,检测R、G和B三色的亮度;C8051F30x根据HOJD-S722-QR999送过来的信号,产生相应的PWM来控制R、G和B三色的亮度,使白光的效果始终在最佳状;同时C8051F30x通过一个 接口与主CPU通讯,接收主CPU对亮度调整的控制命令。
*对MCU的要求
屏的尺寸现在都很紧凑,同时厚度很薄,对MCU的尺寸要求很高,C8051F30x尺寸只有3×3mm,厚度只有0.9mm;要求具备PWM输出,多路输入的ADC和通讯接口;C8051F30x支持3个PWM输出,多路复用的AD输入,支持UART和 通讯接口,3×3mm的封装上可以提供8个用户I/O口。
*方案特点
很好地解决了传统的白光LED个体差异问题,使彩色显示屏的色彩始终处在均匀状态;很好地解决了白光LED老化带来的亮度降低问题;C8051F30X、AS3691和HDJD-S722-QR999封装小,容易和TFT显示屏做成一个模块;C8051F30X有Idee和Stop两种低功耗模式,特别是Stop模式,其功耗小于0.1uA。当系统进入Stop模式时,可以使外围电路关闭,进入省电状态,当需要显示时,由主控制器唤醒。
5.22 C8051F313在手机闪信和计步器中的应用
随着手机的普及,人们对手机的功能要求也越来越高。那些具有彰显个性的手机越来越深受人们的喜爱,特别是年轻一族的喜爱;手机功能的增多,意味着手机体积的增大和功耗的增加,这与人们对手机小巧和待机时间长的要求又成了矛盾;要解决这些矛盾,手机设计者不得不追求元器件的小型化、低功耗和高性能;MCUC8051F313在手机闪信和计步器中的应用就是一个典型例子。图3为C8051F313在手机闪信和计步器功能应用示意框图。
*关于计步器
计步器原理:人在行走或者跑步的加速度与时间轴大致成为一个正弦波;利用加速度,可以计算走了多少步,还可根据步幅进而估算所走的距离。
计步器功能的实现:采用MCUC8051F313和MEMS IC加速度传感器MAX6500;C8051F313采样MAX6500两路加速度传感器的输入,分析加速度,计算出走了多少步;根据步行者的步幅,还可以估算出所走的距离。
*关于手机闪信
手机闪信原理:利用手机上的闪灯,在光线较暗的环境下,通过快速左右摇动手机,利用人类视网膜延时现象,造成视觉残像,从而形成连续的光影信号,令受信者视觉产生连续信息。
手机闪信功能的实现:采用MCUC8051F313和MEMSIC加速度传感器MAX6500;C8051F313接收要显示的信息,并驱动相应的LED;MAX6500检测加速度在X轴和Y轴的分量变化(力的大小和方向),并送给C8051F313;C8051F313分析MAX6500检测到的加速度信号,对要显示的字符方向实现自动翻转。
*手机闪信和计步器对MCU的要求
体积要求苛刻:手机对MCU提出的要求极其苛刻,要在尽可能小的尺寸上提供最多的1/0口;C8051F313在5×5mm的封装上提供了25个I/O和模拟输入16个I/O口用来驱动16个LED;2个模拟输入用来采样加速度传感器输出;1个标准2线的控制器用来与Baseband CPU进行通讯。
严格的低功耗设计:在STOP模式下功耗小于1μA;良好的I/O口设计确保待机时I/O对外阻抗很高,在兆欧级以上,有效切断I/O口待机功耗。
完善的大批量生产要求:一旦生产,编程数量将非常巨大,具有完善的量产编程方案,快速的手持编程器,无需PC参与,无需操作员熟悉编程方法,具有boot程序,在手机开机时自动加载应用程序,通过C2编程接口进行编程。又具有良好的保密功能。