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