當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

作者:Scott Pape,飛思卡爾微控制器部門系統(tǒng)工程師

電池供電設(shè)備,不管是電動牙刷、剃須刀、手機(jī)、個人數(shù)字助理(PDA)、MP3播放器,還是手無法夠到的遙控設(shè)備,都成為人們?nèi)粘I畹囊徊糠?。因此,電源管理對?dāng)今的嵌入式設(shè)計工程師來說是一件相當(dāng)重要的的事。普遍存在的微控制器在許多設(shè)備的應(yīng)用中為設(shè)計工程師提供了大量管理電源要求的方法。不同種類的MCU自身就擁有一系列節(jié)省電流消耗及許多節(jié)能特性。但是,在基于微控制器的設(shè)計中,對電源的管理不僅僅是選擇一個正確的微控制器這么簡單。

電源管理同樣也需要最有效地使用MCU自身的降低電流消耗及節(jié)能特性的發(fā)展策略。在系統(tǒng)層面上,即使你所選擇的MCU是獨立的,同樣能夠使用許多策略來進(jìn)一步延長您的應(yīng)用設(shè)備的電池壽命。

應(yīng)用實例:無線自行車?yán)锍瘫?

接下來,我們將以無線自行車?yán)锍瘫頌槔?,來展示有效的電源管理。該里程表由三部分模塊組成:一個位于車把上的控制面板,一個位于車輪中的速度傳感器及一個位于騎車者頭盔上的顯示器。

速度傳感器將自行車的轉(zhuǎn)速反饋給控制面板,控制面板則計算諸如:行車速度、行車?yán)锍?、行車時間及能量消耗此類信息,并將計算好的信息傳達(dá)給顯示器。下方圖1為一個自行車?yán)锍瘫砜刂泼姘宓姆娇驁D。

圖1:無線自行車?yán)锍瘫砜刂泼姘宸娇驁D,顯示了當(dāng)今MCU不斷增強(qiáng)的電源管理特性。

低功耗模式數(shù)量的增加

MCU幾何形狀趨小型化,以減小芯片面積,這會導(dǎo)致晶體管無法承受3V或3V以上電壓的直接作用。因此,就要在內(nèi)部邏輯中使用電壓調(diào)整器來降低電壓。

遺憾的是,這些電壓調(diào)整器會加大MCU的電流消耗。但是,由于功率大小等于電壓乘以電流,因此一個帶有調(diào)整器的1.8V至3V的系統(tǒng)功耗仍比一個不帶調(diào)整器的5V的系統(tǒng)功耗要低。

MCU很強(qiáng)地依賴于電源管理模式,在降低整體的工作電流的同時仍能支持調(diào)節(jié)電源和加快時鐘速度。新型MCU能夠提供許多低功耗模式來滿足這些要求,同時保持系統(tǒng)靈活性。飛思卡爾公司的MC9S08GB60 MCU有四種低功耗模式:深度停止?fàn)顟B(tài)(stop1)、中度停止?fàn)顟B(tài)(stop2)、輕度停止?fàn)顟B(tài)(stop3)和等待模式。

在等待模式下,通過關(guān)閉CPU時鐘來降低功耗,但是系統(tǒng)時鐘由其它MCU外設(shè)來支持工作,如:模-數(shù)(A-D)轉(zhuǎn)換器、計時器或串行通信模塊。該模式在外設(shè)需要工作的情況下用于降低功耗是相當(dāng)有效的,但是CPU在外設(shè)完成任務(wù)之前不能工作。

在我們的例子中,等待模式在串行外設(shè)接口(SPI)用于與射頻(RF)收發(fā)器通信情況下使用。

要想更進(jìn)一步降低功耗,可使用三種停止模式。Stop1、Stop2、Stop3分別提供不同級別的降低功耗操作。

Stop3是三種停止模式中功能性最強(qiáng)的一個。在Stop3模式下,片上電壓調(diào)整器處于省電模式,但仍能提供最低限度的調(diào)節(jié)來保留隨機(jī)存儲器(RAM)和輸入/輸出(I/O)寄存器的內(nèi)容。幾個中斷源和復(fù)位能夠?qū)CU從Stop3模式下喚醒。Stop3 是三種停止模式中唯一一個低電壓抑制(LVI)模塊和晶振仍能工作的模式。

