Cortex UART ARM DSP FPU 嵌入式

善用Cortex-M3/M4休眠特性 嵌入式系統節能效益再提升

設計人員為滿足車身系統或是工業控制系統等高敏感度的實際應用,在設計處理器時,須考量如何具備高效能的運算控制、節能及低功耗等特性。而ARM Cortex-M3/4涵蓋多項理想的效能及功能,將有助於嵌入式設計開發出更符合成本效益的方案。
許多嵌入式開發人員對安謀國際(ARM)Cortex處理器的架構頗為熟悉,但鮮少有人有機會對這種普及的架構瞭若指掌,而足以充分發揮其特有的特性與功能。

新的ARM Cortex-M4處理器亦是如此,其具備經過改良的架構、固有的數位訊號處理(DSP)功能和選配式浮點加速器,使精於此道的程式設計人員或硬體工程師可以善用它的優勢。本文將仔細探究基於Cortex-M3以及新款Cortex-M4微控制器一些更有趣(而且經常被忽視)的特性。

基於Cortex-M3微控制器多半應用於可攜式裝置,且電力來自電池或能源採集系統,因此本文所探討的概念大部分都牽涉到在設計上減少整體耗能的技術。然而,在許多情況下,這些節能技術也是設計處理器優化應用時有利的工具,可提供更符合成本效益的解決方案、更大的處理空間,進而配合升級與新功能,以及有助於產品的效能與功能在競爭激烈的市場上脫穎而出。

和ARM在1980年代打造的原始16位元處理器核心十分雷同的是,ARM Cortex系列是以哈佛式精簡指令集機器為基礎,精簡的電路布局可展現出高效能以及程式碼和記憶體的效率。該架構在過去十年間大有進展,擴展出三種不同的次族群(或類型),以滿足特定應用的需求,包括A型產品針對高效能的開放應用平台而優化、R型處理器其功能可提升即時應用的效能與可靠度、M型處理器系列有利於拓展嵌入式微控制器應用,其效能可在能源效率與低解決方案成本間得到平衡。

現階段,Cortex-M系列的應用已普及至智慧型儀表、人機介面裝置、汽車與工業控制系統、白色家電、消費電子產品和醫療器材等領域。

Cortex-M3與Cortex-M4的比較

Cortex-M3架構背後的概念為具成本敏感性的應用設計處理器,同時提供高效能的運算與控制。這些應用包括汽車車身系統、工業控制系統和無線網路/感測產品。

Cortex-M3系列為32位元ARM處理器架構引進多項重要的功能,包括不可遮罩式中斷、高度確定性、巢式、向量型中斷和獨立位元操作,以及選配式記憶體保護(MPU)。

此外,Cortex-M3除具備理想的運算效能外,其處理器的中斷結構,還能確保系統迅速回應現實世界的事件,同時提供動態與靜態耗能。Cortex-M3和Cortex-M4處理器共用許多相同的要素,包括晶片內建除錯功能,以及能執行完整ARM指令集,或是用於THUMB2處理器中的子集。

Cortex-M4處理器指令集增添有效率的數位訊號處理器功能,包括單週期延長的16/32位元乘法累積(MAC)、雙16位元MAC指令、優化的8/16位元單指令多資料流程(SIMD)算術及飽和算術指令。整體來說,兩者最顯著的差別為Cortex-M4具備選配式單精度(IEEE-754)浮點單元(FPU)。Cortex-M3與Cortex-M4詳細的架構比較如圖1所示。

圖1 Cortex-M3和Cortex-M4處理器核心的比較


串列周邊添力 Cortex-M處理器節能/易用

嵌入式設計成敗經常取決於系統效能、耗能和解決方案成本之間的適當平衡。在許多情況下,開發人員都能以Cortex-M處理器的功能優化產品成本或能源需求,同時維持或是強化其效能。例如,Cortex-M核心原本就具備串列輸入/輸出(I/O)功能,可用來節能和簡化開發,以及把周邊裝置空出來讓其他應用作業使用。

除傳統串列線除錯功能外,基於ARM Cortex-M微控制器還透過單接腳串列線瀏覽器輸出(SWO)提供指令追蹤介面,如圖2所示。這個接埠可將「printf格式」除錯訊息,直接傳遞給應用程式碼,SWO可讓除錯訊息直接以任何標準的IDE瀏覽。此外,這些訊息也可用獨立的SWO瀏覽器瀏覽,像是Segger的J-Link SWO Viewer軟體,或是芯科實驗室(Silicon Labs)的energyAware Commander。由於SWO輸出建在核心HW本身上面,因此這是Cortex-M核心與生俱來的優點。SWO不會浪費微控制器任何可能已經處於應用狀態的固定UART。

圖2 ARM Cortex SWO介面


SWO除錯還有一個重要的優勢,在於微控制器進入最低的休眠模式時,可以把除錯連線保持在啟用的狀態,相較於傳統的除錯連線邏輯,如果遇到這種情況時,多半都不會啟動。SWO指令追蹤還可用來抽樣程式計數器,幫忙IDE統計出程式各項功能花多少時間,而這些統計數字可跟電流測量數字結合起來,進而微調設計耗能。

