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