當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 引言許多嵌入式開發(fā)人員對(duì)ARM Cortex處理器架構(gòu)頗為熟悉,但很少有人能夠?qū)@種流行架構(gòu)了如指掌,從而可以充分發(fā)揮它獨(dú)特的特性和性能。新型ARM Cortex-M4處理器尤為如此,它擁有引以為豪的增強(qiáng)架構(gòu)、天生的數(shù)字信

 引言

許多嵌入式開發(fā)人員對(duì)ARM Cortex處理器架構(gòu)頗為熟悉,但很少有人能夠?qū)@種流行架構(gòu)了如指掌,從而可以充分發(fā)揮它獨(dú)特的特性和性能。新型ARM Cortex-M4處理器尤為如此,它擁有引以為豪的增強(qiáng)架構(gòu)、天生的數(shù)字信號(hào)處理(DSP)能力和可選的浮點(diǎn)加速器,使精于此道的程序設(shè)計(jì)人員或硬件工程師可以充分發(fā)揮它的優(yōu)勢(shì)。本文接下來將就Cortex-M3/M4微控制器(MCU)的一些更有趣的(但經(jīng)常遭到忽視的)特性展開詳細(xì)的論述。

大部分采用Cortex-M3/M4 MCU的目標(biāo)應(yīng)用是便攜式的,并且供電電源來自電池或能源收集系統(tǒng),因此我們所探討的大部分概念涉及如何減少系統(tǒng)整體能耗的技術(shù)。然而,在許多情況下,這些節(jié)能技術(shù)也是處理器應(yīng)用設(shè)計(jì)的有力工具,可提供:

●更符合成本效益的解決方案

●更大的升級(jí)和采用新特性的設(shè)計(jì)冗余

●有助于產(chǎn)品在激烈競爭市場上脫穎而出的性能和特性

ARM Cortex基本介紹

就像Advanced RISC Machines(ARM)公司在20世紀(jì)80年代所推出的第一代16位處理器內(nèi)核一樣,ARM Cortex系列以哈佛式RISC架構(gòu)為基礎(chǔ),采用適度的硅封裝工藝獲得更高性能,以及代碼和內(nèi)存效率。該架構(gòu)在過去十年間大有進(jìn)展,擴(kuò)展出了三種不同的子系列,以滿足特定應(yīng)用的需求:

●A型系列處理器針對(duì)高效能開放應(yīng)用平臺(tái)而優(yōu)化設(shè)計(jì)。

●R型系列處理器注重提升實(shí)時(shí)應(yīng)用的性能和可靠度。

●M型系列處理器特別為采用嵌入式MCU的應(yīng)用而設(shè)計(jì),其性能必須在能源效率和降低解決方案成本之間加以平衡。適用于Cortex M系列的常見應(yīng)用包括智能電表、人機(jī)接口設(shè)備、汽車與工業(yè)控制系統(tǒng)、白色家電、消費(fèi)電子產(chǎn)品和醫(yī)療器材等。

Cortex-M3對(duì)比Cortex-M4

Cortex-M3架構(gòu)背后的指導(dǎo)思路是設(shè)計(jì)一種既要滿足應(yīng)用的成本效益又要提供高性能計(jì)算和控制1的處理器。類似的應(yīng)用包括汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)和無線網(wǎng)絡(luò)/傳感器產(chǎn)品等。M3系列為32位的ARM處理器架構(gòu)引進(jìn)了多項(xiàng)重要特性,包括:

●不可屏蔽式中斷

●高度確定性、嵌套、向量式中斷

●原子位操作

●可選的存儲(chǔ)保護(hù)(MPU)

除了絕佳的計(jì)算性能,Cortex-M3處理器先進(jìn)的中斷結(jié)構(gòu)還能確保系統(tǒng)迅速響應(yīng)真實(shí)世界的事件,同時(shí)仍然提供極低的動(dòng)態(tài)與靜態(tài)功耗2.

圖1:Cortex-M3與M4處理器內(nèi)核的比較。

Cortex-M3和M4處理器共享許多相同的設(shè)計(jì)要素,包括先進(jìn)的片內(nèi)調(diào)試特性,以及執(zhí)行完整ARM指令集或ARM指令子集(用于THUMB2處理器)的能力。Cortex-M4處理器的指令集具有增強(qiáng)的高效DSP特性庫,包括擴(kuò)展的單周期16/32位乘法累加器(MAC)、雙16位MAC指令、優(yōu)化的8/16位SIMD運(yùn)算及飽和運(yùn)算指令。總體來說,M3與M4最顯著的差別在于,M4具有可選的單精度(IEEE-754)浮點(diǎn)單元(FPU)。

多項(xiàng)秘訣造就巧妙解決方案

