引 言
电源管理(Power Management,PM)是电子系统中必不可少的技术。由于采用了先进的电源管理技术,移动电话、PDA等产品得到了广泛的应用。如果不采用完善的电源管理技术,移动电话的通话时间可能不超过2 min。随着人们对嵌入式手持终端设备功能水平要求的不断提高,手持终端的功耗也在不断增高。与之相矛盾的是,手持终端的尺寸却在不断缩小,工作时间也在不断延长,使嵌入式手持终端电源系统管理面临越来越大的压力。如何设计出性能稳定、功耗低的电源管理系统已经成为嵌入式手持终端设备开发的难点之一。本文重点介绍基于微处理器S3C2440A的手持终端电源管理系统。
1 供电需求
手持终端的CPU采用三星公司的ARM920T内核处理器S3C2440A。S3C2440A是专门为各类手持终端而设计的高性能嵌入式微处理器,主频可达400 MHz,具有外围接口丰富、体积小、功耗低等特点。
S3C2440A有4种工作模式:正常模式、慢模式、空闲模式、睡眠模式。4种模式之间可以相互转换,区别主要在于处理器工作频率、工作电压和设备组合的不同。本设计中主要针对正常模式和睡眠模式采用不同的电源管理策略。
1.1 正常模式下供电需求
在正常模式下,CPU以及外围部件都需要供电。外围部件主要包括Flash、SDRAM、GPRS、GPS、无线模块、LCD、触摸屏等部分。硬件结构如图1所示。
CPU电压分为2组:核心电压为1.2 V;I/O引脚电压为3.3 V。USB和GPS供电电压为5 V。LCD的供电电路比较复杂,需要专用的驱动芯片为其供电。由于现在几乎所有的手持终端都是彩屏,作为调节LCD背光亮度的LED也需专门的驱动电路。其余部分(如GPRS、无线模块、音频等)都为3.3 V。
1.2 休眠模式下供电需求
CPU 90%以上的时间处于休眠模式,休眠状态下电源管理的好坏对于手持终端工作时间的长短起着决定性作用。图2是手持终端在休眠模式下供电需求。
休眠模式下,外部需要通过VDDalive端口为CPU内部能量控制模块提供1.2 v/1.3 V电压,为存储器接口电源VDDMOP、ADC端口电源VDD_ADC、I/O端口电源VDDOP提供3.3 V电压。实时时钟需要在休眠模式和系统关机时依然对其供电。PWREN为控制信号,在CPU进入睡眠后,PWREN为低电平,可通过此引脚关闭睡眠模式下不使用的模块。
2 电源管理策略
2.1 正常模式下电源管理策略
正常模式下的电源管理主要是通过控制外设控制器的开关来达到节约能量的目的。S3C2440A外设接口控制器丰富,但这些控制器不一定同时都用到。通过设置寄存器可以有选择地关闭不需要的功能模块,尽量将不使用的控制器关闭,尽可能节省功耗。因为如果不将其关闭,即使它们没有处于工作状态,仍然会消耗电流。
2.2 休眠模式下电源管理策略
休眠模式下,主要采用Time-out策略,如图3所示。系统完成所有任务后,如果持续时间超过某一阈值(该时间间隔可由系统提供的计时模块设定),电源管理模块将系统转换至休眠状态,直到有新任务请求到达时再唤醒系统,则执行任务。通过这种方式达到降低系统设备功耗的目的。
3 电源管理系统设计
3.1 硬件设计
嵌入式手持终端电源管理系统硬件设计必须同时满足CPU正常模式和休眠模式的供电需求。
3.1.1 休眠模式下供电电路
休眠模式下供电电路如图4所示。电池的电源经过Buck变换器后,输出3.3 V供给I/O、VDDalive等端口;3.3 V经过LDO变换器输出1.2 V,为休眠时CPU内部能量管理模块供电。电池电压经过LDO变换器输出3.3 V,直接给实时时钟RTC供电,只要手持终端电池电压大于3.3 V,系统RTC就会工作。使用LDO变换器为RTC供电是因为输入、输出电压差别不大,效率较高。但是,CPU的1.2 V电压通过Buck变换器和LDO变换器得到,LDO的效率虽然不到50%,但比Buck变换器高。
3.1.2 正常模式下供电电路
正常模式下供电电路如图5所示。从图中可看出,电路共包括3个子模块:电池管理、电压管理和负载管理。
电池管理:主要由锂离子充电电路和充电监控电路组成。外接直流电源通过充电电路为锂离子充电电池充电,充电完毕后充电电路自动关闭充电。
电压管理:所有在睡眠模式下不需要提供电源的模块,其电源供应都必须通过休眠控制部分进行控制,在系统休眠时关闭各个不使用模块的电源。所有在休眠模式下需要供电的模块均不通过休眠控制,直接通过电池电压变换后供电,或者通过主电源直接或间接变换得到。负载管理:在不使用模块时,通过GPIO口关闭可降低功耗。
3.2 软件设计
为了实现节能,电源管理系统必须通过软件控制系统的功耗。
3.2.1 总体架构
电源管理系统软件整体架构如图6所示。
电源管理软件设计可分为:操作系统层和应用层。
(1)操作系统层
电源管理的功能执行层,它管理系统中的各个部件(包括处理器和所有外设),并对具体的电源管理动作进行封装。操作系统层的电源管理有3方面内容。
①处理器电源管理:执行由处理器完成的电源管理任务。包括以下3方面:
◆DVS。动态核电压和频率调整,以及系统总线的频率调整。
◆模式管理。系统运行模式管理,实现系统运行模式的切换,如休眠唤醒、空闲忙碌等功能。
◆RTC。系统时钟和RTC时钟的维护等。
②电池管理:监测电池电量,响应电池状态的变化(充放电)。
③设备电源管理:包括系统中的所有设备。在系统睡眠唤醒时,每一个设备都需要配合系统的动作进行休眠唤醒。如果设备在系统要休眠时处于忙碌状态,它可以拒绝系统的休眠要求,从而阻止整个系统进入休眠。
(2)应用层
最上层,实现系统的电源管理策略。电源管理策略与操作系统层进行交互,从操作系统层获得系统的状态信息,根据系统状态采取相应措施,并将自己的决定通知操作系统,调用相应功能接口执行电源管理。
为了降低策略实现的复杂度,增强策略调整的灵活性,电源管理策略主要在应用层,利用QTopia的事件管理和定时器功能来实现。电源管理应用程序位于系统的最上端,直接与用户进行交互,用户可以在这些应用程序中对电源管理策略进行配置。这些应用程序包括电池管理程序、背光调整程序、超时时间设定程序、开关机程序等。本文只介绍电池管理程序的实现。
3.2.2 电池管理程序实现
锂离子电池检测与充电保护电路芯片采用DS2760。CPU通过DS2760的DQ引脚读取内部寄存器的数据,获得电池的运行状态,以便上层的应用程序对电池进行管理。底层驱动程序主要实现设备的注册等功能。上层应用程序主要包括ds2760.c和Qtopia图形界面程序light-and-power。ds2760.c主要完成电池电压、电流的读写。例如读电压由函数Read_Voltage完成,代码如下:
light_and_power程序完成图形界面的电源管理应用于。程序流程如图7所示。
4 系统功耗测试
系统功耗的高低代表系统运行时间和待机时间的长短,反映电源管理系统性能的高低。为了评估手持终端整体功耗以及各个主要模块的功耗,需要对系统在不同负载情况下的电池输出电流进行测量。表1是系统正常模式、在不同模块配置下的锂离子电池供电电流值实测数据。内部电池供电为负值。
结论:正常情况下,如果所有模块都开启,手持终端整体功耗电流约为0.496 A,基本满足设计的要求。LCD、GPS、GPRS三个部分约占总功耗的52.6%。
结 语
本文以实现功耗低、体积小、性能稳定的嵌入式手持终端电源管理系统为目标,设计了基于S3C2440A的嵌入式手持终端电源管理系统,对于其他嵌入式手持终端电源管理系统的设计具有一定的参考价值。