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