嵌入式系統(tǒng)的低功耗軟件設計
*關(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進入IDLE(空閑)狀態(tài),耗電在10mA左右。3. QCP1880進入最省電狀態(tài)后,其GPIO口不能保持。如果進入這種狀態(tài)后,要讓GPIO口保持高,則外部要通過上拉電阻接到IOVDD,如果要 GPIO口保持高低,則外部要通過下拉電阻接到地。4.切斷VDD和保持PDEN為低后,QCP1880里的程序?qū)G失,重新裝載的時間比較久 (500ms左右)。
在應用方面芯片主要功能是:MP3/MIDI/AAC/AMR/MP4回放;AMR、MP4錄制;拍照和圖片回放;USB/UDISK;GPIO接口;CODEC(聲卡驅(qū)動);SD卡文件系統(tǒng)。
該芯片在待機時,電流為10mA,切斷主電源電流能下降到mA級。工作時,電流較大,且根據(jù)功能的不同而不同。多媒體芯片能夠自動到待機狀態(tài)。不能達到要求,必須要讓其進入斷電狀態(tài)。又因為涉及模塊比較多,所以不能簡單的直接關(guān)閉QCP1880。針對于本嵌入式系統(tǒng)不能隨意切斷QCP 電源的原因,所以采用了查詢的方法。即在CPU進入睡眠模式之前會查詢QCP1880的狀態(tài),當LCD和背光都是熄滅的狀態(tài)下,會切斷QCP1880的主電源。(因為LCD部分電流較大,且頻繁下載QCP的效率低下,所以在LCD和背光都亮時不會切斷QCP的主電源)。
圖3 QCP1880的電源由三組電源組成
在喚醒后同樣有3類,其中喚醒CPU和普通外設的流程比較簡單,所以略過。喚醒QCP存在一個下載的過程(切斷電源時,QCP內(nèi)部的代碼已經(jīng)丟失),如下載完全功能的版本需要的時間比較長,在一些對時間要求嚴格的地方有些問題(如按鍵時指示燈的響應,指示燈是用QCP1880控制的)。這里采用的是先下載一個比較小的版本,完成那些需要快速響應的操作,然后再下載完全功能的版本,當然這跟省電的關(guān)系不大,只是省電引起的一個小問題。值得注意的是此處需要 QCP在切換版本時GPIO能保持不變。喚醒后,系統(tǒng)一般會先調(diào)用QCP GPIO的功能,每個QCP 的API都有調(diào)用QCP_LOCK();所以在這里進行裝載工作。在處理上,系統(tǒng)也分了3類來處理這些外設,其中基帶芯片部分和一般外設一類,LCD處理一類,QCP芯片部分處理一類?;鶐酒糠值奶幚砗蚅CD的處理完全獨立,LCD會影響QCP芯片的處理。QCP的處理流程圖見圖4。
圖4 QCP的處理流程圖
評論