嵌入式系統(tǒng)基礎(chǔ)之:嵌入式系統(tǒng)概述
4.1.3嵌入式系統(tǒng)的特點(diǎn)
(1)面向特定應(yīng)用的特點(diǎn)。從前面圖4.1中也可以看出,嵌入式系統(tǒng)與通用型系統(tǒng)的最大區(qū)別就在于嵌入式系統(tǒng)大多工作在為特定用戶群設(shè)計(jì)的系統(tǒng)中,因此它通常都具有低功耗、體積小、集成度高等特點(diǎn),并且可以滿足不用應(yīng)用的特定需求。
(2)嵌入式系統(tǒng)的硬件和軟件都必須進(jìn)行高效地設(shè)計(jì),量體裁衣、去除冗余,力爭(zhēng)在同樣的硅片面積上實(shí)現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對(duì)處理器的選擇更具有競(jìng)爭(zhēng)力。
(3)嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物。這一點(diǎn)就決定了它必然是一個(gè)技術(shù)密集、資金密集、高度分散、不斷創(chuàng)新的知識(shí)集成系統(tǒng),從事嵌入式系統(tǒng)開發(fā)的人才也必須是復(fù)合型人才。
(4)為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲(chǔ)器芯片中或單片機(jī)本身,而不是存儲(chǔ)于磁盤中。
(5)嵌入式開發(fā)的軟件代碼尤其要求高質(zhì)量、高可靠性,由于嵌入式設(shè)備往往是處在無(wú)人職守或條件惡劣的情況下,因此,其代碼必須有更高的要求。
(6)嵌入式系統(tǒng)本身不具備二次開發(fā)能力,即設(shè)計(jì)完成后用戶通常不能在該平臺(tái)上直接對(duì)程序功能進(jìn)行修改,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行再次開發(fā)。
4.1.4嵌入式系統(tǒng)的體系結(jié)構(gòu)
嵌入式系統(tǒng)作為一類特殊的計(jì)算機(jī)系統(tǒng),一般包括以下3個(gè)方面:硬件設(shè)備、嵌入式操作系統(tǒng)和應(yīng)用軟件。它們之間的關(guān)系如圖4.2所示。
圖4.2嵌入式體系結(jié)構(gòu)圖
硬件設(shè)備包括嵌入式處理器和外圍設(shè)備。其中的嵌入式處理器(CPU)是嵌入式系統(tǒng)的核心部分,它與通用處理器最大的區(qū)別在于,嵌入式處理器大多工作在為特定用戶群所專門設(shè)計(jì)的系統(tǒng)中,它將通用處理器中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計(jì)時(shí)趨于小型化,同時(shí)還具有很高的效率和可靠性。如今,全世界嵌入式處理器已經(jīng)超過(guò)1000多種,流行的體系結(jié)構(gòu)有30多個(gè)系列,其中以ARM、PowerPC、MC68000、MIPS等使用得最為廣泛。
外圍設(shè)備是指嵌入式系統(tǒng)中用于完成存儲(chǔ)、通信、調(diào)試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設(shè)備按功能可以分為存儲(chǔ)設(shè)備(如RAM、SRAM、Flash等)、通信設(shè)備(如RS-232接口、SPI接口、以太網(wǎng)接口、USB接口、無(wú)線通信等)和顯示設(shè)備(如顯示屏等)3類。
小知識(shí) | 常見(jiàn)存儲(chǔ)器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、E2PROM、Flash。 存儲(chǔ)器可以分為很多種類,其中根據(jù)掉電后數(shù)據(jù)是否丟失可以分為RAM(隨機(jī)存取存儲(chǔ)器)和ROM(只讀存儲(chǔ)器),其中RAM的訪問(wèn)速度比較快,但掉電后數(shù)據(jù)會(huì)丟失,而ROM掉電后數(shù)據(jù)不會(huì)丟失。人們通常所說(shuō)的內(nèi)存即指系統(tǒng)中的RAM。 RAM又可分為SRAM(靜態(tài)存儲(chǔ)器)和DRAM(動(dòng)態(tài)存儲(chǔ)器)。SRAM是利用雙穩(wěn)態(tài)觸發(fā)器來(lái)保存信息的,只要不掉電,信息是不會(huì)丟失的。DRAM是利用MOS(金屬氧化物半導(dǎo)體)電容存儲(chǔ)電荷來(lái)儲(chǔ)存信息,因此必須通過(guò)不停地給電容充電來(lái)維持信息,所以DRAM的成本、集成度、功耗等明顯優(yōu)于SRAM。 而通常人們所說(shuō)的SDRAM是DRAM的一種,它是同步動(dòng)態(tài)存儲(chǔ)器,利用一個(gè)單一的系統(tǒng)時(shí)鐘同步所有的地址數(shù)據(jù)和控制信號(hào)。使用SDRAM不但能提高系統(tǒng)表現(xiàn),還能簡(jiǎn)化設(shè)計(jì)、提供高速的數(shù)據(jù)傳輸。在嵌入式系統(tǒng)中經(jīng)常使用。 EPROM、E2PROM都是ROM的一種,分別為可擦除可編程ROM和電可擦除ROM,但使用不是很方便。 Flash也是一種非易失性存儲(chǔ)器(掉電不會(huì)丟失),它擦寫方便,訪問(wèn)速度快,已大大取代了傳統(tǒng)的EPROM的地位。由于它具有和ROM一樣掉電不會(huì)丟失的特性,因此很多人稱其為FlashROM。 |
嵌入式操作系統(tǒng)從嵌入式發(fā)展的第3階段起開始引入。嵌入式操作系統(tǒng)不僅具有通用操作系統(tǒng)的一般功能,如向上提供對(duì)用戶的接口(如圖形界面、庫(kù)函數(shù)API等),向下提供與硬件設(shè)備交互的接口(硬件驅(qū)動(dòng)程序等),管理復(fù)雜的系統(tǒng)資源,同時(shí),它還在系統(tǒng)實(shí)時(shí)性、硬件依賴性、軟件固化性以及應(yīng)用專用性等方面,具有更加鮮明的特點(diǎn)。
應(yīng)用軟件是針對(duì)特定應(yīng)用領(lǐng)域,基于某一固定的硬件平臺(tái),用來(lái)達(dá)到用戶預(yù)期目標(biāo)的計(jì)算機(jī)軟件。由于嵌入式系統(tǒng)自身的特點(diǎn),決定了嵌入式應(yīng)用軟件不僅要求做到準(zhǔn)確性、安全性和穩(wěn)定性等方面需要,而且還要盡可能地進(jìn)行代碼優(yōu)化,以減少對(duì)系統(tǒng)資源的消耗,降低硬件成本。
4.1.5幾種主流嵌入式操作系統(tǒng)分析
1.嵌入式Linux
嵌入式Linux(EmbeddedLinux)是指對(duì)標(biāo)準(zhǔn)Linux經(jīng)過(guò)小型化裁剪處理之后,能夠固化在容量只有幾KB或者幾MB的存儲(chǔ)器芯片或者單片機(jī)中,是適合于特定嵌入式應(yīng)用場(chǎng)合的專用Linux操作系統(tǒng)。在目前已經(jīng)開發(fā)成功的嵌入式系統(tǒng)中,大約有一半使用的是Linux。這與它自身的優(yōu)良特性是分不開的。
嵌入式Linux同Linux一樣,具有低成本、多種硬件平臺(tái)支持、優(yōu)異的性能和良好的網(wǎng)絡(luò)支持等優(yōu)點(diǎn)。另外,為了更好地適應(yīng)嵌入式領(lǐng)域的開發(fā),嵌入式Linux還在Linux基礎(chǔ)上做了部分改進(jìn),如下所示。
n 改善的內(nèi)核結(jié)構(gòu)。
Linux內(nèi)核采用的是整體式結(jié)構(gòu)(Monolithic),整個(gè)內(nèi)核是一個(gè)單獨(dú)的、非常大的程序,這樣雖然能夠使系統(tǒng)的各個(gè)部分直接溝通,提高系統(tǒng)響應(yīng)速度,但與嵌入式系統(tǒng)存儲(chǔ)容量小、資源有限的特點(diǎn)不相符合。因此,在嵌入式系統(tǒng)經(jīng)常采用的是另一種稱為微內(nèi)核(Microkernel)的體系結(jié)構(gòu),即內(nèi)核本身只提供一些最基本的操作系統(tǒng)功能,如任務(wù)調(diào)度、內(nèi)存管理、中斷處理等,而類似于設(shè)備驅(qū)動(dòng)、文件系統(tǒng)和網(wǎng)絡(luò)協(xié)議等附加功能則可以根據(jù)實(shí)際需要進(jìn)行取舍。這樣就大大減小了內(nèi)核的體積,便于維護(hù)和移植。
n 提高的系統(tǒng)實(shí)時(shí)性。
由于現(xiàn)有的Linux是一個(gè)通用的操作系統(tǒng),雖然它也采用了許多技術(shù)來(lái)加快系統(tǒng)的運(yùn)行和響應(yīng)速度,但從本質(zhì)上來(lái)說(shuō)并不是一個(gè)嵌入式實(shí)時(shí)操作系統(tǒng)。因此,利用Linux作為底層操作系統(tǒng),在其上進(jìn)行實(shí)時(shí)化改造,從而構(gòu)建出一個(gè)具有實(shí)時(shí)處理能力的嵌入式系統(tǒng),如RT-Linux已經(jīng)成功地應(yīng)用于航天飛機(jī)的空間數(shù)據(jù)采集、科學(xué)儀器測(cè)控和電影特技圖像處理等各種領(lǐng)域。
嵌入式Linux同Linux一樣,也有眾多的版本,其中不同的版本分別針對(duì)不同的需要在內(nèi)核等方面加入了特定的機(jī)制。嵌入式Linux的主要版本如表4.1所示。
表4.1 嵌入式Linux主要版本
版本 | 簡(jiǎn)單介紹 |
mCLinux | 開放源碼的嵌入式Linux的典范之作。它主要是針對(duì)目標(biāo)處理器沒(méi)有存儲(chǔ)管理單元MMU,它運(yùn)行穩(wěn)定,具有良好的移植性和優(yōu)秀的網(wǎng)絡(luò)功能,對(duì)各種文件系統(tǒng)有完備的支持,并提供豐富的API |
RT-Linux | 由美國(guó)墨西哥理工學(xué)院開發(fā)的嵌入式Linux硬實(shí)時(shí)操作系統(tǒng)。它已有廣泛的應(yīng)用 |
Embedix | 根據(jù)嵌入式應(yīng)用系統(tǒng)的特點(diǎn)重新設(shè)計(jì)的Linux發(fā)行版本。它提供了超過(guò)25種的Linux系統(tǒng)服務(wù),包括Web服務(wù)器等。此外還推出了Embedix的開發(fā)調(diào)試工具包、基于圖形界面的瀏覽器等??梢哉f(shuō),Embedix是一種完整的嵌入式Linux解決方案 |
XLinux | 采用了“超字元集”專利技術(shù),使Linux內(nèi)核不僅能與標(biāo)準(zhǔn)字符集相容,還涵蓋了12個(gè)國(guó)家和地區(qū)的字符集。因此,XLinux在推廣Linux的國(guó)際應(yīng)用方面有獨(dú)特的優(yōu)勢(shì) |
PoketLinux | 它可以提供跨操作系統(tǒng)并且構(gòu)造統(tǒng)一的、標(biāo)準(zhǔn)化的和開放的信息通信基礎(chǔ)結(jié)構(gòu),在此結(jié)構(gòu)上實(shí)現(xiàn)端到端方案的完整平臺(tái) |
紅旗嵌入式Linux | 由北京中科院紅旗軟件公司推出的嵌入式Linux,它是國(guó)內(nèi)做得較好的一款嵌入式操作系統(tǒng)。目前,中科院計(jì)算機(jī)研究所自行開發(fā)的開放源碼的嵌入式操作系統(tǒng)——EasyEmbeddedOS(EEOS)也已經(jīng)開始進(jìn)入實(shí)用階段了 |
Montavistalinux | MontaVistaLinux是MontaVistaSoftware于1999年開始推出的,專門面向嵌入式系統(tǒng)的商業(yè)級(jí)操作系統(tǒng),基于Linux內(nèi)核2.6,采用可搶占內(nèi)核技術(shù),集合了MontaVista硬實(shí)時(shí)技術(shù),性能遠(yuǎn)遠(yuǎn)高于標(biāo)準(zhǔn)2.6內(nèi)核,具有更短的搶占延遲,反應(yīng)速度是標(biāo)準(zhǔn)內(nèi)核的200倍;采用優(yōu)先級(jí)線程實(shí)現(xiàn)中斷服務(wù)程序的調(diào)度。與Linux家族兼容的產(chǎn)品:VxWorks和LynxOS已經(jīng)有一些嵌入式操作系統(tǒng)產(chǎn)品,并非從Linux裁剪或者改造而來(lái),但是已經(jīng)基本實(shí)現(xiàn)POSIX兼容,在接口級(jí)與嵌入式Linux系列產(chǎn)品達(dá)成一致。這些產(chǎn)品具有優(yōu)良的傳統(tǒng)和特定的實(shí)時(shí)性、可靠性實(shí)現(xiàn),在嵌入式操作系統(tǒng)中具有重要地位。 |
風(fēng)河linux | 風(fēng)河公司(著名的實(shí)時(shí)操作系統(tǒng)VxWorks的廠商)一直致力于嵌入式Linux方面的研究和開發(fā)。首個(gè)滿足由Linux基金會(huì)(LinuxFoundation)制定的電信級(jí)Linux(CGL)4.0規(guī)范要求的商用化Linux廠商。WindRiverPlatformforNetworkEquipment,LinuxEdition2.0是首個(gè)完全遵循最新CGL規(guī)范的網(wǎng)絡(luò)通信與電信行業(yè)Linux平臺(tái)產(chǎn)品。 |
為了不失一般性,本書說(shuō)所用的嵌入式Linux是標(biāo)準(zhǔn)內(nèi)核裁減的Linux,而不是上表中的任何一種。
評(píng)論