物聯(lián)網(wǎng)與智慧生活風(fēng)潮興起,帶動市場對高效能且低功耗的32位元微控制器(MCU)需求增溫,因此微控制器業(yè)者已積極從制程和中央處理器(CPU)核心選擇,以及電路設(shè)計等層面著手,以降低動態(tài)與靜態(tài)功耗,并兼顧整體運算效能。
傳統(tǒng)的低功耗微控制器(MCU)設(shè)計都是以8位元MCU為主,因為8位元內(nèi)核閾門相對較少,運行或泄露的電流低,售價也相對低廉。然而,許多新興的應(yīng)用皆需要比8位元內(nèi)核更大的處理效率。
近年智慧生活的抬頭、物聯(lián)網(wǎng)的興起,手持式消費性電子產(chǎn)品與無線功能需求愈來愈高、設(shè)計愈來愈復(fù)雜,要提高性能的同時又要兼顧低功耗,需要有一高性能、低功耗的主控MCU做為平臺。此外,工業(yè)上的智慧化也在展開,如遠端監(jiān)控、數(shù)位化、網(wǎng)路化等。簡言之,云端應(yīng)用和物聯(lián)網(wǎng)需求越來越多,已導(dǎo)致產(chǎn)品功能愈來愈復(fù)雜,運算需求愈來愈高。
2009年安謀國際(ARM)發(fā)表32位元Cortex-M0內(nèi)核,提供MCU廠商一個強而有力的平臺,加上制程微縮技術(shù)的進步,嵌入式快閃記憶體制程普及化及降價,主要成本來自記憶體大小及類比周邊和輸入輸出(I/O)接腳數(shù)量,中央處理器(CPU)內(nèi)核的成本差異已大幅縮短,更促進高性價比32位元低功耗MCU的快速發(fā)展。
運行與靜態(tài)耗電量組成MCU功耗
在開始討論低功耗MCU設(shè)計前,必須先探討MCU功耗的來源,其主要由靜態(tài)功耗及運行功耗兩部分組成。實際的應(yīng)用,須藉由計算平均功耗,決定最后系統(tǒng)功耗性能指標(biāo)。
動態(tài)功耗與工作電壓和頻率相關(guān)
現(xiàn)代MCU已整合相當(dāng)多的類比周邊,不能單純考量數(shù)位電路的動態(tài)功耗。MCU運行時的總功耗,由類比周邊功耗和數(shù)位周邊的動態(tài)功耗相加而得。類比電路的功耗通常由工作電壓及其性能要求指標(biāo)來決定,如100奈秒傳遞延遲(Propagation Delay)的比較器工作電流可能約為40微安培;當(dāng)允許傳遞延遲規(guī)格為1微秒時,工作電流有機會降到個位數(shù)微安培。
數(shù)位電路的動態(tài)功耗主要來自開關(guān)頻率、電壓及等效負載電容,其計算公式如下:
PDynamic(動態(tài)功耗)~f(工作頻率)xCL(等效負載電容)xVDD2(工作電壓)
由以上公式可以理解到降低動態(tài)功耗最直接的方式,為降低工作電壓及工作頻率,但MCU實際應(yīng)用面通常要求更寬廣的工作電壓及更高的效能。在降低工作電壓方面,可以選擇更先進的制程,并透過線性穩(wěn)壓器(LDO)讓CPU內(nèi)核、數(shù)位電路及與接腳輸出入電壓無關(guān)的類比周邊在低壓操作;I/O接腳及須與其他外部電路連接的類比周邊,則在較高的系統(tǒng)電壓操作,如此可以兼顧低功耗及寬工作電壓的需求。
在降低工作頻率這項參數(shù)上,一個設(shè)計優(yōu)良的32位元MCU更能突顯其效能優(yōu)勢,除了直覺的每秒可執(zhí)行多少百萬指令(MIPS)比較之外,32位元匯流排也代表更高的資料存取頻寬,能以更低的工作頻率達到相同的效能,進而降低整體功耗。另外,若MCU內(nèi)建與操作頻率相關(guān)的類比周邊,例如石英晶體振蕩電路、嵌入式快閃記憶體或電流式數(shù)位類比轉(zhuǎn)換器(DAC),其電流消耗與轉(zhuǎn)換頻率成正比,也要納入低功耗MCU的動態(tài)功耗設(shè)計考量。
靜態(tài)功耗縮減挑戰(zhàn)重重
傳統(tǒng)靜態(tài)功耗的定義是指系統(tǒng)時脈源關(guān)閉時,數(shù)位電路的漏電流,但是在混合訊號低功耗MCU的設(shè)計中,要同時考慮下列多種漏電流來源,包含數(shù)位電路漏電流、靜態(tài)隨機存取記憶體(SRAM)漏電流、待機時已關(guān)閉的模擬電路漏電流(例如ADC、嵌入式快閃記憶體)、待機時不關(guān)閉的模擬電路工作電流(如LDO、電壓不足偵測(BOD))及I/O接腳的漏電流。
由于時脈源已關(guān)閉,影響靜態(tài)功耗的主要參數(shù)為制程、電壓及溫度。也因此,降低靜態(tài)功耗必須選擇超低功耗制程,但是低功耗制程通常伴隨較高的Vt,導(dǎo)致低電壓類比周邊設(shè)計困難。另外,以MCU待機電流1微安培的規(guī)格,代表數(shù)位電路漏電+隨機存取記憶體(RAM)保持電流+LDO工作電流+降壓偵測或重置電路(BOD)工作電流總和必須小于1微安培,對于快閃記憶體、RAM越來越大,及功能越來越多的低功耗MCU設(shè)計廠商而言,是十分艱鉅的挑戰(zhàn)。
運行、待機和喚醒時間不容忽視
在系統(tǒng)級要兼顧低功耗及高效能,必須考慮實際應(yīng)用面的需求,如無線環(huán)境感測器可能讓MCU主時脈及CPU關(guān)閉,只開啟低頻時脈,定時喚醒周邊電路進行偵測;當(dāng)符合設(shè)定條件的事件發(fā)生時,快速啟動CPU進行處理;即使沒有任何事件發(fā)生,也必須定時喚醒CPU,維持無線感測器網(wǎng)路的連線。
在遙控器的應(yīng)用中,則可能完全將所有時脈源都關(guān)閉,當(dāng)使用者按鍵時,快速喚醒時脈源及CPU進行處理。另外,許多應(yīng)用都會加入一個MCU做為主處理器的輔助處理器,用于監(jiān)控鍵盤或紅外線輸入、刷新顯示器、控制主處理器電源及智慧電池管理等任務(wù)。此時,平均功耗比單純的運行功耗或待機功耗,更具指標(biāo)性意義。
平均功耗由運行功耗和運行時間、靜態(tài)功耗和待機時間,以及不同運行模式之間的切換時間等主要參數(shù)組合而成。茲以圖1進行說明。
圖1 不同運行時間電流大小的變化
平均電流(IAVG)=(I1xT1+I2xT2+I3xT3+I4xT4+I5xT5+I6xT6)/(T1+T2+T3+T4+T5+T6)
因為進入待機模式時間很短,忽略此段時間的電流消耗,公式可以簡化為:
平均電流(IAVG)=(I1xT1+I3x 3+I4xT4+I5xT5+I6xT6)/(T1+T3+T4+T5+T6)
由以上公式觀察到,除了降低運行電流及靜態(tài)待機電流外,降低運行時間、喚醒時間及高低速運行模式切換時間,亦為降低整機功耗的重要手段。另外,圖1同時指出,低功耗MCU支援動態(tài)切換運行時脈頻率是必要的功能。
實現(xiàn)低功耗MCU設(shè)計 開發(fā)商考量須面面俱到
低功耗MCU設(shè)計考量包括制程選擇、低功耗/高效能CPU核心、低功耗數(shù)位電路、支援多種工作模式、電源系統(tǒng)、豐富的喚醒機制/快速喚醒時間、低功耗類比周邊與記憶體等,以下將進一步說明之。
制程選擇至關(guān)重要
為了達到低功耗的運作,并能有效地在低耗電待機模式下,達到極低的待機功耗,制程的選擇極為重要。在不強調(diào)速度極致的某些制程分類,選擇極低元件截止電流制程(圖2)進行邏輯閘制作,并進行數(shù)位設(shè)計是方法之一。
圖2 不同制程元件截止和晶片待機電流變化
選擇這種策略的額外效益是,通常也能降低動態(tài)操作電流,達到較佳的表現(xiàn)。另外,由于高溫大幅增加靜態(tài)電流,當(dāng)溫度由攝氏25度增加到攝氏85度時,一個典型比例約增加十倍的靜態(tài)電流。以非低功耗0.18微米制程,開發(fā)邏輯閥門數(shù)200K、4KB SRAM的32位元MCU為例,在核心電壓1.8伏特、攝氏25度的靜態(tài)耗電約為5?10微安培;當(dāng)溫度升高到攝氏85度時,靜待電流將會飆高到50~100微安培;而若采用低功耗制程,在攝氏85度時,靜態(tài)電流僅約10微安培。
選用低功耗/高效能的CPU內(nèi)核
早期低功耗MCU受限于成本及制程技術(shù),大都選擇8位元CPU內(nèi)核,但隨著工業(yè)智慧化的發(fā)展,導(dǎo)致產(chǎn)品功能更加復(fù)雜,運算量更高,8位元MCU已逐漸無法滿足效能需求;為了兼顧低功耗高效能,選擇適用的32位元CPU內(nèi)核乃大勢所趨。
選擇低功耗CPU內(nèi)核,除了單位頻率耗電流外,還須要綜合考量小容量的低記憶體代碼,相同功能所需的代碼越長,除了增加記憶體成本,也代表更長的運行時間及功耗。另外,由于軟體開發(fā)成本在后期將會越來越高,大量的參考代碼及更多的第三方開發(fā)商的支持,均可有效降低軟體的開發(fā)時間及成本。也因此,選擇一款更多人使用的CPU內(nèi)核也是重要的考量之一。
控制數(shù)位電路時脈
對于一般的同步數(shù)位電路設(shè)計,要使數(shù)位單元有效降低操作電流,透過控制時脈的頻率或截止不需要的時脈跳動,也是重要的方法。低功耗MCU通常配備豐富的時脈控制單元,可對個別的數(shù)位周邊單元,依照需求做降頻或升頻的操作調(diào)整,在達到運作能力的同時,用最低的頻率來運行。但為了達到更彈性的時脈配置,可能導(dǎo)致CPU內(nèi)核和周邊電路時脈不同步的現(xiàn)象,此時必須仔細考慮電路設(shè)計,保證跨時脈領(lǐng)域資料存取的正確性。
另外,為了盡量降低CPU介入處理時間或降低CPU工作頻率而節(jié)省下來的功耗,可提供直接記憶體存取(DMA)或周邊電路相互觸發(fā)電路進行資料的傳遞,如定時器(Timer)定時自動觸發(fā)ADC或DAC,并透過DMA進行資料由ADC到RAM,或者RAM到DAC的搬移,同時在ADC的輸入可以增加簡單的數(shù)位濾波及平滑化電路,如此不須要CPU經(jīng)常介入處理,也不會因為須要即時處理ADC或DAC事件,導(dǎo)致中斷程序占用太多時間,降低系統(tǒng)的即時性及穩(wěn)定性。
支援多種工作模式
為了配合不同的應(yīng)用需求,并達到系統(tǒng)平均功耗的最小化,低功耗MCU須要提供多種操作模式,讓使用者靈活調(diào)配應(yīng)用,常見的操作模式有下列數(shù)種:
?。_\行模式
CPU內(nèi)核及周邊正常工作,能即時改變CPU及周邊的工作頻率(On the Fly)或關(guān)閉不需要的時脈源,以獲得最佳的工作效能。
.低頻工作模式
CPU內(nèi)核及周邊工作于低頻的時脈源,如32.768kHz晶振或內(nèi)部低頻10K電阻電容(RC)振蕩器,通常最大的耗電來源,為嵌入式快閃記憶體及LDO本身的耗電流。若此時的執(zhí)行程序不大,可以考慮將程序運作于RAM,以降低平均功耗。請注意并不是所有MCU都能支援在RAM執(zhí)行程序。
.Idle模式
CPU內(nèi)核停止,時脈源和被啟動的周邊電路持續(xù)工作,直到周邊電路符合設(shè)定條件,喚醒CPU進行資料處理或控制執(zhí)行流程。通常高頻的運行模式,CPU及嵌入式快閃記憶體消耗相當(dāng)大比例的電流,故閑置(Idle)模式能有效降低平均功耗。
?。龣CRAM保持模式
CPU內(nèi)核及所有時脈源關(guān)閉,內(nèi)建LDO切換到低耗電模式,但是RAM及I/O接腳持續(xù)供電,維持進入待機之前的狀態(tài)。
?。甊TC模式
CPU內(nèi)核及高頻時脈源關(guān)閉,內(nèi)建LDO切換到低耗電模式,由于此時LDO供電能力降低,僅能提供低耗電的周邊電路運行,如32.768kHz晶振、即時時脈計數(shù)器(RTC)、BOD、TN單色LCD直接驅(qū)動電路等。
.深層待機模式
CPU內(nèi)核及所有時脈源關(guān)閉,關(guān)閉RAM及LDO、BOD等所有周邊電路的電源,僅I/O接腳(或部分I/O接腳)持續(xù)供電,由I/O接腳或重置(Reset)接腳喚醒CPU。因為此模式下,RAM的資料已丟失,通常會進行內(nèi)部電源切割,提供數(shù)十個狀態(tài)記錄暫存器,做為系統(tǒng)重啟時的初始狀態(tài)參考源。此模式的優(yōu)點是更低的靜態(tài)電流,通常僅需100?500奈安培,其缺點是并非所有的應(yīng)用都可以忍受RAM資料丟失及系統(tǒng)重啟。
電源系統(tǒng)的考量
在多電源系統(tǒng)的應(yīng)用上,必須考慮低功耗MCU的內(nèi)部電源規(guī)畫或自動切換,以下以市電/備用電池雙電源系統(tǒng)及內(nèi)建通用序列匯流排(USB)介面,但平常由電池供電的行動裝置來舉例說明。
?。须?備用電池雙電源系統(tǒng)
MCU平常由市電經(jīng)由交直流轉(zhuǎn)換電路供電,當(dāng)市電斷電時,經(jīng)由連接在備用電源的獨立供電接腳進行供電,同時在MCU內(nèi)部進行電源切割,并提供一個可靠的備用電源自動切換開關(guān),確保市電正常供電時備用電池不會持續(xù)被消耗。
但仔細考慮,其實有兩種狀況可能發(fā)生,一種是備用電池僅供電給部分低耗電的周邊電路,如32.768kHz晶振、RTC時脈電路、資料備份暫存器等。當(dāng)市電來時,MCU將重新啟動;另外一種狀況是當(dāng)市電斷電時,有可能MCU及部分周邊電路會被喚醒工作,然后再次進入待機模式。智慧型電表就是此類應(yīng)用的典型代表。在此種應(yīng)用中,備用電池須要供電給整顆MCU,所以電源自動切換開關(guān)必須能承受更高的電流,相對成本也較高。
?。畠?nèi)建USB介面行動裝置
此類裝置平時由兩節(jié)電池供電或鋰電池供電,工作電壓可能為2.2?3伏特,當(dāng)連接到USB時,USB介面轉(zhuǎn)由VBUS供電。此類低功耗MCU如果沒有內(nèi)建5伏特轉(zhuǎn)3伏特的USB介面,LDO將會產(chǎn)生下列問題,當(dāng)連接USB時,必須由外掛的LDO將USB VBUS的5伏特電源轉(zhuǎn)換為3伏特電源,同時提供給MCU VDD及USB介面電路,但又必須避免LDO輸出的3伏特電源,與離線操作時的電池電源發(fā)生沖突,將會須要外加電源管理電路,增加系統(tǒng)成本及復(fù)雜度。
豐富的喚醒機制及快速喚醒時間
有許多的系統(tǒng)應(yīng)用場合,須由外部的單一訊號、鍵盤或甚至串列通訊訊號,激發(fā)MCU啟動整體系統(tǒng)的運作。在未被激發(fā)的時候,MCU或甚至大部分的整機須處于最低耗電的待機狀態(tài),以延長電池的壽命。
能夠在各式需求下被喚醒,也成為MCU的重要特征。MCU能擁有各式不同的喚醒方式,包括各I/O可做為激發(fā)喚醒的通道,或是由內(nèi)部整合電路(I2C)、通用異步收發(fā)器(UART)、串列周邊介面(SPI)的通道做為被外界元件觸發(fā)喚醒,或使用內(nèi)、外部的超低耗電時脈源,透過計時器來計時喚醒。諸多的喚醒機制,只要運用得當(dāng),并配合MCU的低耗電操作切換模式,可使MCU幾乎時時處于極低功耗的狀況。
配有快速、高效率內(nèi)核的MCU,可以在每次喚醒的當(dāng)下短暫時間里,完成應(yīng)有的運作與反應(yīng),并再次進入深層的低待機模式,以此達到平均耗能下降的目的。但是,若喚醒后開始執(zhí)行微指令的時間因為某些因素而拖延得很長,將會使降低總體耗電的目標(biāo)大打折扣,甚至達不到系統(tǒng)反應(yīng)的要求。因此,有些MCU配合起振時間的改進,及邏輯設(shè)計的配合,使得喚醒后執(zhí)行指令的時間至少降到數(shù)個微秒之內(nèi)。
低功耗類比周邊及記憶體e#
低功耗類比周邊及記憶體
低功耗MCU在運行時,除了CPU內(nèi)核及被啟動的數(shù)位周邊電路在工作外,愈來愈多被整合到內(nèi)部的類比周邊電路亦是耗電的主要來源。以最簡單的執(zhí)行序來分析運行功耗,共包含下列耗電來源:CPU內(nèi)核、時脈振蕩器、嵌入式閃存記憶體及LDO本身的消耗電流。代入以下典型值數(shù)據(jù)將會更清楚顯示各個部分對耗電的影響:
運行頻率12MHz,MCU電壓3伏特,LDO輸出1.8伏特供給CPU內(nèi)核、記憶體及其他數(shù)位電路;低功耗Cortex-M0內(nèi)核:600微安培;嵌入式快閃記憶體:1.5毫安培;低功耗12MHz晶振電路:230微安培;LDO本身的靜態(tài)消耗電流:70微安培。
總和=0.6+2+0.23+0.07=2.4毫安培,平均功耗約200μA/MHz。其中耗電比例最高的是嵌入式快閃記憶體。若要運行在更高頻率,通常會啟動內(nèi)建的鎖相回路(PLL)提供更高頻率的時脈源,在1.8伏特供電的典型PLL,12MHz輸入輸出、48MHz工作電流約為1?2毫安培,若不能有效降低PLL耗電,對高頻工作的低功耗MCU將是一大電流負擔(dān)。
LDO的最低靜態(tài)功耗、32.768kHz晶振電路、BOD及扭轉(zhuǎn)向列型液晶顯示器(TN LCD)驅(qū)動電路的工作電流,都會大大影響到待機或RTC模式的功耗指標(biāo)。以低功耗應(yīng)用的熱能表為例,RTC加LCD顯示的功耗要求在3V/8微安培以下,這代表可以預(yù)估分配給下列電路的電流預(yù)算為:LDO靜態(tài)功耗0.5微安培+32.768kHz晶振及RTC電路1微安培+BOD1微安培+TN LCD驅(qū)動4微安培+LCD玻璃1微安培+所有數(shù)位電路及類比周邊漏電流0.5微安培。這些類比周邊除了低耗電要求,同時必須兼具要求批量生產(chǎn)及溫度變化時的一致性,這對類比設(shè)計人員將是一大挑戰(zhàn)。
快速喚醒這個性能指標(biāo)也會影響到下列類比周邊的穩(wěn)定時間。當(dāng)MCU從低耗電的待機模式喚醒時,首先要將LDO快速切換到高供電模式,啟動內(nèi)部高速RC振蕩器,使能嵌入式快閃記憶體及CPU,以上所有電路的穩(wěn)定時間總和必須在數(shù)個微秒內(nèi)完成,才能符合快速喚醒的需求。
另外一個容易被忽略的設(shè)計是周邊電路啟動電流,因為相當(dāng)多的可攜式裝置采用CR2032小型鋰電池,瞬間推動力僅有數(shù)毫安培,尤其使用一段時間瞬間推動力會更低,當(dāng)MCU被喚醒時,若周邊電路啟動電流總和太大時,將會導(dǎo)致CR2032輸出電壓驟降,致使MCU重置(Reset)或工作不正常。為了避免此問題,除了降低周邊電路的啟動電流,另一種方法是分時分段啟動周邊電路,不要集中開啟太多耗電的電路。
平均功耗計算范例
為了讓讀者更具體了解平均功耗的計算,以新唐科技的低功耗32位元MCU Nano系列及血糖計應(yīng)用為例,進行使用年限的預(yù)估。
此血糖計范例采用CR2032 230mAh電池,使用方式、運行功耗及靜態(tài)功耗如表1所示。
使用年限的計算方式請參考表2。量測時間比例、顯示時間比例及待機時間比例可由表2求得。例如,量測時間比例為六次×0.25分鐘/(60×24)分鐘=0.1%。其余時間比例依此類推。量測平均電流為量測時間比例×(MCU運行耗電流+外部量測電路耗電流+待機(含RTC)耗電流+LCD耗電流+CR2032自放電)。顯示平均電流為顯示時間比例×(待機(含RTC)耗電流+LCD耗電流+CR2032自放電)。待機平均電流為待機時間比例×(待機(含RTC)耗電流+CR2032自放電)。最后計算出使用年限約為2.77年。由于待機時間比例高達99%,故血糖計應(yīng)用待機電流為延長使用年限最重要的參數(shù)。
低功耗MCU開發(fā)須兼顧性價比要求
低功耗MCU設(shè)計是一個須多面向考慮的復(fù)雜工作,本文僅闡述基本設(shè)計理念。開發(fā)低功耗MCU產(chǎn)品時,不只要挑戰(zhàn)電路設(shè)計的高困難度,更要由客戶應(yīng)用的角度考慮性價比,功能最強的不一定是最好的,往往性價比最適合的產(chǎn)品,才能在市場上取得成功。由于智慧電網(wǎng)、物聯(lián)網(wǎng)、遠端控制、自動化管理等低功耗、高效能應(yīng)用需求量持續(xù)增加,在可預(yù)見的未來,32位元低功耗MCU將逐漸取代8、16位元低功耗MCU,成為市場主流。
評論
查看更多