嵌入式系統(tǒng)基礎(chǔ)之:嵌入式系統(tǒng)概述
掃描二維碼
隨時隨地手機看文章
尼葛洛龐帝2001年訪華時的預(yù)言“4~5年后,嵌入式智能電腦將是繼PC和Internet后的最偉大發(fā)明!”。如今,嵌入式系統(tǒng)已成為當(dāng)今最為熱門的領(lǐng)域之一,它迅猛的發(fā)展勢頭引起了社會各界人士的關(guān)注。如家用電器、手持通信設(shè)備、信息終端、儀器儀表、汽車、航天航空、軍事裝備、制造工業(yè)、過程控制等。今天,嵌入式系統(tǒng)帶來的工業(yè)年產(chǎn)值已超過1萬億美元。用市場觀點來看,PC已經(jīng)從高速增長期進入到平穩(wěn)發(fā)展期,其年增長率由20世紀(jì)90年代中期的35%逐年下降,使單純由PC機帶領(lǐng)電子產(chǎn)業(yè)蒸蒸日上的時代成為歷史。根據(jù)PC時代的概念,美國BusinessWeek雜志提出了“后PC時代”概念,即計算機、通信和消費產(chǎn)品的技術(shù)將結(jié)合起來,以3C產(chǎn)品的形式通過Internet進入家庭。這必將培育出一個龐大的嵌入式應(yīng)用市場。那么究竟什么是嵌入式系統(tǒng)呢?
按照電器工程協(xié)會的定義,嵌入式系統(tǒng)是用來控制或者監(jiān)視機器、裝置、工廠等各種規(guī)模系統(tǒng)的設(shè)備。這個定義主要是從嵌入式系統(tǒng)的用途方面來進行定義的。
那么,下面再來看一個在多數(shù)書籍資料中的關(guān)于嵌入式系統(tǒng)的定義:嵌入式系統(tǒng)是指以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟件硬件可剪裁,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。筆者認(rèn)為,將一套計算機控制系統(tǒng)嵌入到已具有某種完整的特定功能的(或者將會具備完整功能的)系統(tǒng)內(nèi)(例如:各種機械設(shè)備),以實現(xiàn)對原有系統(tǒng)的計算機控制,此時將這個新系統(tǒng)叫做嵌入式系統(tǒng)。它通常由特定功能模塊和計算機控制模塊組成,主要由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶應(yīng)用軟件等部分組成。它具有“嵌入性”、“專用性”與“計算機系統(tǒng)”的3個基本要素。
從這個定義可以看出,人們平常所廣泛使用的手機、PDA、MP3、機頂盒都屬于嵌入式系統(tǒng)設(shè)備;而車載GPS系統(tǒng)、機器人也是屬于嵌入式系統(tǒng)。圖4.1展出了人們?nèi)粘I钪行涡紊那度胧疆a(chǎn)品。的確,嵌入式系統(tǒng)已經(jīng)進入了人們生活的方方面面。
圖4.1生活中的嵌入式設(shè)備
4.1.2嵌入式系統(tǒng)發(fā)展歷史嵌入式系統(tǒng)經(jīng)過30年的發(fā)展歷程,主要經(jīng)歷了4個階段。
第1階段是以單芯片為核心的可編程控制器形式的系統(tǒng)。這類系統(tǒng)大部分應(yīng)用于一些專業(yè)性強的工業(yè)控制系統(tǒng)中,一般沒有操作系統(tǒng)的支持,通過匯編語言編程對系統(tǒng)進行直接控制。這一階段系統(tǒng)的主要特點是:系統(tǒng)結(jié)構(gòu)和功能相對單一,處理效率較低,存儲容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡單、價格低,因此以前在國內(nèi)工業(yè)領(lǐng)域應(yīng)用較為普遍,但是現(xiàn)在已經(jīng)遠(yuǎn)不能適應(yīng)高效的、需要大容量存儲的現(xiàn)代工業(yè)控制和新興信息家電等領(lǐng)域的需求。
第2階段是以嵌入式CPU為基礎(chǔ)、以簡單操作系統(tǒng)為核心的嵌入式系統(tǒng)。其主要特點是:CPU種類繁多,通用性比較弱;系統(tǒng)開銷小,效率高;操作系統(tǒng)達(dá)到一定的兼容性和擴展性;應(yīng)用軟件較為專業(yè)化,用戶界面不夠友好。
第3階段是以嵌入式操作系統(tǒng)為標(biāo)志的嵌入式系統(tǒng)。其主要特點是:嵌入式操作系統(tǒng)能運行于各種不同類型的微處理器上,兼容性好;操作系統(tǒng)內(nèi)核小、效率高,并且具有高度的模塊化和擴展性;具備文件和目錄管理、支持多任務(wù)、支持網(wǎng)絡(luò)應(yīng)用、具備圖形窗口和用戶界面;具有大量的應(yīng)用程序接口API,開發(fā)應(yīng)用程序較簡單;嵌入式應(yīng)用軟件豐富。
第4階段是以Internet、多核技術(shù)為標(biāo)志的嵌入式系統(tǒng)。這是一個正在迅速發(fā)展的階段。目前不少嵌入式系統(tǒng)提供Internet服務(wù),而且多種多核嵌入式處理器以及支持多核的軟件產(chǎn)品陸續(xù)進入嵌入式市場。隨著新技術(shù)、新工藝的發(fā)展以及它們與信息家電、工業(yè)控制技術(shù)結(jié)合日益緊密,嵌入式設(shè)備的全能化將代表嵌入式系統(tǒng)的未來。
4.1.3嵌入式系統(tǒng)的特點(1)面向特定應(yīng)用的特點。從前面圖4.1中也可以看出,嵌入式系統(tǒng)與通用型系統(tǒng)的最大區(qū)別就在于嵌入式系統(tǒng)大多工作在為特定用戶群設(shè)計的系統(tǒng)中,因此它通常都具有低功耗、體積小、集成度高等特點,并且可以滿足不用應(yīng)用的特定需求。
(2)嵌入式系統(tǒng)的硬件和軟件都必須進行高效地設(shè)計,量體裁衣、去除冗余,力爭在同樣的硅片面積上實現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對處理器的選擇更具有競爭力。
(3)嵌入式系統(tǒng)是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點就決定了它必然是一個技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng),從事嵌入式系統(tǒng)開發(fā)的人才也必須是復(fù)合型人才。
(4)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片中或單片機本身,而不是存儲于磁盤中。
(5)嵌入式開發(fā)的軟件代碼尤其要求高質(zhì)量、高可靠性,由于嵌入式設(shè)備往往是處在無人職守或條件惡劣的情況下,因此,其代碼必須有更高的要求。
(6)嵌入式系統(tǒng)本身不具備二次開發(fā)能力,即設(shè)計完成后用戶通常不能在該平臺上直接對程序功能進行修改,必須有一套開發(fā)工具和環(huán)境才能進行再次開發(fā)。
4.1.4嵌入式系統(tǒng)的體系結(jié)構(gòu)嵌入式系統(tǒng)作為一類特殊的計算機系統(tǒng),一般包括以下3個方面:硬件設(shè)備、嵌入式操作系統(tǒng)和應(yīng)用軟件。它們之間的關(guān)系如圖4.2所示。
圖4.2嵌入式體系結(jié)構(gòu)圖
硬件設(shè)備包括嵌入式處理器和外圍設(shè)備。其中的嵌入式處理器(CPU)是嵌入式系統(tǒng)的核心部分,它與通用處理器最大的區(qū)別在于,嵌入式處理器大多工作在為特定用戶群所專門設(shè)計的系統(tǒng)中,它將通用處理器中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計時趨于小型化,同時還具有很高的效率和可靠性。如今,全世界嵌入式處理器已經(jīng)超過1000多種,流行的體系結(jié)構(gòu)有30多個系列,其中以ARM、PowerPC、MC68000、MIPS等使用得最為廣泛。
外圍設(shè)備是指嵌入式系統(tǒng)中用于完成存儲、通信、調(diào)試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設(shè)備按功能可以分為存儲設(shè)備(如RAM、SRAM、Flash等)、通信設(shè)備(如RS-232接口、SPI接口、以太網(wǎng)接口、USB接口、無線通信等)和顯示設(shè)備(如顯示屏等)3類。
小知識
常見存儲器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、E2PROM、Flash。
存儲器可以分為很多種類,其中根據(jù)掉電后數(shù)據(jù)是否丟失可以分為RAM(隨機存取存儲器)和ROM(只讀存儲器),其中RAM的訪問速度比較快,但掉電后數(shù)據(jù)會丟失,而ROM掉電后數(shù)據(jù)不會丟失。人們通常所說的內(nèi)存即指系統(tǒng)中的RAM。
RAM又可分為SRAM(靜態(tài)存儲器)和DRAM(動態(tài)存儲器)。SRAM是利用雙穩(wěn)態(tài)觸發(fā)器來保存信息的,只要不掉電,信息是不會丟失的。DRAM是利用MOS(金屬氧化物半導(dǎo)體)電容存儲電荷來儲存信息,因此必須通過不停地給電容充電來維持信息,所以DRAM的成本、集成度、功耗等明顯優(yōu)于SRAM。
而通常人們所說的SDRAM是DRAM的一種,它是同步動態(tài)存儲器,利用一個單一的系統(tǒng)時鐘同步所有的地址數(shù)據(jù)和控制信號。使用SDRAM不但能提高系統(tǒng)表現(xiàn),還能簡化設(shè)計、提供高速的數(shù)據(jù)傳輸。在嵌入式系統(tǒng)中經(jīng)常使用。
EPROM、E2PROM都是ROM的一種,分別為可擦除可編程ROM和電可擦除ROM,但使用不是很方便。
Flash也是一種非易失性存儲器(掉電不會丟失),它擦寫方便,訪問速度快,已大大取代了傳統(tǒng)的EPROM的地位。由于它具有和ROM一樣掉電不會丟失的特性,因此很多人稱其為FlashROM。
嵌入式操作系統(tǒng)從嵌入式發(fā)展的第3階段起開始引入。嵌入式操作系統(tǒng)不僅具有通用操作系統(tǒng)的一般功能,如向上提供對用戶的接口(如圖形界面、庫函數(shù)API等),向下提供與硬件設(shè)備交互的接口(硬件驅(qū)動程序等),管理復(fù)雜的系統(tǒng)資源,同時,它還在系統(tǒng)實時性、硬件依賴性、軟件固化性以及應(yīng)用專用性等方面,具有更加鮮明的特點。
應(yīng)用軟件是針對特定應(yīng)用領(lǐng)域,基于某一固定的硬件平臺,用來達(dá)到用戶預(yù)期目標(biāo)的計算機軟件。由于嵌入式系統(tǒng)自身的特點,決定了嵌入式應(yīng)用軟件不僅要求做到準(zhǔn)確性、安全性和穩(wěn)定性等方面需要,而且還要盡可能地進行代碼優(yōu)化,以減少對系統(tǒng)資源的消耗,降低硬件成本。
4.1.5幾種主流嵌入式操作系統(tǒng)分析1.嵌入式Linux嵌入式Linux(EmbeddedLinux)是指對標(biāo)準(zhǔn)Linux經(jīng)過小型化裁剪處理之后,能夠固化在容量只有幾KB或者幾MB的存儲器芯片或者單片機中,是適合于特定嵌入式應(yīng)用場合的專用Linux操作系統(tǒng)。在目前已經(jīng)開發(fā)成功的嵌入式系統(tǒng)中,大約有一半使用的是Linux。這與它自身的優(yōu)良特性是分不開的。
嵌入式Linux同Linux一樣,具有低成本、多種硬件平臺支持、優(yōu)異的性能和良好的網(wǎng)絡(luò)支持等優(yōu)點。另外,為了更好地適應(yīng)嵌入式領(lǐng)域的開發(fā),嵌入式Linux還在Linux基礎(chǔ)上做了部分改進,如下所示。
n 改善的內(nèi)核結(jié)構(gòu)。
Linux內(nèi)核采用的是整體式結(jié)構(gòu)(Monolithic),整個內(nèi)核是一個單獨的、非常大的程序,這樣雖然能夠使系統(tǒng)的各個部分直接溝通,提高系統(tǒng)響應(yīng)速度,但與嵌入式系統(tǒng)存儲容量小、資源有限的特點不相符合。因此,在嵌入式系統(tǒng)經(jīng)常采用的是另一種稱為微內(nèi)核(Microkernel)的體系結(jié)構(gòu),即內(nèi)核本身只提供一些最基本的操作系統(tǒng)功能,如任務(wù)調(diào)度、內(nèi)存管理、中斷處理等,而類似于設(shè)備驅(qū)動、文件系統(tǒng)和網(wǎng)絡(luò)協(xié)議等附加功能則可以根據(jù)實際需要進行取舍。這樣就大大減小了內(nèi)核的體積,便于維護和移植。
n 提高的系統(tǒng)實時性。
由于現(xiàn)有的Linux是一個通用的操作系統(tǒng),雖然它也采用了許多技術(shù)來加快系統(tǒng)的運行和響應(yīng)速度,但從本質(zhì)上來說并不是一個嵌入式實時操作系統(tǒng)。因此,利用Linux作為底層操作系統(tǒng),在其上進行實時化改造,從而構(gòu)建出一個具有實時處理能力的嵌入式系統(tǒng),如RT-Linux已經(jīng)成功地應(yīng)用于航天飛機的空間數(shù)據(jù)采集、科學(xué)儀器測控和電影特技圖像處理等各種領(lǐng)域。
嵌入式Linux同Linux一樣,也有眾多的版本,其中不同的版本分別針對不同的需要在內(nèi)核等方面加入了特定的機制。嵌入式Linux的主要版本如表4.1所示。
表4.1 嵌入式Linux主要版本
版本
簡單介紹
mCLinux
開放源碼的嵌入式Linux的典范之作。它主要是針對目標(biāo)處理器沒有存儲管理單元MMU,它運行穩(wěn)定,具有良好的移植性和優(yōu)秀的網(wǎng)絡(luò)功能,對各種文件系統(tǒng)有完備的支持,并提供豐富的API
RT-Linux
由美國墨西哥理工學(xué)院開發(fā)的嵌入式Linux硬實時操作系統(tǒng)。它已有廣泛的應(yīng)用
Embedix
根據(jù)嵌入式應(yīng)用系統(tǒng)的特點重新設(shè)計的Linux發(fā)行版本。它提供了超過25種的Linux系統(tǒng)服務(wù),包括Web服務(wù)器等。此外還推出了Embedix的開發(fā)調(diào)試工具包、基于圖形界面的瀏覽器等??梢哉f,Embedix是一種完整的嵌入式Linux解決方案
XLinux
采用了“超字元集”專利技術(shù),使Linux內(nèi)核不僅能與標(biāo)準(zhǔn)字符集相容,還涵蓋了12個國家和地區(qū)的字符集。因此,XLinux在推廣Linux的國際應(yīng)用方面有獨特的優(yōu)勢
PoketLinux
它可以提供跨操作系統(tǒng)并且構(gòu)造統(tǒng)一的、標(biāo)準(zhǔn)化的和開放的信息通信基礎(chǔ)結(jié)構(gòu),在此結(jié)構(gòu)上實現(xiàn)端到端方案的完整平臺
紅旗嵌入式Linux
由北京中科院紅旗軟件公司推出的嵌入式Linux,它是國內(nèi)做得較好的一款嵌入式操作系統(tǒng)。目前,中科院計算機研究所自行開發(fā)的開放源碼的嵌入式操作系統(tǒng)——EasyEmbeddedOS(EEOS)也已經(jīng)開始進入實用階段了
Montavistalinux
MontaVistaLinux是MontaVistaSoftware于1999年開始推出的,專門面向嵌入式系統(tǒng)的商業(yè)級操作系統(tǒng),基于Linux內(nèi)核2.6,采用可搶占內(nèi)核技術(shù),集合了MontaVista硬實時技術(shù),性能遠(yuǎn)遠(yuǎn)高于標(biāo)準(zhǔn)2.6內(nèi)核,具有更短的搶占延遲,反應(yīng)速度是標(biāo)準(zhǔn)內(nèi)核的200倍;采用優(yōu)先級線程實現(xiàn)中斷服務(wù)程序的調(diào)度。與Linux家族兼容的產(chǎn)品:VxWorks和LynxOS已經(jīng)有一些嵌入式操作系統(tǒng)產(chǎn)品,并非從Linux裁剪或者改造而來,但是已經(jīng)基本實現(xiàn)POSIX兼容,在接口級與嵌入式Linux系列產(chǎn)品達(dá)成一致。這些產(chǎn)品具有優(yōu)良的傳統(tǒng)和特定的實時性、可靠性實現(xiàn),在嵌入式操作系統(tǒng)中具有重要地位。
風(fēng)河linux
風(fēng)河公司(著名的實時操作系統(tǒng)VxWorks的廠商)一直致力于嵌入式Linux方面的研究和開發(fā)。首個滿足由Linux基金會(LinuxFoundation)制定的電信級Linux(CGL)4.0規(guī)范要求的商用化Linux廠商。WindRiverPlatformforNetworkEquipment,LinuxEdition2.0是首個完全遵循最新CGL規(guī)范的網(wǎng)絡(luò)通信與電信行業(yè)Linux平臺產(chǎn)品。
為了不失一般性,本書說所用的嵌入式Linux是標(biāo)準(zhǔn)內(nèi)核裁減的Linux,而不是上表中的任何一種。
2.VxWorksVxWorks操作系統(tǒng)是美國WindRiver公司于1983年設(shè)計開發(fā)的一種嵌入式實時操作系統(tǒng)(RTOS),它是在當(dāng)前市場占有率很高的嵌入式操作系統(tǒng)之一。VxWorks的實時性做得非常好,其系統(tǒng)本身的開銷很小,進程調(diào)度、進程間通信、中斷處理等系統(tǒng)公用程序精練而有效,使得它們造成的延遲很短。另外VxWorks提供的多任務(wù)機制,對任務(wù)的控制采用了優(yōu)先級搶占(Linux2.6內(nèi)核也采用了優(yōu)先級搶占的機制)和輪轉(zhuǎn)調(diào)度機制,這充分保證了可靠的實時性,并使同樣的硬件配置能滿足更強的實時性要求。另外VxWorks具有高度的可靠性,從而保證了用戶工作環(huán)境的穩(wěn)定。同時,VxWorks還有完備強大的集成開發(fā)環(huán)境,這也大大方便了用戶的使用。
但是,由于VxWorks的開發(fā)和使用都需要交納高額的專利費,因此大大增加了用戶的開發(fā)成本。同時,由于VxWorks的源碼不公開,造成它部分功能的更新(如網(wǎng)絡(luò)功能模塊)滯后。
3.QNXQNX是業(yè)界公認(rèn)的X86平臺上最好的嵌入式實時操作系統(tǒng)之一,它具有獨一無二的微內(nèi)核實時平臺,是建立在微內(nèi)核和完全地址空間保護基礎(chǔ)之上的,它同樣具有實時性強、穩(wěn)定可靠的優(yōu)點。
4.WindowsCEWindowsCE是微軟公司開發(fā)的一個開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng)。它是精簡的Windows95。WindowsCE的圖形用戶界面相當(dāng)出色。WindowsCE具有模塊化、結(jié)構(gòu)化和基干Win32應(yīng)用程序接口以及與處理器無關(guān)等特點。它不僅繼承了傳統(tǒng)的Windows圖形界面,并且用戶在WindowsCE平臺上可以使用Windows95/98上的編程工具(如VisualStudio等)、也可以使用同樣的函數(shù)、使用同樣的界面風(fēng)格,使絕大多數(shù)Windows上的應(yīng)用軟件只需簡單地修改和移植就可以在WindowsCE平臺上繼續(xù)使用。但與VxWorks相同,WindowsCE也是比較昂貴的。
5.PalmOSPamlOS在PDA和掌上電腦有著很龐大的用戶群。PalmOS最明顯的特點在精簡,它的內(nèi)核只有幾千個字節(jié),同時用戶也可以方便地開發(fā)定制,具有較強的可操作性。