要使用低成本的 32位微控制器,開發(fā)人員面臨兩種選擇,基于Cortex-M3內(nèi)核或者ARM7TDMI內(nèi)核的處理器。如何做出選擇?選擇標(biāo)準(zhǔn)又是什么?本文主要介紹了ARM Cortex-M3內(nèi)核微控制器區(qū)別于ARM7的一些特點(diǎn),幫助您快速選擇。
1.ARM實(shí)現(xiàn)方法
ARM Cortex-M3是一種基于ARM V7架構(gòu)的最新ARM嵌入式內(nèi)核,它采用哈佛結(jié)構(gòu),使用分離的指令和數(shù)據(jù)總線(馮諾伊曼結(jié)構(gòu)下,數(shù)據(jù)和指令共用一條總線)。從本質(zhì)上來說,哈佛結(jié)構(gòu)在物理上更為復(fù)雜,但是處理速度明顯加快。根據(jù)摩爾定理,復(fù)雜性并不是一件非常重要的事,而吞吐量的增加卻極具價值。
ARM公司對Cortex-M3的定位是:向?qū)I(yè)嵌入式市場提供低成本、低功耗的芯片。在成本和功耗方面,Cortex-M3具有相當(dāng)好的性能,ARM公司認(rèn)為它特別適用于汽車和無線通信領(lǐng)域。和所有的ARM內(nèi)核一樣,ARM公司將內(nèi)該設(shè)計授權(quán)給各個制造商來開發(fā)具體的芯片。迄今為止,已經(jīng)有多家芯片制造商開始生產(chǎn)基于Cortex-M3內(nèi)核的微控制器。
ARM7TDMI(包括ARM7TDMIS)系列的ARM內(nèi)核也是面向同一類市場的。這類內(nèi)核已經(jīng)存在了十多年之久,并推動了ARM成為處理器內(nèi)核領(lǐng)域的主導(dǎo)者。眾多的制造商(據(jù)ARM宣稱,多達(dá)16家)出售基于ARM7系列的處理器以及其他配套的系統(tǒng)軟件、開發(fā)和調(diào)試工具。在許多方面,ARM7TDMI 都可以稱得上是嵌入式領(lǐng)域的實(shí)干家。
2.兩者差異
除了使用哈佛結(jié)構(gòu), Cortex-M3還具有其他顯著的優(yōu)點(diǎn):具有更小的基礎(chǔ)內(nèi)核,價格更低,速度更快。與內(nèi)核集成在一起的是一些系統(tǒng)外設(shè),如中斷控制器、總線矩陣、調(diào)試功能模塊,而這些外設(shè)通常都是由芯片制造商增加的。 Cortex-M3 還集成了睡眠模式和可選的完整的八區(qū)域存儲器保護(hù)單元。它采用THUMB-2指令集,最大限度降低了匯編器使用率。
3.指令集
ARM7可以使用ARM和Thumb兩種指令集,而 Cortex-M3只支持最新的 Thumb-2指令集。這樣設(shè)計的優(yōu)勢在于:
免去 Thumb和ARM代碼的互相切換,對于早期的處理器來說,這種狀態(tài)切換會降低性能。
Thumb-2指令集的設(shè)計是專門面向C語言的,且包括If/Then結(jié)構(gòu)(預(yù)測接下來的四條語句的條件執(zhí)行)、硬件除法以及本地位域操作。
Thumb-2指令集允許用戶在C代碼層面維護(hù)和修改應(yīng)用程序,C代碼部分非常易于重用。
Thumb-2指令集也包含了調(diào)用匯編代碼的功能:Luminary公司認(rèn)為沒有必要使用任何匯編語言。
綜合以上這些優(yōu)勢,新產(chǎn)品的開發(fā)將更易于實(shí)現(xiàn),上市時間也大為縮短。
4.中斷
Cortex-M3的另一個創(chuàng)新在于 嵌套向量中斷控制器 NVIC( Nested Vector InterruptController)。相對于ARM7使用的外部中斷控制器,Cortex-M3內(nèi)核中集成了中斷控制器,芯片制造廠商可以對其進(jìn)行配置,提供基本的32個物理中斷,具有8層優(yōu)先級,最高可達(dá)到240個物理中斷和256個中斷優(yōu)先級。此類設(shè)計是確定的且具有低延遲性,特別適用于汽車應(yīng)用。
NVIC使用的是基于堆棧的異常模型。在處理中斷時,將程序計數(shù)器,程序狀態(tài)寄存器,鏈接寄存器和通用寄存器壓入堆棧,中斷處理完成后,在恢復(fù)這些寄存器。堆棧處理是由硬件完成的,無需用匯編語言創(chuàng)建中斷服務(wù)程序的堆棧操作。
中斷嵌套是可以是實(shí)現(xiàn)的。中斷可以改為使用比之前服務(wù)程序更高的優(yōu)先級,而且可以在運(yùn)行時改變優(yōu)先級狀態(tài)。使用末尾連鎖( tail-chaining)連續(xù)中斷技術(shù)只需消耗三個時鐘周期,相比于 32個時鐘周期的連續(xù)壓、出堆棧,大大降低了延遲,提高了性能。
如果在更高優(yōu)先級的中斷到來之前, NVIC已經(jīng)壓堆棧了,那就只需要獲取一個新的向量地址,就可以為更高優(yōu)先級的中斷服務(wù)了。同樣的,NVIC不會用出堆棧的操作來服務(wù)新的中斷。這種做法是完全確定的且具有低延遲性。
5.睡眠
Cortex-M3的電源管理方案通過NVIC支持Sleep Now, Sleep on Exit (退出最低優(yōu)先級的ISR) andSLEEPDEEP modes這三種睡眠模式。為了產(chǎn)生定期的中斷時間間隔,NVIC還集成了系統(tǒng)節(jié)拍計時器,這個計時器也可以作為RTOS和調(diào)度任務(wù)的心跳。這種做法與先前的ARM架構(gòu)的不同之處就在于不需要外部時鐘。
6.存儲器保護(hù)單元
存儲器保護(hù)單元是一個可選組建。選用了這個選項(xiàng),內(nèi)存區(qū)域就可以與應(yīng)用程序特定進(jìn)程按照其他進(jìn)程所定義的規(guī)則聯(lián)系在一起。例如,一些內(nèi)存可以完全被其他進(jìn)程阻止,而另外一部分內(nèi)存能對某些進(jìn)程表現(xiàn)為只讀。還可以禁止進(jìn)程進(jìn)入存儲器區(qū)域??煽啃裕貏e是實(shí)時性因此得到重大改進(jìn)。
電子發(fā)燒友App







評論