在我們的例子中,在從速度傳感器讀取速度值之間的一段時間里,MCU處于等待狀態(tài),此時可使用Stop3模式。Stop3模式下工作的實時接口(RTI)功能可用于及時喚醒MCU以進(jìn)行下次讀取。

Stop2的功能性較之Stop3要弱些,但其功耗更低。在Stop2模式下,電壓調(diào)整器處于節(jié)電(powered down)狀態(tài)。但是,RAM內(nèi)容仍然保存著。I/O寄存器也處于節(jié)電狀態(tài),并且當(dāng)它從停止模式被喚醒時需要進(jìn)行重新配置。在Stop2中,能夠喚醒MCU的中斷源更少,但是仍具有RTI功能。回到我們的例子中來看,Stop2可取代Stop3來更進(jìn)一步降低功耗。由于該模式下RTI功能和RAM仍在工作,所以速度讀取之間的時間仍可被測得。

Stop1是MCU中功耗最低的模式。在該模式下,電壓調(diào)整器及所有外設(shè)、CPU、RAM和I/O都完全進(jìn)入節(jié)電狀態(tài)。只有復(fù)位和IRQ中斷腳能夠喚醒MCU。當(dāng)MCU能夠進(jìn)入節(jié)電狀態(tài),但在外部激勵下,如按下按鈕的情況下仍需做出反應(yīng)時可用Stop1模式。

在自行車?yán)锍瘫磉@個例子中,當(dāng)里程表處于節(jié)電狀態(tài)時可進(jìn)入Stop1模式。節(jié)電狀態(tài)下的Stop1模式是MCU中可能存在的功耗最小的模式,而不需從芯片上切斷電源。為什么不從芯片上將電源徹底切斷呢?因為從芯片上切斷電源需要使用一個更為昂貴的撥動開關(guān)。

同樣的,MCU可使用一個與中斷腳相連的按鈕開關(guān)來實現(xiàn)許多不同的作用。這些不同的作用取決于系統(tǒng)當(dāng)前的狀態(tài)。因此,Stop1模式能夠保持設(shè)計簡單、成本低廉、并且?guī)缀醪幌碾娏?,堪稱完美。

時鐘管理

許多設(shè)計師將低功耗與低時鐘頻率等同起來。而事實上,根據(jù)MCU正在進(jìn)行的不同操作及MCU可使用何種低功耗模式,以最高的速度工作事實上能夠降低功耗。

如果MCU擁有一個有效的低功耗模式,那么使它最長時間地處于該模式下能夠最大限度地降低功耗。因此,如果CPU在返回睡眠模式之前需要執(zhí)行代碼,那么以可能的最高速度完成代碼執(zhí)行,然后返回低功耗模式比持續(xù)以低速度工作消耗的電流少。

讓我們再來看看自行車?yán)锍瘫磉@個例子,假設(shè)控制面板每秒鐘更新速度一次,并且需要循環(huán)16,000個總線周期來計算數(shù)據(jù)并在顯示器上顯示出來。由典型的32kHz晶體工作,并且假設(shè)有一個普通的一分為二的總線時鐘,我們就能夠擁有16KHz的總線,在這種情況下,需要使用整整一秒鐘來完成計算。

現(xiàn)在,如果我們可以使用8MHz的總線時鐘,就可以僅花費2毫秒來完成計算,剩余的998毫秒可處于低功耗模式下。

當(dāng)然,并非MCU須執(zhí)行的每項任務(wù)都會得益于高速性能。在我們的例子中,如果數(shù)據(jù)速度相當(dāng)?shù)穆瑹o線通信所需的時間可能不需要8MHz的總線速率。因此,在這種情況下,要想將功耗最小化,我們就應(yīng)該盡可能慢地運行MCU,直至無線通信結(jié)束。

因此,我們需要一個時鐘靈活的MCU,如飛思卡爾公司的MC9S08GB60 MCU。擁有該設(shè)備,您可以使用高頻晶體、低頻晶體或內(nèi)部振蕩器。

