關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > 8/16位MCU應(yīng)用升級成32位將會怎樣?

8/16位MCU應(yīng)用升級成32位將會怎樣?

作者: 時間:2011-01-31 來源:網(wǎng)絡(luò) 收藏
特定應(yīng)用的微控制器選型分類有很多種方法。從內(nèi)核處理器類型和存儲器總線系統(tǒng)入手是其中常見的一種。是選擇8位、16位,還是32位架構(gòu),通常有以下幾個參考標(biāo)準(zhǔn):性能級別、可尋址存儲器和系統(tǒng)成本。

客戶有時還可能遇到各種需要多內(nèi)核架構(gòu)的應(yīng)用,這種情況意味著用戶不僅要花更多時間了解并掌握各種內(nèi)核技術(shù)、外設(shè)編程技術(shù)和工具使用,還要在管理不同架構(gòu)特性方面額外增加物流費(fèi)用。

針對這一問題,恩智浦推出了基于32位ARM Cortex-M0處理器內(nèi)核的LPC1100系列微控制器。該處理器是ARM公司Cortex-M系列尺寸最小的一款,具有32位架構(gòu)性能、低功耗和超小封裝等優(yōu)點(diǎn)。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é),重點(diǎn)介紹LPC1100的優(yōu)勢。此外,還將涉及LPC1100如何解決成本、功耗和代碼大小等難題,以及如何提高傳統(tǒng)8/16位微控制器應(yīng)用領(lǐng)域的系統(tǒng)效率。

節(jié)能

對于門、窗或照明控制等家庭應(yīng)用領(lǐng)域,主要采用傳感器連接到家庭系統(tǒng)內(nèi)部總線,這些總線和傳感器從專用直流電路獲取電流,大部分時間都處于工作模式。LPC1100在工作模式下出色的低功耗特點(diǎn)為此類應(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)運(yùn)行時的平均耗電量僅為150μA/MHz左右。


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

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

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

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

運(yùn)算能力

LPC1100非常適合同時處理微控制器(MCU)基本任務(wù)和各種操作數(shù)(8位、16位或更高位)運(yùn)算。嵌入快速的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ī)中處理長字乘法運(yùn)算通常要花很長時間,但由于Cortex-M0內(nèi)核是32位架構(gòu),恩智浦在LPC1100中采用了32x32位硬件乘法器,通過MULS指令,成功地在一個指令周期內(nèi)完成了兩個32位字的乘法運(yùn)算。


圖4 Cortex-M0相對性能

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

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


圖5: 浮點(diǎn)運(yùn)算時間實(shí)例

從數(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),內(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)核尺寸

閃存占用量?。簝Υ鎽?yīng)用程序代碼所需的閃存尺寸是影響系統(tǒng)總成本的另一個重要因素??紤]到32位指令比8位指令性能更強(qiáng),并且能一次代替多條8位指令,因此可以假設(shè)應(yīng)用代碼尺寸基本相同(不包括常數(shù)表)。不過,通過輸入LPC1100的8位代碼的實(shí)際測試結(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位指令,最終代碼中兩者可以完全共存。運(yùn)行期間系統(tǒng)能夠?qū)崿F(xiàn)16位和32位代碼無縫切換,無需像在使用ARM7TDMI時那樣,需要專用指令。下表是一張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)用程序。目前系統(tǒng)中的Flash尺寸介于8KB(2KB RAM)和32KB(8KB RAM)之間。LPC1100的市場售價(1萬片起訂)為65美分。

要了解該系列微控制器詳細(xì)信息,請與恩智浦半導(dǎo)體代表或分銷伙伴聯(lián)系,或者直接登錄 www.nxp.com/microcontroller。

作者:Bernhard Fink(應(yīng)用經(jīng)理)
orsten Katschinsky(現(xiàn)場應(yīng)用資深工程師)
Cristian Ionescu(應(yīng)用市場經(jīng)理)
恩智浦公司



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