用戶名: 密 碼: 忘記密碼? 免費注冊

ARM Cortex-M0處理器內(nèi)核LPC1100系列微控制

2010-08-31 09:09恩智浦 佚名我要評論(0我要收藏

  恩智浦推出了基于32位ARM Cortex-M0處理器內(nèi)核的LPC1100系列微控制器。該處理器是ARM公司Cortex-M系列尺寸最小的一款,具有32位架構(gòu)性能、低功耗和超小封裝等優(yōu)點。LPC1100是恩智浦半導(dǎo)體大獲成功的LPC1000微控制器系列的最新產(chǎn)品(參見圖1),主要針對目前8/16位微控制器占主流的低成本應(yīng)用的市場。

  


  圖1: 恩智浦Cortex-Mx微控制器系列

  LPC1100完全具有圍繞LPC1300和LPC1700微控制器(均采用Cortex-M3內(nèi)核)建立的生態(tài)系統(tǒng)優(yōu)勢。從諸如UART、I2C和SPI等標(biāo)準(zhǔn)接口到高端的CAN和USB,LPC1100外設(shè)種類齊全。LPC1000生態(tài)系統(tǒng)包括多家供應(yīng)商提供的編譯器和調(diào)試工具、各種操作系統(tǒng)和軟件。由于LPC1100系列微控制器Cortex-M0能夠向上兼容M3內(nèi)核,因此能夠?qū)崿F(xiàn)開發(fā)共享。

  本文將針對過去8/16位微控制器的幾個薄弱應(yīng)用環(huán)節(jié),重點介紹LPC1100的優(yōu)勢。此外,還將涉及LPC1100如何解決成本、功耗和代碼大小等難題,以及如何提高傳統(tǒng)8/16位微控制器應(yīng)用領(lǐng)域的系統(tǒng)效率。

  節(jié)能

  對于門、窗或照明控制等家庭自動化應(yīng)用領(lǐng)域,主要采用傳感器連接到家庭自動化系統(tǒng)內(nèi)部總線,這些總線和傳感器從專用直流電路獲取電流,大部分時間都處于工作模式。LPC1100在工作模式下出色的低功耗特點為此類應(yīng)用提供了理想選擇。

  圖2是一個從閃存執(zhí)行代碼并在RAM里操作動態(tài)數(shù)據(jù)的典型應(yīng)用示例,顯示了LPC1100在正常工作模式下幾個內(nèi)部系統(tǒng)模塊的功耗情況。

  

  圖2: 20MHz內(nèi)核頻率的各模塊耗電量

  在電流消耗總量中,Cortex-M0內(nèi)核和內(nèi)部存儲系統(tǒng)所占比重最大。盡管Cortex-M0內(nèi)核的處理能力超強(qiáng),但是采用該內(nèi)核的LPC1100在無限循環(huán)運行時的平均耗電量僅為150μA/MHz左右。

  

  圖3 正常工作模式下,從閃存執(zhí)行代碼的耗電量

  預(yù)計在推出低功耗(LP)LPC1100新產(chǎn)品后,現(xiàn)有的LPC1100微控制器低功耗表現(xiàn)會得到進(jìn)一步提升。工作模式耗電量有望降至130uA/MHz左右。

  此外,由于M0內(nèi)核采用32位架構(gòu),因此電流利用效率要高于8/16位架構(gòu)。對于執(zhí)行相同的計算任務(wù),M0內(nèi)核的實際運行速度可比8/16位微控制器低2-4倍,因此功耗要遠(yuǎn)低于8/16位微控制器。

  對于“深度睡眠”或“深度掉電”模式,Cortex-M0內(nèi)核的強(qiáng)大處理能力同樣有用武之地,與8/16位架構(gòu)相比,32位架構(gòu)執(zhí)行任務(wù)的時間更短,因此微控制器更多時間會處于低功耗模式運行。新型LP系列產(chǎn)品將大幅減少深度睡眠模式(2uA)和深度掉電模式(220nA)耗電量。

  運算能力

  LPC1100非常適合同時處理微控制器(MCU)基本任務(wù)和各種操作數(shù)(8位、16位或更高位)運算。嵌入快速的32位Cortex-M0內(nèi)核(最大頻率50MHz)并保持微控制器操作和編程靈活性(Cortex-M0 內(nèi)核可以完全采用C語言)是代替16位混合系統(tǒng)的最好解決方案。

  Cortex-M0微控制器可以輕松超越高端8/16位單片機(jī)。Cortex-M0內(nèi)核的額定處理能力高達(dá)0.8DMIPS/MHz,是高端8 /16位單片機(jī)的2-4倍。由于DMIPS和MIPS有時并不能準(zhǔn)確反映用戶器件性能,因此圖4根據(jù)一些通用的測試基準(zhǔn)程序給出了各器件的相對性能。大多數(shù)常用Cortex-M0 Thumb2指令為單周期指令,所有8位、16位和32位數(shù)據(jù)傳輸在一個指令周期內(nèi)完成。在8位和16位單片機(jī)中處理長字乘法運算通常要花很長時間,但由于Cortex-M0內(nèi)核是32位架構(gòu),恩智浦在LPC1100中采用了32x32位硬件乘法器,通過MULS指令,成功地在一個指令周期內(nèi)完成了兩個32位字的乘法運算。

  

  圖4 Cortex-M0相對性能

  除法運算可通過軟件完成,Cortex-M0對于各種操作數(shù)除法運算有同樣出色的表現(xiàn)。

  對于具體的應(yīng)用,復(fù)雜的計算通常會涉及多次加法、乘法和除法。圖5顯示了一個復(fù)雜計算的執(zhí)行時間,其執(zhí)行條件是從閃存執(zhí)行代碼,采用浮點操作數(shù)共進(jìn)行5次乘法、5次加法和1次除法計算。對于浮點運算,C語言代碼可通過一個特定的Cortex-M0數(shù)學(xué)庫函數(shù)做優(yōu)化。

  

