當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]本文將討論嵌入式產(chǎn)品如何在嵌入式多媒體芯片基礎(chǔ)上利用軟件提高產(chǎn)品待機(jī)能力,提高省電性能。

引言

低功耗是嵌入式電子產(chǎn)品必須具備的一個(gè)關(guān)鍵特性,在硬件技術(shù)飛速發(fā)展和日益完善的時(shí)候,已經(jīng)很難有功耗方面的突破了。所以現(xiàn)在降低產(chǎn)品功耗主要是依靠軟件來處理,必須依靠軟件讓整個(gè)系統(tǒng)在各個(gè)時(shí)候電流達(dá)到最小。不管是操作系統(tǒng)、BIOS控制程序還是外設(shè)驅(qū)動程序,這些程序?qū)Q定了最終產(chǎn)品的功耗水平,因此在開發(fā)時(shí)必須加以考慮。本論文將以智能電話為例,介紹一種通過軟件降低功耗的方法,可供嵌入式設(shè)計(jì)工程師們參考。實(shí)現(xiàn)省電降低功耗的方法有很多,本文不可能面面俱到,將主要介紹軟件程序如何控制物理層進(jìn)行省電。

具體實(shí)現(xiàn)措施

系統(tǒng)描述及設(shè)計(jì)思想

目前國內(nèi)智能電話的數(shù)字多媒體解決方案一般通過基于ARM7等內(nèi)核的基帶嵌入式處理芯片外接多媒體處理芯片來實(shí)現(xiàn)。嵌入式處理器是硬件系統(tǒng)的核心,運(yùn)行功耗占系統(tǒng)功耗的大部分。目前,嵌入式處理芯片一般采用RISC體系結(jié)構(gòu),通過簡化指令設(shè)計(jì)、引入流水線技術(shù)、指令預(yù)取、大量寄存器操作和高速緩存等技術(shù)提高運(yùn)行效率,并采用低電壓工作模式以降低運(yùn)行功耗。嵌入式處理芯片一般為應(yīng)用開發(fā)提供了三種工作模式:運(yùn)行模式(Run)、空閑模式(Idle)和休眠模式 (STandby)。運(yùn)行模式即正常工作模式,CPU全速運(yùn)行;空閑模式時(shí)CPU是靜態(tài)的,但LCD刷新電路和晶振都工作。在不同運(yùn)行模式下,處理器工作時(shí)功耗數(shù)值差別較大;以Cirrus Logic公司EP7211(ARM7核)嵌入式處理器為例,開發(fā)手冊中寫到,在18MHz工作頻率下,運(yùn)行時(shí)消耗電流是20mA,空閑時(shí)消耗電流是 6mA,而休眠時(shí)消耗電流300mA。

本嵌入式產(chǎn)品系統(tǒng)(智能電話)中的基帶嵌入式處理器芯片將采用展訊的SC6600芯片平臺,多媒體芯片則采用廣達(dá)的QCP1880芯片平臺,音頻編解碼芯片采用WolfsON 8750芯片,LCD采用HIMAX8309。作為手機(jī)產(chǎn)品,電池一般在800~1200mA時(shí)左右,待機(jī)要求80小時(shí)以上,這就要求系統(tǒng)在待機(jī)狀態(tài)時(shí)候的電流在10mA以下,關(guān)機(jī)后的電流在mA級以下。SC6600在睡眠模式下一般有3~5mA左右電流,QCP1880在睡眠模式下一般會有10mA左右電流,斷電后在200mA左右,音頻部分在空閑模式大概有270mA,在待機(jī)時(shí)SC6600的3~5mA固有電流沒辦法省掉,所以QCP1880必須斷電。

低功耗設(shè)計(jì)的基本思想是:讓系統(tǒng)各個(gè)部分在需要的時(shí)候才處于工作狀態(tài),其他時(shí)候處于各部分的省電狀態(tài)。大部分的嵌入式處理器都具有正常工作模式和省電工作模式,最常用的是空閑模式,此時(shí)處理器內(nèi)核指令執(zhí)行部分關(guān)閉,時(shí)鐘頻率降低,空閑模式比處理器執(zhí)行指令時(shí)的功耗要小得多??臻e模式一個(gè)主要特點(diǎn)是其進(jìn)入退出基本上不需要額外開銷,通常一個(gè)或幾個(gè)指令周期能完成。外設(shè)部分硬件一般也有省電處理設(shè)計(jì),軟件主要是控制外設(shè)在沒有工作時(shí)處于省電狀態(tài),甚至關(guān)掉整個(gè)外設(shè),在需要時(shí)再掛上。

功能設(shè)計(jì)

在大體上,本系統(tǒng)省電處理主要分為三塊:基帶芯片(SC6600),普通外設(shè)(能很方便地在使用時(shí)打開,不用時(shí)關(guān)掉的設(shè)備,如LCD等),多媒體芯片(QCP18800)。

*基帶芯片(SC6600)的處理:

由于很多中斷都能把處理器從空閑模式中喚醒,所以采用智能等待這種模式。讓處理器平常處于空閑模式,把隨機(jī)事件和實(shí)時(shí)要求比較高的都掛在中斷上,當(dāng)事件發(fā)生處理器能很快被喚醒,處理這些事件。其他有規(guī)律的事件和實(shí)時(shí)性要求不高的用定時(shí)器去進(jìn)行掃描。這種等待機(jī)理應(yīng)用很普遍,現(xiàn)今大多數(shù)PDA和智能電話都是由具有空閑模式功能的處理器和操作系統(tǒng)控制,處理器只有在有用戶操作或有任務(wù)處理時(shí)才處于正常工作狀態(tài),其他時(shí)候都是處于空閑(SLEEP)狀態(tài),這樣最大程度提高電源效率。例如,在用手機(jī)看電子書時(shí),處理器處于空閑狀態(tài),當(dāng)用戶翻頁或其他操作(按鍵、觸屏等)時(shí),處理器將被喚醒處理相應(yīng)的操作,處理完又進(jìn)入空閑狀態(tài)。

