嵌入式系統(tǒng)的低功耗軟件設計
部分接口函數(shù)詳細代碼設計
由于通過控制各個模塊的時鐘頻率以及電源開關可以達到省電效果,比如說SD存儲器的開關,不用SD存儲器的時候就可以關掉,或是不需要高速存取的時候,就可以把SD存儲器的頻率降低,以求省電。下面以LCD模塊的代碼為例來說明LCD省電的詳細思路。其他模塊的代碼設計思想與其一致,這里不再贅述。
#define POWER_SAVING_TIME (60*1000) // 間隔時間
#define LCD_CONTROLLER_POWER 0x22400000 //LCD控制寄存器的地址
extern unsigned int System_Time; //全局變量存儲系統(tǒng)時間
unsigned int Last_Keystroke_Time; //最后的觸發(fā)事件的時間
void Sys_SetAlarm(unsigned int T); //設置當前任務時間
void User_Press_A_Key(void) //當有外部事件觸發(fā)將調(diào)用此函數(shù)
{ if(*(unsigned int *)(LCD_CONTROLLER_POWER) == 0) {
*(unsigned int *)(LCD_CONTROLLER_POWER) = 1;
}
}
Void User_Input_Task(void) //當有觸發(fā)事件到來執(zhí)行該函數(shù)
{
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) {
/*一分鐘內(nèi)沒有任何外部事件觸發(fā),將關閉LCD */
*(unsigned int *)(LCD_CONTROLLER_POWER) = 0;
}
else
previous_key_time = Last_Keystroke_Time;
}
}
省電性能測試總結
圖5 整個多媒體芯片系統(tǒng)的轉(zhuǎn)化流程示意圖
嵌入式系統(tǒng)目前在多個行業(yè)得到廣泛應用,低功耗是其性能指標之一?;诠膶崿F(xiàn)設計硬件平臺后,低功耗實現(xiàn)主要從軟件方面來解決。本文基于嵌入式系統(tǒng)特征及其功能實現(xiàn),采用程序優(yōu)化技術來降低功耗。經(jīng)過測試,整合多媒體芯片的無線終端平均功耗下降了50%。其中在正常待機時,電流為400mA左右,而在睡眠時降到了200mA左右;如果應用深度睡眠(關閉SC6600、QCP1880和所有設備,維持一個32kHz的時鐘)電流甚至可以降到10~20mA,完全滿足長時間待機。實驗表明,利用本軟件構架,可以對無線終端實行之有效的省電管理。現(xiàn)已用于諸多無線移動多媒體終端項目(智能電話等),效果理想。由于限于篇幅,不再贅述。
評論