採用Cortex-M核心的微控制器製造業者正開始了解這項優點,且有些廠商已經為這個目的,把用電狀況和電流測量硬體納入自身的開發平台。以芯科實驗室EFM32 Gecko微控制器為例,其啟用和開發套件全都包含用電測量輸出,並可搭配energyAware Profiler工具的程式追蹤。圖3顯示畫面能讓設計人員立即看出哪些程式功能最耗費能源,並讓其他與能源有關的問題能迅速排除。

圖3 energyAware Profiler工具的電流追蹤圖


聰明休眠 將每微瓦電力用到極致

ARM Cortex-M處理器的退出時休眠(Sleep-on-exit)指令是另一項一箭雙鵰的功能,可同時節省中央處理器(CPU)的週期與用電。這點在由中斷所驅動的應用中格外有用,因為處理器所花的時間大部分不是在執行中斷處理器,就是在中斷事件之間休眠。

進入中斷服務常式(ISR)時,微控制器必須以好幾個指令週期,把執行緒的現有狀態推到堆疊上,然後在復原時把它丟出去。

當應用是處理器在中斷服務常式後,直接復原到休眠時,傳統微控制器仍然必須把它的儲存狀態資訊恢復,執行緒的程式碼才能讓裝置休眠。同樣地,當下次的中斷把裝置喚醒時,它的狀態就必須再次推到堆疊上。

基於ARM Cortex-M微控制器的Sleep-on-exit啟動時,裝置就會在中斷服務常式完成後直接進入休眠,而不用回到執行緒上(圖4)。這會使處理器保持在中斷狀態,因而省下寶貴的機器週期,因為在喚醒時,通常都須要把正常的狀態推到堆疊上。

圖4 ARM Cortex-M的Sleep-on-exit指令執行流程



去掉堆疊的週期後,它就同時省下不必要的指令週期所要消耗的時間與能源,以及傳統微控制器在管理休眠和喚醒狀態之間的堆疊時所需要的任何程式碼,而且萬一處理器被停止除錯的要求喚醒,未堆疊的流程也會立刻執行。

Cortex-M4具備運作快、深度休眠特性

Cortex-M3/4處理器與許多微控制器一樣,經常可以為由中斷所驅動的應用節能,因為它的時脈速度跑得比較快。假如處理器有很多時間都是花在休眠模式上,這種有違直覺但運用普遍的節能手法就很好用,因為它省下的啟用時間要比它略高的操作電流划算得多。整體而言,多花一成的電可以省掉兩成的時間,就能達到節能效果。

這種技術可用在任何Cortex-M系列處理器上,而Cortex-M處理器的額外功能,也為涉及密集運算作業的應用帶來好處。Cortex-M的單週期DSP指令和選配式浮點加速器,大大減少諸如數位訊號處理、過濾、分析或波形合成等功能所需要的執行週期數。

有些應用只需要DSP的處理馬力,例如有些安全系統採用的裝置是以聲學分析來感測玻璃破損。當玻璃破損時會發出一連串不同的聲音與震動,以玻璃特有的天然頻率形成共鳴,以這個例子來說,就是13kHz。

大多數系統採用的感測器介面,只有在偵測到指示器的頻率時,才會把處理器喚醒。可是當設計中使用的CPU是由Cortex-M4 DSP所帶動時,它就能額外節能,因為它在執行實際的玻璃破損分析時,比軟體型的解決方案要快。這些基於Cortex-M4微控制器的應用可以更加節能,因為裡面包含理想的休眠模式和自發性的周邊裝置,它會趁CPU還在休眠時執行許多常式作業。

例如,配有Cortex-M4的Wonder Gecko MCU就有五種不同的低耗能模式,具有20奈安培(nA)的關機狀態和950奈安培深度休眠模式(執行即時時脈、隨機存取記憶體(RAM)和暫存器的內容全數保留,並啟動電壓不足偵測器)。

Cortex-M4的節能功能還具備其他優勢。以超音波/聲學式水表類應用為例,其長年都必須靠小型電池來運轉,因此微控制器要盡量能長久保持在休眠模式中。

除有助於縮短甦醒時間,Cortex-M4 DSP和浮點數學指令還省去對昂貴超音波流量感測器的需求,而是用精密的過濾功能,從平價聲學偵測器的輸出中擷取必要的資訊。在這個應用實例中,Wonder Gecko MCU周邊裝置是當作類比狀態的機器,只會在需要時把Cortex-M4處理器喚醒,故能達到額外的節能。

本文提及的ARM Cortex-M系列重要功能雖然不盡完備,但應該已能充分說明如何才能以對自己有利的方式,把Cortex-M系列一些較不為人知的功能運用到下次的設計中,以發揮Cortex-M的優勢。

(本文作者為芯科實驗室微控制器產品應用工程經理)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!