在控制终端系统设计中,当系统要求整体功耗偏低时,C8051F系列单片机是一个最佳的选择。它们拥有灵活的时钟硬件,使系统能够方便地在高效运作模式与低功耗模式问进行转换,智能的电源管理模式能够在正常工作及待机状态自由切换,从而降低整个系统的能量损耗;当工作频率低于10kHz时,时钟丢失检测器(MCD)能够引发系统产生复位,确保系统工作的安全可靠。
1 C8051F各部分组件的功耗
当一个系统对功耗要求严格时,可以在硬件电路建立前首先粗略计算一下整个系统所需的功耗。由于C8051F系列单片机为数模混合SOC系统,能够实现整个设计的大部分功能,因此整个设计系统的功耗将主要集中在C805IF系列单片机的能量消耗上。
整个单片机系统的功耗应该由4部分组成:振荡器功耗、数字设备功耗、模拟外设功耗及I/O端口功耗。振荡器功耗包括内部振荡器的功耗以及外部振荡器功耗。数字设备能量消耗主要由CPU的工作模式、工作电压及系统时钟频率决定。温度与数字外围设备对数字设备的功耗影响很小。模拟外围设备功耗主要包含ADC、电压基准VREF、温度传感器、偏压发生器及内部振荡器。比较器也有少量的能量损耗。
1.1 振荡器功耗分析
振荡器(英文:oscillator)是用来产生重复电子讯号(通常是正弦波或方波)的电子元件。其构成的电路叫振荡电路。能将直流电转换为具有一定频率交流电信号输出的电子电路或装置。种类很多,按振荡激励方式可分为自激振荡器、他激振荡器;按电路结构可分为阻容振荡器、电感电容振荡器、晶体振荡器、音叉振荡器等;按输出波形可分为正弦波、方波、锯齿波等振荡器。广泛用于电子工业、医疗、科学研究等方面。
外部振荡器具有很高的可配置性,为系统设计者提供了多种选择。时基信号可以从外部CMOS电平时钟源、晶振或陶瓷谐振器、RC组合电路或外部电容获得,每一种方法都有各自的优势。由于振荡器可以灵巧地在各种方式中转换,因此可以通过改变振荡器来降低功耗。对外部振荡器来说,外部CMOS时钟、电容和RC网络都能够提供较低的振荡频率。
(1)外部CMOS时钟
当工作于外部振荡器CMOS时钟模式时,外部振荡器驱动被关闭。电路功耗电流微小可以近似忽略。XTAL2输出的时基信号可以用作CPU、计时器、PCA或其他外围设备的时钟源。注意,即使在某一端口应用了高频信号,功耗仍只有少量的增加。
(2)外部晶振
外部晶振提供了最精确的时间基准,但随之而来的功耗在同一频率下也更高。外部晶振依赖于晶振频率和振荡器驱动电路(XFCN)。
晶振全称为晶体振荡器,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。但是娱乐级声卡为了降低成本,通常都采用SRC将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。 晶振一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。这种晶体有一个很重要的特性,如果给它通电,它就会产生机械振荡,反之,如果给它机械力,它又会产生电,这种特性叫机电效应。他们有一个很重要的特点,其振荡频率与他们的形状,材料,切割方向等密切相关。由于石英晶体化学性能非常稳定,热膨胀系数非常小,其振荡频率也非常稳定,由于控制几何尺寸可以做到很精密,因此,其谐振频率也很准确。根据石英晶体的机电效应,我们可以把它等效为一个电磁振荡回路,即谐振回路。他们的机电效应是机-电-机-电的不断转换,由电感和电容组成的谐振回路是电场-磁场的不断转换。在电路中的应用实际上是把它当作一个高Q值的电磁谐振回路。由于石英晶体的损耗非常小,即Q值非常高,做振荡器用时,可以产生非常稳定的振荡,作滤波器用,可以获得非常稳定和陡削的带通或带阻曲线。
(3)外部电容C模式
电容(或电容量, Capacitance)指的是在给定电位差下的电荷储藏量;记为C,国际单位是法拉(F)。一般来说,电荷在电场中会受力而移动,当导体之间有了介质,则阻碍了电荷移动而使得电荷累积在导体上;造成电荷的累积储存,最常见的例子就是两片平行金属板。也是电容器的俗称。
外部电容模式通过将一个电容连接到XTAL2为系统提供低功耗时钟。这是精度最差的一种时基方式,但同时也是最灵活的一种方式。只用1个电容元件就可以提供8种不同的工作频率。最高频率几乎可达最低频率的3000倍。可以通过改变在OSCXCN寄存器中的XFCN位改变其振荡的频率,并直接影响其输出的电流。外部电容方式下的时基精度主要由电容的误差和流过XTAL2的内部电流源的精度决定。
电容是指容纳电场的能力。任何静电场都是由许多个电容组成,有静电场就有电容,电容是用静电场描述的。一般认为:孤立导体与无穷远处构成电容,导体接地等效于接到无穷远处,并与大地连接成整体。
(4)外部振荡RC模式
RC模式与电容模式十分相似,区别在于外部电容方式下电容的充电电流由接到XTAL2的内部可编程电流源提供,并且在RC模式下充放电电路除了包含电容外还要通过一个外部电阻器。RC模式振荡电路的平均功耗由通过电阻器的平均电流所决定。电阻器上的压降成指数倍大小,其波形可以简化为三角波来估计平均值。
通常,设计者可以通过合理地选择时钟源达到降低功耗的目的。内部振荡器消耗数字电源电流的典型值为200μA,用于驱动外部振荡器的电流是变化的。对于一个外部振荡源(如晶振),驱动电流(由模拟电源提供)用软件通过配置外部振荡器控制寄存器OSCXCN的XFCN位来设置。在驱动电流较大时用户町以使用内部振荡器以降低功耗。
1.2 数字设备的功耗分析
数字设备的能量淌耗主要是由CPU电流的大小来衡量的。CPU的电源模式是决定CPU电流大小、工作电压及系统时钟频率的关键因素。通常,温度和数字外围设备对数字设备的功耗只有很小的影响。
(1)OPU电源管理模式
CPU有3种操作模式:正常状态,空闲状态与停止状态。通常,空闲状态的平均电流值受控于内部振荡器。正常模式时的电流值减去空闲模式时的电流值即为CPU正常运行的工作电流值。被唤醒后,CPU开始从设置空闲方式选择位指令的下一条指令开始执行。当写1到STOP位时,CPU进入停机模式。设置停机模式后,当前指令被执行完毕,内部振荡器及所有的数字外围设备全部停止工作。模拟外设(如比较器与外部振荡器)保留其当前的状态。在停止状态,mcu消耗最少的电流。
(2)OPU工作电压、频率及温度对功耗的影响
工作电压:CPU的工作电流会随着供电电压的升高而增大。这种关系存在于任意一种工作频率下,尤其在高频运行时表现得更为明显。理论上供电电压最小可达到2.7 V,但由于电压调整本身有±10%的误差率,因此系统通常供电电压不会低于3V。
温度:温度对系统的功耗无影响。
工作频率:CPU工作频率对系统功耗有主要影响。在CMOS数字逻辑器件中,功耗与系统时钟SYSCLK频率成正比:
功耗=CV2f 式中:C是CMOS的负载电容;V是电源电压;f是SYSCLK的频率。
因此,为了降低功耗,设计者必须知道给定系统所需的最高SYSCLK频率和精度。某些设计口可能需要其系统时钟频率在全部工作时间内保持不变。在这种情况下,设计者将选择满足要求的最低频率。并采用消耗最低功率的振荡器配置。
l.3 数字外围设备与I/0接口的功耗分析
数字外围设备(计数器、UART、PCA、SPl)的损耗占系统总功耗的比例很小。举个例子,当C8051F单片机工作在3.06MHz(内部振荡器8分频),3 V电压时,没有一个数字外围设备端口的工作电流超过700μA;而在启动计数器作为UARTO数据传输时钟后,系统的工作电流会增加18μA。这里,计数器与UART的功率损耗主要由其时钟频率及工作电压来决定。利用交叉开关配置通用I/O口为推挽模式,也能够影响功耗的大小。在上述例子中,如果利用交叉开关将UARTO的TX端分配到P0.4口,则配置端口为推挽模式将令系统的工作电流再增加82μA。输出引脚的功耗由连接在该引脚的外部电路频率决定。
1.4 模拟外围设备的功耗
模拟外围设备功耗是ADC、温度传感器、内部偏置电压产生器及内部振荡器的功耗和。通常,只要ADC、内部振荡器或温度传感器被激活,内部偏置电压产生器就会自动被使能,ADC在转换期间的工作电流比ADC没有转换时的工作电流大30%~50%。SAR转换时钟频率与采样频率也影响了功耗的大小。由于增加SAR转换时钟频率或降低采样率会缩短每次A/D转换的时间,使系统在转换间隙有更多的时间处于空闲状态,因此会大大降低系统功耗。
2 降低功耗的几点考虑
要降低系统的平均功耗,需要从两个方面考虑:首先是适当调整在所有时间一直影响系统工作的参数。通常工作电压是重点考虑的参数。工作电压决定了系统是否能够处于正常运作状态,它可以由电压调整器或一个电池来提供。对于一个节能系统,工作电压应该被最小化,以节约能量。第二点就是构建合理的固件结构降低以功耗。要为系统设计两个工作模式:一个为高效的运作模式;另一个则是以降低功耗为日地的睡眠模式。两个模式的设计标准不同,但应尽量让系统在大部分时间内处于睡眠模式,以降低系统的总功耗。下面详细讨论这两个方面的设计。
2.1 降低工作电压、减小工作电流
工作电压对系统的总功耗起着举足轻重的作用。对于节能系统。应该尽量在保证系统安全可靠的前提下采用最低的工作电压。通常电压调整器会有土10%的误差率,因此在设计工作电压时,最低的工作电压应该为3V,此时电压调整器的输出电压在2.7V与3.3V之间。也可以选择用电池。无须担心电池耗尽时会对系统工作有不良的影响,因为在C8051F系列单片机中,片上电源监控器能够确保在电池耗尽后系统自动复位。
由于工作电压通常是恒定的,因此经常通过减小平均电流来降低系统的总功耗。平均工作电流是系统在单位时间内消耗的电荷量。对一个系统来说,其总的运行时间应该被分为两个部分——高效工作期与低功耗体眠期,如图l所示。设计者应该尽量从这两方面着手设计系统,以达到降低总功耗的目的。
2.2 设计一个低功耗的休眠模式
可以通过设计低功耗休眠模式,令系统在非工作期一直处于低消耗状态,从而达到减小整个系统工作电流的目的。休眠模式可以通过将电源管理模式设定为空闲或停机状态来实现。通常会设定空闲模式,因为该模式更容易被恢复。需要注意的是,在休眠模式下应该关闭所有不需要的外围设备,并配置体眠模式的时钟为外部振荡器。因为外部振荡器能够禁止内部振荡器的振荡,并能以非常低的时钟基准进行振荡。这里有两个可选的振荡器:36.728kHz晶振与单电容模式外部振荡器。
2.3 设计一个高效运作模式
高效运作模式的设计应该以尽可能缩短完成作业所需时间为标准,使得系统能够尽快地恢复到休眠模式。模式的设计包括调整工作电流的峰值以及时钟频率,以减小高效工作期问的总电荷量。通常在高效工作模式下使用内部振荡器,更有益于系统总功耗的降低。
下面以ADC采样为例,比较、分析两种设计中系统功耗的消耗率情况。
片上温度传感器以10Hz速率采样,系统的外部晶振连接到XTAL1与XTAL2之间。定时器2每100ms溢出产生一个中断,将系统从空闲模式唤醒。当系统被激活后,系统捕捉ADC采样数据,然后重新返回空闲模式,直到下一个中断发生。
由于该系统是电池供电,因此系统应尽量减少每次A/D采样所消耗的电荷。由于电荷量是一段时间内电流的总量,因此可以通过缩短采样时间或减小采样时的峰值电流来节约能量。也就是说,在捕捉ADC采样数据时,系统可以选择转换到3MHz的内部振荡器,在短时间内使用大的电流;或是用外部32kHz晶振作为系统振荡器,使单片机在长时间内使用较小的电流值。
第1个系统从空闭模式被唤醒后,系统直接启动了ADC设备开始采样。系统没有转换到内部振荡器,而是仍采用原来的32kHz晶振作为系统的时钟基准。A/D转换结束后,系统读取采样值,关闭ADC并重新进入空闲模式。为了捕捉采样数据,系统在峰值工作电流O.65mA上持续了1.5ms。转换完成后,读ADC数据,而后停止ADC及内部振荡器并令CPU回到空闲模式。为了捕捉ADC采样数据,系统在峰值工作电流2.2 mA上持续了400μs。利用公式:
为确保系统处理结果的精确度,A/D转换器和D/A转换器必须具有足够的转换精度;如果要实现快速变化信号的实时控制与检测,A/D与D/A转换器还要求具有较高的转换速度。转换精度与转换速度是衡量A/D与D/A转换器的重要技术指标。随着集成技术的发展,现已研制和生产出许多单片的和混合集成型的A/D和D/A转换器,它们具有愈来愈先进的技术指标。
计算可得,第1种设计系统的平均电流为15μA;而第2种设计系统的平均工作电流为14μA。在3V锂电池供电的情况下。第1种设计电池的寿命为4000h;而第2种设计电池的寿命为42000h。
从这个例子可以看出,在系统高效工作时提高系统的叫钟频率能够减小系统的平均工作电流,从而降低系统的总功耗。