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