摘要:闡述并總結嵌入式系統微處理器的特點、分類、開發(fā)技術。給出相關定義,并和通用處理器進行比較。歸納出嵌入式微處理器的基本情況及發(fā)展趨勢。嵌入式微處理器技術是一項很難被壟斷的技術,也是一項在未來信息技術應用中非常有潛力的技術,在此領域中應盡早形成自己的技術及產業(yè)標準。
關鍵詞:嵌入式系統;微處理器;軟件開發(fā)工具
嵌入式系統是將應用程序和操作系統與計算機硬件集成在一起的系統。這種系統具有軟件代碼小、高度自動化、響應速度快等特點,特別適合于要求實時的和多任務的體系。嵌入式設備是指應用了嵌入式系統的計算機設備。從某種意義上來講確實是大型計算設備的微縮。這肯定多少會帶來相對性能上的減弱,但正是體積的微縮帶給人們無法比擬的方便。
1 嵌入式處理器技術
嵌入式系統的核心是嵌入式微處理器。嵌入式處理器是用于在計算機之外的設備中提供添加的功能性的計算機芯片,它經常用于控制和監(jiān)控領域。
一些嵌入式處理器是桌面市場傳下來的東西,對于今天的PC已經過時,但對于處理功能要求較低的任務卻綽綽有余。過去驅動TRS-80、AppleII和Commodore64這類早期PC的Z80和6502處理器現在仍是非常暢銷的產品。老式的處理器沒有淡出江湖,它們只是變?yōu)榍度胧搅?。因此,嵌入式微處理器市場異乎尋常地廣闊。在PC市場的任何時刻,最快和最慢的微處理器之間性能比最多只有約3:1。與此相比,僅就32位嵌入式微處理器來說,這個比例為500:1。如果在4位和8位嵌入式處理器中進行比較的話,則為幾千比1。隨著這類處理器體積越來越小,價格越來越便宜,功能越來越強大,它們將進入到更多的設備和產品中。
嵌入式系統的廣泛應用正是由于嵌入式微處理器具備以下4個特點:
①對實時多任務有很強的支持能力,能完成多任務并且中斷響應時間較短,從而使內部的代碼和實時內核的執(zhí)行時間減少到最低限度。
②具有功能很強的存儲區(qū)保護功能。這是由于嵌入式系統的軟件結構已模塊化,而為了避免在軟件模塊之間出現錯誤的交叉作用,需要設計強大的存儲區(qū)保護功能。同時,這也有利于軟件診斷。
③可擴展的處理器結構,能迅速地開發(fā)出滿足應用的高性能嵌入式微處理器。
④嵌入式微處理器必須功耗很低,尤其是用于便攜式的無線及移動的計算和通信設備中靠電池供電的嵌入式系統更是如此,如要求功耗為mW甚至μW級。
1.1 嵌入式處理器的種類
1.1.1 嵌入式微處理器(EMPU)
嵌入式微處理器的基礎是通用計算機中的CPU。在應用中,將微處理器裝配在專門設計的電路板上,只保留和嵌入式應用有關的母板功能,這樣可以大幅度減小系統體積和功耗。為了滿足嵌入式應用的特殊要求,嵌入式微處理器雖然在功能上和標準微處理器基本是一樣的,但在工作溫度、抗電磁干擾、可靠性等方面一般都作了各種增強。
和工業(yè)控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優(yōu)點,但是在電路板上必須包括ROM、RAM、總線接口、各種外設等器件,從而降低了系統的可靠性,技術保密性也較差。嵌入式微處理器及其存儲器、總線、外設等安裝在1塊電路板上,稱為單板計算機,如STD-BUS、PC104等。近年來,德國、日本的一些公司又開發(fā)出了“火柴盒”式名片大小的嵌入式計算機系列OEM產品。
嵌入式微處理器目前主要有Am186/88、386EX、SC400、Power PC、68000、MIPS、ARM系列等。
1.1.2 嵌入式微控制器(MCU)
嵌入式微控制器又稱單片機,顧名思義,就是將整個計算機系統集成到1塊芯片中。嵌入式微控制器一般以某一種微處理器內核為核心,芯片內部集成ROM/EPROM、RAM、總線、總線邏輯、定時器/計數器、WatchDog、I/O、串行口、脈寬調制輸出、A/D、D/A、Flash、EEPR-OM等各種必要功能和外設。為適應不同的應用需求,一般一個系列的單片機具有多種衍生產品,每種衍生產品的處理器內核都是一樣的,不同的是存儲器和外設的配置及封裝。這樣可以使單片機最大限度地和應用需求相匹配,功能不多不少,從而減少功耗和成本。
和嵌入式微處理器相比,微控制器的最大特點是單片化——體積大大減小,從而使功耗和成本下降,可靠性提高。微控制器是目前嵌入式系統工業(yè)的主流。微控制器的片上外設資源一般比較豐富,適合于控制,因此稱微控制器。
嵌入式微控制器目前的品種和數量最多,比較有代表性的通用系列包括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC 05/11/12/16、68300等。另外還有許多半通用系列,如支持USB接口的MCU8XC930/931、C54O、C541;支持I2C、CAN-Bus、LCD及眾多專用MCU和兼容系列。目前MCU占嵌入式系統約70%的市場份額。特別值得注意的是,近年來提供X86微處理器的著名廠商AMD公司將Aml86CC/CH /CU等嵌入式處理器稱為Microcontroller,Motorola公司把以Power PC為基礎的PPC505和PPC555亦列入單片機行列,TI公司亦將其TMS320C-2XXX系列DSP作為MCU進行推廣。
1.1.3 嵌入式DSP處理器(EDSP)
DSP處理器對系統結構和指令進行了特殊設計,使其適合于執(zhí)行DSP算法,編譯效率較高,指令執(zhí)行速度也較高。在數字濾波、FFT、譜分析等方面,DSP算法正在大量進入嵌入式領域。DSP應用正在從通用單片機中以普通指令實現DSP功能,過渡到采用嵌入式DSP處理器。嵌入式DSP處理器有2個發(fā)展來源:一是DSP處理器經過單片化、EMC改造、增加片上外設,成為嵌入式DSP處理器,TI公司的TMS320C2000/C5000等屬于此范疇;二是在通用單片機或SoC中增加I)SP協處理器,例如Intel公司的MCS-296和Siemens公司的TriCore。推動嵌入式DSP處理器發(fā)展的另一個因素是嵌入式系統的智能化,例如各種帶有智能邏輯的消費類產品、生物信息識別終端、帶有加解密算法的鍵盤、ADSL接入、實時語音壓解系統、虛擬現實顯示等。這類智能化算法一般都運算量較大,特別是向量運算、指針線性尋址等較多,而這些正是DSP處理器的長處所在。
嵌入式DSP處理器比較有代表性的產品是TI公司的TMS320系列和Motorola公司的DSP56000系列。TMS320系列處理器包括用于控制的C2000系列、移動通信的C5000系列,以及性能更高的C6000和C8000系列。DSP56000目前已經發(fā)展成為DSP56000、DSP56100、DSP56200和DSP56300等幾個不同系列的處理器。另外Philips公司也推出了基于可重構嵌入式DSP結構低成本、低功耗技術制造的R.E.A.L DSP處理器,特點是具備雙Harvard結構和雙乘/累加單元,應用目標是消費類產品。
1.1.4 嵌入式片上系統(SoC)
隨著EDI的推廣和VLSI設計的普及化,及半導體工藝的迅速發(fā)展,在1個硅片上實現更為復雜系統的時代已來臨,這就是SoC。各種通用處理器內核將作為SoC設計公司的標準庫,和許多其他嵌入式系統外設一樣,成為VLSI設計中的標準器件,用標準的VHDL等語言描述,存儲在器件庫中。用戶只需定義整個應用系統,仿真通過后就可以將設計圖交給半導體工廠制作樣品。這樣除個別無法集成的器件以外,整個嵌入式系統大部分可集成到1塊或幾塊芯片中去,應用系統電路板將變得很簡潔,對于減小體積和功耗、提高可靠性非常有利。
SoC可以分為通用和專用2類。通用系列包括Siemens公司的TriCore、Motorola公司的M-Core、某些ARM系列器件、Echelon公司和Motoro-la公司聯合研制的Neuron芯片等。專用SoC一般專用于某個或某類系統中,不為一般用戶所知。
1. 2 嵌入式處理器分類的變遷
國際上公認的通用嵌入式處理器有3大類:MCU、DSP和MPU(Micro-Processor Unit)。TI公司曾把處理器比作汽車:DSP是跑車,追求的是速度;MPU是轎車,追求的是經濟性與速度的折中;MCU是滿足特殊用途的車。
現在,隨著對處理速度的要求越來越高,同時處理的數據更加復雜,出現了雙核與多核處理器,通常為DSP+RISC芯核,如Infineon公司的TriCore(CISC+RISC+DSP)、Philips公司的Trimedia。隨著一些大量應用市場的崛起,又出現了一些新名詞,例如用于網絡、通信設備的通信處理器(2000年左右興起),數碼相機、數碼錄像機等視頻、音頻流所需的媒體處理器(2003年興起),智能手機上的應用處理器(2004年興起)。
由于一些處理器不僅要有速度,還要有控制功能,又出現了DSP與MCU的結合品,主攻電機控制市場。如Freescale公司的DSP利用了其在MCU控制方面的技術;Microehip公司2004年2月也推出了這種產品,稱為DSC(Digital Signal Controller)。
為了滿足多芯核與SoC設計的需要,還有一些廠家專門供應處理器芯核的IP,芯核主要有16位、32位、64位,有軟核與硬核。多芯核市場發(fā)展空間廣闊,在美國Electronic Summit 2004上,做64位RISC IP的Tensilica公司總裁Chris Rowen博士說,未來10年,1塊芯片中需要上千個處理器芯核,每秒要完成1012次運算。[!--empirenews.page--]
2 嵌入式處理器芯片的開發(fā)
2.1 一般開發(fā)過程
盡管有幾千種現成的芯片可供選擇,但是許多設計者需要與眾不同的特性。因此,他們開發(fā)自己的嵌入式芯片,即所謂的專用集成電路。
設計人員開始時需要從一家公司取得嵌入式微處理器的內核的授權,然后添加他自已應用特有的特性。例如,對于數字照相機處理器來說,他可能為這種電荷耦合設備的芯片添加1個控制器。又比如,對于具有Internet功能的家電處理器來說,可以添加1個Ethernet接口。設計者然后將他的設計交給“鑄造廠”,即一家擁有“工廠”(芯片制造廠)的公司,并將部分制造量出售給其他公司。主要的制造廠有United Microelectronics公司、TSMC公司和IBM Microelectronics公司。
對于一些設計者來說,甚至這種靈活性還不夠用。他們可以找到某些公司,這些公司擁有可高度定制嵌入式微處理器內核的許可證。利用這類內核,可以開發(fā)出用于特殊目的的新機器級指令。對于數字相機處理器而言,1條提高JPEG圖像壓縮率的指令具有很高的價值。對于MP3音樂播放器來說,1條加速音頻解壓縮率的指令具有同樣的用處。然后,定制的設計交給“鑄造廠”進行生產。
和通用計算機不同,嵌入式系統的硬件和軟件都必須高效率地設計,量體裁衣,去除冗余,力爭在同樣的硅片面積上實現更高的性能,這樣才能在具體應用對處理器的選擇面前更具有競爭力。嵌入式處理器要針對用戶的具體需求,對芯片配置進行裁剪和添加才能達到理想的性能;但同時還受用戶訂貨量的制約。因此不同的處理器面向的用戶是不一樣的,可能是一般用戶、行業(yè)用戶或單一用戶。
嵌入式處理器的發(fā)展也體現出穩(wěn)定性,1個體系一般要存在8~lO年的時間。1個體系結構及其相關的片上外設、開發(fā)工具、庫函數、嵌入式應用產品是一套復雜的知識系統,用戶和半導體廠商都不會輕易地放棄1種處理器。
2.2 嵌入式系統的開發(fā)工具
嵌入式處理器是一個復雜的高技術系統,要在短時間內掌握并開發(fā)出所有功能是很不容易的,而市場競爭要求產品能夠快速上市,這一矛盾要求嵌入式處理器能夠有容易掌握和使用的開發(fā)工具平臺,提高用戶和程序員的時間一投入回報率。面對成百上千種處理器,選擇是一個問題,學習掌握處理器結構及其應用更需要時間,因此以開發(fā)工具和技術咨詢?yōu)榛A的整體解決方案是迫切需要的。好的開發(fā)工具除能夠開發(fā)出處理器的全部功能以外,還應當對用戶是友好的。
嵌入式系統開發(fā)工具平臺主要包括以下幾類。
2.2.1 實時在線仿真系統
在計算機輔助設計非常發(fā)達的今天,實時在線仿真系統(InCircuit Emulator,ICE)仍是進行嵌入式應用系統調試最有效的開發(fā)工具。 ICE首先可以通過實際執(zhí)行,對應用程序進行原理性檢驗,排除人難以發(fā)現的設計邏輯錯誤。ICE的另一個主要功能是在應用系統中仿真微控制器的實時執(zhí)行,發(fā)現和排除由于硬件干擾等引起的異常執(zhí)行行為。此外,高級的ICE帶有完善的跟蹤功能,可以將應用系統的實際狀態(tài)變化、微控制器對狀態(tài)變化的反應、以及應用系統對控制的響應等以一種錄像的方式連續(xù)記錄下來,以供分析,在分析中優(yōu)化控制過程。很多機電系統難以建立精確有效的數字模型,或是建立模型需要大量人力,這時采用ICE的跟蹤功能對系統進行記錄和分析是一個快而有效的方法。
ICE不僅是軟硬件排錯工具,同時也是提高和優(yōu)化系統性能指標的工具。高檔ICE工具(如美國Nohau公司的產品)可根據用戶投資裁減功能,亦可根據需要選擇配置各種檔次的實時邏輯跟蹤器(Trace)、實時映像存儲器(Shadow RAM)及程序效率實時分析功能(PPA)。
2.2.2 高級語言編譯器
C語言作為一種通用的高級語言,大幅度提高了嵌入式系統工程的工作效率,充分發(fā)揮出嵌入式處理器日益提高的性能,縮短產品進入市場時間。另外,C語言便于移植和修改,使產品的升級和繼承更迅速。更重要的是,采用C語言編寫的程序易于在不同的開發(fā)者之間進行交流,從而促進了嵌入式系統開發(fā)的產業(yè)化。
區(qū)別于一般計算機中的C語言編譯器,嵌入式系統中的C語言編譯器要專門進行優(yōu)化,以提高編譯效率。優(yōu)秀的嵌入式系統C編譯器代碼長度和執(zhí)行時間僅比以匯編語言編寫的同樣功能程序長5%~20%。編譯效率的不同,是區(qū)別嵌入式系統C編譯器性能差別的重要根據之一。而C編譯器殘余的5%~10%效率差別,完全可以由現代微控制器的高速度、大存儲器空間以及產品提前進入市場來彌補。
新型的微控制器指令速度不斷提高,存儲器空間也相應加大,已經達到甚至超過了目前的通用計算機中的微處理器,為嵌入式系統工程采用過去一直不敢問津的C++語言創(chuàng)造了條件。C++語言強大的類、繼承等功能更便于實現復雜的程序功能。但是C++語言為了支持復雜的語法,在代碼生成效率方面不免有所下降。為此,1995年初在日本成立的Embedded C++技術委員會經過幾年的研究,針對嵌入式應用制訂了減小代碼尺寸的EC++標準。EC++保留了C++的主要優(yōu)點,提供對C++的向上兼容性,并滿足嵌入式系統設計的一些特殊要求。在嵌入式高級語言編譯器方面處于領先地位的Tasking公司,是EC++技術委員會成員之一,也是最先推出EC++產品的公司。
C/C++/EC++引入嵌入式系統,使得嵌入式開發(fā)和個人計算機、小型機等在開發(fā)上的差別正在逐漸消除,軟件工程中的很多經驗、方法乃至庫函數可以移植到嵌入式系統。在嵌入式開發(fā)中采用高級語言,還使得硬件開發(fā)和軟件開發(fā)可以分工,從事嵌入式軟件開發(fā)不再必須精通系統硬件和相應的指令集匯編。
另一種高級語言Java的發(fā)展則具有戲劇性。Java本來是為設備獨立的嵌入式系統設計、為了提高程序繼承性的語言,但是目前基于Java的嵌入式開發(fā)工具代碼生成長度要比嵌入式C編譯工具長10倍以上。因此EC++很可能在未來的一段時間內仍是嵌入式系統的主流。
2.2.3 源程序模擬器
源程序模擬器是在廣泛使用的、人機接口完備的工作平臺上,如小型機和PC,通過軟件手段模擬執(zhí)行某種嵌入式處理器內核編寫的源程序的測試工具。簡單的模擬器可以通過指令解釋方式逐條執(zhí)行源程序,分配虛擬存儲空間和外設,供程序員檢查;高級的模擬器可以利用計算機的外部接口模擬出處理器的I/O電氣信號。不同檔次和功能模擬器工具價格差距巨大。模擬器軟件獨立于處理器硬件,一般與編譯器集成在同一個環(huán)境中,是一種有效的源程序檢驗和測試工具。但值得注意的是,模擬器畢竟是以一種處理器模擬另一種處理器的運行,在指令執(zhí)行時間、中斷響應、定時器等方面很可能與實際處理器有較大差別。另外,它無法和ICE一樣,仿真嵌入式系統在應用系統中的實際執(zhí)行情況。
結語
嵌入式系統是將計算機直接嵌入到應用系統中,是信息技術的最終產品。嵌入式系統的核心就是嵌入式處理器。嵌入式系統是信息產業(yè)走向21世紀知識經濟時代的最重要的經濟增長點之一,是一個不可壟斷的工業(yè),對中國的信息產業(yè)來說充滿了機遇和挑戰(zhàn)。世界是多樣化的,尤其是已經進入后PC時代——無所不在的計算(nomadic computing)將使嵌入式處理器遍及人們能夠想象得到的各個角落,因此,每種處理器都有存在的理由,都有可伸展的方向。這一點應特別引起中國信息產業(yè)界的關注。