嵌入式設(shè)計(jì)的成敗經(jīng)常取決于如何在系統(tǒng)性能、能耗和解決方案成本之間找到適當(dāng)?shù)钠胶?。許多情況下,開發(fā)人員可以采用Cortex-M處理器上的獨(dú)特特性來優(yōu)化產(chǎn)品成本或能源需求,同時(shí)維持、甚至提升它的性能。例如,Cortex-M內(nèi)核天生的串行I/O能力能夠用于節(jié)省能源、簡化開發(fā)、釋放外設(shè)以用于其它應(yīng)用任務(wù)。

除了傳統(tǒng)的串行調(diào)試(Serial Wire Debug)功能之外,基于ARM Cortex-M的MCU還可以通過它的單引腳串行監(jiān)視器輸出(Serial Wire Viewer Output,SWO)3提供指令跟蹤接口,如圖2所示。這個(gè)接口可以直接把“printf格式的”調(diào)試信息傳遞給應(yīng)用代碼。SWO允許調(diào)試信息直接在任何標(biāo)準(zhǔn)的IDE中瀏覽。此外,這些信息也可以用獨(dú)立的SWO監(jiān)視器(例如,Segger的J-Link SWO Viewer軟件4,或是Silicon Labs的energyAware Commander 4)進(jìn)行瀏覽。由于SWO輸出內(nèi)建于內(nèi)核硬件本身,因此它是Cortex-M內(nèi)核與生俱來的優(yōu)點(diǎn)。SWO不占用MCU的任何UART接口,這些接口它們可能早已被分配給了應(yīng)用。

圖2:專用ARM Cortex SWO接口節(jié)省I/O引腳并加速調(diào)試。

基于SWO的調(diào)試還有一個(gè)重要的優(yōu)勢(shì)在于,它讓微控制器在進(jìn)入最低的休眠模式時(shí),保持調(diào)試連接有效,而在大多數(shù)情況下,傳統(tǒng)的調(diào)試連接這時(shí)是不能正常工作的。SWO的指令追蹤還可以用于跟蹤程序計(jì)數(shù)器,以幫忙IDE統(tǒng)計(jì)出程序各項(xiàng)功能所占用的時(shí)間。這些統(tǒng)計(jì)數(shù)字能夠與電流測(cè)量結(jié)合起來,幫助開發(fā)人員對(duì)設(shè)計(jì)功耗進(jìn)行微調(diào)。

基于Cortex-M的微控制器供應(yīng)商正在開始重新認(rèn)識(shí)這項(xiàng)優(yōu)點(diǎn),而且有些廠商已經(jīng)為了這個(gè)目的而把功耗模式和電流測(cè)量硬件納入到本身的開發(fā)平臺(tái)。例如,Silicon Labs的EFM32 Gecko MCU入門級(jí)和開發(fā)級(jí)工具包都包含功耗測(cè)量輸出,并可搭配energyAware Profiler工具6中的程序代碼追蹤功能。圖3顯示了如何讓設(shè)計(jì)人員精確定位到哪個(gè)程序功能塊最耗費(fèi)能源,并且能夠快速調(diào)試其它與能源有關(guān)的問題。

圖3:軟硬件工具精確定位耗能最大的功能,無需示波器和萬用表,快速排除問題。

智能休眠節(jié)省每一微瓦

ARM Cortex-M處理器的Sleep-on-Exit(中斷完成時(shí)直接進(jìn)入休眠)是另一項(xiàng)“一箭雙雕”的功能,可同時(shí)節(jié)省CPU周期和能耗。這點(diǎn)在由中斷所驅(qū)動(dòng)的應(yīng)用中格外有用,因?yàn)樘幚砥鞯拇蟛糠謺r(shí)間不是在執(zhí)行中斷處理,就是在中斷事件之間休眠。在進(jìn)入中斷服務(wù)例程(ISR)時(shí),MCU必須花費(fèi)好幾個(gè)指令周期把當(dāng)前線程狀態(tài)入棧,然后在退出中斷處理返回時(shí)恢復(fù)原有線程狀態(tài),即“出棧”。當(dāng)應(yīng)用需要處理器在退出ISR后直接進(jìn)入休眠狀態(tài)時(shí),傳統(tǒng)MCU仍然必須恢復(fù)原先存儲(chǔ)的狀態(tài)信息,然后線程代碼才能讓MCU進(jìn)入休眠狀態(tài)。同樣地,當(dāng)下次的中斷喚醒MCU時(shí),它的狀態(tài)必須再次入棧。

