新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)的低功耗軟件設(shè)計(jì)

嵌入式系統(tǒng)的低功耗軟件設(shè)計(jì)

作者: 時(shí)間:2012-05-07 來(lái)源:網(wǎng)絡(luò) 收藏


部分接口函數(shù)詳細(xì)代碼設(shè)計(jì)

由于通過(guò)控制各個(gè)模塊的時(shí)鐘頻率以及電源開(kāi)關(guān)可以達(dá)到省電效果,比如說(shuō)SD存儲(chǔ)器的開(kāi)關(guān),不用SD存儲(chǔ)器的時(shí)候就可以關(guān)掉,或是不需要高速存取的時(shí)候,就可以把SD存儲(chǔ)器的頻率降低,以求省電。下面以LCD模塊的代碼為例來(lái)說(shuō)明LCD省電的詳細(xì)思路。其他模塊的代碼設(shè)計(jì)思想與其一致,這里不再贅述。

#define POWER_SAVING_TIME (60*1000) // 間隔時(shí)間
#define LCD_CONTROLLER_POWER 0x22400000 //LCD控制寄存器的地址
extern unsigned int System_Time; //全局變量存儲(chǔ)系統(tǒng)時(shí)間
unsigned int Last_Keystroke_Time; //最后的觸發(fā)事件的時(shí)間
void Sys_SetAlarm(unsigned int T); //設(shè)置當(dāng)前任務(wù)時(shí)間
void User_Press_A_Key(void) //當(dāng)有外部事件觸發(fā)將調(diào)用此函數(shù)
{ if(*(unsigned int *)(LCD_CONTROLLER_POWER) == 0) {
*(unsigned int *)(LCD_CONTROLLER_POWER) = 1;
}
}
Void User_Input_Task(void) //當(dāng)有觸發(fā)事件到來(lái)執(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)沒(méi)有任何外部事件觸發(fā),將關(guān)閉LCD */
*(unsigned int *)(LCD_CONTROLLER_POWER) = 0;
}
else
previous_key_time = Last_Keystroke_Time;
}
}

省電性能測(cè)試總結(jié)


圖5 整個(gè)多媒體芯片系統(tǒng)的轉(zhuǎn)化流程示意圖

嵌入式系統(tǒng)目前在多個(gè)行業(yè)得到廣泛應(yīng)用,是其性能指標(biāo)之一?;诠膶?shí)現(xiàn)設(shè)計(jì)硬件平臺(tái)后,實(shí)現(xiàn)主要從軟件方面來(lái)解決。本文基于嵌入式系統(tǒng)特征及其功能實(shí)現(xiàn),采用程序優(yōu)化技術(shù)來(lái)降。經(jīng)過(guò)測(cè)試,整合多媒體芯片的無(wú)線終端平均功耗下降了50%。其中在正常待機(jī)時(shí),電流為400mA左右,而在睡眠時(shí)降到了200mA左右;如果應(yīng)用深度睡眠(關(guān)閉SC6600、QCP1880和所有設(shè)備,維持一個(gè)32kHz的時(shí)鐘)電流甚至可以降到10~20mA,完全滿足長(zhǎng)時(shí)間待機(jī)。實(shí)驗(yàn)表明,利用本軟件構(gòu)架,可以對(duì)無(wú)線終端實(shí)行之有效的省電管理?,F(xiàn)已用于諸多無(wú)線移動(dòng)多媒體終端項(xiàng)目(智能電話等),效果理想。由于限于篇幅,不再贅述。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 低功耗 休眠 喚醒

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