1.1 嵌入式系統的概念與發展
1.1.1 嵌入式系統的概念
嵌入式系統有很長一段時間是以單片機的形式獨立發展的,大多是基于8位單片機,實現底層的嵌入式系統應用,帶有明顯的電子系統設計模式的特點。大多數從事單片機應用開發的人員,都是應用對象系統領域中的電子系統工程師,隨著單片機的出現,他們立即脫離了計算機專業領域,以“智能化”器件開發者的身份進入了電子系統領域,沒有帶入嵌入式系統的概念。因此,不少從事單片機應用的人,不了解單片機與嵌入式系統的關系,在談到嵌入式系統領域時,往往理解成計算機專業領域的,基于32位嵌入式處理器的,從事網絡、通信、多媒體等的應用。這樣,“單片機”與“嵌入式系統”形成了嵌入式系統中常見的兩個獨立的名詞。但由于“單片機”是典型的、獨立發展起來的嵌入式系統,所以應該把它統一成“嵌入式系統”??紤]到原來單片機電子系統底層應用的特點,可以把嵌入式系統應用分成頂層與底層,把原來的單片機應用理解成嵌入式系統的底層應用,含義為它與對象硬件的緊密結合。
以開發語言為例,單片機一般以匯編語言、C語言等與硬件關系較密切的語言開發。而嵌入式系統由無操作系統階段、簡單操作系統階段再到實時操作系統階段,也經歷了由匯編語言、C語言的底層、中間層開發到VS2005的頂層應用開發。我們可以認為單片機階段是嵌入式系統的初級階段,只是這個初級階段非常強盛,非常有生命力,而且直到現在,單片機仍在各領域被廣泛應用。但歸根到底,單片機還是嵌入式系統的一部分,而嵌入式系統是單片機的發展與補充。
聽起來,嵌入式系統很深奧,但其實很簡單,凡是專用的、小型或者微型的計算機系統都是嵌入式系統。嵌入式系統的英文為Embedded System,它實際上就是功能比通用計算機專門化,具有通用計算機所不具備的、針對某個方面特別設計的、有合適的運算速度、高可靠性和較低成本的專門的計算機系統。
有些人把嵌入式處理器當做嵌入式系統,但其實嵌入式系統是一個嵌入式計算機系統。因此,只有將嵌入式處理器構成一個計算機系統,并進行嵌入式應用時,才可稱做嵌入式系統。
嵌入式系統誕生于微型機時代,我們要充分認識到嵌入式系統的嵌入性本質,即要將一個計算機嵌入到一個對象體系中去,這些是理解嵌入式系統的基本出發點。
嵌入式系統起源于微型計算機時代,然而微型計算機的體積、價位、可靠性都無法滿足廣大對象系統的嵌入式應用要求。因此,嵌入式系統必須走獨立發展的道路,這條道路就是芯片化道路(將計算機做在一個芯片上),因此就開創了嵌入式系統獨立發展的單片機時代。
在單片機時代中,嵌入式系統以器件形態迅速進入到傳統電子技術領域中。此時的設計人員以電子技術應用工程師為主體,來實現傳統電子系統的智能化,而計算機專業隊伍還沒有真正進入單片機應用領域。因此,電子技術應用工程師以自己習慣的電子技術應用模式,從事單片機的應用開發。這種應用模式最重要的特點是軟、硬件的底層性和隨意性,對象系統專業技術的密切相關性,以及缺乏計算機工程設計方法等。
雖然在單片機時代,計算機專業淡出了嵌入式系統領域。但隨著PC時代的到來,網絡、通信技術得以發展;同時,嵌入式系統軟、硬件技術也有了很大的提升,為計算機專業人士介入嵌入式系統應用開辟了廣闊的天地。計算機專業人士的介入,使計算機應用模式帶有明顯的計算機工程應用特點,即基于嵌入式系統軟、硬件平臺,以網絡、通信為主的非嵌入式底層應用。
嵌入式系統最大、最廣的底層應用是傳統電子技術領域的智能化改造。因此,以通曉專業對象的電子技術隊伍為主,用最少的嵌入式系統軟、硬件資源,以8位機為主,帶有濃重的電子系統設計色彩的電子系統應用模式將會長期存在下去。另外,計算機專業人士會越來越多地介入嵌入式系統應用,但由于對象專業知識的隔閡,其應用領域會局限在網絡、通信、多媒體、商務電子等方面,不可能替代原來電子工程師在控制、儀器儀表、機械電子等方面的嵌入式應用。因此,客觀存在的兩種應用模式會長期并存下去,在不同的領域中相互補充。電子系統設計模式應從計算機應用設計模式中,學習計算機工程方法和嵌入式系統軟件技術;計算機應用設計模式應從電子系統設計模式中,了解嵌入式系統應用的電路系統特性、基本的外圍電路設計方法及對象系統的基本要求等。
嵌入式系統與對象系統密切相關,其主要技術發展方向是滿足嵌入式應用要求,不斷擴展對象系統要求的外圍電路(如ADC、DAC、PWM、日歷時鐘、電源監測、程序運行監測電路等),形成滿足對象系統要求的應用系統。因此,作為一個專用計算機系統,嵌入式系統要不斷向計算機應用系統發展。
1.1.2 嵌入式系統的發展歷史
嵌入式系統誕生于微型機時代,經歷了漫長的以單片機形式獨立發展的道路。要給嵌入式系統尋求科學的定義,必須了解嵌入式系統的發展歷史,按照歷史性、本質性、普遍通用性來定義嵌入式系統,并把定義與特點區分開來。在嵌入式系統應用中,對象系統的廣泛性與單片機的獨立發展道路使嵌入式系統應用在客觀上存在兩種模式,即從學科建設角度統一成的嵌入式系統應用的高低端。
1.無操作系統階段
嵌入式系統最初的應用是基于單片機的,大多以可編程控制器的形式出現,具有監測、伺服、設備指示等功能,一般沒有操作系統的支持,只能通過匯編語言對系統進行直接控制,運行結束后再清除內存。通常應用于各類工業控制和飛機、導彈等武器裝備中。這些裝置雖然已經初步具備了嵌入式的應用特點,但僅僅是使用8位的CPU芯片來執行一些單線程的程序,因此嚴格地說還談不上“系統”的概念。
這一階段嵌入式系統的主要特點是,系統結構和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于這種嵌入式系統使用簡便、價格低廉,因而曾經在工業控制領域中得到了非常廣泛的應用,但無法滿足現今對執行效率和存儲容量都有較高要求的信息家電等場合的需要。
2.簡單操作系統階段
20世紀80年代,隨著微電子工藝水平的提高,IC制造商開始把嵌入式應用中所需要的微處理器、I/O接口、串行接口,以及RAM、ROM等部件統統集成到一片VLSI中,制造出面向I/O設計的微控制器,并一舉成為嵌入式系統領域中異軍突起的新秀。與此同時,嵌入式系統的程序員也開始基于一些簡單的“操作系統”開發嵌入式應用軟件,大大縮短了開發周期、提高了開發效率。
這一階段嵌入式系統的主要特點是,出現了大量具有高可靠性、低功耗的嵌入式CPU(如PowerPC等),各種簡單的嵌入式操作系統開始出現并迅速發展。此時的嵌入式操作系統雖然還比較簡單,但已經具有了一定的兼容性和擴展性,內核精巧且效率高,主要用來控制系統負載,以及監控應用程序的運行。
3.實時操作系統階段
20世紀90年代,在分布控制、柔性制造、數字化通信、信息家電等巨大需求的牽引下,嵌入式系統進一步飛速發展,而面向實時信號處理算法的DSP產品則向著高速度、高精度、低功耗的方向發展。隨著硬件實時性要求的提高,嵌入式系統的軟件規模也不斷擴大,逐漸形成了實時多任務操作系統(RTOS),并開始成為嵌入式系統的主流。
這一階段嵌入式系統的主要特點是,操作系統的實時性得到了很大的改善,已經能夠在各種不同類型的微處理器上運行,具有高度的模塊化和擴展性。此時的嵌入式操作系統已經具備了文件和目錄管理、設備管理、多任務、網絡、圖形用戶界面(GUI)等功能,并提供了大量的應用程序接口(API),從而使得應用軟件的開發變得更加簡單。
4.面向Internet階段
21世紀無疑是一個網絡的時代,將嵌入式系統應用到各種網絡環境中去的呼聲自然也越來越高。目前,大多數嵌入式系統還孤立于Internet,隨著Internet的進一步發展,以及Internet技術與信息家電、工業控制技術等日益緊密的結合,嵌入式設備與Internet的結合才是嵌入式技術真正的未來。
信息時代和數字時代的到來,為嵌入式系統的發展帶來了巨大的機遇,同時也為嵌入式系統廠商帶來了新的挑戰。目前,嵌入式技術與Internet技術的結合正在推動著嵌入式技術的飛速發展,嵌入式系統的研究和應用產生了如下的新的顯著變化。
新的微處理器層出不窮,嵌入式操作系統自身結構的設計更加便于移植,能夠在短時間內支持更多的微處理器。
嵌入式系統的開發成了一項系統工程,開發廠商不僅要提供嵌入式軟、硬件系統本身,同時還要提供強大的硬件開發工具和軟件支持包。
通用計算機上使用的新技術、新觀念開始逐步移植到嵌入式系統中(如嵌入式數據庫、移動代理、實時CORBA等),嵌入式軟件平臺得到了進一步的完善。
各類嵌入式Linux操作系統迅速發展。由于此類系統具有源代碼開放、系統內核小、執行效率高、網絡結構完整等特點,很適合信息家電等嵌入式系統的需要,因此它目前已經成為了能與Windows CE、Palm OS等嵌入式操作系統進行有力競爭的操作系統。
網絡化、信息化的要求隨著Internet技術的成熟和帶寬的提高而日益突出,以往功能單一的設備(如電話、手機、冰箱、微波爐等)功能不再單一,結構變得更加復雜,網絡互聯成為必然趨勢。
1.1.3 嵌入式處理器
嵌入式系統的硬件以嵌入式處理器為核心,配以其他外圍器件,這是實現系統功能的基礎。在此,先講述嵌入式處理器的分類及其基本特性。
1.嵌入式微處理器
嵌入式微處理器的基礎是通用計算機的微處理器(CPU)。在應用中,一般將微處理器裝配在專門設計的電路板上,使之具有與嵌入式應用相關的接口與功能,從而達到降低系統功耗、提高系統可移植性和可靠性的目的。嵌入式微處理器雖然在功能上和通用計算機的微處理器基本是一樣的,但由于其工作環境通常比較惡劣,在可靠性、抗電磁干擾性、環境溫濕度等方面要有專門的增強。
目前的嵌入式微處理器主要包括PowerPC、Motorola 68000、MIPS、ARM等。
本教材使用的Intel PXA270處理器就是一種基于ARM內核的嵌入式微處理器。
2.嵌入式微控制器
嵌入式微控制器又稱單片機,顧名思義,就是將整個計算機系統集成到一個芯片中。該集成芯片一般以某種處理器架構為核心,可以包括Flash、RAM、ROM、EEPROM、總線、定時/計數器、看門狗、I/O、PWM、A/D、D/A等功能和外設。
與嵌入式微處理器相比,嵌入式微控制器最大的特點就是單片化、體積小、功耗低、可靠性高。嵌入式微控制器的數據處理能力一般不如嵌入式微處理器,但片上外設資源比較豐富,因此強調的是控制功能。目前各芯片設計制造廠商針對各種需要自動化控制的場合,生產出了一系列符合實際需求的、性價比較高的嵌入式微控制器,并廣泛應用于各種工業控制場合,約占整個嵌入式市場70%的份額。比較有代表性的包括8051、MCS-51、MCS-96等。
3.嵌入式DSP
由于重復或者類似的運算在數字信號處理過程中大量存在,使得為此設計的器件必須提供專門的支持,這就促成了DSP器件與通用處理器的分流。
DSP(Digital Signal Processor)是一種獨特的數字信號處理器,其以數字形式對信號進行采集、變換、濾波、估值、增強、壓縮和識別等處理,以得到符合人們需要的信號形式。它不僅具有可編程性,而且其實時運行速度可達每秒運行數千萬條復雜的指令程序,遠遠超過了一般的微處理器。它的強大數據處理能力和高運行速度,是最值得稱道的兩大特色。嵌入式DSP目前主要用于具有智能邏輯的消費類產品、生物信息識別終端、帶有加解密算法的鍵盤、ADSL接入,以及實時語音壓解系統等。這些智能化算法的運算量一般都比較大,特別是矢量運算、指針線性尋址等較多,而這正是DSP處理器的長處所在。
4.FPGA處理器
FPGA(Field Programmable Gate Array)是元件可編程邏輯門陣列。FPGA幾乎能完成所有數字器件的功能,上至高性能微控制器,下至74系列門電路,都可以用FPGA來編程實現。工程師可以根據需要,通過可編輯的連接把FPGA內部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里一樣。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者的要求而改變,所以FPGA可以完成所需要的邏輯功能。
一般來說,FPGA比ASIC(專用集成芯片)的速度要慢,消耗的電能要多,而且無法完成復雜的設計。但是它也有很多的優點,如可以快速成品、可以通過修改程序來實現對硬件電路的修改、縮短設計時間、減少PCB面積、提高系統可靠性等。