而當(dāng)使能ARM Cortex-M微控制器上的Sleep-on-Exit功能后,MCU就會(huì)在中斷處理完成后直接進(jìn)入休眠狀態(tài),而不用先返回到原有線程上(見圖4)。這會(huì)使處理器仍然保持在中斷狀態(tài),因?yàn)橄藛拘言偃霔_^程,因而節(jié)省下許多寶貴的機(jī)器周期。消除入棧出棧過程既節(jié)省了時(shí)間也節(jié)省了能耗,否則電能就會(huì)被不必要的指令周期白白消耗,也包括哪些傳統(tǒng)MCU在休眠和喚醒之間管理堆棧的代碼。而且,當(dāng)處理器被中止調(diào)試請(qǐng)求(Halt Debug Request)喚醒時(shí),出棧過程將會(huì)自動(dòng)進(jìn)行。

圖4:ARM Cortex-M的Sleep-on-Exit功能通過避免不必要的代碼執(zhí)行和減少出棧入棧操作降低功耗。(引自:《The Definitive Guide to the ARM Cortex-M31》)

ARM Cortex-M4運(yùn)行更快、休眠功耗更低

像許多MCU一樣,Cortex-M3/4處理器通常能夠采用高時(shí)鐘速率的方法在中斷驅(qū)動(dòng)的應(yīng)用中節(jié)省能耗。如果處理器大部分時(shí)間處于休眠狀態(tài),這種看似違背直覺但普遍采用的節(jié)能策略就會(huì)很好,因?yàn)檫\(yùn)行時(shí)間減少所節(jié)省的能耗遠(yuǎn)遠(yuǎn)大于稍高的操作電流。簡單來說,多花10%的電可以省掉20%的時(shí)間,總體來說是節(jié)能了。

這種技術(shù)可以應(yīng)用在任何Cortex-M系列的處理器上,而涉及密集運(yùn)算任務(wù)的應(yīng)用也能從Cortex-M4處理器的額外能力中受益。它的單周期DSP指令和可選的浮點(diǎn)加速器能大大減少諸如數(shù)字信號(hào)處理、過濾、分析或波形合成等功能所需要的執(zhí)行周期數(shù)。

一些應(yīng)用僅僅需要DSP處理能力。例如,有些安全系統(tǒng)采用一種以聲學(xué)分析來感測(cè)玻璃破損的裝置。玻璃破損時(shí)會(huì)發(fā)出一連串獨(dú)特的聲音和振動(dòng),并且在玻璃特有的固有頻率時(shí)達(dá)到最大,在這個(gè)例子中是13kHz。大多數(shù)采用傳感器接口的系統(tǒng)只有在所監(jiān)測(cè)的頻率被監(jiān)測(cè)到時(shí),才喚醒處理器。但是當(dāng)設(shè)計(jì)中使用帶DSP功能的Cortex-M4時(shí)就能額外節(jié)能,因?yàn)樗趫?zhí)行實(shí)際的玻璃破損分析時(shí)比軟件解決方案更快。

甚至,這些使用基于M4微控制器的應(yīng)用可以更加節(jié)能,因?yàn)镸CU中所包含的高級(jí)休眠模式和自治外設(shè)可以在CPU休眠時(shí)執(zhí)行許多日程任務(wù)。例如,以Cortex-M4為內(nèi)核的Wonder Gecko MCU7具有五種不同的低功耗模式,包括20nA的關(guān)機(jī)狀態(tài)和950nA的深度休眠模式(實(shí)時(shí)時(shí)鐘有效、RAM和寄存器內(nèi)容保持、使能掉電檢測(cè))。

上面提及的節(jié)能特性也能帶來其它優(yōu)勢(shì)。例如,在超音波/聲學(xué)水表之類的應(yīng)用中,它們必須在小電池供電下運(yùn)行多年,需要MCU盡可能長的保持在休眠狀態(tài)。除了有助于減少M(fèi)CU喚醒時(shí)間之外,Cortex-4 DSP和浮點(diǎn)算術(shù)指令也能使用成熟的濾波功能從廉價(jià)聲學(xué)傳感器輸出中獲得所需的信息,從而避免采用昂貴的超聲波流量傳感器。在這個(gè)應(yīng)用實(shí)例中,Wonder Gecko MCU的外設(shè)還能夠作為模擬狀態(tài)機(jī)提供額外的能量節(jié)省,它僅僅在需要時(shí)才喚醒Cortex-M4處理器。

結(jié)論

雖然并不完備,但這些林林總總的秘訣與妙方應(yīng)該能讓各位產(chǎn)生好的思路,可以在下一次設(shè)計(jì)中充分利用Cortex-M系列中一些較不為人知的特性所帶來的好處。為了發(fā)揮ARM Cortex-M系列的這些和其它重要功能,可參考本文末段的參考資料,它們提供了所需的更多細(xì)節(jié)。

此外,如何通過選擇搭配有合適I/O、加速器和其它先進(jìn)外設(shè)的ARM MCU來改善設(shè)計(jì)性能、功耗和解決方案成本,來自Silicon Labs的EFM32 Gecko和Wonder Gecko MCU系列產(chǎn)品提供了極佳范例。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