低功耗嵌入式實(shí)現的方方面面
任何一個(gè)嵌入式設計都是在對電源供電結構進(jìn)行詳盡分析后才能完成的;同樣,對于恒定電源供電的有線(xiàn)系統也是如此。處理器和其周邊的硬件生態(tài)系統的消耗通常占電源的較大比例,因此,這就是所有的“重點(diǎn)”之所在。
本文引用地址:http://dyxdggzs.com/article/91242.htm在深入討論之前,我們先按次序討論一下術(shù)語(yǔ)。“能量”與做功的總量有關(guān),而“功率”是測量做功的速率(單位時(shí)間的能量)。電子學(xué)中,功耗= (系統元器件的電壓)ⅹ(流經(jīng)系統元器件的電流),能量=功率ⅹ時(shí)間。
因此,系統設計員通常關(guān)心總的能量消耗和峰值功耗。換句話(huà)說(shuō),使用的能量是從電池吸收的,但電池也需要提供足夠的瞬時(shí)能量以滿(mǎn)足峰值功率的要求。習慣上將集中討論功耗;然而,實(shí)際上也將論及系統中使用的能量和功率。
什么是“低功耗”
“低功耗”究竟指什么?從嵌入式觀(guān)點(diǎn)看,經(jīng)常將該術(shù)語(yǔ)同電池驅動(dòng)移動(dòng)設備聯(lián)系起來(lái),但該術(shù)語(yǔ)實(shí)質(zhì)上也是相對的。從功率尺度的最低端應用看,我們可以只簡(jiǎn)單地討論手表電池的例子。然而,在另一個(gè)極端,為了避免額外的設計負擔和費用(如熱同步、風(fēng)扇、調整器等),又需要構想使功耗最小的“插入式”系統。
畢竟現今的很多設計系統,諸如從汽車(chē)收音機到“插件箱”中的儀器板卡,都是根據交到OEM(原設備供應商)的規格構建的系統。為了確保銷(xiāo)售商之間的一致,這些規格經(jīng)常描述了嚴格的功率預算分配。關(guān)鍵點(diǎn)是,為了關(guān)注降低功耗,系統不一定非要用電池供電,或者非要“移動(dòng)”。
為了方便,可以將低功耗嵌入式系統分為三個(gè)不同類(lèi)型:
第一類(lèi)是在不使用時(shí)就關(guān)閉電源的系統。對于這類(lèi)應用,系統運行時(shí)的低電流消耗駕馭著(zhù)電池的壽命。這樣的應用實(shí)例包括便攜式媒體播放器、GPS設備和數碼相機,這些系統在工作狀態(tài)呈現出低功耗的特性,同時(shí)待機電流是“無(wú)關(guān)緊要”的,這是由于設備關(guān)閉時(shí)是不吸收電流的(如果使用了實(shí)時(shí)時(shí)鐘會(huì )有幾微安的電流)。通常根據不同的應用,處理器在有效工作狀態(tài)時(shí)的電流從幾十到幾百毫安。
第二類(lèi)中,將開(kāi)機或完全關(guān)閉的系統改進(jìn)為開(kāi)機或“待機模式”的系統。在待機狀態(tài),系統處于最低電流消耗狀態(tài),同時(shí)仍維持存儲區中的內容。對于這樣的系統,有效電流和待機電流消耗都很重要,此時(shí)有效電流的消耗與第一種情況相同,而待機電流通常則從數百微安到幾毫安。這種類(lèi)型的典型產(chǎn)品如VoIP移動(dòng)電話(huà)和聲控設備。該類(lèi)還包括這樣的情況,系統的某部分仍處于“監控”狀態(tài),在轉換到全速處理狀態(tài)之前等待某事件的發(fā)生。
第三類(lèi)由始終處于加電狀態(tài)的設備構成。這里,功率要求很可能在次毫安范圍內,這就直接限制了可實(shí)現的處理性能。此類(lèi)的應用實(shí)例包括手表和一些便攜式或植入式醫療設備。
有很多方法可以調整系統的功耗指標,以滿(mǎn)足應用要求,包括:
·動(dòng)態(tài)改變頻率和電壓;
·了解處理器內分離的供電范圍;
·分析代碼從而針對降低功耗做優(yōu)化;
·運用處理器的多種供電模式;
·從系統級關(guān)注功耗的產(chǎn)生。
本文將集中討論最后兩種方法,參考文獻部分列出了其他幾個(gè)主題的詳細說(shuō)明。
電源供電模式
許多應用涉及相對于其處理的需求有明顯差別的工作模式??紤]一個(gè)用電池供電并帶有嵌入處理器的傳感器。處理器的外設可能采集周?chē)h(huán)境的參數。在該模式下,不要求有計算功率,處理器可能要求突發(fā)讀入遙測數據的數據包。當處理器讀取足夠數據并開(kāi)始處理時(shí),則進(jìn)入“全速”工作模式,整個(gè)處理器就被喚醒,以最高的性能運行。當不需要傳感器數據也不需要處理時(shí),可提供超低功耗模式。
處理器要從各種各樣的掉電模式中喚醒,需要接收某種類(lèi)型的喚醒事件。外部事件可以是外部激勵,如標志引腳翻轉,或者內部處理器活動(dòng),如DMA傳輸完成或定時(shí)器滿(mǎn)等。
不同處理器上實(shí)現的確定電源供電模式有很大差別,但處理平臺之間通常也有一些共性,例如“全速”工作模式;“睡眠”模式,為了使系統快速恢復,即使處理器未使用的部分為省電處于無(wú)效,片上存儲器仍保持供電;以及“休眠”模式,此模式中,為了最大節省電源,片上存儲器也可以不供電。本文中,“待機模式”表示綜合的低功耗模式,這里的電流消耗和恢復到全速處理模式所需的時(shí)間需要進(jìn)行折中[v1],也就是電流越低,恢復到全速工作的時(shí)間就越長(cháng)。
為什么需要讓處理器定期進(jìn)入或退出待機模式呢?其實(shí)很簡(jiǎn)單,就是為了減少能量消耗和延長(cháng)電池壽命。在許多待機模式中,由于處理器仍然被供電,處理器可保留其所有的內部狀態(tài)和存儲器內容,但大大地減少了電流的吸收。此外,處理器喚醒需要占用幾毫秒時(shí)間,但這也比傳統的處理器從冷啟動(dòng)加載快得多。
休眠模式
“休眠”待機模式是特別有意思的,因為它通過(guò)完全關(guān)閉處理器內核電源,實(shí)現了最大的能量節省 (與“待機綜合”下的其他模式不同)。 當處理器內核的電源關(guān)閉后,不再維護處理器的內部狀態(tài),因此,任何保存在內部(存儲器內容、寄存器內容等)的關(guān)鍵信息,在關(guān)電前都必須提前寫(xiě)入到非易失性存儲器設備中。然而,即使關(guān)閉了處理器內核電源,休眠方式仍為使SDRAM保持“活躍”狀態(tài)提供了措施。在進(jìn)入休眠模式前,設置SDRAM進(jìn)入自刷新模式,并在喚醒后可以重新控制它,處理器允許將系統狀態(tài)存儲在易失性DRAM中,而不是非易失性Flash存儲器中,這樣,處理器在喚醒后就可以更快速自舉,否則,處理器還需要從非易失性存儲器重新載入程序代碼。
充分利用電源供電模式
現在考慮另一個(gè)具有代表性的情況,此時(shí)有不同的處理器供電模式,在功耗方面也有很大的差別??紤]一臺帶有輸入緩沖區的便攜式MP3播放器,將音頻數據解碼到SDRAM中的輸出緩沖區,然后將處理器置為待機模式,直到又需要新的數據為止。
由于MP3解碼處理要求低,在不需要處理的間隔,處理器可以進(jìn)入休眠狀態(tài),比如,設備可能工作在“25%解碼,75%休眠”的情形,也就是說(shuō),此時(shí)處理器在這個(gè)25%的時(shí)間時(shí),其內核吸收電流是30mA,而在75%的時(shí)間時(shí),處理器內核的吸收電流僅有15mA。在解碼間隔,處理器盡可能快的在外部存儲器中構建解碼的樣本,一旦達到了緩沖區期望的大小,處理器就進(jìn)入睡眠狀態(tài),直到需要更新數據緩沖區。
換句話(huà)說(shuō),如果通常進(jìn)行連續流MP3解碼,即75MHz,則可選擇以300MHz對在待機模式過(guò)程中收集的緩沖區數進(jìn)行解碼。這樣,處理器就在一個(gè)更高水平上運行,但其運行過(guò)程很短(在處理器又回到睡眠狀態(tài)前)。通過(guò)使睡眠時(shí)間最大化,就可以節省能量。這種方法只是對于像便攜式媒體播放器這樣的系統是有道理的,因為有時(shí)也需要視頻處理,否則,如果只是MP3解碼,就可使用更低性能(和低功耗)的處理器。
那如何管理處理器的喚醒速率呢?在本例中,音頻緩沖可以是雙緩沖,從DMA角度看,每個(gè)緩沖區就是一個(gè)音頻“線(xiàn)”,每個(gè)輸出線(xiàn)完成的中斷就標志處理器是時(shí)候用新數據填充剛為空的緩沖區了。在輸出緩沖區準備通過(guò)音頻口進(jìn)行播放之前,處理器很容易產(chǎn)生所需要的解碼后的輸出緩沖區數據,一旦處理器填滿(mǎn)了該緩沖區,它又進(jìn)入睡眠狀態(tài),然后不斷重復這一過(guò)程。
作為旁注,在上述例子,使用異步SRAM設備而不是SDRAM,更能節省成本和節省能量。當然,SRAM不能提供和SDRAM一樣的性能水平,但對于16bit或32bit訪(fǎng)問(wèn)的音頻數據, SRAM的性能就足夠了,這是因為采用DMA控制器并行訪(fǎng)問(wèn)數據,即使數據以低速SRAM速率出現,也很容易保持持續給串行接口提供解碼數據。
由于有較大的程序代碼,或者需要提高解碼的性能,即使應用中需要SDRAM,在設計中同時(shí)使用SRAM和SDRAM也是有道理的。當然使用的材料成本費用將增加,在系統中巧妙地使用兩者也可以最大化地節省功率。要求最高性能的部分應用可使用SDRAM,且每當處理器進(jìn)入睡眠后,即將SDRAM置為自刷新模式。在活躍處理期間,吸收的電流主要由處理器和SDRAM控制,這是因為基于mW/bit SRAM雖然不如SDRAM有效,但其尺寸大小通常比SDRAM小的多。
在低功耗應用中優(yōu)化功率消耗
利用系統級技術(shù)節省功耗與元器件級節省同樣重要,因為元器件經(jīng)常以共生的形式一起使用。當將處理器置為低功耗模式,許多不同的系統元器件都可以配置為用于喚醒處理器,比如,通過(guò)以太網(wǎng)、USB、實(shí)時(shí)時(shí)鐘或FLAG標志引腳上的觸發(fā)信號等都可以產(chǎn)生喚醒事件。
一個(gè)較好的系統級喚醒實(shí)例是通過(guò)串行口連接到處理器的外部WiFi芯片。 當處理器沒(méi)有活躍地運行時(shí),可以將它置入低功耗狀態(tài),僅讓W(xué)iFi芯片運轉。在這種工作狀態(tài),WiFi芯片中的微控制器幾乎不消耗電流,因為它僅僅查找與分配的MAC地址相關(guān)的數據包,一旦接收數據包,WiFi芯片就向處理器發(fā)送一個(gè)信號,喚醒處理器并開(kāi)始再工作。
實(shí)時(shí)時(shí)鐘
如果便攜式系統還承擔著(zhù)維護日歷時(shí)間的任務(wù),此時(shí)可用實(shí)時(shí)時(shí)鐘(RTC),從應用觀(guān)點(diǎn)(例如,將實(shí)際日期和時(shí)刻傳遞給用戶(hù))和功耗的觀(guān)點(diǎn)看,這都很重要。多數RTC都允許設置鬧鐘,在未來(lái)任何時(shí)間點(diǎn)提供喚醒功能。 因此,系統在不活躍的周期可轉入到待機模式,在監視、管理或者用戶(hù)通知任務(wù)等周期性間隔即可喚醒系統。
作為低功率系統中RTC是如何用的一個(gè)具體實(shí)例,讓我們假設對于GPS應用,需要每秒喚醒處理器獲得衛星的位置,RTC(吸收20μA)設置為每秒喚醒處理器,處理器轉入其低功耗模式(消耗50μA)。當RTC鬧鐘響起時(shí),處理器被喚醒,執行算法,獲取衛星座標,然后再回到睡眠狀態(tài)。因此,在這種應用中,僅有很低的“在線(xiàn)”占空比,主要工作時(shí)間僅需消耗70μA的電流。
無(wú)論是作為處理器的一部分,或作為連接到處理器的一個(gè)獨立芯片,RTC都需要一個(gè)獨立的電源域,當系統其他部分的電源關(guān)閉后它仍可以保持工作。RTC通常采用硬幣大小的微型電池供電工作,僅消耗微瓦級能量。由于擴展電池壽命十分重要,當系統連接使用了主電源,允許系統通過(guò)主電池(或線(xiàn)路電源)為RTC提供電源運行是明智的。當系統其他部分供電運行時(shí),圖1說(shuō)明了可用于節省RTC電池吸收電流的電路實(shí)例。
圖 1 RTC的主微型電池備用供給
輸入時(shí)鐘
處理器的輸入時(shí)鐘引腳提供必要的時(shí)鐘頻率、占空比和穩定性,通過(guò)片上鎖相環(huán)(PLL)模塊倍乘后,可產(chǎn)生精確的內部時(shí)鐘。時(shí)鐘引腳連接外部晶體或晶體振蕩器,使用晶體通常很便宜,但使用的晶振通常進(jìn)行了緩沖,還可以為系統中的其他部分提供可選的時(shí)鐘使用。例如,27MHz的晶振不僅可作為處理器時(shí)鐘輸入,還可以作為NTSC視頻編碼器或譯碼器的時(shí)鐘源。有時(shí),處理器本身也基于晶體輸入時(shí)鐘,提供緩沖的時(shí)鐘輸出,這就可節省購買(mǎi)晶振的費用。
基本振蕩頻率越低,晶體的封裝就越大,然而,更高頻率的晶體成本又高,因為它們更易碎。因為基頻越高,里面的石英就越薄。權衡是否使用晶體的另一個(gè)因素還有EM(電磁干擾)。要控制晶體可能泄漏到濾波器或者運放通帶內的寄生諧波,從系統角度看避免某個(gè)頻率倍數也是十分重要的。
在某些處理器中,當處理器進(jìn)入低功耗模式時(shí),可編程停止輸入晶振放大器驅動(dòng),這可節省幾個(gè)mA的吸收電流,而這樣做的開(kāi)銷(xiāo)來(lái)自于當處理器恢復正?;顒?dòng)時(shí),會(huì )增加開(kāi)機時(shí)間(由于時(shí)鐘設置延遲)。
USB
如今許多便攜式設備都有USB連接方式,USB除了作為普遍使用的到PC機的連接方式外,它也為設備提供了一種公共的供電源。當設備連接到PC機時(shí),它可使用主機作為源對其供電,這對于節省電池壽命有實(shí)際效果,同時(shí)也為嵌入式產(chǎn)品中的電池充電提供了一種方法。
USB供電的設備的供電屬性必須符合USB規范的預算,USB 1.1和USB 2.0協(xié)議限制每個(gè)設備的“總線(xiàn)供應”功率為2.5W(0.5A @ +5V),對于低功率設備如鍵盤(pán)或鼠標是足夠的。
USB標準也定義了支持更高電流的設備,但總功耗限制仍是2.5W,對于更高功率的設備,如打印機或顯示,標準的USB功率極限通常不夠,要求這些設備使用外部供電來(lái)滿(mǎn)足其功率需求。
從系統觀(guān)點(diǎn)看,當設備采用USB供電時(shí),如果有一段時(shí)間沒(méi)有使用該設備,則該設備必須進(jìn)入“掛起”狀態(tài),此時(shí)最大吸收電流是500uA。
可以采用各種各樣的設計方法設計系統來(lái)處理掛起模式,一種方法就是充分利用處理上的待機模式。當處理器進(jìn)入待機模式時(shí),可設置USB外設保持D+和D-引腳的狀態(tài),從該時(shí)刻開(kāi)始,處理器都處于低功耗模式,直到USB引腳中的一個(gè)發(fā)生狀態(tài)改變。這種狀態(tài)的改變可觸發(fā)外部調節器供電,然后處理器就可以上電,恢復狀態(tài),并從其停止的地方重新開(kāi)始執行。
顯然,有很多因素影響嵌入式應用的設備級和系統級功耗屬性,通過(guò)對影響功率的關(guān)鍵因素的理解,對任何特定的應用,在減小功耗方面就能取得重大進(jìn)展。
參考文獻:
[1] David Katz and Rick Gentile. Embedded Media Processing, Newnes: Boston, 2006
[2] Seliverstov T. EE-339: Using External Switching Regulators with Blackfin(r) Processors, Analog Devices, Inc. Revision 1.0. 【R/OL】. [2008-5-14]. http://www.analog.com/static/imported-files/application_notes/EE-339.pdf
[3] Katz D, Gentile R, Tarkoff J. EPC-33: Understanding all of your options in Low-Power Embedded Processing Designs, Embedded Power Conference Proceedings, September 2008 [C], San Jose
[4] Sondermeyer J, Beauchemin J, Desai H. EE-334: Using Blackfin(r) Processor Hibernate State for Low Standby Power. Analog Devices, Inc. Revision 1.0. [R/OL]. [2008-5-5]. http://www.analog.com/static/imported-files/application_notes/EE-334_Rev1.pdf
[5] Analog Devices, Inc, ADSP-BF52x Blackfin(r) Processor Hardware Reference, Volume 1, Chapter 16, Revision 0.31[R]. May 2008
[v1]技術(shù)翻譯錯誤
存儲器相關(guān)文章:存儲器原理
評論