32位低功耗MCU設計
MCU功耗來自何處
本文引用地址:http://m.butianyuan.cn/article/174763.htm在開始討論低功耗MCU設計前,必須先探討MCU功耗的來源,其主要由靜態(tài)功耗及運行功耗兩部分組成。考慮實際的應用,最后決定系統(tǒng)功耗性能指針則必須計算平均功耗。
運行功耗
現代 MCU 已整合相當多的的模擬外圍,不能單純考慮數字電路的動態(tài)功耗。MCU 運行時的總功耗由模擬外圍功耗和數字外圍的動態(tài)功耗相加而得。模擬電路的功耗通常由工作電壓及其性能要求指針來決定,例如 100 ns 傳遞延遲 (Propogation Delay) 的比較器工作電流可能約為 40 微安,當允許傳遞延遲規(guī)格為 1 μs 時,工作電流有機會降到個位數微安。
數字電路的動態(tài)功耗主要來自開關頻率、電壓及等效負載電容,其計算公式如下:
PDynamic (動態(tài)功耗) ~ f (工作頻率) x CL (等效負載電容) x VDD2 (工作電壓)
由以上公式可以理解到降低動態(tài)功耗最直接的方式為降低工作電壓及工作頻率。但 MCU 實際應用面通常要求更寬廣的工作電壓及更高的效能。在降低工作電壓方面,可以選擇更新近的制程,并透過 LDO 讓 CPU 內核、數字電路及與管腳輸出入電壓無關的模擬外圍在低壓操作,IO 管腳及需要與其他外部電路連接的模擬外圍則在較高的系統(tǒng)電壓操作。如此可以兼顧低功耗及寬工作電壓的需求。在降低工作頻率這項參數上,一個設計優(yōu)良的 32 位 MCU更能突顯其效能優(yōu)勢,除了直覺的 MIPS 比較之外,32 位總線也代表更高的數據存取帶寬,能以更低的工作頻率達到相同的效能,進而降低整體功耗。另外,如果 MCU 內建與操作頻率相關的模擬外圍,例如石英晶體震蕩電路、嵌入式閃存或電流式 DAC,其電流消耗與轉換頻率成正比,也要納入低功耗 MCU 的動態(tài)功耗設計考慮。
靜態(tài)功耗
傳統(tǒng)靜態(tài)功耗的定義是指系統(tǒng)時鐘源關閉時數字電路的漏電流。但是在混合信號低功耗 MCU 的設計中要同時考慮下列多種漏電流來源,包含數字電路漏電流、SRAM 漏電流、待機時已關閉的仿真電路漏電流 (例如 ADC,嵌入式閃存)、待機時不關閉的仿真電路工作電流 (例如 LDO、BOD) 及 IO 管腳的漏電流。因為時鐘源已關閉,影響靜態(tài)功耗的主要參數為制程、電壓及溫度。所以降低靜態(tài)功耗必須選擇超低功耗制程,但是低功耗制程通常伴隨較高的 Vt,導致低電壓模擬外圍設計困難。另外,以MCU待機電流 1微安的規(guī)格,代表數字電路漏電 + RAM 保持電流 + LDO 工作電流 + BOD (降壓偵測或重置電路) 工作電流總和必須小于 1微安,對于 Flash,RAM 越來越大及功能越來越多的低功耗 MCU 設計廠商而言,是十分艱巨的挑戰(zhàn)。
平均功耗
在系統(tǒng)級要兼顧低功耗及高效能,必須考慮實際應用面的需求,例如無線環(huán)境傳感器可能讓 MCU 主時鐘及 CPU 關閉,只開啟低頻時鐘,定時喚醒外圍電路進行偵測,當符合設定條件的事件發(fā)生時快速啟動 CPU 進行處理,即使沒有任何事件發(fā)生,也必須定時激活 CPU 維持無線傳感器網絡的聯機。在遙控器的應用中,則可能完全將所有時鐘源都關閉,當用戶按鍵時快速喚醒時鐘源及 CPU 進行處理。另外,許多應用都會加入一個 MCU 作為主機處理器的協處理器,用于監(jiān)控鍵盤或紅外線輸入、刷新顯示器、控制主處理器電源以及智能電池管理等任務。此時平均功耗比單純的運行功耗或待機功耗更具指標性意義。
平均功耗由下列主要參數組合而成: 運行功耗及運行時間,靜待功耗及待機時間,不同運行模式之間的切換時間。茲以下圖進行說明:
平均電流 (IAVG) =(I1 x T1+I2 x T2+I3 x T3+I4 x T4+I5 x T5+I6 x T6)/(T1+T2+T3+T4+T5+T6)
因為進入待機模式時間很短,忽略此段時間的電流消耗,公式可以簡化為:
均電流 (IAVG) =(I1 x T1+I3 x T3+I4 x T4+I5 x T5+I6 x T6)/(T1+T3+T4+T5+T6)
由以上公式觀察到除了降低運行電流及靜態(tài)待機電流外,降低運行時間、喚醒時間及高低速運行模式切換時間也是降低整機功耗的重要手段。另外,上圖同時指出,低功耗 MCU 支持動態(tài)切換運行時鐘頻率是必要的功能。
低功耗 MCU 設計考慮
制程選擇
為了達到低功耗的運作,并能有效地在低耗電待機模式下,達到極低的待機功耗,可以透過對制程的選擇而站上基本的要求門坎。在不強調速度極致的某些制程分類,選擇極低組件截止電流制程 (如下圖) 進行邏輯閘制作,并進行數字設計是方法之一。選擇這種策略的額外效益是,通常也能在降低動態(tài)操作電流上,達到較佳的表現。 另外,由于高溫大幅增加靜態(tài)電流,當溫度由攝氏 25度增加到攝氏 85度時,一個典型比例約增加 10 倍的靜態(tài)電流,以非低功耗 0.18 微米制程開發(fā)的 32 位 MCU,邏輯閥門數 200K、4KB SRAM 在核心電壓 1.8V、攝氏25度的靜態(tài)耗電約為 5 ~ 10 微安,當溫度升高到攝氏 85度時,靜待電流將會飆高到 50 ~100 微安。而低功耗制程在攝氏85度僅約 10微安靜態(tài)電流。
低功耗高效能的 CPU 內核
早期低功耗 MCU 受限于成本及制程技術,大都選擇 8 位 CPU 內核,但隨著工業(yè)上的智能化也在展開,如遠程監(jiān)控,數字化、網絡化等。簡單說來,就是人物之連結 (云端應用)、物物之連結 (物聯網) 需求越來越多,導致產品功能越來越復雜,運算量越來越高,8 位 MCU 已逐漸無法滿足效能需求。 為了兼顧低功耗高效能,選擇適用的 32 位 CPU 內核乃大勢所趨。
選擇低功耗 CPU 內核,除了單位頻率耗電流外,還需要綜合考慮緊湊的低內存代碼,相同功能所需的代碼越長,除了增加內存成本,也代表更長的運行時間及功耗。另外,由于軟件開發(fā)成本在后期將會越來越高,大量的參考代碼及更多的第三方開發(fā)商的支持,都可以有效降低軟件的開發(fā)時間及成本。所以選擇一款更多人使用的 CPU 內核也是重要的考慮之一ARM CortexTM-M0 閥門數僅 27K,使用的電量在 1.8V,超低泄漏 180ULL (Ultra Low Leakage) 僅約 50μA/MHz.M0 內核采用 Thumb2 指令集架構,產生出非常緊湊的低內存代碼,進一步降低了電源需求。ARM 自 2009 年發(fā)表了 32 位 CortexTM-M0 內核以來,包括 NXP、新唐科技、ST、Freescale 等多家國內外 MCU 大廠相繼投入 CortexTM-M0 MCU 開發(fā),不論供貨或者品種的齊全度都已十分成熟,投入 CortexTM-M0 的 MCU 開發(fā)商也在持續(xù)增加中。
低功耗數字電路
對于一般的同步數字電路設計,要使數字單元有效降低操作電流,透過控制時鐘的頻率或截止不需要的時鐘跳動,也是重要的方法。低功耗MCU通常配備豐富的時鐘控制單元,可對各別的數字外圍單元,依照需求做降頻或升頻的操作調整,在達到運作能力的同時,用最低的頻率來運行。但為了達到更彈性的時鐘源配置,可能導致 CPU 內核和外圍電路時鐘不同步的現象,此時必須仔細考慮電路設計,保證跨時鐘領域數據存取的正確性。
另外為了盡量降低 CPU 介入處理時間或降低 CPU 工作頻率而節(jié)省下來的功耗,可以提供 DMA 或外圍電路相互觸發(fā)電路進行數據的傳遞,例如 Timer 定時自動觸發(fā) ADC 或 DAC,并透過 DMA 進行數據由 ADC 到 RAM 或者 RAM 到 DAC 的搬移,同時在 ADC 的輸入可以增加簡單的數字綠波及平滑化電路,如此不須要 CPU 經常介入處理,也不會因為需要實時處理 ADC 或 DAC 事件導致中斷程序占用太多時間,降低系統(tǒng)的實時性及穩(wěn)定性。
支持多種工作模式
為了配合不同的應用需求,并達到系統(tǒng)平均功耗的最小化,低功耗 MCU需要提供多種操作模式,讓用戶靈活調配應用,常見的操作模式有下列數種:
正常運行模式:CPU 內核及外圍正常工作,能實時改變 CPU 及外圍的工作頻率 (On the Fly) 或關閉不需要的時鐘源以獲得最佳的工作效能。
低頻工作模式:CPU 內核及外圍工作于低頻的時鐘源,例如 32.768K 晶震或內部低頻 10K RC 震蕩器。通常此時最大的耗電來源為嵌入式閃存及 LDO 本身的耗電流。如果此時的執(zhí)行程序不大,可以考慮將程序運作于 RAM 以降低平均功耗。請注意并不是所有 MCU 都能支持在 RAM 執(zhí)行程序。
Idle 模式:CPU 內核停止,時鐘源和被致能的外圍電路持續(xù)工作,直到外圍電路符合設定條件喚醒 CPU 進行數據處理或控制執(zhí)行流程。通常高頻的運行模式,CPU 及嵌入式閃存消耗相當大比例的電流,故 Idle 模式能有效降低平均功耗。
評論