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

提交
查看更多評論
其他資訊
超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機械的智能化轉(zhuǎn)型
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲強基 | ??低晭砭手黝}演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會