低功耗MCU發(fā)威 智能手表電池壽命大增
延長(zhǎng)電池使用壽命是智能手表的首要開(kāi)發(fā)考量。為達(dá)成此一目標(biāo),設(shè)計(jì)人員須選用在工作/動(dòng)態(tài)模式下功耗較低,且能同時(shí)維持高性能運(yùn)作的微控制器(MCU),并導(dǎo)入快速喚醒功能,以便讓MCU盡可能處于休眠或閑置模式,進(jìn)一步降低系統(tǒng)總體功耗。
本文引用地址:http://butianyuan.cn/article/201710/367231.htm
圖1 智能手表將是未來(lái)的潮流。
所謂的智能手表該如何定義呢?基本上,智能手表是設(shè)計(jì)成手表外型、可戴式的運(yùn)算裝置,當(dāng)和智慧型手機(jī)無(wú)線(xiàn)連結(jié)時(shí),可提供更多的智慧型功能。一般常見(jiàn)的功能包括了日歷通知、電子郵件或簡(jiǎn)訊提示。若是同時(shí)還內(nèi)建感應(yīng)器,如加速度計(jì)或溫度感測(cè)器等,智能手表就能夠幫助記錄與監(jiān)控使用者的運(yùn)動(dòng)進(jìn)度、表現(xiàn)和心跳率等。有些手表還能控制音樂(lè)、讀取簡(jiǎn)訊,甚至能透過(guò)使用者手機(jī)的藍(lán)牙低功耗(Low Energy, LE)連結(jié),直接透過(guò)手表接聽(tīng)電話(huà)。
那么,對(duì)智能手表的開(kāi)發(fā)人員而言,什么是關(guān)鍵的設(shè)計(jì)考量?在產(chǎn)品設(shè)計(jì)過(guò)程中,很容易會(huì)不自覺(jué)地想加進(jìn)更多、更強(qiáng)大的功能。不過(guò)性能強(qiáng)大的手表應(yīng)用程式,通常得搭配相對(duì)強(qiáng)大的處理器,而強(qiáng)大的處理器卻往往很耗電,導(dǎo)致具有加分效果的性能提升,就這樣被功耗抵銷(xiāo)掉。畢竟,就算其功能再?gòu)?qiáng)大,誰(shuí)會(huì)愿意買(mǎi)一個(gè)每隔幾個(gè)小時(shí)就要充電一次的智能手表?
為了要延長(zhǎng)電池的使用時(shí)間,最好的辦法就是在考慮系統(tǒng)的心臟,也就是中央微控制器(MCU)時(shí),選擇在工作/動(dòng)態(tài)模式下功耗較低的元件。
在系統(tǒng)設(shè)計(jì)上(圖2),必須讓智能手表的中央微控制器,能夠在大部分時(shí)間維持在睡眠模式,而當(dāng)系統(tǒng)必須被喚醒來(lái)執(zhí)行任務(wù)時(shí),能夠不影響系統(tǒng)表現(xiàn),并在最短的時(shí)間內(nèi)被喚醒。
圖2 智能手表結(jié)構(gòu)圖
工作/動(dòng)態(tài)模式下維持低功耗
當(dāng)然,設(shè)計(jì)人員希望能在不犧牲性能的前提下具有最低功耗的工作模式,然而如果只是一味降低在工作/動(dòng)態(tài)模式下的功耗,也會(huì)因此降低了微控制器的運(yùn)算速度,導(dǎo)致微控制器將花費(fèi)更多時(shí)間處于工作模式,才能把任務(wù)執(zhí)行完成并進(jìn)入功耗更低的睡眠模式,最終反而會(huì)增加系統(tǒng)的平均功耗。另外大家都知道,系統(tǒng)的操作電壓越低,越能延長(zhǎng)電池的壽命。有些微控制器宣稱(chēng)工作電壓可低至1.8伏特(V),但實(shí)際上,當(dāng)其工作電壓在1.8V時(shí),不僅運(yùn)算速度降低,同時(shí)某些周邊功能可能無(wú)法正常運(yùn)作,這些都不是真的能幫助系統(tǒng)降低功耗的技術(shù)。
目前市場(chǎng)上已有業(yè)者推出能在低功耗的情形下維持高性能運(yùn)作的微控制器。如愛(ài)特梅爾(Atmel)的SAM4L微控制器系列,就能夠在不用改變產(chǎn)品規(guī)格的情況下,保持低至1.68V的工作電壓,并且維持最高性能,且其外圍周邊操作不受影響。根據(jù)費(fèi)氏(Fibonacci)基準(zhǔn),該系列是市面上擁有最低工作/動(dòng)態(tài)模式功耗(90μA/MHz)的ARM Cortex-M4微控制器。若再加以運(yùn)用功率調(diào)節(jié)(Power Scaling)技術(shù),可以進(jìn)一步平衡最大時(shí)脈速度和功耗(圖3)。
圖3 SAM4L微控制器在工作模式下的功耗表現(xiàn)
除此之外,如果設(shè)計(jì)人員選用的微控制器能夠提供不同的電壓調(diào)節(jié)器選擇,可進(jìn)一步降低在工作/動(dòng)態(tài)模式下的系統(tǒng)功耗。例如降壓或開(kāi)關(guān)穩(wěn)壓器能夠在操作電壓為 2∼3.6V時(shí)提供更高的功率,或是線(xiàn)性穩(wěn)壓器在1.68∼3.6V的范圍內(nèi)運(yùn)作,具有較高的抗噪性,而在小于2.3V范圍內(nèi)調(diào)節(jié)器則可達(dá)到最高功率。
快速喚醒能力攸關(guān)節(jié)能效益
前面有提到,為了要讓電池維持更長(zhǎng)的壽命,在智能手表的系統(tǒng)設(shè)計(jì)上,中央微控制器大部分時(shí)間必須維持在睡眠模式,因此如果能降低中央微控制器睡眠模式的功耗,將有助于進(jìn)一步降低系統(tǒng)的總體功耗。
可是,如果總是要花很長(zhǎng)時(shí)間從睡眠模式中喚醒系統(tǒng),這并非真正的節(jié)能。設(shè)計(jì)人員的終極目標(biāo)是要確保能快速將系統(tǒng)從睡眠模式中喚醒,并且能根據(jù)系統(tǒng)需求,有彈性地選擇不同睡眠模式,這樣一來(lái)系統(tǒng)就可以盡可能在深度睡眠模式中停留更長(zhǎng)的時(shí)間,而不會(huì)出現(xiàn)性能上的延遲,這才是真正的節(jié)能。
如前文所提及的SAM4L微控制器系列,具有來(lái)自于picoPower技術(shù)的超低睡眠模式電流特性,可以支援四種睡眠模式:睡眠、待機(jī)、保存和備用。在所有的模式下,以第一條指令抓取的喚醒,即使在最低功耗的睡眠模式下醒來(lái),也只需要1.5微秒(μs)的喚醒時(shí)間(圖4)。
圖4 SAM4L微控制器在睡眠模式下的功耗表現(xiàn)
該系列還具有非常靈活的喚醒配置。設(shè)計(jì)人員可使用內(nèi)部的電源管理器和備用電源管理,來(lái)開(kāi)啟和關(guān)閉系統(tǒng)時(shí)脈來(lái)源,并選擇喚醒來(lái)源。時(shí)脈來(lái)源由電源管理器控制,包括on-chip RC振蕩器,以及振蕩器和超精密數(shù)位相位鎖相環(huán)(DFLL)。在睡眠、待機(jī)和保存模式下,可以選擇任何來(lái)源以喚醒系統(tǒng)。
接下來(lái)將提及的夢(mèng)游(Sleep Walking)功能,也允許周邊功能在不須要系統(tǒng)定時(shí)器持續(xù)運(yùn)行的情況下,以非同步方式喚醒系統(tǒng);而在備用模式下,32kHz時(shí)脈或系統(tǒng)定時(shí)器,再加上通用異步收發(fā)器(UART)、外部中斷或電壓不足偵測(cè)(BOD)警告,便能喚醒系統(tǒng)。
事件系統(tǒng)/夢(mèng)游功能 進(jìn)一步降低系統(tǒng)功耗
事件系統(tǒng)(Event System)允許外圍周邊直接發(fā)送訊號(hào)或事件到其他周邊,而毋須藉由中央處理器(CPU)。舉例而言,定時(shí)器溢位(Timer Overflow)或類(lèi)比比較器輸出如有變化,不需要CPU即能觸動(dòng)類(lèi)比數(shù)位轉(zhuǎn)換器(ADC)轉(zhuǎn)換或啟動(dòng)直接記憶體存?。―MA)傳輸。那么事件系統(tǒng)能解決什么問(wèn)題呢?
首先,事件系統(tǒng)能讓CPU進(jìn)入更長(zhǎng)時(shí)間的睡眠或閑置狀態(tài),提升節(jié)能效果。再者,它能讓外圍周邊不須透過(guò)CPU即可互相通訊,因此CPU可以更集中執(zhí)行非CPU不可的任務(wù),進(jìn)而提升CPU表現(xiàn)。事件系統(tǒng)能提供事件一個(gè)恒定且100%可預(yù)測(cè)的反應(yīng)時(shí)間--在兩個(gè)時(shí)脈周期或 40奈秒(ns)內(nèi)發(fā)生反應(yīng)。如果是先藉由軟體程序的中斷,再透過(guò)CPU來(lái)執(zhí)行相同的任務(wù),則可能需要數(shù)微秒(μs)的反應(yīng)時(shí)間。此外,該系統(tǒng)允許多達(dá)八個(gè)周邊同時(shí)平行處理,因此不須要擔(dān)心中斷擁塞的情況發(fā)生(圖5)。
圖5 在事件系統(tǒng)運(yùn)作下,周邊可不透過(guò)CPU而互相通訊。
除了標(biāo)準(zhǔn)的同步事件之外,事件系統(tǒng)亦支援非同步事件。非同步事件甚至可以在系統(tǒng)時(shí)脈未運(yùn)行的情況下,在各種睡眠模式下執(zhí)行。這是透過(guò)一些先進(jìn)的電源管理器功能來(lái)達(dá)成的,例如夢(mèng)游功能和非同步喚醒功能。
夢(mèng)游功能允許外圍周邊透過(guò)請(qǐng)求模組的局部時(shí)脈,而不用系統(tǒng)定時(shí)器持續(xù)地運(yùn)行或非同步地喚醒元件,并且可以讓事件系統(tǒng)在各種睡眠模式下處理非同步事件。事件處理完成后,模組局部時(shí)脈的請(qǐng)求便會(huì)解除,讓模組回到睡眠狀態(tài)。簡(jiǎn)而言之,夢(mèng)游功能幫助系統(tǒng)進(jìn)一步降低功耗,不須要妥協(xié)于反應(yīng)時(shí)間,或是為了降低系統(tǒng)功耗而免去一些跟系統(tǒng)安全性有關(guān)的監(jiān)測(cè)功能。
接著舉一個(gè)將夢(mèng)游功能應(yīng)用于智慧管理外部溫度量測(cè)的實(shí)例。該應(yīng)用須要定期測(cè)量溫度,以決定它是否超過(guò)系統(tǒng)臨界溫度。如果超過(guò),該溫度讀數(shù)會(huì)被儲(chǔ)存在靜態(tài)隨機(jī)存取記憶體(SRAM)中,并交由CPU處理該數(shù)據(jù);如果沒(méi)有超過(guò),則系統(tǒng)會(huì)繼續(xù)維持在睡眠模式,CPU不會(huì)被喚醒或采取任何行動(dòng)。
夢(mèng)游功能讓CPU在整個(gè)事件過(guò)程中保持關(guān)閉狀態(tài)。首先,利用即時(shí)計(jì)數(shù)器(RTC)在固定的時(shí)間間隔下產(chǎn)生一個(gè)事件(測(cè)量溫度),同時(shí)利用夢(mèng)游功能來(lái)喚醒ADC進(jìn)行溫度測(cè)量,并比較該溫度和預(yù)設(shè)臨界值。再來(lái),ADC確定溫度沒(méi)有超過(guò)臨界值后,便會(huì)回到睡眠狀態(tài)。接著重覆以上的程序,繼續(xù)喚醒下一個(gè)ADC,量測(cè)到溫度上升到臨界值之上,CPU才會(huì)被喚醒。最后,DMA控制器將數(shù)據(jù)傳送到SRAM以進(jìn)行處理(圖6)。
圖6 夢(mèng)游功能的應(yīng)用范例
相較之下,傳統(tǒng)的微控制器在執(zhí)行同樣的應(yīng)用監(jiān)測(cè)例子時(shí),由于沒(méi)有夢(mèng)游功能,所以每一次都必須喚醒CPU來(lái)指示ADC去量測(cè)溫度,以確定系統(tǒng)溫度是否超過(guò)臨界值。但大多數(shù)的情況下,測(cè)量溫度都不會(huì)超過(guò)臨界值,更不須要再執(zhí)行什么動(dòng)作,如此反覆操作將耗去很多能量。即使這是一個(gè)在多數(shù)時(shí)間都處于睡眠模式的系統(tǒng),卻仍然產(chǎn)生很大的能量損失,大幅降低電池壽命??梢詮膱D7中很明顯地比較出來(lái),具備夢(mèng)游功能的微控制器,消耗的能量遠(yuǎn)遠(yuǎn)小于傳統(tǒng)的微控制器。
圖7 MCU具有夢(mèng)游功能時(shí)的功耗
完美的智能手表也許不存在,畢竟不同的人有不同需求。有些人喜歡時(shí)尚精簡(jiǎn)的手表,有的喜歡支援強(qiáng)大功能、帶有觸控大表面的手表,不過(guò)有些條件,例如延長(zhǎng)電池壽命則是無(wú)論如何都不能缺少的。
如果設(shè)計(jì)人員能選用在工作和睡眠模式下功耗較低、能在最短的時(shí)間內(nèi)從睡眠中被喚醒,同時(shí)帶有獨(dú)特低功耗特性,如事件系統(tǒng)和夢(mèng)游功能等的微控制器,想要設(shè)計(jì)出不須在性能上做任何妥協(xié)即可執(zhí)行強(qiáng)大功能的應(yīng)用軟體,并同時(shí)擁有持久電池壽命的智能手表,將不再是一個(gè)不可能的任務(wù)。
評(píng)論