擁有任一此類時鐘源,就可以隨意地使用片上頻率鎖定環(huán)(FLL)使總線速度成倍地升高或降低,來滿足任務(wù)需求并且使功耗達(dá)到最小化。圖2為自行車?yán)锍瘫砝又胁煌僮髂J较鹿牡母淖兦闆r。

圖2:在自行車?yán)锍瘫砝又?,如何通過高活性短脈沖及時間更長的非活性低功耗模式之間的轉(zhuǎn)化來進(jìn)行電源管理的圖。

延長電池壽命的系統(tǒng)硬件策略

除了低功耗模式及時鐘管理以外,想要使功耗最小化還應(yīng)在設(shè)計時考慮許多硬件和軟件方面的因素。從硬件角度來看,控制好MCU內(nèi)外的外設(shè)功耗能夠在很大程度上降低整體功耗。

禁止片上外設(shè)使用MCU控制寄存器是一個很直接的方法,但該方法的效果可能沒有直接禁用MCU外部外設(shè)那么明顯。使用通用的I/O引腳,可以控制外部電路的功耗。

里程表例子中是通過速度傳感器來測量車輪的速度。這可以通過將LED和光傳感器安裝于車架上,并將槽盤安裝于車輪中來實現(xiàn)。持續(xù)工作的LED和光傳感器將會消耗大量的電流。而使用I/O引腳,使LED和光傳感器只在進(jìn)行速度測量時工作,就將會大大降低電流。

當(dāng)前,分立元器件,如LED和光傳感器可以明顯地控制I/O,但僅限于能夠以類似模式控制的電路。如果這些器件需要的電流大于MCU能夠直接提供的電流,就可以使用緩沖器作為這些電路的電源開關(guān)。在某些情況下,將幾個I/O腳并聯(lián)在一起就能夠提供足夠的電流。

速度傳感器同樣有另一方法可以降低電流。如果持續(xù)讀取光傳感器來檢查光線是否穿過槽盤,那么MCU必須一直處于更高電流的工作模式。由于我們所關(guān)心的僅僅是從亮到暗或從暗到亮的轉(zhuǎn)變點,因此可以使用中斷來代替持續(xù)輪詢。中斷使MCU進(jìn)入一個低功耗的等待模式。MCU的計時器可以持續(xù)計數(shù),并且通過使用與光傳感器輸出相連的一個輸入捕捉特性,我們很容易就能夠測出速度傳感器的亮/暗時間,進(jìn)而算出每分鐘轉(zhuǎn)速(RPM)。

如果配置不當(dāng)?shù)脑?,MCU的I/O腳自身就會成為過載電流源。不用的引腳應(yīng)即時關(guān)閉,避免浮動輸入造成一個大的電流路徑。在使用采取多種封裝形式的MCU時,這一點常常會被忽略。

我們常常容易忘記最高引腳數(shù)版本的封裝中,可用引腳仍在較低引腳數(shù)版本的封裝硅片上。任何浮動的輸入引腳都會阻礙過載電流源電流的流出,在某些情況下阻礙作用會高許多倍,如溫度變化的情況下。在這些情況下,應(yīng)啟動內(nèi)部上拉或者如果該引腳是I/O引腳,可將其配置成輸出引腳(如果該引腳驅(qū)動的是開路,則與數(shù)據(jù)無關(guān))。

延長壽命的系統(tǒng)軟件策略

從軟件角度來看,有一些明顯的降低功耗的竅門。如前所述,保存能量的最佳方法就是盡可能長時間地處于最低功耗狀態(tài)。

由于在工作狀態(tài)下,CPU活躍地執(zhí)行各種指令,永遠(yuǎn)不會處于最低功耗狀態(tài)中。因此,我們必須將CPU需要執(zhí)行的工作量最小化。這就應(yīng)該使CPU更快地完成其任務(wù),讓MCU迅速返回低功耗模式中。

這兒有一些降低CPU工作時間的技巧。盡量使用最短的數(shù)據(jù)類型。當(dāng)寫入C代碼時,我們很容易忘記一點,即普通的整數(shù)常常被定義為16位或32位的數(shù)字,即使是在8位MCU的編譯器中亦是如此。