圖5: 浮點運算時間實例

  圖5: 浮點運算時間實例

  從數(shù)學(xué)庫向RAM重新優(yōu)化一些重要的函數(shù)可以進(jìn)一步提升性能。應(yīng)該在RAM中調(diào)用這些庫函數(shù),這樣可避免從ROM頁到RAM頁的分配過程出現(xiàn)長分支,以縮短執(zhí)行時間。

  中斷處理

  微控制器的性能不僅要看執(zhí)行速度,中斷處理也一個重要方面。中斷性能一般通過延遲時間和抖動(jitter)體現(xiàn)。延遲是指從中斷事件產(chǎn)生到進(jìn)入中斷服務(wù)程序的時間,抖動用以描述延遲的變化。

  Cortex-M0通過將中斷控制器和內(nèi)核緊密耦合,最大程度縮短了延遲時間。最高優(yōu)先級中斷延遲時間固定為16個時鐘周期。中斷控制器最多可支持32個不同的中斷源,包含一個非屏蔽中斷輸入。LPC1100對各種中斷事件提供了專用中斷向量,任何中斷都會自動分配一個專用中斷服務(wù)程序(ISR, Interupt Service Routine),無須軟件處理。

  為了縮短嵌套中斷的延遲時間,LPC1100采用了一種集成機(jī)制,如果高優(yōu)先級中斷在低優(yōu)先級中斷進(jìn)入服務(wù)程序前到達(dá),可避免重新堆棧。此外,LPC1100還支持尾鏈功能(tail chaining),通過疊合異常出棧順序以及隨后出現(xiàn)的異常進(jìn)棧順序可直接進(jìn)入ISR,縮短延遲時間。

  系統(tǒng)成本

  影響系統(tǒng)總成本有幾個方面的因素,對于小型系統(tǒng),內(nèi)核和內(nèi)存所占比重最大。

  內(nèi)核尺寸:Cortex-M0內(nèi)核專門針對低成本應(yīng)用開發(fā),主要面向以往的8/16位小型微控制器架構(gòu)市場。Cortex-M0內(nèi)核的尺寸僅為Cortex-M3的1/4,參見圖6。對于外設(shè)較少、Flash空間有限的小型系統(tǒng),較小的內(nèi)核可以減少芯片的整體尺寸。Cortex-M0邏輯門數(shù)量達(dá)到了最經(jīng)典的8位內(nèi)核水平,卻帶來了更出色的處理能力,并為更強(qiáng)大的Cortex-M系列處理器提供向上兼容性。

  

圖6 Cortex-M0內(nèi)核尺寸

  圖6 Cortex-M0內(nèi)核尺寸

  閃存占用量。簝Υ鎽(yīng)用程序代碼所需的閃存尺寸是影響系統(tǒng)總成本的另一個重要因素?紤]到32位指令比8位指令性能更強(qiáng),并且能一次代替多條8位指令,因此可以假設(shè)應(yīng)用代碼尺寸基本相同(不包括常數(shù)表)。不過,通過輸入LPC1100的8位代碼的實際測試結(jié)果看,應(yīng)用代碼尺寸要小很多,甚至可以達(dá)到50%以下。

  ARM Cortex-M0執(zhí)行Thumb指令集,包括少量使用Thumb-2技術(shù)的32位指令,參見圖7。Thumb指令集是ARM Cortex-M3和ARM Cortex-M4支持的指令集的子集,并與之二進(jìn)制編碼向上兼容。

  將ARM7TDMI的16位Thumb指令和部分Thumb-2功能強(qiáng)大的32位指令結(jié)合在一起使用,可以提高代碼密度。編譯器會選擇是使用16位還是32位指令,最終代碼中兩者可以完全共存。運行期間系統(tǒng)能夠?qū)崿F(xiàn)16位和32位代碼無縫切換,無需像在使用ARM7TDMI時那樣,需要專用指令。下表是一張Cortex-M0完整的指令集。

  

圖7:Cortex M0指令集

  圖7:Cortex M0指令集

  總體來看,LPC1100在低成本MCU市場具有很強(qiáng)的競爭力,其出色的靈活性和強(qiáng)大的性能將成為8位和16位架構(gòu)占統(tǒng)治地位的各應(yīng)用領(lǐng)域最有力的競爭對手。LPC1100支持超小封裝(16引腳CSP,2.5 x 2.5mm)以及易于操作的HVQFN和LQFP封裝。該系列所有產(chǎn)品均支持UART、I2C和SPI等常見外設(shè),并可在LPC1000系列其他產(chǎn)品上復(fù)用這些外設(shè)的驅(qū)動。此外,LPC1100還支持USB和CAN等高端外設(shè),其驅(qū)動代碼內(nèi)嵌在ROM掩膜中, 因此Flash閃存可完全用于用戶自己的應(yīng)用程序。

標(biāo)簽Cortex-M0(3)
分享到:

(責(zé)任編輯:發(fā)燒友)

發(fā)表評論,輕松獲取積分:

發(fā)表評論表單
評價[必選]:
用戶名: 驗證碼:點擊我更換圖片

請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。