摘要: 消費(fèi)類(lèi)電子產(chǎn)品主控SoC芯片內(nèi)電源管理部分的設(shè)計(jì)對(duì)產(chǎn)品整機(jī)的功耗控制至關(guān)重要。為降低產(chǎn)品功耗和節(jié)省成本,設(shè)計(jì)了與任意片外開(kāi)機(jī)使能電平相匹配的自適應(yīng)開(kāi)機(jī)接口使電子產(chǎn)品的開(kāi)關(guān)機(jī)電路得到簡(jiǎn)化;并通過(guò)軟硬件協(xié)作實(shí)現(xiàn)了冬眠功能,其特點(diǎn)是在待機(jī)狀態(tài)下,SoC上除電源管理單元和實(shí)時(shí)時(shí)鐘外全部關(guān)電,而后能響應(yīng)用戶(hù)請(qǐng)求迅速恢復(fù)系統(tǒng)運(yùn)行。
關(guān)鍵詞: SoC芯片; 電源管理; “自適應(yīng)”開(kāi)機(jī); “冬眠”功能
中圖分類(lèi)號(hào): TN911?34; TP368.1 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2013)06?0157?04
0 引 言
隨著科技的進(jìn)步,手機(jī),MP3/MP4,PDA等消費(fèi)類(lèi)電子產(chǎn)品的智能化程度越來(lái)越高,功耗越來(lái)越低而價(jià)格越來(lái)越便宜。與此趨勢(shì)相應(yīng)的就是此類(lèi)產(chǎn)品的電源管理方案更加復(fù)雜和靈活。
以手機(jī)為例,起初手機(jī)的電源管理只包括簡(jiǎn)單的電源開(kāi)通/關(guān)閉功能,由系統(tǒng)級(jí)印刷電路板(以下簡(jiǎn)稱(chēng)PCB)上獨(dú)立于主控芯片(以下簡(jiǎn)稱(chēng)SoC)之外的控制電路和電源管理芯片(PMIC)實(shí)現(xiàn),其中PMIC的基本功能是把手機(jī)電池的單電壓輸入(手機(jī)鋰電池的電壓為3.6 V)轉(zhuǎn)換成多路電壓輸出給PCB上各部件供電(有的需要3.3 V,有的需要1.8 V,每種電壓所需路數(shù)不等)。這種電源管理方式的缺點(diǎn)是方案成本較高,功耗控制簡(jiǎn)單即PMIC的電源輸出同時(shí)開(kāi)或同時(shí)關(guān)?;诖朔N簡(jiǎn)單的電源管理,SoC的主要功耗控制方式是降低時(shí)鐘頻率和關(guān)停時(shí)鐘。
如今的智能手機(jī)都將電源控制部分集成到主控芯片內(nèi)部作為電源管理單元(PMU),其優(yōu)點(diǎn)是節(jié)省成本,和能夠?qū)崿F(xiàn)靈活的電源控制:包括靈活控制開(kāi)關(guān)機(jī)、靈活調(diào)節(jié)各路電源輸出的電平(比如軟件可以在不需要SDRAM工作的時(shí)間段,通過(guò)PMU控制外部PMIC將輸出給SDRAM的電壓從3.3 V降到2.7 V,以減少SDRAM的功耗并保持其內(nèi)容不丟失)和動(dòng)態(tài)啟停PMIC的某一路或某幾路電源輸出?;诖祟?lèi)PMU,SoC可以實(shí)現(xiàn)包括降低電壓和關(guān)斷電源在內(nèi)的更多功耗管理模式。
冬眠(Hibernation)是SoC最省電的一種功耗模式,在此模式下,SoC中除RTC(實(shí)時(shí)時(shí)鐘單元)和PMU仍然保持工作外,SoC其余部分的供電被關(guān)斷從而進(jìn)入功耗最省狀態(tài);同時(shí)在SoC外部,動(dòng)態(tài)存儲(chǔ)器(SDRAM)保持供電且處于自刷新(Self?Refresh)狀態(tài)以維持其記憶體內(nèi)容不變。當(dāng)冬眠喚醒(Wakeup from Hibernation)被觸發(fā)后,PMU恢復(fù)SoC的正常供電并指示軟件從SDRAM直接啟動(dòng)系統(tǒng)。
另外,在PMU的開(kāi)關(guān)機(jī)控制中存在一個(gè)細(xì)節(jié)問(wèn)題:PMU所輸出的開(kāi)機(jī)使能電平是固定的,或?yàn)楦呋驗(yàn)榈?;在系統(tǒng)設(shè)計(jì)中必須保證PMU所輸出的開(kāi)機(jī)使能電平與電源管理控制器(PMIC)所要求的電平一致,否則就需要在PCB上添加反相器或重新選擇符合要求的PMIC。注意這個(gè)有效開(kāi)機(jī)使能電平的確定難以通過(guò)軟件的方法來(lái)解決,因?yàn)檐浖仨氃赟oC正常上電之后才能運(yùn)行,如果在芯片上電之前,PMU中預(yù)定的開(kāi)機(jī)使能電平與實(shí)際PMIC要求的電平不符,則無(wú)法正常開(kāi)機(jī)。
筆者在其公司最新設(shè)計(jì)的SoC中改進(jìn)了PMU的設(shè)計(jì),實(shí)現(xiàn)了自適應(yīng)開(kāi)機(jī)和冬眠功能。其中,自適應(yīng)開(kāi)機(jī)就是無(wú)論外部PMIC所要求的開(kāi)機(jī)使能電平是高是低,PMU通過(guò)自身硬件進(jìn)行自動(dòng)判別并記憶,然后輸出正確的開(kāi)機(jī)使能電平;同時(shí)PMU實(shí)現(xiàn)了特殊硬件機(jī)制使得系統(tǒng)開(kāi)發(fā)人員能通過(guò)軟硬件結(jié)合輕松實(shí)現(xiàn)冬眠功能。
1 電源管理單元
首先給出PMU的接口和寄存器設(shè)置,讀者由此可以把握本PMU設(shè)計(jì)的基本規(guī)范(spec)。如圖1所示。
1.1 PMU接口
VDDP/GNDP:專(zhuān)門(mén)給PMU供電的管腳, 一直有電(Always on Power);與之對(duì)應(yīng), VDDM/GNDM給外部SDRAM以及“冬眠”喚醒部件供電,VDDC/GNDC為主電源,給SoC其他功能模塊和系統(tǒng)其他部件供電。
圖1 電源管理單元接口
RSTn:復(fù)位輸入,低電平有效;在PCB上有一個(gè)由主電源VDDC供電的復(fù)位發(fā)生器(PoR)。當(dāng)VDDC掉電時(shí),RSTn將保持為低;當(dāng)VDDC上電時(shí),RSTn經(jīng)過(guò)一段延遲(如50 ms,不同復(fù)位發(fā)生器延遲不一樣)由低變高并停在高電平直到VDDC掉電。
CLK:32 kHz時(shí)鐘輸入,用于給按鍵計(jì)時(shí);(此時(shí)鐘為復(fù)用RTC模塊的低功耗高精度實(shí)時(shí)時(shí)鐘)。
PSI[1:0]:2個(gè)按鍵輸入接口, PSI[0] 用于開(kāi)關(guān)機(jī)鍵,PSI[1] 用于“冬眠”喚醒鍵;輸入值為低表示相應(yīng)鍵有按下。
PSO[1:0]:2個(gè)電源使能輸出接口,PSO[0]使能VDDC,PSO[1] 使能VDDM。
1.2 PMU寄存器
PVL:存儲(chǔ)電源有效使能電平,即指示電源VDDC和VDDM的有效使能電平;在手機(jī)初次上電或發(fā)生電源失效后恢復(fù)使用時(shí),此寄存器值可能不正確;每次開(kāi)機(jī)時(shí),其值由“自適應(yīng)開(kāi)機(jī)”邏輯來(lái)校正;該寄存器值也允許軟件修改。
2 自適應(yīng)開(kāi)機(jī)功能
2.2 “自適應(yīng)開(kāi)機(jī)”過(guò)程
初始狀態(tài):系統(tǒng)處于關(guān)機(jī)狀態(tài),除PMU,RTC仍然保持有電外,SoC其他模塊均處于掉電狀態(tài),具體初始信號(hào)如下:
PSI0:開(kāi)關(guān)機(jī)鍵值保持高,即沒(méi)有按下;
CLK:32 kHz時(shí)鐘一直有效;
RSTn:系統(tǒng)復(fù)位輸入保持為低,即復(fù)位有效;
PSO:電源使能輸出高阻,即關(guān)機(jī);
FSM:開(kāi)關(guān)機(jī)控制有限狀態(tài)機(jī)處于“關(guān)機(jī)”狀態(tài);
CNT:按鍵時(shí)間計(jì)數(shù)器保持清零狀態(tài)。
啟動(dòng)開(kāi)機(jī):用戶(hù)持續(xù)按下開(kāi)機(jī)鍵,觸發(fā)硬件邏輯變化,具體信號(hào)和狀態(tài)變化如下:
PSI0:開(kāi)關(guān)機(jī)鍵輸入為低電平,即該鍵按下;
CNT:計(jì)數(shù)器開(kāi)始計(jì)數(shù)(每隔一個(gè)CLK周期,計(jì)數(shù)器加1);
CMP:比較器在每個(gè)CLK周期都將CNT值與 {PFR[19:9],6’b111111}進(jìn)行比較,并將比較結(jié)果送給FSM;
FSM:當(dāng)收到比較相等的信號(hào),F(xiàn)SM進(jìn)入“開(kāi)機(jī)嘗試”狀態(tài),即控制PSO輸出PVL所指示的電平,同時(shí)復(fù)位計(jì)數(shù)器使之重新開(kāi)始計(jì)數(shù);
PSO:輸出PVL所指示的電平,即嘗試使能開(kāi)機(jī)上電;
RSTn:如果PVL所存值正確,上述上電過(guò)程成功,手機(jī)正常上電,經(jīng)過(guò)復(fù)位延遲后,復(fù)位變?yōu)闊o(wú)效idianndiane按鍵鍵;FSM進(jìn)入“開(kāi)機(jī)成功”狀態(tài)(等待開(kāi)關(guān)機(jī)鍵再次按下,然后進(jìn)入“關(guān)機(jī)”狀態(tài))。
初次或異常開(kāi)機(jī)過(guò)程:在手機(jī)初次上電或發(fā)生電源失效后恢復(fù)使用時(shí),PVL寄存器的值可能錯(cuò)誤;此時(shí)開(kāi)機(jī)過(guò)程基本同上,只是FSM進(jìn)入“開(kāi)機(jī)嘗試”狀態(tài)后,PSO輸出與PMIC期望相反的電平,此后的過(guò)程說(shuō)明如下:
CNT: 在FSM進(jìn)入“開(kāi)機(jī)嘗試”狀態(tài)后,重復(fù)開(kāi)始計(jì)數(shù);
CMP: 當(dāng)按鍵時(shí)間第二次達(dá)到閾值,比較器將再次輸出比較相等的信號(hào);
FSM: FSM在“開(kāi)機(jī)嘗試”狀態(tài)再次收到比較相等的信號(hào),將PVL值取反存入PVL寄存器;
PSO:保持輸出PVL所指示的電平,使能開(kāi)機(jī)上電;
3 冬眠功能
3.1 功能框圖和信號(hào)、構(gòu)件說(shuō)明
3.2 冬眠功能實(shí)現(xiàn)過(guò)程
3.2.1 進(jìn)入冬眠
(1)軟件保存快速啟動(dòng)代碼和當(dāng)前程序現(xiàn)場(chǎng)到SDRAM;
(2)軟件控制SDRAM進(jìn)入自刷新模式(CKE=0并保持到喚醒之后);
(3)軟件控制SoC預(yù)備進(jìn)入“冬眠”模式(包括停時(shí)鐘,關(guān)PLL等);
(4)軟件將快速啟動(dòng)的初始地址寫(xiě)入PSR;
(5)軟件將2’b10寫(xiě)入PCR(即關(guān)VDDC,保持VDDM);
(6)硬件上PSO0輸出高阻,PSO1輸出有效使能電平;由于VDDC掉電,RSTn拉低復(fù)位有效;CKE輸出為高阻,由下拉保持在低電平使SDRAM維持自刷新?tīng)顟B(tài)。
3.2.2 喚醒冬眠
(1)用戶(hù)按下指定鍵導(dǎo)致PSI1拉低達(dá)到閾值時(shí)間,觸發(fā)冬眠喚醒邏輯;
(2)硬件控制PSO0輸出有效使能電平使VDDC上電;
(3)SoC進(jìn)入復(fù)位階段,其中CKE的復(fù)位值為0;
(4)PoR在經(jīng)過(guò)固定延遲后太高RSTn,使復(fù)位失效;
(5)SoC進(jìn)入啟動(dòng)階段,控制權(quán)交給軟件;
(6)軟件判斷此為冬眠喚醒而非開(kāi)機(jī)啟動(dòng),控制SDRAM跳出自刷新?tīng)顟B(tài);讀PSR獲得啟動(dòng)地址,直接運(yùn)行SDRAM上的啟動(dòng)代碼,并回到冬眠前的現(xiàn)場(chǎng);
(7)軟件判斷引起冬眠喚醒的原因,執(zhí)行相應(yīng)操作。(在上述功能框圖中,KBIC被用作喚醒部件,按任意鍵都會(huì)引發(fā)“冬眠”喚醒,然后軟件通過(guò)I2C讀出鍵值確定所按何鍵)。
4 結(jié) 語(yǔ)
自適應(yīng)開(kāi)機(jī)功能簡(jiǎn)化了PCB上供電電路的設(shè)計(jì),也使系統(tǒng)設(shè)計(jì)者能自由選擇性?xún)r(jià)比更高的PMIC從而有助于降低整機(jī)成本;自適應(yīng)開(kāi)機(jī)的實(shí)現(xiàn)方法已由筆者所在公司申請(qǐng)專(zhuān)利保護(hù)。
本文所公開(kāi)的冬眠功能已成功用于電紙書(shū)的應(yīng)用:讀者閱讀當(dāng)前頁(yè)時(shí),SoC進(jìn)入冬眠狀態(tài),超級(jí)省電;當(dāng)讀者按動(dòng)翻頁(yè)鍵(PgDn或PgUp)時(shí),SoC快速?gòu)?fù)活并顯示下一頁(yè)或上一頁(yè)的內(nèi)容,然后又開(kāi)始冬眠。當(dāng)使用Mobile SDRAM作為外部動(dòng)態(tài)存儲(chǔ)器時(shí),筆者測(cè)量其電紙書(shū)參考系統(tǒng)的普通待機(jī)功耗為2.2 mA,而在“冬眠”狀態(tài)下的待機(jī)功耗為180 μA(主要來(lái)自Mobile SDRAM的自刷新功耗)。由是,利用冬眠功能本電紙書(shū)一次充電后的使用時(shí)間可從數(shù)周延長(zhǎng)到數(shù)月。
參考文獻(xiàn)
[1] RABAEY Jan M.數(shù)字集成電路設(shè)計(jì)透視[M].北京:清華大學(xué)出版社,1999.
[2] 郭煒,郭箏,謝憬.SoC設(shè)計(jì)方法與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2007.
[3] Ingenic Semiconductor. JZ4750 user manual [M]. Beijing: Ingenic Semiconductor, 2009.
[4] Ingenic Semiconductor. JZ4760 user manual [M]. Beijing: Ingenic Semiconductor, 2010.
[5] NXP Semiconductors. LPC17xx user manual [M]. [S.l.]: NXP Semiconductors, 2010.
[6] Marvell Semiconductor. ARMADA_100 hardware design manual 30 B [M]. US: Marvell Semiconductor, 2010.
[7] Freescale Semiconductor. IMX23RM [M]. US: Freescale Semiconductor, 2009.
[8] Freescale Semiconductor. IMX50CEC_RevD [M]. US: Freescale Semiconductor, 2011.
[9] Freescale Semiconductor. E reader solution [M]. US: Freescale Semiconductor, 2011.
[10] Micron Technology. 128Mb mobile SDRAMx16 datasheet of MT48H8M16LF [R]. US: Micron Technology, 2005.
[11] Infineon Technologies. 1Gb DDR2 SDRAMx16 datasheet of HYB18T1G400AF [R]. Germany: Infineon Technologies, 2004.
[12] Maxim Integrated Products. Reset circuit datasheet of MAX6412 [R]. [S.l.]: Maxim Integrated Products, 2011.
[13] ROHM SemiconTductor. Key encoder IC datasheet of BU1851GUW?E2 [R]. Japan: ROHM Semiconductor, 2009.