現(xiàn)今基于嵌入式微控制器 (MCU) 的應用對功能的要求不斷增多,例如,電機控制必須具有更高的能源效率;以往獨立的應用也必須聯(lián)網(wǎng)。在這種情況下,對微控制器的性能和存儲容量的要求也大為提高。對一些應用而言,解決的方法就是從8位或16位MCU升級至32位。這樣一來,雖然性能得以提高,但也可能導致單元成本、系統(tǒng)復雜性以及軟件開發(fā)成本的增加。本文將討論如何通過系統(tǒng)集成將8位功能加入至32位系統(tǒng)中,以及提供功能強大的低成本開發(fā)工具,從而加快這種升級過程。
通過提升制造技術可以降低單元成本。不過,除非32位MCU具備和8位或16位系統(tǒng)相若的系統(tǒng)集成度,否則這些優(yōu)點都將因為加入外部器件的成本而一筆勾銷。高性能系統(tǒng)獨有的高速緩存等往往令系統(tǒng)變得復雜。但是對那些正在升級至 32 位系統(tǒng)的典型實時控制應用而言,這些并不是必需的功能。雖然,把現(xiàn)有代碼移植到新一代更高性能微控制器的成本是無法省去的,但為了減少整體所需的工作量,可以通過開發(fā)工具的設計來推動這種升級過程。
市場趨勢:轉向32位MCU
根據(jù)Gartner Dataquest公司統(tǒng)計,在過去10年間,32位微控制器在MCU市場的營業(yè)額從零開始增長到了近25%,目前的增長率高于8位或16位系統(tǒng)。而且,隨著眾多配備了針對特定市場領域,如汽車市場等的功能集的器件不斷涌現(xiàn),MCU 市場正在逐步分化。 從8位和16位MCU升級至 32位架構的重點是深度嵌入式實時控制應用。
此外,目前產業(yè)界還出現(xiàn)了一個明顯趨勢,就是ARM RISC處理器正逐漸成為32位MCU的行業(yè)標準,一如當初8051架構是8位系統(tǒng)的標準。目前,ARM 在32位嵌入式RISC MCU市場的占有率達 75%,截至2005年1月,ARM各合作伙伴已付運超過25億片的的ARM 內核的MCU。
成本:技術和整合度的考慮
采用當前0.18μm的工藝技術,生產一塊包含有一個32位RISC處理器、標準外圍設備和一個小容量閃存的單芯片成本并不昂貴,但對于8位應用而言,單憑此尚不足夠。從8位微控制器升級的應用需要有更高水平的系統(tǒng)集成度 (見圖1),來滿足整體的系統(tǒng)成本預算。而且,這種整合度必須讓32位系統(tǒng)具有8位片上系統(tǒng)的基本功能。
32位器件必須采用單電源工作;集成大電流驅動 I/O 和收發(fā)器;控制系統(tǒng)上電;通過低成本晶振生成系統(tǒng)時鐘;而且其 I/O上應具有可編程上拉電阻 (pull-up)。此外,32位器件還應確保在任何環(huán)境下應用的行為都可以預測,這需要一個節(jié)電檢測器 (brown-out detector)、一個可編程監(jiān)視器,以及一個集成RC振蕩器,而毋需高速緩存和閃存加密位 (lock bit)。
從8位升級至 32位系統(tǒng)時的性能要求
嵌入式閃存的訪問時間
基于8位微控制器的應用一般是以控制為主導 (control-driven) 的,要求對外部事件的確定過程式 (deterministic) 響應和可預測的響應時間。然而,用來加快對緩慢非易失性儲存媒介之存取速度的高速緩存卻不是決定性的,因此對于那些對時間要求嚴格的應用來說是不可接受的。提高實時性能又不增加成本的惟一方法,就是加快對嵌入式閃存的存取速度。
目前產業(yè)界的0.18μm工藝技術能在30MHz的ARM微控制器上進行單周期內訪問,原始性能可達27MIPS,遠高于現(xiàn)有的一般 8位微控制器。
提高中斷處理能力
實時控制應用一般是采用中斷驅動,利用多個中斷源和規(guī)定每一中斷時間內所需的響應來進行?;镜腁RM架構有一個弱點,就是它的中斷處理機制很簡陋,沒有中斷優(yōu)先所需的硬件裝置。這時便需要一種裝置來增強中斷能力,如圖2所示。它提供一組帶有 8 個優(yōu)先級別之可獨立屏蔽的向量式中斷源。永久存儲在SRAM中的基本中斷處理程序負責分配中斷的優(yōu)先級級別,然后執(zhí)行一條指令,利用中斷號 (每一中斷源均獲發(fā)一個獨有編號) 作為偏移量 (offset),把用于所需中斷服務程序的向量直接裝載入程序計數(shù)器 (Program Counter)。這種簡單有效的機制能夠確保在最少數(shù)目的指令周期內,把控制傳送到所需的中斷服務程序中。[!--empirenews.page--]獨立位設置/重設
ARM 架構的另一缺陷是不能利用單個 ARM 指令進行單獨的位設置和重設操作。對實時控制應用而言,這些操作必須執(zhí)行一個讀/改/寫 (read-modify-write) 序列。在多個任務共享同一外圍設備的情況下,位操作 (bit manipulation) 必須是獨立的 (atomic) (不易中斷),這就要求在讀/改/寫序列期間屏蔽中斷。
這種解決方案是通過兩個虛擬寄存器 (virtual register),一個用于位設置 (使啟動),另一個用于位重設 (使失效),這能透過單條儲存指令來啟動位或使之失效 (圖3)。由于這種指令對 ARM 處理器的影響是單獨的,故不必屏蔽中斷。
外圍 DMA 控制器
在外圍設備上要保持恒定的數(shù)據(jù)傳輸率,需要處理器的及時響應。采用一個外圍直接內存訪問 (DMA) 控制器就可消除這種約束。不同于CPU逐個字節(jié)地傳輸數(shù)據(jù),這種DMA無需CPU干涉,便可直接把數(shù)據(jù)按模塊進行傳輸。在每個模塊傳輸結束時產生一個單獨的中斷,不再需要對外圍設備輪詢 (polling)。采用雙指針機制 (dual pointer mechanism) 就可以自動管理模塊數(shù)據(jù)傳輸,避免了對時間要求嚴格的指針重配置。
單電源
先進的CMOS技術使微控制器中的內核電源電壓逐漸降低。采用0.18μm工藝時,其典型值是1.8V。不過,如果要保留與原有8位系統(tǒng)的兼容性,32位MCU必須采用電壓范圍在3.0V~3.6V之間的單電源。在這種情況下,可以利用一個內置電壓調節(jié)器 (圖4) 來產生內核及其它片上子系統(tǒng)所需的1.8V電壓。該調節(jié)器的輸出電壓在生產階段時校準。
以外部連接方式來提供1.8V電壓環(huán),能根據(jù)主板能力對功率源進行更好的控制。對于采用片上電壓調節(jié)器、還是效率更高或待機耗電更低的外部電壓調節(jié)器,最終用戶擁有絕對的控制權。
使用外部連接方案的另一項優(yōu)點,是可能使板上的其它IC也由內部產生的1.8V供電。
當 CPU 以較低的速度 (500Hz ~1.5MHz) 運行時,電壓調節(jié)器會處于閑置 (idle) 模式,此時電壓調節(jié)器的功耗降到2μA。這種情況下,最大輸出電流為1mA,便足以維持CPU和大多數(shù)外圍設備的活動。這有助于彌補32位MCU待機電流稍高的不足。
減低8位升級至32位過程的復雜性
要增加低成本32位ARM微控制器的市場接受程度,必須使用現(xiàn)有固件,以便于移植。簡化專為C語言而最佳化的器件編程模型 (device programming model)、提供強有力的調試功能,以及使已建立的8位開發(fā)工具支持32位微控制器等,都是加快用戶學習速度的關鍵。
一個適用于整個微控制器系列集成式外圍設備、而且全面和一致的編程模型,正是簡化升級復雜性的基礎。要做到這種模型,最好的方法是通過一種均勻寄存器結構 (homogeneous register structure) 為所有外圍設備指定系統(tǒng)和中斷結構地址。只需一個緊密地集成在外圍地址空間的外圍DMA控制器,就可以顯著減低對軟件的要求。
為用戶提供外圍設備驅動器和完整的項目實例 (如可重用的源代碼),可加快他們的學習進程,并盡快開始工作。當代碼能夠迅速被更新,而一旦被加載后器件就能完全自主時,片上閃存的優(yōu)點就變得顯而易見。ARM7 處理器適合于多種操作系統(tǒng)和軟件模塊如協(xié)議堆棧。此外,ARM 微控制器的顧問人數(shù)正日益增加,能有效幫助升級中的客戶處理移植過程上遇到的各種問題。
對軟件開發(fā)商而言,要加快移植過程并使固件有效,調試工具的質量至關重要。支持硬件斷點 (hardware breakpoints) 的在線仿真 (In-Circuit-Emulation) 接口,提供對處理器的寄存器和內部存儲空間的全面訪問能力,此外也是連接軟件可控追蹤 (software-controlled trace) 調試器的界面。目前它們是具有最佳性價比的調試解決方案 (見圖5)。編程人員使用指令集仿真器 (Instruction Set Simulator),可以在硬件調試之前提高固件的質量水平,從而縮短開發(fā)時間。
除了微控制器調試埠之外,使用片上硬件 (on-chip hardware) 也可以加快開發(fā)速度。一般而言,錯位 (mis-aligned) 的數(shù)據(jù)存取極難處理,除非片上監(jiān)控器能夠予以識別,并向處理器發(fā)出一個異常中斷請求。這正是ARM架構的功能之一。當處理器在調試模式下被中止時,有可能會發(fā)生監(jiān)視器溢出 (overflow) 事故。但若在調試時自動把監(jiān)視器中止,就可以預防這種情況的發(fā)生。此外,外圍設備還可能在調試期間產生無效的中斷請求,這些請求應該被過濾。
要避免在升級過程差不多完成時才出現(xiàn)最后錯誤,最好的方法是用閃存來存儲程序。這樣,在開發(fā)的最終階段也可以對軟件進行修改,不會影響生產周期,靈活性極佳。
[!--empirenews.page--]總 結
從8位升級到32位微控制器不僅僅是器件成本的問題,而且還必須擁有近年來8位微控制器所達到的高集成度;提高實時性能的水平;并提供多元化的內存容量選擇。就相同的功能集而言,現(xiàn)今的先進制造技術能使32位微控制器達到8位的價位。熟悉的開發(fā)工具和先進的調試解決方案,也使32位微控制器的升級變得更加簡易。
由8位、16位和32位系統(tǒng)通用的開發(fā)工具支持的ARM微控制器,正漸漸成為業(yè)界嵌入式32位微控制器標準。Atmel公司的智能型ARM微控制器系列正是這一市場上的領先產品。