對于8位的器件,應(yīng)默認(rèn)使用8位字符類型,除非必須使用更長的字節(jié)。即使字節(jié)長度需要更長,同樣可以通過將16位或32位數(shù)字分解成幾個8位片段,只在數(shù)據(jù)處理最后階段才將其連接起來的方法就可以降低代碼長度。

如果有額外的內(nèi)存來使用直接插入碼,就應(yīng)避免使用短循環(huán)或子程序調(diào)用。每個循環(huán)和子程序都會使用額外的CPU周期來確認(rèn)循環(huán)是否完成,或者是將程序計數(shù)器推入堆棧和彈出堆棧。

如果你知道一個短循環(huán)只會執(zhí)行四次,那么就在一行之內(nèi)寫入四次相同的代碼,而避免使用for-next或while-loop循環(huán)語句。如果一個子程序只有10或20比特的代碼,考慮將其直接插入以取代使用子程序。在簡單的任務(wù)中,這種方法將大大降低CPU負(fù)載。

在適當(dāng)?shù)臅r候?qū)?shù)值預(yù)先計算好?;氐轿覀兊淖孕熊?yán)锍瘫砝又校鶕?jù)主控制面板是與顯示器還是與速度傳感器進(jìn)行對話,假設(shè)RF鏈路分別采用兩種波特率。當(dāng)寫入C代碼時,將實際波特率代替串行接口所需的實際預(yù)算數(shù)值傳輸給串行接口設(shè)置程序可能更好。

畢竟這會使代碼的可讀性更強(qiáng)些。但是,這同樣也導(dǎo)致串行接口程序不得不在波特率每次發(fā)生改變時都根據(jù)新的波特率計算出預(yù)算數(shù)值。將預(yù)算數(shù)值預(yù)先算好并傳輸給串行設(shè)置程序?qū)p少CPU周期和代碼長度。

要考慮使用查表方法取代復(fù)雜的計算。如飛思卡爾公司HCS08家族的MCU就擁有非常有效的訪問表格數(shù)據(jù)的指令和尋址模式。根據(jù)計算的復(fù)雜性,該方法能夠節(jié)省一些CPU的計算。如果計算仍不可避免,那么就應(yīng)在程序開始之前確保盡早退出計算。 簡單的例子是通過“1”或“0”搜索乘法運算。

本文小結(jié)

當(dāng)今的多功能微控制器能夠為電池供電應(yīng)用的設(shè)計工程師提供許多延長此類設(shè)備電池壽命的方法。多種低功耗模式和靈活的時鐘源讓設(shè)計工程師能夠?qū)?jié)能和所需的性能進(jìn)行管理,以實現(xiàn)設(shè)計目標(biāo)。當(dāng)CPU要求高時進(jìn)行高速運作,反之則進(jìn)行低速運作。要在任何可能的時候轉(zhuǎn)入低功耗模式。

除了對MCU自身功耗進(jìn)行管理之外,通過深謀遠(yuǎn)慮的系統(tǒng)規(guī)劃可使MCU管理整個系統(tǒng)的功耗。MCU能夠在需要時使系統(tǒng)內(nèi)的設(shè)備和電路開始運作或停止運作,幾乎如同MCU管理其片上外設(shè)一樣簡單。

不可忽視的是,軟件工程師們可以通過建立CPU周期意識來延長電池使用壽命。CPU所執(zhí)行的指令越少,MCU就能夠越快地進(jìn)入低功耗模式。創(chuàng)造許多簡單的函數(shù)可以縮短代碼長度,但是卻斷送了縮短電池壽命的努力。另一方面,盡可能使用最短的數(shù)據(jù)類型會在縮短代碼長度的同時延長電池壽命。

因此,下次選用電池供電系統(tǒng)設(shè)計時,別忘了對您的MCU做出明智的選擇,同時使用MCU能夠提供的所有功能來管理整個系統(tǒng)的功耗。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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ā)耗時1.5...

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

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

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

8月30日消息,據(jù)媒體報道,騰訊和網(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)星通信

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

關(guān)鍵字: 通信 BSP 電信運營商 數(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)閉