嵌入式系统的低功耗软件设计
部分接口函数详细代码设计
由于通过控制各个模块的时钟频率以及电源开关可以达到省电效果,比如说SD存储器的开关,不用SD存储器的时候就可以关掉,或是不需要高速存取的时候,就可以把SD存储器的频率降低,以求省电。下面以LCD模块的代码为例来说明LCD省电的详细思路。其他模块的代码设计思想与其一致,这里不再赘述。
#define POWER_SAVING_TIME (60*1000) // 间隔时间
#define LCD_CONTROLLER_POWER 0x22400000 //LCD控制寄存器的地址
extern unsigned int System_Time; //全局变量存储系统时间
unsigned int Last_Keystroke_Time; //最后的触发事件的时间
void Sys_SetAlarm(unsigned int T); //设置当前任务时间
void User_Press_A_Key(void) //当有外部事件触发将调用此函数
{ if(*(unsigned int *)(LCD_CONTROLLER_POWER) == 0) {
*(unsigned int *)(LCD_CONTROLLER_POWER) = 1;
}
}
Void User_Input_Task(void) //当有触发事件到来执行该函数
{
static unsigned int previous_key_time;
previous_key_time = Last_Keystroke_Time;
while(1) {
Sys_SetAlarm(POWER_SAVING_TIME);
if(previous_key_time == Last_Keystroke_Time) {
/*一分钟内没有任何外部事件触发,将关闭LCD */
*(unsigned int *)(LCD_CONTROLLER_POWER) = 0;
}
else
previous_key_time = Last_Keystroke_Time;
}
}
省电性能测试总结
图5 整个多媒体芯片系统的转化流程示意图
嵌入式系统目前在多个行业得到广泛应用,低功耗是其性能指标之一。基于功耗实现设计硬件平台后,低功耗实现主要从软件方面来解决。本文基于嵌入式系统特征及其功能实现,采用程序优化技术来降低功耗。经过测试,整合多媒体芯片的无线终端平均功耗下降了50%。其中在正常待机时,电流为400mA左右,而在睡眠时降到了200mA左右;如果应用深度睡眠(关闭SC6600、QCP1880和所有设备,维持一个32kHz的时钟)电流甚至可以降到10~20mA,完全满足长时间待机。实验表明,利用本软件构架,可以对无线终端实行之有效的省电管理。现已用于诸多无线移动多媒体终端项目(智能电话等),效果理想。由于限于篇幅,不再赘述。
- 基于μC/OS-II嵌入式系统的低功耗开发(07-08)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- AVR单片机介绍(07-09)
- 基于WinCE5.0的嵌入式设备休眠唤醒技术研究(09-27)
- DSP电源系统的低功耗设计(11-13)
- 基于DSP的低功耗接收机单边带解调方法(01-10)