第1章? 嵌入式系統(tǒng)基礎(chǔ)知識(shí)
1.1? 嵌入式系統(tǒng)的定義和組成
1.1.1? 嵌入式系統(tǒng)的定義
嵌入式系統(tǒng)是一種應(yīng)用范圍非常廣泛的系統(tǒng)??梢哉f除了桌面計(jì)算機(jī)和服務(wù)器外所有計(jì)算設(shè)備都屬于嵌入式系統(tǒng),例如從便攜式音樂播放器到航天飛機(jī)上的實(shí)時(shí)系統(tǒng)控制都屬于嵌入式系統(tǒng)。
大多數(shù)商用的嵌入式系統(tǒng)都設(shè)計(jì)成專用任務(wù)的低成本的產(chǎn)品。大多數(shù)的嵌入式系統(tǒng)都具有實(shí)時(shí)性的要求。有些功能需要非常快的主頻,但其他大多數(shù)功能并不需要高速的處理能力。這些系統(tǒng)通過特定的器件和軟件來滿足實(shí)時(shí)性的要求。
簡單地通過速度和成本來定義嵌入式系統(tǒng)是困難的,但對(duì)于大批量的產(chǎn)品而言,成本常常對(duì)系統(tǒng)設(shè)計(jì)起決定作用。通常,一個(gè)嵌入式系統(tǒng)的很多部分相對(duì)系統(tǒng)主要功能來說需要較低的性能,因此嵌入式系統(tǒng)和通用PC相比,能夠使用一個(gè)滿足輔助功能的合適的CPU,從而簡化了系統(tǒng)設(shè)計(jì),降低了成本。例如,數(shù)字電視的機(jī)頂盒需要處理每秒以百萬兆位計(jì)的連續(xù)數(shù)據(jù),但這些數(shù)據(jù)處理大部分是由定制的硬件來實(shí)現(xiàn)的,如解析、管理和編解碼多個(gè)頻道的數(shù)字影像。
對(duì)于大批量生產(chǎn)的嵌入式系統(tǒng),如便攜式音樂播放器或手機(jī)等,降低成本就成為最主要的問題。這些系統(tǒng)通常只具有幾個(gè)芯片:一個(gè)高度集成的CPU,一個(gè)定制的芯片用于控制其他所有的功能,還有一個(gè)存儲(chǔ)芯片。在這種設(shè)計(jì)中,每部分都設(shè)計(jì)成使用最小的系統(tǒng)功耗。
對(duì)于小批量的嵌入式應(yīng)用,為了降低開發(fā)成本,常常使用PC體系結(jié)構(gòu),通過限制程序的執(zhí)行時(shí)間或用一個(gè)實(shí)時(shí)操作系統(tǒng)來替換原先的操作系統(tǒng)。在這種情況下,可以使用一個(gè)或多個(gè)高性能的CPU來替換特殊用途的硬件。
嵌入式系統(tǒng)的軟件通常運(yùn)行在有限的硬件資源上:沒有硬盤、操作系統(tǒng)、鍵盤或屏幕。軟件一般都沒有文件系統(tǒng),如果有的話,也會(huì)采用Flash驅(qū)動(dòng)器。如果有人機(jī)交互接口的話,也是一個(gè)小鍵盤或液晶顯示器。硬件是計(jì)算機(jī)的物理部分,和存儲(chǔ)在硬件中的計(jì)算機(jī)在這軟件程序和數(shù)據(jù)區(qū)分開來。
嵌入到機(jī)械中的嵌入式系統(tǒng)需要長期無故障連續(xù)運(yùn)行,因此它的軟件需要比PC中的軟件更加仔細(xì)地開發(fā)和更加嚴(yán)格地測(cè)試。
那么,到底什么是嵌入式系統(tǒng)呢?
根據(jù)IEEE(國際電氣和電子工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車間運(yùn)行的裝置”(原文為devices used to control,monitor,or assist the operation of equipment,machinery or plants)。這主要是從應(yīng)用上加以定義的,從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。
目前國內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
可以這樣認(rèn)為,嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是由單個(gè)程序?qū)崿F(xiàn)整個(gè)控制邏輯。
1.1.2? 嵌入式系統(tǒng)發(fā)展概述
1、嵌入式系統(tǒng)的發(fā)展歷史
世界上第一個(gè)應(yīng)用的嵌入式系統(tǒng)可以追溯到20世紀(jì)60年代中期的阿波羅導(dǎo)航計(jì)算機(jī)AGC(Apollo Guidance Computer)系統(tǒng),用來完成阿波羅飛船的導(dǎo)航控制。當(dāng)時(shí)隨著微電子技術(shù)的發(fā)展,嵌入式計(jì)算機(jī)才逐步興起。從單片機(jī)的出現(xiàn)到今天各種嵌入式微處理器、微控制器的廣泛應(yīng)用,嵌入式系統(tǒng)少說也有了30多年的歷史??v觀嵌入式系統(tǒng)的發(fā)展歷程,大致經(jīng)歷了以下4個(gè)階段。
(1)無操作系統(tǒng)階段
嵌入式系統(tǒng)最初的應(yīng)用是基于單片機(jī)的,大多以可編程控制器的形式出現(xiàn),具有監(jiān)測(cè)、伺服和設(shè)備指示等功能,通常應(yīng)用于各類工業(yè)控制和飛機(jī)、導(dǎo)彈等武器裝備中,一般沒有操作系統(tǒng)的支持,只能通過匯編語言對(duì)系統(tǒng)進(jìn)行直接控制,運(yùn)行結(jié)束后再清除內(nèi)存。這些裝置雖然已經(jīng)初步具備了嵌入式的應(yīng)用特點(diǎn),但僅僅只是使用8位的CPU芯片來執(zhí)行一些單線程的程序,因此嚴(yán)格地說還談不上“系統(tǒng)”的概念。
這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:系統(tǒng)結(jié)構(gòu)和功能相對(duì)單一,處理效率較低,存儲(chǔ)容量較小,幾乎沒有用戶接口。由于這種嵌入式系統(tǒng)使用簡便、價(jià)格低廉,因而曾經(jīng)在工業(yè)控制領(lǐng)域中得到了非常廣泛的應(yīng)用,但卻無法滿足現(xiàn)今對(duì)執(zhí)行效率和存儲(chǔ)容量都有較高要求的信息家電等的需要。
(2)簡單操作系統(tǒng)階段?
20世紀(jì)80年代,隨著微電子工藝水平的提高,集成電路(Integrated Circuit,IC)制造商開始把嵌入式應(yīng)用中所需要的微處理器、I/O接口、串行接口及RAM、ROM等部件集成到一片VLSI中,制造出面向I/O設(shè)計(jì)的微控制器,并一舉成為嵌入式系統(tǒng)領(lǐng)域中異軍突起的新秀。與此同時(shí),嵌入式系統(tǒng)的程序員也開始基于一些簡單的“操作系統(tǒng)”開發(fā)嵌入式應(yīng)用軟件,大大縮短了開發(fā)周期、提高了開發(fā)效率。
這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:出現(xiàn)了大量具有高可靠性、低功耗的嵌入式CPU(如Power PC等),各種簡單的嵌入式操作系統(tǒng)開始出現(xiàn)并得到迅速發(fā)展。此時(shí)的嵌入式操作系統(tǒng)雖然還比較簡單,但已經(jīng)初步具有了一定的兼容性和擴(kuò)展性,內(nèi)核精巧且效率高,主要用來控制系統(tǒng)負(fù)載及監(jiān)控應(yīng)用程序的運(yùn)行。
(3)實(shí)時(shí)操作系統(tǒng)階段
20世紀(jì)90年代,在分布控制、柔性制造、數(shù)字化通信和信息家電等巨大需求的牽引下,嵌入式系統(tǒng)進(jìn)一步飛速發(fā)展,而面向?qū)崟r(shí)信號(hào)處理算法的數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)產(chǎn)品則向著高速度、高精度、低功耗的方向發(fā)展。隨著硬件實(shí)時(shí)性要求的提高,嵌入式系統(tǒng)的軟件規(guī)模也不斷擴(kuò)大,逐漸形成了實(shí)時(shí)多任務(wù)操作系統(tǒng)(Real-time Operation System,RTOS),并開始成為嵌入式系統(tǒng)的主流。
這一階段嵌入式系統(tǒng)的主要特點(diǎn)是:操作系統(tǒng)的實(shí)時(shí)性得到了很大改善,已經(jīng)能夠運(yùn)行在各種不同類型的微處理器上,具有高度的模塊化和擴(kuò)展性。此時(shí)的嵌入式操作系統(tǒng)已經(jīng)具備了文件和目錄管理、設(shè)備管理、多任務(wù)、網(wǎng)絡(luò)、圖形用戶界面(Graphic User Interface,GUI)等功能,并提供了大量的應(yīng)用程序接口(Application Programming Interface,API),從而使應(yīng)用軟件的開發(fā)變得更加簡單。
(4)面向Internet階段
21世紀(jì)是網(wǎng)絡(luò)時(shí)代,隨著Internet的進(jìn)一步發(fā)展,以及Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式設(shè)備與Internet的結(jié)合是嵌入式系統(tǒng)未來的發(fā)展趨勢(shì)。
2、嵌入式系統(tǒng)的發(fā)展趨勢(shì)
信息時(shí)代和數(shù)字時(shí)代的到來,為嵌入式系統(tǒng)的發(fā)展帶來了巨大的機(jī)遇,同時(shí)也向嵌入式系統(tǒng)廠商提出了新的挑戰(zhàn)。目前,嵌入式技術(shù)與Internet技術(shù)的結(jié)合正在推動(dòng)著嵌入式系統(tǒng)的飛速發(fā)展,嵌入式系統(tǒng)的研究和應(yīng)用產(chǎn)生了如下新的顯著變化。
? 新的微處理器層出不窮,嵌入式操作系統(tǒng)自身結(jié)構(gòu)的設(shè)計(jì)更加便于移植,能夠在短時(shí)間內(nèi)支持更多的微處理器。?
? 嵌入式系統(tǒng)的開發(fā)成了一項(xiàng)系統(tǒng)工程,開發(fā)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時(shí)還要提供強(qiáng)大的硬件開發(fā)工具和軟件支持包。?
? 通用計(jì)算機(jī)上使用的新技術(shù)、新觀念開始逐步移植到嵌入式系統(tǒng)中,嵌入式軟件平臺(tái)得到進(jìn)一步完善。
?? 各類嵌入式Linux操作系統(tǒng)迅速發(fā)展,由于具有源代碼開放、系統(tǒng)內(nèi)核小、執(zhí)行效率高、網(wǎng)絡(luò)結(jié)構(gòu)完整等特點(diǎn),很適合信息家電等嵌入式系統(tǒng)的需要,目前已經(jīng)形成了能與Windows CE、Palm OS等嵌入式操作系統(tǒng)進(jìn)行有力競爭的局面。?
? 網(wǎng)絡(luò)化、信息化的要求隨著Internet技術(shù)的成熟和帶寬的提高而日益突出,以往功能單一的設(shè)備(如電話、手機(jī)、冰箱、微波爐等)功能不再單一,結(jié)構(gòu)變得更加復(fù)雜,網(wǎng)絡(luò)互聯(lián)成為必然趨勢(shì)。
? 精簡系統(tǒng)內(nèi)核,優(yōu)化關(guān)鍵算法,降低功耗和軟硬件成本。?
? 提供更加友好的多媒體人機(jī)交互界面。?
3、知識(shí)產(chǎn)權(quán)核
IC產(chǎn)業(yè)是一個(gè)自20世紀(jì)80年代特別是90年代后飛速發(fā)展的產(chǎn)業(yè)。從90年代中期開始,由于基于專用集成電路的板級(jí)系統(tǒng)設(shè)計(jì)已經(jīng)不能滿足系統(tǒng)產(chǎn)品的可靠性等要求,出現(xiàn)了片上系統(tǒng)(System On Chip,SOC)的概念,并成為現(xiàn)代集成電路設(shè)計(jì)的發(fā)展方向。SOC是指在單芯片上集成數(shù)字信號(hào)處理器、微控制器、存儲(chǔ)器、數(shù)據(jù)轉(zhuǎn)換器、接口電路等電路模塊,可以直接實(shí)現(xiàn)信號(hào)采集、轉(zhuǎn)換、存儲(chǔ)、處理等功能,其中知識(shí)產(chǎn)權(quán)核(Intellectual Property Core,IP Core)設(shè)計(jì)是SOC設(shè)計(jì)的基礎(chǔ)。
IP 核是指具有知識(shí)產(chǎn)權(quán)的、功能具體、接口規(guī)范、可在多個(gè)集成電路設(shè)計(jì)中重復(fù)使用的功能模塊,是實(shí)現(xiàn)系統(tǒng)芯片(SOC)的基本構(gòu)件。IP核在功能設(shè)計(jì)上考慮了可重用性,驗(yàn)證方法也非常明確。IP核模塊有行為(Behavior)、結(jié)構(gòu)(Structure)和物理(Physical)3級(jí)不同程度的設(shè)計(jì),對(duì)應(yīng)描述功能行為的不同分為三類,即軟核(Soft IP Core)、完成結(jié)構(gòu)描述的固核(Firm IP Core)和基于物理描述并經(jīng)過工藝驗(yàn)證的硬核(Hard IP Core)。
? IP軟核(Soft IP Core):通常是用硬件描述語言(hardware Description Language,HDL)文本形式提交給用戶,它經(jīng)過RTL級(jí)設(shè)計(jì)優(yōu)化和功能驗(yàn)證,但其中不含有任何具體的物理信息。據(jù)此,用戶可以綜合出正確的門電路級(jí)設(shè)計(jì)網(wǎng)表,并可以進(jìn)行后續(xù)的結(jié)構(gòu)設(shè)計(jì),具有很大的靈活性,借助于EDA綜合工具可以很容易地與其他外部邏輯電路合成一體,根據(jù)各種不同半導(dǎo)體工藝,設(shè)計(jì)成具有不同性能的器件。其主要缺點(diǎn)是缺乏對(duì)時(shí)序、面積和功耗的預(yù)見性。而且IP軟核以源代碼的形式提供的,IP知識(shí)產(chǎn)權(quán)不易保護(hù)
? IP硬核(Hard IP Core)是基于半導(dǎo)體工藝的物理設(shè)計(jì),已有固定的拓?fù)洳季趾途唧w工藝,并已經(jīng)過工藝驗(yàn)證,具有可保證的性能。其提供給用戶的形式是電路物理結(jié)構(gòu)掩模版圖和全套工藝文件。由于無需提供寄存器轉(zhuǎn)移級(jí)(Register transfer level,RTL)文件,因而更易于實(shí)現(xiàn)IP保護(hù)。其缺點(diǎn)是靈活性和可移植性差。
? IP固核(Firm IP Core)的設(shè)計(jì)程度則是介于軟核和硬核之間,除了完成軟核所的設(shè)計(jì)外,還完成了門級(jí)電路綜合和時(shí)序仿真等設(shè)計(jì)環(huán)節(jié)。一般以門級(jí)電路網(wǎng)表的形式提供給用戶。
IC設(shè)計(jì)中采用IP復(fù)用可以縮短產(chǎn)品的開發(fā)周期,提高產(chǎn)品的可靠性。全球IP核市場目前處于快速成長的階段,1999年到2004年的增長率高達(dá)43%。2001年全球IP核市場規(guī)模達(dá)8.9億美元,較2000年的7.1億美元增長了25%。在十大IP供應(yīng)商排行中,ARM、Rambus和MIPS居前3位。
為了保護(hù)IP核的開發(fā)者與使用者,同時(shí)建立良好的IP核技術(shù)基礎(chǔ),全球各界已籌備了許多策略聯(lián)盟,如EDA聯(lián)盟、RAPID聯(lián)盟、VCX聯(lián)盟與VSIA 聯(lián)盟等,來積極推動(dòng)IP核的開發(fā)、應(yīng)用及推廣。其中EDA聯(lián)盟主要由提供集成電路自動(dòng)化設(shè)計(jì)軟件的公司所組成,主要工作是要提升集成電路設(shè)計(jì)產(chǎn)業(yè)對(duì)EDA軟件功能的認(rèn)知與肯定,同時(shí)建立EDA公司與集成電路設(shè)計(jì)公司溝通交流渠道與解決集成電路產(chǎn)業(yè)所面臨的問題,所以EDA聯(lián)盟主要是以如何提供更好的EDA軟件工具為主,也處理一部分IP核使用標(biāo)準(zhǔn)的問題。而VSIA聯(lián)盟主要是針對(duì)IP核可復(fù)用性進(jìn)行規(guī)范,希望建立一個(gè)共性標(biāo)準(zhǔn),以方便實(shí)現(xiàn)將不同公司的IP核整合于一個(gè)SOC芯片中。VSIA聯(lián)盟針對(duì)IP核的定義、開發(fā)、授權(quán)及測(cè)試等建立了一個(gè)公開的共性規(guī)范。
1.1.3? 嵌入式系統(tǒng)的組成
嵌入式系統(tǒng)是一種應(yīng)用范圍非常廣泛的系統(tǒng)??梢哉f除了一般用途的計(jì)算機(jī)外的所有計(jì)算機(jī)都屬于嵌入式系統(tǒng),例如從便攜式音樂播放器到航天飛機(jī)上的實(shí)時(shí)系統(tǒng)控制都屬于嵌入式系統(tǒng)。
大多數(shù)商用的嵌入式系統(tǒng)都設(shè)計(jì)成專用任務(wù)的低成本的產(chǎn)品。大多數(shù)的嵌入式系統(tǒng)都具有實(shí)時(shí)性的要求。有些功能需要非常快的主頻,但其他大多數(shù)功能并不需要高速的處理能力。這些系統(tǒng)通過特定的器件和軟件來滿足實(shí)時(shí)性的要求。
簡單地通過速度和成本來定義嵌入式系統(tǒng)是困難的,但對(duì)于大批量的產(chǎn)品而言,成本常常對(duì)系統(tǒng)設(shè)計(jì)起決定作用。通常,一個(gè)嵌入式系統(tǒng)的很多部分相對(duì)于系統(tǒng)主要功能來說需要較低的性能,因此嵌入式系統(tǒng)和通用PC相比,能夠使用一個(gè)可滿足輔助功能的合適的CPU,從而簡化了系統(tǒng)設(shè)計(jì),降低了成本。例如,數(shù)字電視的機(jī)頂盒需要處理每秒以百萬兆位計(jì)的連續(xù)數(shù)據(jù),但這些數(shù)據(jù)處理大部分是由定制的硬件來實(shí)現(xiàn)的,如解析、管理和編解碼多個(gè)頻道的數(shù)字影像。
對(duì)于大批量生產(chǎn)的嵌入式系統(tǒng),如便攜式音樂播放器或手機(jī)等,降低成本就成為最主要的問題。這些系統(tǒng)通常只具有幾個(gè)芯片:一個(gè)高度集成的CPU,一個(gè)定制的芯片用于控制其他所有的功能,還有一個(gè)存儲(chǔ)芯片。在這種設(shè)計(jì)中,每部分都設(shè)計(jì)成使用最小的系統(tǒng)功耗。
對(duì)于小批量的嵌入式應(yīng)用,為了降低開發(fā)成本,常常使用PC體系結(jié)構(gòu),通過限制程序的執(zhí)行時(shí)間或用一個(gè)實(shí)時(shí)操作系統(tǒng)來替換原先的操作系統(tǒng)。在這種情況下,可以使用一個(gè)或多個(gè)高性能的CPU來替換特殊用途的硬件。
嵌入式系統(tǒng)的軟件通常運(yùn)行在有限的硬件資源上:沒有硬盤、操作系統(tǒng)、鍵盤或屏幕。軟件一般都沒有文件系統(tǒng),如果有,也會(huì)采用Flash驅(qū)動(dòng)器。如果有人機(jī)交互接口,也是一個(gè)小鍵盤或液晶顯示器。硬件是計(jì)算機(jī)的物理部分,和存儲(chǔ)在硬件中的計(jì)算機(jī)軟件程序及數(shù)據(jù)區(qū)分開來。
嵌入到機(jī)械中的嵌入式系統(tǒng)需要長期無故障連續(xù)運(yùn)行,因此它的軟件需要比PC中的軟件更加仔細(xì)的開發(fā)和更加嚴(yán)格的測(cè)試。?
那么,到底什么是嵌入式系統(tǒng)呢?
1、嵌入式系統(tǒng)的定義
根據(jù)IEEE(國際電氣和電子工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助設(shè)備、機(jī)器和車間運(yùn)行的裝置”。這主要是從應(yīng)用上加以定義的,從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。
目前國內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
可以這樣認(rèn)為,嵌入式系統(tǒng)是一種專用的計(jì)算機(jī)系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)是一個(gè)控制程序存儲(chǔ)在ROM中的嵌入式處理器控制板。事實(shí)上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機(jī)、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是由單個(gè)程序?qū)崿F(xiàn)整個(gè)控制邏輯。
2、嵌入式系統(tǒng)的組成
一個(gè)嵌入式系統(tǒng)裝置一般都由嵌入式計(jì)算機(jī)系統(tǒng)和執(zhí)行裝置組成,如圖1-1所示,嵌入式計(jì)算機(jī)系統(tǒng)是整個(gè)嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層組成。執(zhí)行裝置也稱為被控對(duì)象,它可以接受嵌入式計(jì)算機(jī)系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務(wù)。執(zhí)行裝置可以很簡單,如手機(jī)上的一個(gè)微小型的電機(jī),當(dāng)手機(jī)處于震動(dòng)接收狀態(tài)時(shí)打開;也可以很復(fù)雜,如SONY智能機(jī)器狗,上面集成了多個(gè)微小型控制電機(jī)和多種傳感器,從而可以執(zhí)行各種復(fù)雜的動(dòng)作和感受各種狀態(tài)信息。
下面對(duì)嵌入式計(jì)算機(jī)系統(tǒng)的組成進(jìn)行介紹。
1)硬件層
硬件層中包含嵌入式微處理器、存儲(chǔ)器(SDRAM、ROM、Flash等)、通用設(shè)備接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式處理器基礎(chǔ)上添加電源電路、時(shí)鐘電路和存儲(chǔ)器電路,就構(gòu)成了一個(gè)嵌入式核心控制模塊。其中操作系統(tǒng)和應(yīng)用程序都可以固化在ROM中。
(1)嵌入式微處理器
嵌入式系統(tǒng)硬件層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU最大的不同在于嵌入式微處理器大多工作在為特定用戶群所專門設(shè)計(jì)的系統(tǒng)中,它將通用CPU中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計(jì)時(shí)趨于小型化,同時(shí)還具有很高的效率和可靠性。
嵌入式微處理器的體系結(jié)構(gòu)可以采用馮·諾依曼體系結(jié)構(gòu)或哈佛體系結(jié)構(gòu);指令系統(tǒng)可以選用精簡指令系統(tǒng)(Reduced Instruction Set Computer,RISC)和復(fù)雜指令集系統(tǒng)CISC(Complex Instruction Set Computer,CISC)。CISC計(jì)算機(jī)具有大量的指令和尋址方式,但大多數(shù)程序只使用少量的指令就能夠運(yùn)行;RISC計(jì)算機(jī)在通道中只包含最有用的指令,確保數(shù)據(jù)通道快速執(zhí)行每一條指令,從而提高了執(zhí)行效率并使CPU硬件結(jié)構(gòu)設(shè)計(jì)變得更為簡單。
嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時(shí)鐘頻率和數(shù)據(jù)總線寬度,或集成了不同的外設(shè)和接口。據(jù)不完全統(tǒng)計(jì),目前全世界嵌入式微處理器已經(jīng)超過1000多種,體系結(jié)構(gòu)有30多個(gè)系列,其中主流的體系有ARM、MIPS、PowerPC、X86和SH等。但與全球PC市場不同的是,沒有一種嵌入式微處理器可以主導(dǎo)市場,僅以32位的產(chǎn)品而言,就有100種以上的嵌入式微處理器。嵌入式微處理器的選擇是根據(jù)具體的應(yīng)用而決定的。
(2)存儲(chǔ)器
嵌入式系統(tǒng)需要存儲(chǔ)器來存放和執(zhí)行代碼。嵌入式系統(tǒng)的存儲(chǔ)器包含Cache、主存和輔助存儲(chǔ)器,其存儲(chǔ)結(jié)構(gòu)如圖1-2所示。
?① Cache
Cache是一種容量小、速度快的存儲(chǔ)器陣列,它位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時(shí)間微處理器使用最多的程序代碼和數(shù)據(jù)。在需要進(jìn)行數(shù)據(jù)讀取操作時(shí),微處理器盡可能的從Cache中讀取數(shù)據(jù),而不是從主存中讀取,這樣就大大改善了系統(tǒng)的性能,提高了微處理器和主存之間的數(shù)據(jù)傳輸速率。Cache的主要目標(biāo)就是:減小存儲(chǔ)器(如主存和輔助存儲(chǔ)器)給微處理器內(nèi)核造成的存儲(chǔ)器訪問瓶頸,使處理速度更快,實(shí)時(shí)性更強(qiáng).
在嵌入式系統(tǒng)中Cache全部集成在嵌入式微處理器內(nèi),可分為數(shù)據(jù)Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的嵌入式微處理器才會(huì)把Cache集成進(jìn)去。
② 主存
主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統(tǒng)和用戶的程序及數(shù)據(jù)。它可以位于微處理器的內(nèi)部或外部,其容量為256KB~1GB,根據(jù)具體的應(yīng)用而定,一般片內(nèi)存儲(chǔ)器容量小,速度快,片外存儲(chǔ)器容量大。
?常用作主存的存儲(chǔ)器有:
? ROM類? NOR Flash、EPROM和PROM等。
? RAM類? SRAM、DRAM和SDRAM等。
其中NOR Flash憑借其可擦寫次數(shù)多、存儲(chǔ)速度快、存儲(chǔ)容量大、價(jià)格便宜等優(yōu)點(diǎn),在嵌入式領(lǐng)域內(nèi)得到了廣泛應(yīng)用。
?③ 輔助存儲(chǔ)器
輔助存儲(chǔ)器用來存放大數(shù)據(jù)量的程序代碼或信息,它的容量大,但讀取速度與主存相比就慢得多,用來長期保存用戶的信息。
嵌入式系統(tǒng)中常用的外存有:硬盤、NAND Flash、CF卡、MMC 和SD卡等。
(3)通用設(shè)備接口和I/O接口
嵌入式系統(tǒng)和外界交互需要一定形式的通用設(shè)備接口,如A/D、D/A、I/O等,外設(shè)通過和片外其他設(shè)備的或傳感器的連接來實(shí)現(xiàn)微處理器的輸入/輸出功能。每個(gè)外設(shè)通常都只有單一的功能,它可以在芯片外也可以內(nèi)置在芯片中。外設(shè)的種類很多,可從一個(gè)簡單的串行通信設(shè)備到非常復(fù)雜的802.11無線設(shè)備。
目前嵌入式系統(tǒng)中常用的通用設(shè)備接口有A/D(模/數(shù)轉(zhuǎn)換接口)、D/A(數(shù)/模轉(zhuǎn)換接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太網(wǎng)接口)、USB(通用串行總線接口)、音頻接口、VGA視頻輸出接口、I2C(現(xiàn)場總線)、SPI(串行外圍設(shè)備接口)和IrDA(紅外線接口)等。
?2)中間層 硬件層和軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級(jí)支持包(Board Support Package,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動(dòng)程序與硬件無關(guān),上層軟件開發(fā)人員無需關(guān)心底層硬件的具體情況,根據(jù)BSP層提供的接口即可進(jìn)行開發(fā)。該層一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置等功能。BSP具有以下兩個(gè)特點(diǎn)。
? 硬件相關(guān)性:因?yàn)榍度胧綄?shí)時(shí)系統(tǒng)的硬件環(huán)境具有應(yīng)用相關(guān)性,而作為上層軟件與硬件平臺(tái)之間的接口,BSP需要為操作系統(tǒng)提供操作和控制具體硬件的方法。
? 操作系統(tǒng)相關(guān)性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。
在實(shí)現(xiàn)上,BSP是一個(gè)介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。設(shè)計(jì)一個(gè)完整的BSP需要完成兩部分工作:嵌入式系統(tǒng)的硬件初始化以及BSP功能,設(shè)計(jì)硬件相關(guān)的設(shè)備驅(qū)動(dòng)。
(1)嵌入式系統(tǒng)硬件初始化
系統(tǒng)初始化過程可以分為3個(gè)主要環(huán)節(jié),按照自底向上、從硬件到軟件的次序依次為:片級(jí)初始化、板級(jí)初始化和系統(tǒng)級(jí)初始化。
? 片級(jí)初始化
完成嵌入式微處理器的初始化,包括設(shè)置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。片級(jí)初始化把嵌入式微處理器從上電時(shí)的默認(rèn)狀態(tài)逐步設(shè)置成系統(tǒng)所要求的工作狀態(tài)。這是一個(gè)純硬件的初始化過程。
? 板級(jí)初始化
完成嵌入式微處理器以外的其他硬件設(shè)備的初始化。另外,還需設(shè)置某些軟件的數(shù)據(jù)結(jié)構(gòu)和參數(shù),為隨后的系統(tǒng)級(jí)初始化和應(yīng)用程序的運(yùn)行建立硬件和軟件環(huán)境。這是一個(gè)同時(shí)包含軟硬件兩部分在內(nèi)的初始化過程。
? 系統(tǒng)級(jí)初始化
該初始化過程以軟件初始化為主,主要進(jìn)行操作系統(tǒng)的初始化。BSP將對(duì)嵌入式微處理器的控制權(quán)轉(zhuǎn)交給嵌入式操作系統(tǒng),由操作系統(tǒng)完成余下的初始化操作,包含加載和初始化與硬件無關(guān)的設(shè)備驅(qū)動(dòng)程序,建立系統(tǒng)內(nèi)存區(qū),加載并初始化其他系統(tǒng)軟件模塊,如網(wǎng)絡(luò)系統(tǒng)、文件系統(tǒng)等。最后,操作系統(tǒng)創(chuàng)建應(yīng)用程序環(huán)境,并將控制權(quán)交給應(yīng)用程序的入口。
(2)硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序
BSP的另一個(gè)主要功能是硬件相關(guān)的設(shè)備驅(qū)動(dòng)。硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序的初始化通常是一個(gè)從高到低的過程。盡管BSP中包含硬件相關(guān)的設(shè)備驅(qū)動(dòng)程序,但是這些設(shè)備驅(qū)動(dòng)程序通常不直接由BSP使用,而是在系統(tǒng)初始化過程中由BSP將他們與操作系統(tǒng)中通用的設(shè)備驅(qū)動(dòng)程序關(guān)聯(lián)起來,并在隨后的應(yīng)用中由通用的設(shè)備驅(qū)動(dòng)程序調(diào)用,實(shí)現(xiàn)對(duì)硬件設(shè)備的操作。與硬件相關(guān)的驅(qū)動(dòng)程序是BSP設(shè)計(jì)與開發(fā)中另一個(gè)非常關(guān)鍵的環(huán)節(jié)。
3)系統(tǒng)軟件層
系統(tǒng)軟件層由實(shí)時(shí)多任務(wù)操作系統(tǒng)(Real-time Operation System,RTOS)、文件系統(tǒng)、圖形用戶接口(Graphic User Interface,GUI)、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái)。
(1)嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)(Embedded Operating System,EOS)是一種用途廣泛的系統(tǒng)軟件,過去它主要應(yīng)用于工業(yè)控制和國防系統(tǒng)領(lǐng)域。EOS負(fù)責(zé)嵌入系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動(dòng)。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達(dá)到系統(tǒng)所要求的功能。目前,已推出一些應(yīng)用比較成功的EOS產(chǎn)品系列。隨著 Internet技術(shù)的發(fā)展、信息家電的普及應(yīng)用及EOS的微型化和專業(yè)化,EOS開始從單一的弱功能向高專業(yè)化的強(qiáng)功能方向發(fā)展。嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。EOS是相對(duì)于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務(wù)調(diào)度、同步機(jī)制、中斷處理、文件處理等外,還有以下特點(diǎn):
? 可裁減性。支持開放性和可伸縮性的體系結(jié)構(gòu)。
? 強(qiáng)實(shí)時(shí)性。EOS實(shí)時(shí)性一般較強(qiáng),可用于各種設(shè)備控制中。
? 統(tǒng)一的接口。提供設(shè)備統(tǒng)一的驅(qū)動(dòng)接口。
? 操作方便、簡單、提供友好的圖形GUI和圖形界面,追求易學(xué)易用。
? 提供強(qiáng)大的網(wǎng)絡(luò)功能,支持TCP/IP協(xié)議及其他協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,為各種移動(dòng)計(jì)算設(shè)備預(yù)留接口。
? 強(qiáng)穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運(yùn)行就不需要用戶過多的干預(yù),這就要負(fù)責(zé)系統(tǒng)管理的EOS具有較強(qiáng)的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù)。
? 固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應(yīng)用軟件被固化在嵌入式系統(tǒng)計(jì) 。
評(píng)論
查看更多