- 嵌入式Linux C語(yǔ)言應(yīng)用開發(fā)教程(移動(dòng)學(xué)習(xí)版 第2版)
- 華清遠(yuǎn)見嵌入式學(xué)院 劉洪濤 苗德行 高明旭 劉宗鑫編著
- 4045字
- 2019-08-15 12:30:21
1.1 嵌入式系統(tǒng)概述
1.1.1 嵌入式系統(tǒng)的基本概念
在社會(huì)日益信息化的今天,計(jì)算機(jī)和網(wǎng)絡(luò)的應(yīng)用已經(jīng)全面滲透到日常生活中。應(yīng)用嵌入式系統(tǒng)的電子產(chǎn)品隨處可見,如日常使用的手機(jī)、攝像機(jī)、醫(yī)療儀器、汽車,乃至工業(yè)控制、航天、航空等設(shè)備都要用到嵌入式系統(tǒng)。在一些發(fā)達(dá)國(guó)家,平均每個(gè)家庭擁有255個(gè)嵌入式系統(tǒng),如每輛汽車平均裝有35個(gè)嵌入式系統(tǒng)。嵌入式系統(tǒng)的應(yīng)用已涉及工業(yè)、軍事、宇宙、通信、運(yùn)輸、金融、醫(yī)療、氣象、農(nóng)業(yè)等眾多領(lǐng)域。
在嵌入式系統(tǒng)行業(yè)內(nèi)有一個(gè)被普遍接受的定義:嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)控制系統(tǒng)為基礎(chǔ),并且軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。筆者認(rèn)為,將一套計(jì)算機(jī)控制系統(tǒng)嵌入已具有某種完整的特定功能的系統(tǒng)內(nèi),以實(shí)現(xiàn)對(duì)原有系統(tǒng)的計(jì)算機(jī)控制,此時(shí)將這個(gè)計(jì)算機(jī)控制系統(tǒng)叫作嵌入式系統(tǒng)。簡(jiǎn)單地說(shuō),嵌入式系統(tǒng)就是被嵌入電子設(shè)備中的專用計(jì)算系統(tǒng)。
嵌入式系統(tǒng)通常由特定功能模塊和計(jì)算機(jī)控制模塊組成,主要由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶應(yīng)用軟件等部分組成。它具有“嵌入性”“專用性”與“計(jì)算機(jī)系統(tǒng)”三個(gè)基本要素。嵌入式系統(tǒng)的特點(diǎn)如下。
(1)面向特定應(yīng)用。嵌入式系統(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ú)人值守或條件惡劣的環(huán)境中,因此,對(duì)其代碼必須有更高的要求。
(6)嵌入式系統(tǒng)本身不具備二次開發(fā)功能,即設(shè)計(jì)完成后,用戶通常不能在該平臺(tái)上直接修改程序,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行再次開發(fā)。
1.1.2 嵌入式系統(tǒng)的體系結(jié)構(gòu)