對于CPU的處理,后臺起一個(gè)線程監(jiān)控系統(tǒng)CPU的使用情況,當(dāng)CPU處于空閑狀態(tài)時(shí),且系統(tǒng)其他模塊也允許CPU 睡眠的時(shí)候,CPU立刻進(jìn)入睡眠模式。

基帶芯片的處理流程圖見圖1。

圖1 基帶芯片的處理流程

*普通外設(shè)的省電處理:

除LCD 和背光外,其他外設(shè)在CPU進(jìn)入睡眠模式之前被關(guān)掉。LCD和背光用做用戶的操作界面需要的是友好性,所以讓用戶可以設(shè)置。在用戶設(shè)定的時(shí)間用完后自動熄滅。其他外設(shè)如音頻模塊,在沒有聲音時(shí)就關(guān)閉,需要播放聲音時(shí)再打開。音頻模塊本來有睡眠模式,但其電流沒達(dá)到要求,所以斷開了其電源讓它進(jìn)入斷電模式,這里有個(gè)缺點(diǎn)是,以前初始化和后來設(shè)置好的參數(shù)就會丟失,需要在打開初始化時(shí)重新設(shè)置(浪費(fèi)些資源記錄它的狀態(tài))。LCD及背光處理流程圖見圖2。

圖2 LCD及背光處理流程圖

*關(guān)于多媒體芯片(QCP1880):

(1) VDD( Power for OperaTIon Mode Module);(2)IOVDD (Power for All IO Module);(3) VDD_ON( Power for ByPass Mode Module)。說明:1.切斷VDD和保持PDEN為低,QCP1880耗電將低于200mA。2. QCP1880進(jìn)入IDLE(空閑)狀態(tài),耗電在10mA左右。3. QCP1880進(jìn)入最省電狀態(tài)后,其GPIO口不能保持。如果進(jìn)入這種狀態(tài)后,要讓GPIO口保持高,則外部要通過上拉電阻接到IOVDD,如果要 GPIO口保持高低,則外部要通過下拉電阻接到地。4.切斷VDD和保持PDEN為低后,QCP1880里的程序?qū)G失,重新裝載的時(shí)間比較久 (500ms左右)。

在應(yīng)用方面芯片主要功能是:MP3/MIDI/AAC/AMR/MP4回放;AMR、MP4錄制;拍照和圖片回放;USB/UDISK;GPIO接口;CODEC(聲卡驅(qū)動);SD卡文件系統(tǒng)。

該芯片在待機(jī)時(shí),電流為10mA,切斷主電源電流能下降到mA級。工作時(shí),電流較大,且根據(jù)功能的不同而不同。多媒體芯片能夠自動到待機(jī)狀態(tài)。不能達(dá)到要求,必須要讓其進(jìn)入斷電狀態(tài)。又因?yàn)樯婕澳K比較多,所以不能簡單的直接關(guān)閉QCP1880。針對于本嵌入式系統(tǒng)不能隨意切斷QCP 電源的原因,所以采用了查詢的方法。即在CPU進(jìn)入睡眠模式之前會查詢QCP1880的狀態(tài),當(dāng)LCD和背光都是熄滅的狀態(tài)下,會切斷QCP1880的主電源。(因?yàn)長CD部分電流較大,且頻繁下載QCP的效率低下,所以在LCD和背光都亮?xí)r不會切斷QCP的主電源)。

圖3QCP1880的電源由三組電源組成

在喚醒后同樣有3類,其中喚醒CPU和普通外設(shè)的流程比較簡單,所以略過。喚醒QCP存在一個(gè)下載的過程(切斷電源時(shí),QCP內(nèi)部的代碼已經(jīng)丟失),如下載完全功能的版本需要的時(shí)間比較長,在一些對時(shí)間要求嚴(yán)格的地方有些問題(如按鍵時(shí)指示燈的響應(yīng),指示燈是用QCP1880控制的)。這里采用的是先下載一個(gè)比較小的版本,完成那些需要快速響應(yīng)的操作,然后再下載完全功能的版本,當(dāng)然這跟省電的關(guān)系不大,只是省電引起的一個(gè)小問題。值得注意的是此處需要 QCP在切換版本時(shí)GPIO能保持不變。喚醒后,系統(tǒng)一般會先調(diào)用QCP GPIO的功能,每個(gè)QCP 的API都有調(diào)用QCP_LOCK();所以在這里進(jìn)行裝載工作。在處理上,系統(tǒng)也分了3類來處理這些外設(shè),其中基帶芯片部分和一般外設(shè)一類,LCD處理一類,QCP芯片部分處理一類。基帶芯片部分的處理和LCD的處理完全獨(dú)立,LCD會影響QCP芯片的處理。QCP的處理流程圖見圖4。

圖4 QCP的處理流程圖

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

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

#define POWER_SAVING_TIME (60*1000)// 間隔時(shí)間
#define LCD_CONTROLLER_POWER 0x22400000//LCD控制寄存器的地址
extern unsignedintSystem_Time;//全局變量存儲系統(tǒng)時(shí)間
unsignedintLast_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ā)事件到來執(zhí)行該函數(shù)
{
static unsigned intprevious_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ā),將關(guān)閉LCD */
*(unsigned int *)(LCD_CONTROLLER_POWER) = 0;
}
else
previous_key_time = Last_Keystroke_Time;
}
}

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


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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