了解高效MCU設計的功率和性能權衡
MCU被用作幾乎所有可想像的應用程序的主要控制元件。它們的力量和靈活性使它們成為大多數設計的核心部件。使用MCU創建高效設計的關鍵常常依賴於在功率和性能之間做出智能權衡。許多MCU提供了幾種供MCU供電的選項,可以限制MCU時鐘速率,從而限制MCU的性能。了解操作電壓和操作時鐘速率之間的共同關係對於獲得下一個MCU設計最重要。
本文將快速回顧一些供MCU供電的常見選項,並討論可能導致的性能限制。在運行時修改操作電壓以獲得性能和功率效率的最佳組合的常用技術將被探討,以幫助您選擇和實現下一個基於MCU的設計。
頻率與工作電壓——關鍵性能考慮
性能和功率之間最基本的關係之一是MCU工作的電壓。操作電源與操作電壓直接相關(由於定義為功率等於電壓倍電流),所以在決定您將用於設計的MCU時,操作電源顯然是一個關鍵的考慮因素。你可能會認為這意味著你應該總是使用最低功率的MCU,但是如果性能在你的設計中是一個問題,你也需要考慮操作頻率作為一個關鍵元素,並且MCU的工作頻率經常受到它的工作電壓的限制。
許多MCU製造商理解操作電壓、操作頻率、MCU性能和MCU操作功率之間的關係的重要性,並且它們提供不同級別的操作功率和操作頻率,以便更容易地優化設計以最適合於YO。UR系統要求。作為一個例子,瑞薩RL78
MCU有四個不同的工作電壓範圍,每個都支持不同的工作頻率,如下面的圖1所示。在1.6 V和1.8 V之間,RL78可以在1 MHz和4
MHz之間的任何地方運行。在2.7 V和5.5 V之間,它可以在最大20 MHz下運行。因此,如果使用2.7 V而不是1.8 V,則RL78可以運行五倍的速度,只有50%的工作電壓增加。瑞薩RL78單片機的電壓-頻率圖像
圖1:瑞薩RL78 MCU的電壓頻率圖。
以上描述的在較高電壓下工作時提高功率效率的關係在許多MCU中是常見的,並且是理解當電源效率是您的設計中的關鍵要求時最重要的關係之一。在許多情況下,將MCU保持在儘可能低的功率狀態,也許是低睡眠模式,並在需要進行一些處理時喚醒它(可能是採樣感測器以查看是否需要採取進一步的行動),這是非常有效的。當需要處理時,通常以更快的頻率運行,以使高功率狀態下的時間最小化,功率效率更高。如果處理可以做五倍的快速,並且它只需要50%的操作功率增加,(如在RL78的情況下),您可以清楚地看到,所需的總能量將少得多,因此它將是一個更為省電的設計。
時鐘控制
MCU的操作頻率由時鐘控制塊管理;許多時鐘控制塊具有可用於選擇、控制和管理CPU、存儲器、外圍設備和模擬塊的時鐘源的特徵。通過控制這些塊的時鐘頻率,甚至關閉時鐘到某些處理常式中未被使用的特徵,可以調整動態電流的量(改變信號或存儲元件的電壓電平所需的電流),從而使用電流。最有效的方式。(注意,基於電池的應用,特別是,目前最有意識的設計,因為它是從電池提供的總電流,通常是最關鍵的約束。)
許多最常用和最有用的時鐘控制功能包含在微晶元PIC32 MX
MCU時鐘控制塊中,如圖2所示。大多數時鐘控制模塊的起始點是時鐘源,並且通過具有多個源,它可以獨立地優化多個模塊的時鐘。例如,PIC32
MX具有低功率的內部RC振蕩器(圖2底部附近的LPRC),當非常低的速度操作是可接受的時,它可以使用。它源於看門狗定時器(WDT),使得即使在非常低的功率模式下,這種關鍵定時器仍然可以使用。主振蕩器(POSC)使用外部晶體來產生由設備的最高性能部分使用的精確高速時鐘源,並饋送系統和USB PLL(在圖的頂部)。注意,單獨的PLL也意味著USB操作可以獨立於系統時鐘,提供額外級別的時鐘優化和潛在的功率節省。快速RC振蕩器(FRC)提供了一個8 MHz的時鐘源,如果不需要外部振蕩器,節省電路板空間,元件數量,並可能節省功率時,最高頻率和精度不需要。最後,次級振蕩器可用於來自外部32 kHz晶體的低功率操作。PIC32 MX1XX系列晶元的圖像
圖2:微晶元PIC32 MX1XX系列中的時鐘控制塊。
這種豐富的時鐘源可以被選擇並進一步通過後縮放器、預縮放器和兩個主PLL來劃分,以產生設備的各個子區段所需的頻率。16塊的固定除法和可選擇的FRC後標除法器(由FRCdIV輸入控制)為CPU和外圍設備(SysCLK)創建主時鐘。外圍時鐘可以通過附加的後定標器進一步劃分,以優化外圍時鐘速度,最小化在這些功能中產生的動態電流。圖2中顯示的許多時鐘選項可以通過配置寄存器來控制,或者根據程序員期望的性能級別自動選擇。現代MCU通過簡單的應用程序介面(API)調用使操作更複雜,即使是最複雜的時鐘管理器,在配置這些塊時,可以簡化和減少潛在的衝突。圖形嚮導、代碼示例和參考設計以簡化設計過程。
快閃記憶體性能與時鐘頻率
選擇MCU時經常忽略的一個方面是代碼快閃記憶體的性能。一些MCU具有快速的CPU周期時間,但是這些快速操作速度可能受限於代碼或存儲在快閃記憶體中的數據的訪問時間。例如,在ATMEL
AT32 UC MCU中,快閃記憶體周期時間與工作頻率有關,如下面的圖3所示。快閃記憶體等待狀態(FWS)的數目在33 MHz工作時為零,因此讀取訪問時間僅需要一個周期。在66 MHz的工作頻率下,快閃記憶體插入FWS,因此訪問時間需要兩個周期。因此,您可能期望以33 MHz的有效工作頻率結束,即使在運行66 MHz時鐘時也是如此。MCU製造商已經開發了幾種方法來減輕等待狀態的插入,因此,通常您支付的開銷遠小於整個開銷。ATMEL AVR AT32 UC單片機的圖像
圖3:Atmel AVR AT32 UC MCU的快閃記憶體等待狀態。
一種減輕快閃記憶體等待狀態的方法是流水線Flash介面,這是在ATMEL AT32 UC
MCU中採取的方法。這種流水線方法允許從順序存儲器位置讀取突發信息(到目前為止,絕大多數代碼存儲器訪問都是連續的,因為通常只需繼續執行下一個指令)而不需要讀取懲罰。這導致在有效周期時間內平均開銷只有15%,而不是您預期的全部100%。減輕慢速快閃記憶體訪問的另一種常見方法是使用本地內存緩存,以便重複訪問可以使用已獲取的數據,而不需要對較慢的快閃記憶體塊進行完全讀取。在設計中,您應該仔細查看快閃記憶體訪問和總體處理性能之間的相互作用,以確定您選擇的時鐘速度對整體處理性能的影響。把它關掉
MCU的最省電的操作模式之一是將設備完全關閉,導致零功耗。MCU的性能也是有效的零,所以這可能不是一個非常有用的方法,如果你需要確保一定數量的操作總是發生。例如,即使設備關閉,您也可能需要實時時鐘來保持準確的時間記錄。幸運的是,一些MCU可以在電池備份模式下運行,這樣即使在設備的其餘部分關機時,簡單的操作也可以繼續。
德克薩斯儀器提供了這樣的能力在MSP430X5XX/6xx單片機系列。如下面的圖4所示,如果主電源(DVCC)發生故障,電池備用塊從次級電源(VBAT)提供子系統。備份提供的子系統通常包含一個實時時鐘模塊(連同所需的LF晶體振蕩器)和一個備用RAM。塊的各種操作由寄存器位控制(帶有BAK前綴的信號),使得充電、選擇和ADC操作都可以由處理器來管理。當需要RTC和備用SRAM時,它們可以耗盡電池電壓,RTC甚至可以用來「開啟」其餘的MCU進行周期性操作。這節省了最大的功率量,並創建了一個非常空間有效和功率有效的控制系統,完全關閉(以零頻率運行)CPU,同時耗散非常小(實際上為零)的系統功率,也許是最終的功率性能折衷。
德克薩斯儀器MSP430X5XX/6XX單片機的圖像
圖4:德克薩斯儀器MSP430X5X/6XX單片機系列的電池備份子系統。
總結
使用MCU創建高效設計的關鍵常常依賴於在功率和性能之間做出智能權衡。許多MCU提供了幾種供MCU供電的選項,它們可以限制MCU時鐘速率,從而限制性能。管理時鐘,選擇正確的操作電壓電平,以及理解電壓電平和快閃記憶體性能之間的關係對於創建最有效率的MCU設計來說都是至關重要的。
推薦閱讀:
※為什麼國外的工程師在給單片機做死循環時喜歡用 for(;;) 而不是 while(1)?
※電容觸摸測試MCU的靈活性
※美國大學數學助理教授給您講解為什麼通貨膨脹不貶值DCEU的30億票房,為什麼依然是DCEU勝出。
※2016年全球十大MCU供應商排名,NXP超過瑞薩居首|半導體行業觀察
※CC2640R2: 靈活使用 IDE 的 post-build 功能來生成用於量產或者 OAD 的單個固件文件