睡眠模式
系统睡眠模式在实现超低功耗设计中起着关键性作用,不同工作模式选择不同超低功耗睡眠模式。
以MSP430微控制器为例,系统提供一种活动模式、LPM0~LPM4五种睡眠模式,如下图所示,LPM0模式:关闭CPU;LPM1、LPM2模式:通过开启、关闭不同时钟源控制系统功耗;LPM3模式:时钟开启时的最低功耗模式,仅低频时钟(如32768kHz)处于运行状态。
LPM3模式常用于实时时钟、液晶显示等,通过外接32768Hz低频晶振作为定时器时钟源,周期性将CPU从睡眠模式唤醒,进入活动模式,工作电流小于1 μ A;LPM4模式:关闭所有时钟和外围模块,电流仅O.1μA,系统功耗降到最低。 Lpm4模式工作时只保存RAM区数据,CPU只能通过I/O口外部中断唤醒。
系统平均电流
系统平均电流最终决定低功耗系统的电池使用寿命。
当系统处理由于中断或其它事件引起的任务时,会产生很大的瞬时工作电流,如果MCU能在很短时间里处理完这些突发事件,又能在极短时间内回到低功耗模式,那么系统的平均电流将不会有太大影响。如下图所示,大部分时间系统处于静态睡眠模式,工作电流2μA,每1 s内有1 ms处于活动模式状态,工作电流1 mA,系统1 s内平均电流I等于静态模式I1与活动模式电流I2之和:I1=2 μA×(1000-1)ms×10的负3次方=1.998 μ A, I2=1 mA×1 ms×1O的负3次方=1 μ A,I=1.998μ A+1μ A=2.998μ A,即系统在活动模式电流比较大,但是CPU能在极短时间内处理完该事件,活动状态电流大小对系统平均功耗影响并不大。
以MSP430微控制器实现RTC(实时时钟)功能为例,CPU 3V电池供电,正常运行时MCU处于LPM3睡眠模式,功耗为 0.8μA,每 1s 产生一次中断,CPU 从睡眠唤醒进入活动模式 (活动模式以 1M 主频晶振运行,功耗约250μA),以 1OOHs 刷新显示时间,然后再次进入 LPM3睡眠模式,则 RTC 系统平均功耗= ( LPM3 )功耗+( RTC_Updata)功耗= 0.8 μ A + 250 ×(1 00 μs / 1 000000 μs)= 0.83μA,如果用 200mAh 的纽扣电池供电,该RTC 系统可以待续工作 20年以上。
另一方面,系统在处理诸多突发事件时进入、退出低功耗模式的响应速度、处理数据速度与效率都必须建立在稳定的时钟源基础之上。很多突发事件在每秒内进入和退出各种低功耗模式几次甚至几百次,此时 MCU 时钟系统的响应速度至关重要)大部分低功耗 MCU 响应速度都在十几甚至几十微秒。如果微控制器从退出低功耗模式到CPU 时钟稳定能正常处理事件的这个过程非常漫长,那么系统的大部分功耗就消耗在等待时钟稳定的过程中,无法实现低功耗的目的,甚至某些重要任务会因 CPU 时钟不能按时响应而丢失。
MSP430微控制器从睡眠模式到 CPU 全速执行 (如以 8MHz 主时钟运行)的唤醒时间小于 6μ s)最新MSP430微控制器唤醒时间小于 1 μs。系统以 8MHz 晶振工作,中断事件到来时从睡眠状态唤醒到稳定全速运行状态仅需 292ns,波形如下图所示。
以按钮或键盘为例,没有中断功能的 MCU 须循环轮流检测判断是否有按钮或键盘按下,CPU 轮;束检测时处于全速运行状态,本身需消耗电流,另外,控制轮流检测的时间间隔也需额外电流;相反,如果运用中断检测按钮或键盘,CPU 一直处于睡眠状态,直到有按键接下再唤醒处理按键中断事件,大大降低系统功耗。
MSP430微控制器提供 16 个I/0 口中断和所有片内模块中断,如定时器A、定时器 B 及ADCl2 等一些外设,具备多级中断并能灵活处理不同级别的中断事件。
片内外设
片内外设是指集成在 CPU 内部的功能模块,如:ADC、UART、Timer、LCD 等,选择超低功耗 MCU 时必须考虑这些外围模块的电流消耗。
MSP430微控制器从刚起步就将超低功耗的结构设计到外围模块中,通过软件控制某些外围设备的使能,更重要的是许多内部模块具有自动使能功能,当有中断或外部信号触发时自动使能运行,不使用时自动关闭,不消耗额外电流。例如 MSP430 的 ADC12模块,AD 转换不工作时自动关闭内部晶振及数字转换电路,不消耗电流,接收到AD转换触发信号后智能打开 AD模块使能工作。
MSP430微控制器片内外设还有一个特性,通过定时器触发 ADC12模块工作,为 ADC采样提供直接、精确的定时控制,通过定时器初始化 AD和直接控制AD 采样时间,当 CPU 不工作 (如睡眠状态)时实现智能采样,转换结束后ADC12模块中断唤醒 CPU。
MSP430微控制器系列有的包含 DMA (直接存储器存取)自动传输数据模块,使用 DMA传输数据大幅度提高系统处理数据能力。例如,DMA模块自动将ADC转换数据传输到RAM区,无须CPU干涉,直到所有转换全部完成后唤醒CPU,降低系统功耗。
大多数微控制器内部集成的BOR模块工作时需额外1 0—70 μ A的电流,为节省系统功耗,MCU需选择使能或不使能BOR模块。系统运行过程中无法预测外界低电压情况,为保证系统正常工作,BOR模块应一直处于工作状态,计算系统功耗必须考虑BOR模块工作的额外电流。MSP430微控制器BOR模块在系统运行过程中一直处于自动使能工作状态,在保证MCU稳定的情况下不消耗任何额外电流,即为零功耗。
管脚漏电流
在选择超低功耗MCU微控制器时经常忽略了管脚漏电流值。某些低功耗MCU标注I/O口管脚漏电流值为1 μ A,那么20个I/O口的引脚漏电流值则高达20 u A。
MSP430微控制器的引脚漏电流值仅0.05 μ A,所有管脚漏电流加起来最大为0.05-1μ A。
处理效率
微控制器的处理效率在设计中也常常被忽略,我们经常错误的理解了MCU处理效率的概念,认为16位MCU需要8位MCU的两倍代码空间完成相同的任务,1 6位结构实际比8位结构的MCU运行代码更少、执行速度更快,实现10位A/D转换或1 6位数据处理时,8位CPU比’1 6位CPU需要更大的资源。例如,MSP430微控制器和8位结构微控制器分别完成1 0位A/D数据传输,以1 MHz晶振作为主时钟,MSP430微控制器仅需6 μ s,8位微控制器需24 μ s,指令如附表所示。
上一篇:光传感器的选择及其在汽车中的应用