恩智浦推出了基于32位ARM Cortex-M0處理器內核的LPC1100系列微控制器。該處理器是ARM公司Cortex-M系列尺寸最小的一款,具有32位架構性能、低功耗和超小封裝等優點。LPC1100是恩智浦半導體大獲成功的LPC1000微控制器系列的最新產品(參見圖1),主要針對目前8/16位微控制器占主流的低成本應用的市場。
圖1: 恩智浦Cortex-Mx微控制器系列
LPC1100完全具有圍繞LPC1300和LPC1700微控制器(均采用Cortex-M3內核)建立的生態系統優勢。從諸如UART、I2C和SPI等標準接口到高端的CAN和USB,LPC1100外設種類齊全。LPC1000生態系統包括多家供應商提供的編譯器和調試工具、各種操作系統和軟件。由于LPC1100系列微控制器Cortex-M0能夠向上兼容M3內核,因此能夠實現開發共享。
本文將針對過去8/16位微控制器的幾個薄弱應用環節,重點介紹LPC1100的優勢。此外,還將涉及LPC1100如何解決成本、功耗和代碼大小等難題,以及如何提高傳統8/16位微控制器應用領域的系統效率。
節能
對于門、窗或照明控制等家庭自動化應用領域,主要采用傳感器連接到家庭自動化系統內部總線,這些總線和傳感器從專用直流電路獲取電流,大部分時間都處于工作模式。LPC1100在工作模式下出色的低功耗特點為此類應用提供了理想選擇。
圖2是一個從閃存執行代碼并在RAM里操作動態數據的典型應用示例,顯示了LPC1100在正常工作模式下幾個內部系統模塊的功耗情況。
圖2: 20MHz內核頻率的各模塊耗電量
在電流消耗總量中,Cortex-M0內核和內部存儲系統所占比重最大。盡管Cortex-M0內核的處理能力超強,但是采用該內核的LPC1100在無限循環運行時的平均耗電量僅為150μA/MHz左右。
圖3 正常工作模式下,從閃存執行代碼的耗電量
預計在推出低功耗(LP)LPC1100新產品后,現有的LPC1100微控制器低功耗表現會得到進一步提升。工作模式耗電量有望降至130uA/MHz左右。
此外,由于M0內核采用32位架構,因此電流利用效率要高于8/16位架構。對于執行相同的計算任務,M0內核的實際運行速度可比8/16位微控制器低2-4倍,因此功耗要遠低于8/16位微控制器。
對于“深度睡眠”或“深度掉電”模式,Cortex-M0內核的強大處理能力同樣有用武之地,與8/16位架構相比,32位架構執行任務的時間更短,因此微控制器更多時間會處于低功耗模式運行。新型LP系列產品將大幅減少深度睡眠模式(2uA)和深度掉電模式(220nA)耗電量。
運算能力
LPC1100非常適合同時處理微控制器(MCU)基本任務和各種操作數(8位、16位或更高位)運算。嵌入快速的32位Cortex-M0內核(最大頻率50MHz)并保持微控制器操作和編程靈活性(Cortex-M0 內核可以完全采用C語言)是代替16位混合系統的最好解決方案。
Cortex-M0微控制器可以輕松超越高端8/16位單片機。Cortex-M0內核的額定處理能力高達0.8DMIPS/MHz,是高端8 /16位單片機的2-4倍。由于DMIPS和MIPS有時并不能準確反映用戶器件性能,因此圖4根據一些通用的測試基準程序給出了各器件的相對性能。大多數常用Cortex-M0 Thumb2指令為單周期指令,所有8位、16位和32位數據傳輸在一個指令周期內完成。在8位和16位單片機中處理長字乘法運算通常要花很長時間,但由于Cortex-M0內核是32位架構,恩智浦在LPC1100中采用了32x32位硬件乘法器,通過MULS指令,成功地在一個指令周期內完成了兩個32位字的乘法運算。
圖4 Cortex-M0相對性能
除法運算可通過軟件完成,Cortex-M0對于各種操作數除法運算有同樣出色的表現。
對于具體的應用,復雜的計算通常會涉及多次加法、乘法和除法。圖5顯示了一個復雜計算的執行時間,其執行條件是從閃存執行代碼,采用浮點操作數共進行5次乘法、5次加法和1次除法計算。對于浮點運算,C語言代碼可通過一個特定的Cortex-M0數學庫函數做優化。
圖5: 浮點運算時間實例
從數學庫向RAM重新優化一些重要的函數可以進一步提升性能。應該在RAM中調用這些庫函數,這樣可避免從ROM頁到RAM頁的分配過程出現長分支,以縮短執行時間。
中斷處理
微控制器的性能不僅要看執行速度,中斷處理也一個重要方面。中斷性能一般通過延遲時間和抖動(jitter)體現。延遲是指從中斷事件產生到進入中斷服務程序的時間,抖動用以描述延遲的變化。
Cortex-M0通過將中斷控制器和內核緊密耦合,最大程度縮短了延遲時間。最高優先級中斷延遲時間固定為16個時鐘周期。中斷控制器最多可支持32個不同的中斷源,包含一個非屏蔽中斷輸入。LPC1100對各種中斷事件提供了專用中斷向量,任何中斷都會自動分配一個專用中斷服務程序(ISR, Interupt Service Routine),無須軟件處理。
為了縮短嵌套中斷的延遲時間,LPC1100采用了一種集成機制,如果高優先級中斷在低優先級中斷進入服務程序前到達,可避免重新堆棧。此外,LPC1100還支持尾鏈功能(tail chaining),通過疊合異常出棧順序以及隨后出現的異常進棧順序可直接進入ISR,縮短延遲時間。
系統成本
影響系統總成本有幾個方面的因素,對于小型系統,內核和內存所占比重最大。
內核尺寸:Cortex-M0內核專門針對低成本應用開發,主要面向以往的8/16位小型微控制器架構市場。Cortex-M0內核的尺寸僅為Cortex-M3的1/4,參見圖6。對于外設較少、Flash空間有限的小型系統,較小的內核可以減少芯片的整體尺寸。Cortex-M0邏輯門數量達到了最經典的8位內核水平,卻帶來了更出色的處理能力,并為更強大的Cortex-M系列處理器提供向上兼容性。
圖6 Cortex-M0內核尺寸
閃存占用量。簝Υ鎽贸绦虼a所需的閃存尺寸是影響系統總成本的另一個重要因素?紤]到32位指令比8位指令性能更強,并且能一次代替多條8位指令,因此可以假設應用代碼尺寸基本相同(不包括常數表)。不過,通過輸入LPC1100的8位代碼的實際測試結果看,應用代碼尺寸要小很多,甚至可以達到50%以下。
ARM Cortex-M0執行Thumb指令集,包括少量使用Thumb-2技術的32位指令,參見圖7。Thumb指令集是ARM Cortex-M3和ARM Cortex-M4支持的指令集的子集,并與之二進制編碼向上兼容。
將ARM7TDMI的16位Thumb指令和部分Thumb-2功能強大的32位指令結合在一起使用,可以提高代碼密度。編譯器會選擇是使用16位還是32位指令,最終代碼中兩者可以完全共存。運行期間系統能夠實現16位和32位代碼無縫切換,無需像在使用ARM7TDMI時那樣,需要專用指令。下表是一張Cortex-M0完整的指令集。
圖7:Cortex M0指令集
總體來看,LPC1100在低成本MCU市場具有很強的競爭力,其出色的靈活性和強大的性能將成為8位和16位架構占統治地位的各應用領域最有力的競爭對手。LPC1100支持超小封裝(16引腳CSP,2.5 x 2.5mm)以及易于操作的HVQFN和LQFP封裝。該系列所有產品均支持UART、I2C和SPI等常見外設,并可在LPC1000系列其他產品上復用這些外設的驅動。此外,LPC1100還支持USB和CAN等高端外設,其驅動代碼內嵌在ROM掩膜中, 因此Flash閃存可完全用于用戶自己的應用程序。
相關閱讀:
- [新品快訊] 恩智浦推出基于Cortex-M0微控制LPC1100微控制器 2009-11-18
- [單片機類] 新唐科技推出基于Cortex-M0內核的32位MCU 2010-01-09
(責任編輯:發燒友)
發表評論,輕松獲取積分:
最新評論
已有條評論,共人參與,點擊查看相關下載
電子技術文章排行
本類排行
總排行