圖1.1 嵌入式系統(tǒng)的組成
嵌入式系統(tǒng)是一類特殊的計(jì)算機(jī)系統(tǒng),一般包括硬件設(shè)備、嵌入式操作系統(tǒng)和應(yīng)用軟件。它們之間的關(guān)系如圖1.1所示。
硬件設(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、MC 68000、MIPS等使用得最為廣泛。
外圍設(shè)備是指嵌入式系統(tǒng)中用于完成存儲(chǔ)、通信、調(diào)試、顯示等輔助功能的其他部件。目前常用的嵌入式外圍設(shè)備按功能可以分為存儲(chǔ)設(shè)備(如RAM、SRAM、Flash等)、通信設(shè)備(如RS-232接口、SPI接口、以太網(wǎng)接口、USB接口、無(wú)線通信等)和顯示設(shè)備(如顯示屏等)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)確性、實(shí)時(shí)性、安全性和穩(wěn)定性等方面需要,而且要盡可能地優(yōu)化代碼,以減少對(duì)系統(tǒng)資源的消耗,降低硬件成本。
1.1.3 幾種常用的嵌入式操作系統(tǒng)
1.嵌入式Linux
嵌入式Linux(Embedded Linux)是指對(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),介紹如下。
(1)改善內(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ù)和移植。
(2)提高系統(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的主要版本如表1.1所示。
表1.1 嵌入式Linux的主要版本

為了不失一般性,本書所用的嵌入式Linux是標(biāo)準(zhǔn)內(nèi)核裁減的Linux,而不是表1.1中的任何一種。
2.μC/OS-II
μC/OS-II是一種免費(fèi)公開源代碼、結(jié)構(gòu)小巧、基于優(yōu)先級(jí)的可搶先的硬實(shí)時(shí)內(nèi)核。自從1992年問(wèn)世以來(lái),在世界各地應(yīng)用廣泛,它是一種專門為嵌入式設(shè)備設(shè)計(jì)的內(nèi)核,目前已經(jīng)被移植到40多種不同結(jié)構(gòu)的CPU上,運(yùn)行在8~64位的各種系統(tǒng)之上。尤其值得一提的是,該系統(tǒng)自從2.51版本之后,就通過(guò)了美國(guó)FAA認(rèn)證,可以運(yùn)行在諸如航天器等對(duì)安全要求極為苛刻的系統(tǒng)之上。鑒于μC/OS-II可以免費(fèi)獲得代碼,對(duì)于嵌入式RTOS而言,選擇μC/OS無(wú)疑是最經(jīng)濟(jì)的。
μC/OS-II主要適合小型實(shí)時(shí)控制系統(tǒng),具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。最小內(nèi)核可編譯至2KB,如果包含內(nèi)核的全部功能,編譯之后的μC/OS-II內(nèi)核僅有6KB~10KB。
μC/OS-II的源代碼結(jié)構(gòu)合理、清晰易讀,不僅成功應(yīng)用在眾多的商業(yè)項(xiàng)目中,而且被很多大學(xué)采納,作為教學(xué)的范例,同時(shí)也是嵌入式工程師學(xué)習(xí)和提高的絕好材料。
3.VxWorks
VxWorks操作系統(tǒng)是美國(guó)Wind River公司于1983年設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),它是當(dāng)前市場(chǎng)占有率很高的嵌入式操作系統(tǒng)之一。VxWorks的實(shí)時(shí)性做得非常好,其系統(tǒng)本身的開銷很小,進(jìn)程調(diào)度、進(jìn)程間通信、中斷處理等系統(tǒng)公用程序精練而有效,這使得它們?cè)斐傻难舆t很短。另外VxWorks提供的多任務(wù)機(jī)制,對(duì)任務(wù)的控制采用了優(yōu)先級(jí)搶占(Linux 2.6內(nèi)核也采用了優(yōu)先級(jí)搶占的機(jī)制)和輪轉(zhuǎn)調(diào)度機(jī)制,這充分保證了可靠的實(shí)時(shí)性,并使同樣的硬件配置能滿足更強(qiáng)的實(shí)時(shí)性要求。另外VxWorks具有高度的可靠性,從而保證了用戶工作環(huán)境的穩(wěn)定。同時(shí),VxWorks還有完備強(qiáng)大的集成開發(fā)環(huán)境,這也大大方便了用戶的使用。
但是,VxWorks的開發(fā)和使用都需要交納高額的專利費(fèi),大大增加了用戶的開發(fā)成本。同時(shí),VxWorks的源碼不公開造成它部分功能的更新(如網(wǎng)絡(luò)功能模塊)滯后。
4.Windows CE
Windows CE是微軟開發(fā)的一個(gè)開放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型計(jì)算機(jī)類的電子設(shè)備操作系統(tǒng)。Windows CE的圖形用戶界面相當(dāng)出色。Windows CE具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口以及與處理器無(wú)關(guān)等特點(diǎn)。它不僅繼承了傳統(tǒng)的Windows圖形界面,并且用戶在Windows CE平臺(tái)上可以使用Windows上的編程工具(如Visual Studio等),也可以使用同樣的函數(shù)和同樣的界面風(fēng)格,這使大多數(shù)Windows上的應(yīng)用軟件只需簡(jiǎn)單地修改和移植,就可以在Windows CE平臺(tái)上繼續(xù)使用。
1.1.4 嵌入式系統(tǒng)發(fā)展趨勢(shì)
1.提供強(qiáng)大的網(wǎng)絡(luò)服務(wù)
為適應(yīng)嵌入式分布處理結(jié)構(gòu)和應(yīng)用上網(wǎng)需求,面向21世紀(jì)的嵌入式系統(tǒng)要求配備標(biāo)準(zhǔn)的一種或多種網(wǎng)絡(luò)通信接口。針對(duì)外部聯(lián)網(wǎng)要求,嵌入設(shè)備必須配有通信接口,相應(yīng)需要TCP/IP協(xié)議簇軟件支持;為滿足家用電器相互關(guān)聯(lián)(如防盜報(bào)警、燈光能源控制、影視設(shè)備和信息終端交換信息等)及實(shí)驗(yàn)現(xiàn)場(chǎng)儀器的協(xié)調(diào)工作等要求,新一代嵌入式設(shè)備還需具備IEEE 1394、USB、CAN、Bluetooth或IrDA通信接口,同時(shí)也需要提供相應(yīng)的通信組網(wǎng)協(xié)議軟件和物理層驅(qū)動(dòng)軟件。為了支持應(yīng)用軟件的特定編程模式,如Web或無(wú)線Web編程模式,還需要相應(yīng)的瀏覽器,如HTML瀏覽器、WML瀏覽器等。
2.小型化、低成本、低功耗
為滿足這種特性,要求嵌入式產(chǎn)品設(shè)計(jì)者相應(yīng)降低處理器的性能,限制內(nèi)存容量和復(fù)用接口芯片。這就相應(yīng)提高了對(duì)嵌入式軟件設(shè)計(jì)技術(shù)的要求,如選用最佳的編程模型和不斷改進(jìn)算法,采用Java編程模式,優(yōu)化編譯器性能等。因此,既需要軟件人員具有豐富的開發(fā)經(jīng)驗(yàn),也需要發(fā)展先進(jìn)的嵌入式軟件技術(shù),如Java、Web和WAP等。
3.人性化的人機(jī)界面
用戶之所以樂(lè)于接受嵌入式設(shè)備,其重要因素之一是它們與使用者之間的親和力。它具有自然的人機(jī)交互界面,如司機(jī)操縱高度自動(dòng)化的汽車主要還是通過(guò)已使用習(xí)慣的方向盤、腳踏板和操縱桿。人們與信息終端交互要求以GUI屏幕為主的多媒體界面。手寫文字輸入、語(yǔ)音撥號(hào)上網(wǎng)、收發(fā)電子郵件及彩色圖形、圖像已取得成效。目前一些PDA在顯示屏幕上已實(shí)現(xiàn)漢字寫入、短消息語(yǔ)音發(fā)布,但離掌式語(yǔ)言同聲翻譯還有很大距離。
4.完善的開發(fā)平臺(tái)
隨著Internet技術(shù)的成熟、帶寬的提高,互聯(lián)網(wǎng)內(nèi)容提供商(Internet Content Provider, ICP)和應(yīng)用服務(wù)提供商(Application Service Provider, ASP)在網(wǎng)上提供的信息內(nèi)容日趨豐富、應(yīng)用項(xiàng)目多種多樣,像移動(dòng)電話、固定電話及電冰箱、微波爐等嵌入式電子設(shè)備的功能不再單一,電氣結(jié)構(gòu)也更為復(fù)雜。為了滿足應(yīng)用功能的升級(jí),設(shè)計(jì)者一方面采用更強(qiáng)大的嵌入式處理器,如32位、64位RISC芯片或數(shù)字信號(hào)處理器(Digital Signal Processer, DSP)增強(qiáng)處理能力;同時(shí)還采用實(shí)時(shí)多任務(wù)編程技術(shù)和交叉開發(fā)工具技術(shù)來(lái)控制功能復(fù)雜性,簡(jiǎn)化應(yīng)用程序設(shè)計(jì)、保障軟件質(zhì)量和縮短開發(fā)周期。
- 北京理工大學(xué)848理論力學(xué)歷年考研真題及詳解
- 市場(chǎng)營(yíng)銷學(xué)(第二版)
- 手機(jī)短視頻拍攝與制作(微課版)
- 計(jì)算機(jī)應(yīng)用能力案例教程
- Moldflow模具分析實(shí)用教程
- 周平《新編日語(yǔ)3(修訂本)》學(xué)習(xí)指南【課文重點(diǎn)+詞匯剖析+語(yǔ)法精解+全文翻譯+練習(xí)答案】
- 2020年考研英語(yǔ)(二)完形填空高分特訓(xùn)100篇【命題分析+答題攻略+強(qiáng)化訓(xùn)練】
- 公司金融(中英雙語(yǔ)版)
- 2020年湖北公務(wù)員錄用考試專項(xiàng)教材:數(shù)量關(guān)系【考點(diǎn)精講+典型題(含歷年真題)詳解】
- 企業(yè)財(cái)務(wù)會(huì)計(jì)
- 2019年期貨從業(yè)資格考試《期貨基礎(chǔ)知識(shí)》【教材精講+真題解析】講義與視頻課程【29小時(shí)高清視頻】
- 建設(shè)項(xiàng)目管理
- 新編企業(yè)會(huì)計(jì)綜合實(shí)訓(xùn)
- 高聚物生產(chǎn)技術(shù)(第二版)
- 消費(fèi)者行為學(xué)(第3版)